diff --git a/.babelrc b/.babelrc new file mode 100644 index 0000000000000000000000000000000000000000..d8f61d776f247c80c38eefd04fc2af1423b08d62 --- /dev/null +++ b/.babelrc @@ -0,0 +1,12 @@ +{ + "plugins": [ + "@babel/plugin-syntax-dynamic-import", + "@babel/plugin-proposal-object-rest-spread", + ["react-intl", { + "messagesDir": "./translations/messages/" + }]], + "presets": [ + ["@babel/preset-env"], + "@babel/preset-react" + ] +} diff --git a/.browserslistrc b/.browserslistrc new file mode 100644 index 0000000000000000000000000000000000000000..1346d529ab829b2746617fcb2ae83cefabbc3189 --- /dev/null +++ b/.browserslistrc @@ -0,0 +1,6 @@ +chrome >= 70 +chromeandroid >= 70 +ios >= 12 +safari >= 12 +edge >= 18 +firefox >= 68 \ No newline at end of file diff --git a/.circleci/config.yml b/.circleci/config.yml new file mode 100644 index 0000000000000000000000000000000000000000..46b5327ed20cd3a97dfb940e79bd3a8a22759fe1 --- /dev/null +++ b/.circleci/config.yml @@ -0,0 +1,329 @@ +version: 2.1 +orbs: + browser-tools: circleci/browser-tools@1.2.4 +aliases: + - &save_git_cache + save_cache: + paths: + - .git + key: v3-git-{{ .Revision }} + - &restore_git_cache + restore_cache: + keys: + - v3-git-{{ .Revision }} + - v3-git- + - &save_build_cache + save_cache: + paths: + - build + key: v3-build-{{ .Revision }} + - &restore_build_cache + restore_cache: + keys: + - v3-build-{{ .Revision }} + - &save_dist_cache + save_cache: + paths: + - dist + key: v3-dist-{{ .Revision }} + - &restore_dist_cache + restore_cache: + keys: + - v3-dist-{{ .Revision }} + - &save_npm_cache + save_cache: + paths: + - node_modules + key: v3-npm-{{ checksum "package-lock.json" }} + - &restore_npm_cache + restore_cache: + keys: + - v3-npm-{{ checksum "package-lock.json" }} + - v3-npm- + - &defaults + docker: + - image: cimg/node:12.22.11-browsers + auth: + username: $DOCKERHUB_USERNAME + password: $DOCKERHUB_PASSWORD + working_directory: ~/repo + +jobs: + build-test-no-cache: + <<: *defaults + environment: + JEST_JUNIT_OUTPUT_DIR: test-results + NODE_OPTIONS: --max-old-space-size=4000 + steps: + - *restore_git_cache + - checkout + - run: npm ci + - run: + name: Lint + command: npm run test:lint -- --quiet --output-file test-results/eslint-results.xml --format junit + - run: + name: Unit + environment: + JEST_JUNIT_OUTPUT_NAME: unit-results.xml + command: npm run test:unit -- --reporters="default" --reporters="jest-junit" --coverage --coverageReporters=text --coverageReporters=lcov --maxWorkers="2" + - run: + name: Build + environment: + NODE_ENV: production + command: npm run build + - browser-tools/install-chrome + - browser-tools/install-chromedriver + - run: + name: Integration + environment: + JEST_JUNIT_OUTPUT_NAME: integration-results.xml + command: | + google-chrome --version + chromedriver --version + npm run test:integration -- --reporters="default" --reporters="jest-junit" + - store_artifacts: + path: coverage + - store_test_results: + path: test-results + setup: + <<: *defaults + steps: + - *restore_git_cache + - checkout + - run: npm ci + - *save_git_cache + - *save_npm_cache + lint: + <<: *defaults + steps: + - *restore_git_cache + - checkout + - *restore_npm_cache + - run: + name: Lint + command: npm run test:lint -- --quiet --output-file test-results/eslint/results.xml --format junit + - store_test_results: + path: test-results + unit: + <<: *defaults + environment: + JEST_JUNIT_OUTPUT_NAME: results.xml + steps: + - *restore_git_cache + - checkout + - *restore_npm_cache + - run: + name: Unit + environment: + JEST_JUNIT_OUTPUT_DIR: test-results/unit + command: npm run test:unit -- --reporters="default" --reporters="jest-junit" --coverage --coverageReporters=text --coverageReporters=lcov --maxWorkers="2" + - store_artifacts: + path: coverage + - store_test_results: + path: test-results + build: + <<: *defaults + environment: + NODE_ENV: production + NODE_OPTIONS: --max-old-space-size=4000 + steps: + - *restore_git_cache + - checkout + - *restore_npm_cache + - run: + name: Build + command: npm run build + - *save_build_cache + - *save_dist_cache + store_build: + <<: *defaults + steps: + - *restore_build_cache + - store_artifacts: + path: build + store_dist: + <<: *defaults + steps: + - *restore_dist_cache + - store_artifacts: + path: dist + integration: + <<: *defaults + parallelism: 2 + environment: + JEST_JUNIT_OUTPUT_NAME: results.txt + steps: + - *restore_git_cache + - checkout + - *restore_npm_cache + - *restore_build_cache + - browser-tools/install-chrome + - browser-tools/install-chromedriver + - run: + name: Integration + environment: + JEST_JUNIT_OUTPUT_DIR: test-results/integration + command: | + google-chrome --version + chromedriver --version + export TESTFILES=$(circleci tests glob "test/integration/*.test.js" | circleci tests split --split-by=timings) + $(npm bin)/jest ${TESTFILES} --reporters="default" --reporters="jest-junit" --runInBand + - store_test_results: + path: test-results + + deploy-npm: + <<: *defaults + environment: + NODE_OPTIONS: --max-old-space-size=4000 + steps: + - *restore_git_cache + - *restore_dist_cache + - checkout + - run: | + echo export RELEASE_VERSION="0.1.0-prerelease.$(date +'%Y%m%d%H%M%S')" >> $BASH_ENV + echo export NPM_TAG=latest >> $BASH_ENV + if [ "$CIRCLE_BRANCH" == "master" ] + then echo export NPM_TAG=stable >> $BASH_ENV + fi + if [[ "$CIRCLE_BRANCH" == hotfix/* ]] # double brackets are important for matching the wildcard + then echo export NPM_TAG=hotfix >> $BASH_ENV + fi + - run: npm version --no-git-tag-version $RELEASE_VERSION + - run: | + npm set //registry.npmjs.org/:_authToken=$NPM_TOKEN + npm publish --tag $NPM_TAG + - run: git tag $RELEASE_VERSION + - run: git push $CIRCLE_REPOSITORY_URL $RELEASE_VERSION + + deploy-gh-pages: + <<: *defaults + steps: + - *restore_git_cache + - checkout + - *restore_npm_cache + - *restore_build_cache + - run: | + git config --global user.email $(git log --pretty=format:"%ae" -n1) + git config --global user.name $(git log --pretty=format:"%an" -n1) + - run: npm run deploy -- -e $CIRCLE_BRANCH + push-translations: + <<: *defaults + steps: + - *restore_git_cache + - checkout + - *restore_npm_cache + - run: npm run i18n:src + - run: npm run i18n:push + +workflows: + version: 2 + push-translations: + triggers: + - schedule: + cron: 0 0 * * * # daily at 12 UTC, 8 ET + filters: + branches: + only: + - develop + jobs: + - setup: + context: + - dockerhub-credentials + - push-translations: + context: + - dockerhub-credentials + requires: + - setup + + build-test-no-deploy: + jobs: + - build-test-no-cache: + context: + - dockerhub-credentials + filters: + branches: + ignore: + - master + - develop + - /^hotfix\/.*/ + build-test-deploy: + jobs: + - setup: + context: + - dockerhub-credentials + filters: + branches: + only: + - master + - develop + - /^hotfix\/.*/ + - lint: + context: + - dockerhub-credentials + requires: + - setup + - unit: + context: + - dockerhub-credentials + requires: + - setup + - build: + context: + - dockerhub-credentials + requires: + - setup + - integration: + context: + - dockerhub-credentials + requires: + - build + - store_build: + context: + - dockerhub-credentials + requires: + - build + filters: + branches: + only: + - master + - develop + - /^hotfix\/.*/ + - store_dist: + context: + - dockerhub-credentials + requires: + - build + filters: + branches: + only: + - master + - develop + - /^hotfix\/.*/ + - deploy-npm: + context: + - dockerhub-credentials + requires: + - lint + - unit + - integration + - build + filters: + branches: + only: + - master + - develop + - /^hotfix\/.*/ + - deploy-gh-pages: + context: + - dockerhub-credentials + requires: + - lint + - unit + - integration + - build + filters: + branches: + ignore: + - /^dependabot/.*/ + - /^renovate/.*/ + - /^pull/.*/ # don't deploy to gh pages on PRs. diff --git a/.editorconfig b/.editorconfig new file mode 100644 index 0000000000000000000000000000000000000000..e84613dd6c76b1f75668c71b96f56ed141f05b2d --- /dev/null +++ b/.editorconfig @@ -0,0 +1,11 @@ +root = true + +[*] +end_of_line = lf +insert_final_newline = true +charset = utf-8 +indent_size = 4 +trim_trailing_whitespace = true + +[*.{js,html}] +indent_style = space diff --git a/.eslintignore b/.eslintignore new file mode 100644 index 0000000000000000000000000000000000000000..96911dcc5cd32501832c418315afb8f2d4a98957 --- /dev/null +++ b/.eslintignore @@ -0,0 +1,8 @@ +node_modules/* +!build/* +!dist/* +# Files imported from upstream +!src/addons/addons +!src/addons/libraries +!src/addons/api-libraries +!src/addons/generated diff --git a/.eslintrc.js b/.eslintrc.js new file mode 100644 index 0000000000000000000000000000000000000000..36ff570d9d3cd8f10285c343b34168c18fccfe16 --- /dev/null +++ b/.eslintrc.js @@ -0,0 +1,3 @@ +module.exports = { + extends: ['scratch', 'scratch/node'] +}; diff --git a/.gitattributes b/.gitattributes index a6344aac8c09253b3b630fb776ae94478aa0275b..fd70de12b623a9e812594a6ab63ec50243bdf30a 100644 --- a/.gitattributes +++ b/.gitattributes @@ -1,35 +1,144 @@ -*.7z filter=lfs diff=lfs merge=lfs -text -*.arrow filter=lfs diff=lfs merge=lfs -text -*.bin filter=lfs diff=lfs merge=lfs -text -*.bz2 filter=lfs diff=lfs merge=lfs -text -*.ckpt filter=lfs diff=lfs merge=lfs -text -*.ftz filter=lfs diff=lfs merge=lfs -text -*.gz filter=lfs diff=lfs merge=lfs -text -*.h5 filter=lfs diff=lfs merge=lfs -text -*.joblib filter=lfs diff=lfs merge=lfs -text -*.lfs.* filter=lfs diff=lfs merge=lfs -text -*.mlmodel filter=lfs diff=lfs merge=lfs -text -*.model filter=lfs diff=lfs merge=lfs -text -*.msgpack filter=lfs diff=lfs merge=lfs -text -*.npy filter=lfs diff=lfs merge=lfs -text -*.npz filter=lfs diff=lfs merge=lfs -text -*.onnx filter=lfs diff=lfs merge=lfs -text -*.ot filter=lfs diff=lfs merge=lfs -text -*.parquet filter=lfs diff=lfs merge=lfs -text -*.pb filter=lfs diff=lfs merge=lfs -text -*.pickle filter=lfs diff=lfs merge=lfs -text -*.pkl filter=lfs diff=lfs merge=lfs -text -*.pt filter=lfs diff=lfs merge=lfs -text -*.pth filter=lfs diff=lfs merge=lfs -text -*.rar filter=lfs diff=lfs merge=lfs -text -*.safetensors filter=lfs diff=lfs merge=lfs -text -saved_model/**/* filter=lfs diff=lfs merge=lfs -text -*.tar.* filter=lfs diff=lfs merge=lfs -text -*.tar filter=lfs diff=lfs merge=lfs -text -*.tflite filter=lfs diff=lfs merge=lfs -text -*.tgz filter=lfs diff=lfs merge=lfs -text -*.wasm filter=lfs diff=lfs merge=lfs -text -*.xz filter=lfs diff=lfs merge=lfs -text -*.zip filter=lfs diff=lfs merge=lfs -text -*.zst filter=lfs diff=lfs merge=lfs -text -*tfevents* filter=lfs diff=lfs merge=lfs -text +# Set the default behavior, in case people don't have core.autocrlf set. +* text=auto + +# Explicitly specify line endings for as many files as possible. +# People who (for example) rsync between Windows and Linux need this. + +# File types which we know are binary + +# Treat SVG files as binary so that their contents don't change due to line +# endings. The contents of SVGs must not change from the way they're stored +# on assets.scratch.mit.edu so that MD5 calculations don't change. +*.svg binary + +# Prefer LF for most file types +*.css text eol=lf +*.frag text eol=lf +*.htm text eol=lf +*.html text eol=lf +*.iml text eol=lf +*.js text eol=lf +*.js.map text eol=lf +*.json text eol=lf +*.json5 text eol=lf +*.jsx text eol=lf +*.md text eol=lf +*.vert text eol=lf +*.xml text eol=lf +*.yml text eol=lf + +# Prefer LF for these files +.editorconfig text eol=lf +.eslintrc text eol=lf +.gitattributes text eol=lf +.gitignore text eol=lf +.gitmodules text eol=lf +LICENSE text eol=lf +Makefile text eol=lf +README text eol=lf +TRADEMARK text eol=lf + +# Use CRLF for Windows-specific file types +src/lib/libraries/decks/steps/add-variable.pt_BR.gif filter=lfs diff=lfs merge=lfs -text +src/lib/libraries/decks/steps/animate-char-pick-sprite.LTR.gif filter=lfs diff=lfs merge=lfs -text +src/lib/libraries/decks/steps/chase-game-add-backdrop.LTR.gif filter=lfs diff=lfs merge=lfs -text +src/lib/libraries/decks/steps/chase-game-add-sprite1.LTR.gif filter=lfs diff=lfs merge=lfs -text +src/lib/libraries/decks/steps/chase-game-add-sprite2.LTR.gif filter=lfs diff=lfs merge=lfs -text +src/lib/libraries/decks/steps/cn-show-character.LTR.gif filter=lfs diff=lfs merge=lfs -text +src/lib/libraries/decks/steps/code-cartoon-04-use-minus-sign.es.png filter=lfs diff=lfs merge=lfs -text +src/lib/libraries/decks/steps/code-cartoon-04-use-minus-sign.tr.png filter=lfs diff=lfs merge=lfs -text +src/lib/libraries/decks/steps/fly-choose-backdrop.LTR.gif filter=lfs diff=lfs merge=lfs -text +src/lib/libraries/decks/steps/fly-choose-scenery.LTR.gif filter=lfs diff=lfs merge=lfs -text +src/lib/libraries/decks/steps/glide-around-point.es.png filter=lfs diff=lfs merge=lfs -text +src/lib/libraries/decks/steps/imagine-record-a-sound.am.gif filter=lfs diff=lfs merge=lfs -text +src/lib/libraries/decks/steps/imagine-record-a-sound.en.gif filter=lfs diff=lfs merge=lfs -text +src/lib/libraries/decks/steps/imagine-record-a-sound.es.gif filter=lfs diff=lfs merge=lfs -text +src/lib/libraries/decks/steps/imagine-record-a-sound.fr.gif filter=lfs diff=lfs merge=lfs -text +src/lib/libraries/decks/steps/imagine-record-a-sound.ja.gif filter=lfs diff=lfs merge=lfs -text +src/lib/libraries/decks/steps/imagine-record-a-sound.pt_BR.gif filter=lfs diff=lfs merge=lfs -text +src/lib/libraries/decks/steps/imagine-record-a-sound.sw.gif filter=lfs diff=lfs merge=lfs -text +src/lib/libraries/decks/steps/imagine-record-a-sound.tr.gif filter=lfs diff=lfs merge=lfs -text +src/lib/libraries/decks/steps/imagine-record-a-sound.uk.gif filter=lfs diff=lfs merge=lfs -text +src/lib/libraries/decks/steps/imagine-record-a-sound.zh_CN.gif filter=lfs diff=lfs merge=lfs -text +src/lib/libraries/decks/steps/imagine-record-a-sound.zh_TW.gif filter=lfs diff=lfs merge=lfs -text +src/lib/libraries/decks/steps/imagine-record-a-sound.zu.gif filter=lfs diff=lfs merge=lfs -text +src/lib/libraries/decks/steps/intro-1-move.es.gif filter=lfs diff=lfs merge=lfs -text +src/lib/libraries/decks/steps/intro-1-move.zu.gif filter=lfs diff=lfs merge=lfs -text +src/lib/libraries/decks/steps/intro-2-say.fr.gif filter=lfs diff=lfs merge=lfs -text +src/lib/libraries/decks/steps/intro-2-say.zh_TW.gif filter=lfs diff=lfs merge=lfs -text +src/lib/libraries/decks/steps/intro-3-green-flag.es.gif filter=lfs diff=lfs merge=lfs -text +src/lib/libraries/decks/steps/intro-3-green-flag.fr.gif filter=lfs diff=lfs merge=lfs -text +src/lib/libraries/decks/steps/intro-3-green-flag.ja.gif filter=lfs diff=lfs merge=lfs -text +src/lib/libraries/decks/steps/intro-3-green-flag.pt_BR.gif filter=lfs diff=lfs merge=lfs -text +src/lib/libraries/decks/steps/intro-3-green-flag.sw.gif filter=lfs diff=lfs merge=lfs -text +src/lib/libraries/decks/steps/intro-3-green-flag.tr.gif filter=lfs diff=lfs merge=lfs -text +src/lib/libraries/decks/steps/intro-3-green-flag.zh_CN.gif filter=lfs diff=lfs merge=lfs -text +src/lib/libraries/decks/steps/intro-3-green-flag.zh_TW.gif filter=lfs diff=lfs merge=lfs -text +src/lib/libraries/decks/steps/music-pick-instrument.LTR.gif filter=lfs diff=lfs merge=lfs -text +src/lib/libraries/decks/steps/name-pick-letter2.LTR.gif filter=lfs diff=lfs merge=lfs -text +src/lib/libraries/decks/steps/pong-add-a-paddle.LTR.gif filter=lfs diff=lfs merge=lfs -text +src/lib/libraries/decks/steps/pong-add-line.LTR.gif filter=lfs diff=lfs merge=lfs -text +src/lib/libraries/decks/steps/pong-add-line.RTL.gif filter=lfs diff=lfs merge=lfs -text +src/lib/libraries/decks/steps/speech-add-sprite.LTR.gif filter=lfs diff=lfs merge=lfs -text +src/lib/libraries/decks/steps/speech-spin.am.png filter=lfs diff=lfs merge=lfs -text +src/lib/libraries/decks/steps/speech-spin.ar.png filter=lfs diff=lfs merge=lfs -text +src/lib/libraries/decks/steps/speech-spin.en.png filter=lfs diff=lfs merge=lfs -text +src/lib/libraries/decks/steps/speech-spin.fr.png filter=lfs diff=lfs merge=lfs -text +src/lib/libraries/decks/steps/speech-spin.ja.png filter=lfs diff=lfs merge=lfs -text +src/lib/libraries/decks/steps/speech-spin.pt_BR.png filter=lfs diff=lfs merge=lfs -text +src/lib/libraries/decks/steps/speech-spin.sw.png filter=lfs diff=lfs merge=lfs -text +src/lib/libraries/decks/steps/speech-spin.tr.png filter=lfs diff=lfs merge=lfs -text +src/lib/libraries/decks/steps/speech-spin.uk.png filter=lfs diff=lfs merge=lfs -text +src/lib/libraries/decks/steps/speech-spin.zh_CN.png filter=lfs diff=lfs merge=lfs -text +src/lib/libraries/decks/steps/speech-spin.zh_TW.png filter=lfs diff=lfs merge=lfs -text +src/lib/libraries/decks/steps/speech-spin.zu.png filter=lfs diff=lfs merge=lfs -text +src/lib/libraries/decks/steps/story-flip.en.gif filter=lfs diff=lfs merge=lfs -text +src/lib/libraries/decks/steps/story-flip.pt_BR.gif filter=lfs diff=lfs merge=lfs -text +src/lib/libraries/decks/steps/story-pick-backdrop.LTR.gif filter=lfs diff=lfs merge=lfs -text +src/lib/libraries/decks/steps/story-pick-backdrop2.LTR.gif filter=lfs diff=lfs merge=lfs -text +src/lib/libraries/decks/steps/story-pick-sprite.LTR.gif filter=lfs diff=lfs merge=lfs -text +src/lib/libraries/decks/steps/story-pick-sprite2.LTR.gif filter=lfs diff=lfs merge=lfs -text +src/lib/libraries/decks/steps/talking-11-choose-sound.am.gif filter=lfs diff=lfs merge=lfs -text +src/lib/libraries/decks/steps/talking-11-choose-sound.en.gif filter=lfs diff=lfs merge=lfs -text +src/lib/libraries/decks/steps/talking-11-choose-sound.es.gif filter=lfs diff=lfs merge=lfs -text +src/lib/libraries/decks/steps/talking-11-choose-sound.fr.gif filter=lfs diff=lfs merge=lfs -text +src/lib/libraries/decks/steps/talking-11-choose-sound.ja.gif filter=lfs diff=lfs merge=lfs -text +src/lib/libraries/decks/steps/talking-11-choose-sound.pt_BR.gif filter=lfs diff=lfs merge=lfs -text +src/lib/libraries/decks/steps/talking-11-choose-sound.sw.gif filter=lfs diff=lfs merge=lfs -text +src/lib/libraries/decks/steps/talking-11-choose-sound.tr.gif filter=lfs diff=lfs merge=lfs -text +src/lib/libraries/decks/steps/talking-11-choose-sound.zh_CN.gif filter=lfs diff=lfs merge=lfs -text +src/lib/libraries/decks/steps/talking-11-choose-sound.zh_TW.gif filter=lfs diff=lfs merge=lfs -text +src/lib/libraries/decks/steps/talking-11-choose-sound.zu.gif filter=lfs diff=lfs merge=lfs -text +src/lib/libraries/decks/thumbnails/add-backdrop.jpg filter=lfs diff=lfs merge=lfs -text +src/lib/libraries/decks/thumbnails/add-effects.jpg filter=lfs diff=lfs merge=lfs -text +src/lib/libraries/decks/thumbnails/add-sprite.jpg filter=lfs diff=lfs merge=lfs -text +src/lib/libraries/decks/thumbnails/animate-a-character.jpg filter=lfs diff=lfs merge=lfs -text +src/lib/libraries/decks/thumbnails/animate-a-name.jpg filter=lfs diff=lfs merge=lfs -text +src/lib/libraries/decks/thumbnails/animate-sprite.jpg filter=lfs diff=lfs merge=lfs -text +src/lib/libraries/decks/thumbnails/cartoon-network.jpg filter=lfs diff=lfs merge=lfs -text +src/lib/libraries/decks/thumbnails/change-size.jpg filter=lfs diff=lfs merge=lfs -text +src/lib/libraries/decks/thumbnails/chase-game.jpg filter=lfs diff=lfs merge=lfs -text +src/lib/libraries/decks/thumbnails/code-a-cartoon.jpg filter=lfs diff=lfs merge=lfs -text +src/lib/libraries/decks/thumbnails/getting-started-asl.png filter=lfs diff=lfs merge=lfs -text +src/lib/libraries/decks/thumbnails/getting-started.jpg filter=lfs diff=lfs merge=lfs -text +src/lib/libraries/decks/thumbnails/glide-around.jpg filter=lfs diff=lfs merge=lfs -text +src/lib/libraries/decks/thumbnails/imagine.jpg filter=lfs diff=lfs merge=lfs -text +src/lib/libraries/decks/thumbnails/make-music.jpg filter=lfs diff=lfs merge=lfs -text +src/lib/libraries/decks/thumbnails/move-arrow-keys.jpg filter=lfs diff=lfs merge=lfs -text +src/lib/libraries/decks/thumbnails/record-a-sound.jpg filter=lfs diff=lfs merge=lfs -text +src/lib/libraries/decks/thumbnails/spin.jpg filter=lfs diff=lfs merge=lfs -text +src/lib/libraries/decks/thumbnails/tell-a-story.jpg filter=lfs diff=lfs merge=lfs -text +src/lib/libraries/decks/thumbnails/text-to-speech.jpg filter=lfs diff=lfs merge=lfs -text +src/lib/libraries/decks/thumbnails/video-sensing.jpg filter=lfs diff=lfs merge=lfs -text +src/lib/libraries/extensions/penguinmod/extensions/3d_physics_icon_layered.pdn filter=lfs diff=lfs merge=lfs -text +src/lib/libraries/extensions/penguinmod/extensions/lua.png filter=lfs diff=lfs merge=lfs -text +src/lib/libraries/extensions/penguinmod/extensions/mcutils.png filter=lfs diff=lfs merge=lfs -text +src/lib/libraries/extensions/penguinmod/extensions/text[[:space:]]extension.png filter=lfs diff=lfs merge=lfs -text +src/lib/tw-scratch-render-fonts/Archivo-Black.ttf filter=lfs diff=lfs merge=lfs -text +src/lib/tw-scratch-render-fonts/Archivo-Regular.ttf filter=lfs diff=lfs merge=lfs -text +src/lib/tw-scratch-render-fonts/BadComic-Regular.ttf filter=lfs diff=lfs merge=lfs -text +src/lib/tw-scratch-render-fonts/Griffy-Regular.ttf filter=lfs diff=lfs merge=lfs -text +src/lib/tw-scratch-render-fonts/Monospace.ttf filter=lfs diff=lfs merge=lfs -text +src/lib/tw-scratch-render-fonts/MonospaceBold.ttf filter=lfs diff=lfs merge=lfs -text +src/lib/tw-scratch-render-fonts/NotoSans-Medium.ttf filter=lfs diff=lfs merge=lfs -text +src/lib/tw-scratch-render-fonts/SourceSerifPro-Regular.otf filter=lfs diff=lfs merge=lfs -text diff --git a/.github/ISSUE_TEMPLATE.md b/.github/ISSUE_TEMPLATE.md new file mode 100644 index 0000000000000000000000000000000000000000..38756937c53bdddf1540acf4b81e6faf090a2240 --- /dev/null +++ b/.github/ISSUE_TEMPLATE.md @@ -0,0 +1,15 @@ +### Expected Behavior + +_Please describe what should happen_ + +### Actual Behavior + +_Describe what actually happens_ + +### Steps to Reproduce + +_Explain what someone needs to do in order to see what's described in *Actual behavior* above_ + +### Operating System and Browser + +_e.g. Mac OS 10.11.6 Safari 10.0_ diff --git a/.github/PULL_REQUEST_TEMPLATE.md b/.github/PULL_REQUEST_TEMPLATE.md new file mode 100644 index 0000000000000000000000000000000000000000..9a75ac19a468a50b9a51d887cdd7fd9e3d369498 --- /dev/null +++ b/.github/PULL_REQUEST_TEMPLATE.md @@ -0,0 +1,39 @@ +### Resolves + +_What Github issue does this resolve (please include link)?_ + +- Resolves # + +### Proposed Changes + +_Describe what this Pull Request does_ + +### Reason for Changes + +_Explain why these changes should be made_ + +### Test Coverage + +_Please show how you have added tests to cover your changes_ + +### Browser Coverage +Check the OS/browser combinations tested (At least 2) + +Mac + * [ ] Chrome + * [ ] Firefox + * [ ] Safari + +Windows + * [ ] Chrome + * [ ] Firefox + * [ ] Edge + +Chromebook + * [ ] Chrome + +iPad +* [ ] Safari + +Android Tablet +* [ ] Chrome diff --git a/.github/dependabot.yml b/.github/dependabot.yml new file mode 100644 index 0000000000000000000000000000000000000000..028d1bc3117e9307eebe0ea3b484e4daf95d2d39 --- /dev/null +++ b/.github/dependabot.yml @@ -0,0 +1,15 @@ +version: 2 +updates: + - package-ecosystem: "npm" + directory: "/" + schedule: + interval: "daily" + allow: + - dependency-name: "scratch-audio" + - dependency-name: "scratch-render" + - dependency-name: "scratch-vm" + - dependency-name: "scratch-paint" + - dependency-name: "scratch-svg-renderer" + - dependency-name: "scratch-blocks" + - dependency-name: "scratch-storage" + - dependency-name: "@turbowarp/scratch-l10n" diff --git a/.github/workflows/e.yml b/.github/workflows/e.yml new file mode 100644 index 0000000000000000000000000000000000000000..f92efd8874118a90725907ac6b86165031f20e51 --- /dev/null +++ b/.github/workflows/e.yml @@ -0,0 +1,31 @@ +# Thtttis workflow will do a clean installation of node dependencies, cache/restore them, build the source code and run tests across different versions of node +# For more information see: https://help.github.com/actions/language-and-framework-guides/using-nodejs-with-github-actions + +name: Node.js CI + +on: + push: + branches: [ main ] + pull_request: + branches: [ main ] + +jobs: + build: + + runs-on: ubuntu-latest + + strategy: + matrix: + node-version: [12.x, 14.x, 16.x] + # See supported Node.js release schedule at https://nodejs.org/en/about/releases/ + + steps: + - uses: actions/checkout@v2 + - name: Use Node.js ${{ matrix.node-version }} + uses: actions/setup-node@v2 + with: + node-version: ${{ matrix.node-version }} + cache: 'npm' + - run: npm ci + - run: npm run build --if-present + - run: npm test diff --git a/.github/workflows/nextjs.yml b/.github/workflows/nextjs.yml new file mode 100644 index 0000000000000000000000000000000000000000..9cc91198f667a0e67fed94de9f1654ebdaa1a3b0 --- /dev/null +++ b/.github/workflows/nextjs.yml @@ -0,0 +1,31 @@ +# This workflow will do a clean installation of node dependencies, cache/restore them, build the source code and run tests across different versions of node +# For more information see: https://help.github.com/actions/language-and-framework-guides/using-nodejs-with-github-actions + +name: Node.js CIeeee + +on: + push: + branches: [ main ] + pull_request: + branches: [ main ] + +jobs: + build: + + runs-on: ubuntu-latest + + strategy: + matrix: + node-version: [12.x, 14.x, 16.x] + # See supported Node.js release schedule at https://nodejs.org/en/about/releases/ + + steps: + - uses: actions/checkout@v2 + - name: Use Node.js ${{ matrix.node-version }} + uses: actions/setup-node@v2 + with: + node-version: ${{ matrix.node-version }} + cache: 'npm' + - run: npm ci + - run: npm run build --if-present + - run: npm test diff --git a/.github/workflows/node.js.yml b/.github/workflows/node.js.yml new file mode 100644 index 0000000000000000000000000000000000000000..cda16f80d38c2ad5db6e4794120ab62b2c7f38fb --- /dev/null +++ b/.github/workflows/node.js.yml @@ -0,0 +1,45 @@ +on: + workflow_dispatch: + repository_dispatch: + push: + +permissions: + contents: read + pages: write + id-token: write + +concurrency: + group: "deploy" + cancel-in-progress: true + #ci-${{ github.ref }} + +jobs: + build: + runs-on: ubuntu-latest + steps: + - name: Checkout + uses: actions/checkout@v3 + - name: Setup GitHub Pages + id: pages + uses: actions/configure-pages@v1 + - name: Install Node.js + uses: actions/setup-node@v3 + with: + node-version: 16.x + - name: Install dependencies and build site + run: npm i -g pnpm@v6 && pnpm up && pnpm i --shamefully-hoist --force && NODE_ENV=production webpack --bail + - name: Upload artifact + uses: actions/upload-pages-artifact@v3 + with: + path: ./build/ + + deploy: + environment: + name: github-pages + url: 'https://penguinmod.com/project' + runs-on: ubuntu-latest + needs: build + steps: + - name: Deploy to GitHub Pages + id: deployment + uses: actions/deploy-pages@v4 diff --git a/.gitignore b/.gitignore new file mode 100644 index 0000000000000000000000000000000000000000..f56390aef662c49341d8f66acbe03c569dce1384 --- /dev/null +++ b/.gitignore @@ -0,0 +1,23 @@ +# Mac OS +.DS_Store +.deploy.js +# NPM +/node_modules +npm-* + +# Testing +/.nyc_output +/coverage + +# Build +/.opt-in +!build/ +!dist/ +build/* +yarn.lock + +# Generated translation files +/translations +/locale +src/lib/tw-translations/new-generated-translations.json +src/lib/tw-translations/merged-translations.json diff --git a/.gitpod.yml b/.gitpod.yml new file mode 100644 index 0000000000000000000000000000000000000000..e5b796388c5bbfbb701aad0ba7a12b1ca30b7d6e --- /dev/null +++ b/.gitpod.yml @@ -0,0 +1,8 @@ +tasks: + - name: Install and build + init: npm i -g pnpm && pnpm up && pnpm i --shamefully-hoist + command: npm run start + +ports: + - port: 3000 + onOpen: open-browser diff --git a/.npmignore b/.npmignore new file mode 100644 index 0000000000000000000000000000000000000000..8103b5644051c81871c5735b99ee6bff610fd32d --- /dev/null +++ b/.npmignore @@ -0,0 +1,16 @@ + +# NPM +/node_modules +npm-* + +# Testing +/.nyc_output +/coverage +/test + +# Build +/.opt-in +/build + +# generated translation files +/translations diff --git a/.npmrc b/.npmrc new file mode 100644 index 0000000000000000000000000000000000000000..d3f5a12faa99758192ecc4ed3fc22c9249232e86 --- /dev/null +++ b/.npmrc @@ -0,0 +1 @@ + diff --git a/.tx/config b/.tx/config new file mode 100644 index 0000000000000000000000000000000000000000..f73791ea98270ab34baa77dc0e0a610bd8f38d89 --- /dev/null +++ b/.tx/config @@ -0,0 +1,8 @@ +[main] +host = https://www.transifex.com + +[scratch-editor.interface] +file_filter = translations/.json +source_file = translations/en.json +source_lang = en +type = CHROME diff --git a/.vscode/settings.json b/.vscode/settings.json new file mode 100644 index 0000000000000000000000000000000000000000..fdb9569e461a3b1de087b0293713520d6bb14e3d --- /dev/null +++ b/.vscode/settings.json @@ -0,0 +1,5 @@ +{ + "yaml.schemas": { + "https://gitpod.io/schemas/gitpod-schema.json": "file:///workspace/penguinmod.github.io/.gitpod.yml" + } +} \ No newline at end of file diff --git a/FORKING.md b/FORKING.md new file mode 100644 index 0000000000000000000000000000000000000000..7d45fe5eb4bcf267b37865694e5ea6e73db58b8b --- /dev/null +++ b/FORKING.md @@ -0,0 +1,24 @@ +This file contains instructions on what you should do upon forking PenguinMod. + +You don't HAVE to follow this document but it'll prevent a lot of confusion for your users and likely prevent your mod from being blacklisted from our internal servers. + +# Branding changes +Update any labels or text that says "PenguinMod" and put your mod's name. +You shouldn't do this for IDs or anything like that. + +You should also update your credits & privacy policy pages. Some contributors may not be ok with being listed as working on your mod directly. + +Update any links to our github to yours so people can find the source code. Also make sure to update links that you have your own version of like feedback, docs, or packager. + +### The "don't do that" section +Don't remove any credit to Scratch, TurboWarp, or PenguinMod. That's just not cool. +Imagine if someone just forked your copy and pretended they made it all themselves. + +Don't change the license or visibility of your repositories if you don't know or understand what you are doing. + +# Server changes +Unless you plan on keeping your mod 100% compatible with PenguinMod, please remove the Upload button and any project sharing features. + +Our APIs are only built for PenguinMod and therefore will likely end up breaking in your mod at some point or another. + +We also do not allow projects that only work outside of PenguinMod so if we end up having a lot of broken uploads from your site, then we'll have to block your site from being able to use the project API. diff --git a/LICENSE b/LICENSE new file mode 100644 index 0000000000000000000000000000000000000000..f288702d2fa16d3cdf0035b15a9fcbc552cd88e7 --- /dev/null +++ b/LICENSE @@ -0,0 +1,674 @@ + GNU GENERAL PUBLIC LICENSE + Version 3, 29 June 2007 + + Copyright (C) 2007 Free Software Foundation, Inc. + Everyone is permitted to copy and distribute verbatim copies + of this license document, but changing it is not allowed. + + Preamble + + The GNU General Public License is a free, copyleft license for +software and other kinds of works. + + The licenses for most software and other practical works are designed +to take away your freedom to share and change the works. By contrast, +the GNU General Public License is intended to guarantee your freedom to +share and change all versions of a program--to make sure it remains free +software for all its users. We, the Free Software Foundation, use the +GNU General Public License for most of our software; it applies also to +any other work released this way by its authors. You can apply it to +your programs, too. + + When we speak of free software, we are referring to freedom, not +price. Our General Public Licenses are designed to make sure that you +have the freedom to distribute copies of free software (and charge for +them if you wish), that you receive source code or can get it if you +want it, that you can change the software or use pieces of it in new +free programs, and that you know you can do these things. + + To protect your rights, we need to prevent others from denying you +these rights or asking you to surrender the rights. Therefore, you have +certain responsibilities if you distribute copies of the software, or if +you modify it: responsibilities to respect the freedom of others. + + For example, if you distribute copies of such a program, whether +gratis or for a fee, you must pass on to the recipients the same +freedoms that you received. You must make sure that they, too, receive +or can get the source code. And you must show them these terms so they +know their rights. + + Developers that use the GNU GPL protect your rights with two steps: +(1) assert copyright on the software, and (2) offer you this License +giving you legal permission to copy, distribute and/or modify it. + + For the developers' and authors' protection, the GPL clearly explains +that there is no warranty for this free software. For both users' and +authors' sake, the GPL requires that modified versions be marked as +changed, so that their problems will not be attributed erroneously to +authors of previous versions. + + Some devices are designed to deny users access to install or run +modified versions of the software inside them, although the manufacturer +can do so. This is fundamentally incompatible with the aim of +protecting users' freedom to change the software. The systematic +pattern of such abuse occurs in the area of products for individuals to +use, which is precisely where it is most unacceptable. Therefore, we +have designed this version of the GPL to prohibit the practice for those +products. If such problems arise substantially in other domains, we +stand ready to extend this provision to those domains in future versions +of the GPL, as needed to protect the freedom of users. + + Finally, every program is threatened constantly by software patents. +States should not allow patents to restrict development and use of +software on general-purpose computers, but in those that do, we wish to +avoid the special danger that patents applied to a free program could +make it effectively proprietary. To prevent this, the GPL assures that +patents cannot be used to render the program non-free. + + The precise terms and conditions for copying, distribution and +modification follow. + + TERMS AND CONDITIONS + + 0. Definitions. + + "This License" refers to version 3 of the GNU General Public License. + + "Copyright" also means copyright-like laws that apply to other kinds of +works, such as semiconductor masks. + + "The Program" refers to any copyrightable work licensed under this +License. Each licensee is addressed as "you". "Licensees" and +"recipients" may be individuals or organizations. + + To "modify" a work means to copy from or adapt all or part of the work +in a fashion requiring copyright permission, other than the making of an +exact copy. The resulting work is called a "modified version" of the +earlier work or a work "based on" the earlier work. + + A "covered work" means either the unmodified Program or a work based +on the Program. + + To "propagate" a work means to do anything with it that, without +permission, would make you directly or secondarily liable for +infringement under applicable copyright law, except executing it on a +computer or modifying a private copy. Propagation includes copying, +distribution (with or without modification), making available to the +public, and in some countries other activities as well. + + To "convey" a work means any kind of propagation that enables other +parties to make or receive copies. Mere interaction with a user through +a computer network, with no transfer of a copy, is not conveying. + + An interactive user interface displays "Appropriate Legal Notices" +to the extent that it includes a convenient and prominently visible +feature that (1) displays an appropriate copyright notice, and (2) +tells the user that there is no warranty for the work (except to the +extent that warranties are provided), that licensees may convey the +work under this License, and how to view a copy of this License. If +the interface presents a list of user commands or options, such as a +menu, a prominent item in the list meets this criterion. + + 1. Source Code. + + The "source code" for a work means the preferred form of the work +for making modifications to it. "Object code" means any non-source +form of a work. + + A "Standard Interface" means an interface that either is an official +standard defined by a recognized standards body, or, in the case of +interfaces specified for a particular programming language, one that +is widely used among developers working in that language. + + The "System Libraries" of an executable work include anything, other +than the work as a whole, that (a) is included in the normal form of +packaging a Major Component, but which is not part of that Major +Component, and (b) serves only to enable use of the work with that +Major Component, or to implement a Standard Interface for which an +implementation is available to the public in source code form. A +"Major Component", in this context, means a major essential component +(kernel, window system, and so on) of the specific operating system +(if any) on which the executable work runs, or a compiler used to +produce the work, or an object code interpreter used to run it. + + The "Corresponding Source" for a work in object code form means all +the source code needed to generate, install, and (for an executable +work) run the object code and to modify the work, including scripts to +control those activities. However, it does not include the work's +System Libraries, or general-purpose tools or generally available free +programs which are used unmodified in performing those activities but +which are not part of the work. For example, Corresponding Source +includes interface definition files associated with source files for +the work, and the source code for shared libraries and dynamically +linked subprograms that the work is specifically designed to require, +such as by intimate data communication or control flow between those +subprograms and other parts of the work. + + The Corresponding Source need not include anything that users +can regenerate automatically from other parts of the Corresponding +Source. + + The Corresponding Source for a work in source code form is that +same work. + + 2. Basic Permissions. + + All rights granted under this License are granted for the term of +copyright on the Program, and are irrevocable provided the stated +conditions are met. This License explicitly affirms your unlimited +permission to run the unmodified Program. The output from running a +covered work is covered by this License only if the output, given its +content, constitutes a covered work. This License acknowledges your +rights of fair use or other equivalent, as provided by copyright law. + + You may make, run and propagate covered works that you do not +convey, without conditions so long as your license otherwise remains +in force. You may convey covered works to others for the sole purpose +of having them make modifications exclusively for you, or provide you +with facilities for running those works, provided that you comply with +the terms of this License in conveying all material for which you do +not control copyright. Those thus making or running the covered works +for you must do so exclusively on your behalf, under your direction +and control, on terms that prohibit them from making any copies of +your copyrighted material outside their relationship with you. + + Conveying under any other circumstances is permitted solely under +the conditions stated below. Sublicensing is not allowed; section 10 +makes it unnecessary. + + 3. Protecting Users' Legal Rights From Anti-Circumvention Law. + + No covered work shall be deemed part of an effective technological +measure under any applicable law fulfilling obligations under article +11 of the WIPO copyright treaty adopted on 20 December 1996, or +similar laws prohibiting or restricting circumvention of such +measures. + + When you convey a covered work, you waive any legal power to forbid +circumvention of technological measures to the extent such circumvention +is effected by exercising rights under this License with respect to +the covered work, and you disclaim any intention to limit operation or +modification of the work as a means of enforcing, against the work's +users, your or third parties' legal rights to forbid circumvention of +technological measures. + + 4. Conveying Verbatim Copies. + + You may convey verbatim copies of the Program's source code as you +receive it, in any medium, provided that you conspicuously and +appropriately publish on each copy an appropriate copyright notice; +keep intact all notices stating that this License and any +non-permissive terms added in accord with section 7 apply to the code; +keep intact all notices of the absence of any warranty; and give all +recipients a copy of this License along with the Program. + + You may charge any price or no price for each copy that you convey, +and you may offer support or warranty protection for a fee. + + 5. Conveying Modified Source Versions. + + You may convey a work based on the Program, or the modifications to +produce it from the Program, in the form of source code under the +terms of section 4, provided that you also meet all of these conditions: + + a) The work must carry prominent notices stating that you modified + it, and giving a relevant date. + + b) The work must carry prominent notices stating that it is + released under this License and any conditions added under section + 7. This requirement modifies the requirement in section 4 to + "keep intact all notices". + + c) You must license the entire work, as a whole, under this + License to anyone who comes into possession of a copy. This + License will therefore apply, along with any applicable section 7 + additional terms, to the whole of the work, and all its parts, + regardless of how they are packaged. This License gives no + permission to license the work in any other way, but it does not + invalidate such permission if you have separately received it. + + d) If the work has interactive user interfaces, each must display + Appropriate Legal Notices; however, if the Program has interactive + interfaces that do not display Appropriate Legal Notices, your + work need not make them do so. + + A compilation of a covered work with other separate and independent +works, which are not by their nature extensions of the covered work, +and which are not combined with it such as to form a larger program, +in or on a volume of a storage or distribution medium, is called an +"aggregate" if the compilation and its resulting copyright are not +used to limit the access or legal rights of the compilation's users +beyond what the individual works permit. Inclusion of a covered work +in an aggregate does not cause this License to apply to the other +parts of the aggregate. + + 6. Conveying Non-Source Forms. + + You may convey a covered work in object code form under the terms +of sections 4 and 5, provided that you also convey the +machine-readable Corresponding Source under the terms of this License, +in one of these ways: + + a) Convey the object code in, or embodied in, a physical product + (including a physical distribution medium), accompanied by the + Corresponding Source fixed on a durable physical medium + customarily used for software interchange. + + b) Convey the object code in, or embodied in, a physical product + (including a physical distribution medium), accompanied by a + written offer, valid for at least three years and valid for as + long as you offer spare parts or customer support for that product + model, to give anyone who possesses the object code either (1) a + copy of the Corresponding Source for all the software in the + product that is covered by this License, on a durable physical + medium customarily used for software interchange, for a price no + more than your reasonable cost of physically performing this + conveying of source, or (2) access to copy the + Corresponding Source from a network server at no charge. + + c) Convey individual copies of the object code with a copy of the + written offer to provide the Corresponding Source. This + alternative is allowed only occasionally and noncommercially, and + only if you received the object code with such an offer, in accord + with subsection 6b. + + d) Convey the object code by offering access from a designated + place (gratis or for a charge), and offer equivalent access to the + Corresponding Source in the same way through the same place at no + further charge. You need not require recipients to copy the + Corresponding Source along with the object code. If the place to + copy the object code is a network server, the Corresponding Source + may be on a different server (operated by you or a third party) + that supports equivalent copying facilities, provided you maintain + clear directions next to the object code saying where to find the + Corresponding Source. Regardless of what server hosts the + Corresponding Source, you remain obligated to ensure that it is + available for as long as needed to satisfy these requirements. + + e) Convey the object code using peer-to-peer transmission, provided + you inform other peers where the object code and Corresponding + Source of the work are being offered to the general public at no + charge under subsection 6d. + + A separable portion of the object code, whose source code is excluded +from the Corresponding Source as a System Library, need not be +included in conveying the object code work. + + A "User Product" is either (1) a "consumer product", which means any +tangible personal property which is normally used for personal, family, +or household purposes, or (2) anything designed or sold for incorporation +into a dwelling. In determining whether a product is a consumer product, +doubtful cases shall be resolved in favor of coverage. For a particular +product received by a particular user, "normally used" refers to a +typical or common use of that class of product, regardless of the status +of the particular user or of the way in which the particular user +actually uses, or expects or is expected to use, the product. A product +is a consumer product regardless of whether the product has substantial +commercial, industrial or non-consumer uses, unless such uses represent +the only significant mode of use of the product. + + "Installation Information" for a User Product means any methods, +procedures, authorization keys, or other information required to install +and execute modified versions of a covered work in that User Product from +a modified version of its Corresponding Source. The information must +suffice to ensure that the continued functioning of the modified object +code is in no case prevented or interfered with solely because +modification has been made. + + If you convey an object code work under this section in, or with, or +specifically for use in, a User Product, and the conveying occurs as +part of a transaction in which the right of possession and use of the +User Product is transferred to the recipient in perpetuity or for a +fixed term (regardless of how the transaction is characterized), the +Corresponding Source conveyed under this section must be accompanied +by the Installation Information. But this requirement does not apply +if neither you nor any third party retains the ability to install +modified object code on the User Product (for example, the work has +been installed in ROM). + + The requirement to provide Installation Information does not include a +requirement to continue to provide support service, warranty, or updates +for a work that has been modified or installed by the recipient, or for +the User Product in which it has been modified or installed. Access to a +network may be denied when the modification itself materially and +adversely affects the operation of the network or violates the rules and +protocols for communication across the network. + + Corresponding Source conveyed, and Installation Information provided, +in accord with this section must be in a format that is publicly +documented (and with an implementation available to the public in +source code form), and must require no special password or key for +unpacking, reading or copying. + + 7. Additional Terms. + + "Additional permissions" are terms that supplement the terms of this +License by making exceptions from one or more of its conditions. +Additional permissions that are applicable to the entire Program shall +be treated as though they were included in this License, to the extent +that they are valid under applicable law. If additional permissions +apply only to part of the Program, that part may be used separately +under those permissions, but the entire Program remains governed by +this License without regard to the additional permissions. + + When you convey a copy of a covered work, you may at your option +remove any additional permissions from that copy, or from any part of +it. (Additional permissions may be written to require their own +removal in certain cases when you modify the work.) You may place +additional permissions on material, added by you to a covered work, +for which you have or can give appropriate copyright permission. + + Notwithstanding any other provision of this License, for material you +add to a covered work, you may (if authorized by the copyright holders of +that material) supplement the terms of this License with terms: + + a) Disclaiming warranty or limiting liability differently from the + terms of sections 15 and 16 of this License; or + + b) Requiring preservation of specified reasonable legal notices or + author attributions in that material or in the Appropriate Legal + Notices displayed by works containing it; or + + c) Prohibiting misrepresentation of the origin of that material, or + requiring that modified versions of such material be marked in + reasonable ways as different from the original version; or + + d) Limiting the use for publicity purposes of names of licensors or + authors of the material; or + + e) Declining to grant rights under trademark law for use of some + trade names, trademarks, or service marks; or + + f) Requiring indemnification of licensors and authors of that + material by anyone who conveys the material (or modified versions of + it) with contractual assumptions of liability to the recipient, for + any liability that these contractual assumptions directly impose on + those licensors and authors. + + All other non-permissive additional terms are considered "further +restrictions" within the meaning of section 10. If the Program as you +received it, or any part of it, contains a notice stating that it is +governed by this License along with a term that is a further +restriction, you may remove that term. If a license document contains +a further restriction but permits relicensing or conveying under this +License, you may add to a covered work material governed by the terms +of that license document, provided that the further restriction does +not survive such relicensing or conveying. + + If you add terms to a covered work in accord with this section, you +must place, in the relevant source files, a statement of the +additional terms that apply to those files, or a notice indicating +where to find the applicable terms. + + Additional terms, permissive or non-permissive, may be stated in the +form of a separately written license, or stated as exceptions; +the above requirements apply either way. + + 8. Termination. + + You may not propagate or modify a covered work except as expressly +provided under this License. Any attempt otherwise to propagate or +modify it is void, and will automatically terminate your rights under +this License (including any patent licenses granted under the third +paragraph of section 11). + + However, if you cease all violation of this License, then your +license from a particular copyright holder is reinstated (a) +provisionally, unless and until the copyright holder explicitly and +finally terminates your license, and (b) permanently, if the copyright +holder fails to notify you of the violation by some reasonable means +prior to 60 days after the cessation. + + Moreover, your license from a particular copyright holder is +reinstated permanently if the copyright holder notifies you of the +violation by some reasonable means, this is the first time you have +received notice of violation of this License (for any work) from that +copyright holder, and you cure the violation prior to 30 days after +your receipt of the notice. + + Termination of your rights under this section does not terminate the +licenses of parties who have received copies or rights from you under +this License. If your rights have been terminated and not permanently +reinstated, you do not qualify to receive new licenses for the same +material under section 10. + + 9. Acceptance Not Required for Having Copies. + + You are not required to accept this License in order to receive or +run a copy of the Program. Ancillary propagation of a covered work +occurring solely as a consequence of using peer-to-peer transmission +to receive a copy likewise does not require acceptance. However, +nothing other than this License grants you permission to propagate or +modify any covered work. These actions infringe copyright if you do +not accept this License. Therefore, by modifying or propagating a +covered work, you indicate your acceptance of this License to do so. + + 10. Automatic Licensing of Downstream Recipients. + + Each time you convey a covered work, the recipient automatically +receives a license from the original licensors, to run, modify and +propagate that work, subject to this License. You are not responsible +for enforcing compliance by third parties with this License. + + An "entity transaction" is a transaction transferring control of an +organization, or substantially all assets of one, or subdividing an +organization, or merging organizations. If propagation of a covered +work results from an entity transaction, each party to that +transaction who receives a copy of the work also receives whatever +licenses to the work the party's predecessor in interest had or could +give under the previous paragraph, plus a right to possession of the +Corresponding Source of the work from the predecessor in interest, if +the predecessor has it or can get it with reasonable efforts. + + You may not impose any further restrictions on the exercise of the +rights granted or affirmed under this License. For example, you may +not impose a license fee, royalty, or other charge for exercise of +rights granted under this License, and you may not initiate litigation +(including a cross-claim or counterclaim in a lawsuit) alleging that +any patent claim is infringed by making, using, selling, offering for +sale, or importing the Program or any portion of it. + + 11. Patents. + + A "contributor" is a copyright holder who authorizes use under this +License of the Program or a work on which the Program is based. The +work thus licensed is called the contributor's "contributor version". + + A contributor's "essential patent claims" are all patent claims +owned or controlled by the contributor, whether already acquired or +hereafter acquired, that would be infringed by some manner, permitted +by this License, of making, using, or selling its contributor version, +but do not include claims that would be infringed only as a +consequence of further modification of the contributor version. For +purposes of this definition, "control" includes the right to grant +patent sublicenses in a manner consistent with the requirements of +this License. + + Each contributor grants you a non-exclusive, worldwide, royalty-free +patent license under the contributor's essential patent claims, to +make, use, sell, offer for sale, import and otherwise run, modify and +propagate the contents of its contributor version. + + In the following three paragraphs, a "patent license" is any express +agreement or commitment, however denominated, not to enforce a patent +(such as an express permission to practice a patent or covenant not to +sue for patent infringement). To "grant" such a patent license to a +party means to make such an agreement or commitment not to enforce a +patent against the party. + + If you convey a covered work, knowingly relying on a patent license, +and the Corresponding Source of the work is not available for anyone +to copy, free of charge and under the terms of this License, through a +publicly available network server or other readily accessible means, +then you must either (1) cause the Corresponding Source to be so +available, or (2) arrange to deprive yourself of the benefit of the +patent license for this particular work, or (3) arrange, in a manner +consistent with the requirements of this License, to extend the patent +license to downstream recipients. "Knowingly relying" means you have +actual knowledge that, but for the patent license, your conveying the +covered work in a country, or your recipient's use of the covered work +in a country, would infringe one or more identifiable patents in that +country that you have reason to believe are valid. + + If, pursuant to or in connection with a single transaction or +arrangement, you convey, or propagate by procuring conveyance of, a +covered work, and grant a patent license to some of the parties +receiving the covered work authorizing them to use, propagate, modify +or convey a specific copy of the covered work, then the patent license +you grant is automatically extended to all recipients of the covered +work and works based on it. + + A patent license is "discriminatory" if it does not include within +the scope of its coverage, prohibits the exercise of, or is +conditioned on the non-exercise of one or more of the rights that are +specifically granted under this License. You may not convey a covered +work if you are a party to an arrangement with a third party that is +in the business of distributing software, under which you make payment +to the third party based on the extent of your activity of conveying +the work, and under which the third party grants, to any of the +parties who would receive the covered work from you, a discriminatory +patent license (a) in connection with copies of the covered work +conveyed by you (or copies made from those copies), or (b) primarily +for and in connection with specific products or compilations that +contain the covered work, unless you entered into that arrangement, +or that patent license was granted, prior to 28 March 2007. + + Nothing in this License shall be construed as excluding or limiting +any implied license or other defenses to infringement that may +otherwise be available to you under applicable patent law. + + 12. No Surrender of Others' Freedom. + + If conditions are imposed on you (whether by court order, agreement or +otherwise) that contradict the conditions of this License, they do not +excuse you from the conditions of this License. If you cannot convey a +covered work so as to satisfy simultaneously your obligations under this +License and any other pertinent obligations, then as a consequence you may +not convey it at all. For example, if you agree to terms that obligate you +to collect a royalty for further conveying from those to whom you convey +the Program, the only way you could satisfy both those terms and this +License would be to refrain entirely from conveying the Program. + + 13. Use with the GNU Affero General Public License. + + Notwithstanding any other provision of this License, you have +permission to link or combine any covered work with a work licensed +under version 3 of the GNU Affero General Public License into a single +combined work, and to convey the resulting work. The terms of this +License will continue to apply to the part which is the covered work, +but the special requirements of the GNU Affero General Public License, +section 13, concerning interaction through a network will apply to the +combination as such. + + 14. Revised Versions of this License. + + The Free Software Foundation may publish revised and/or new versions of +the GNU General Public License from time to time. Such new versions will +be similar in spirit to the present version, but may differ in detail to +address new problems or concerns. + + Each version is given a distinguishing version number. If the +Program specifies that a certain numbered version of the GNU General +Public License "or any later version" applies to it, you have the +option of following the terms and conditions either of that numbered +version or of any later version published by the Free Software +Foundation. If the Program does not specify a version number of the +GNU General Public License, you may choose any version ever published +by the Free Software Foundation. + + If the Program specifies that a proxy can decide which future +versions of the GNU General Public License can be used, that proxy's +public statement of acceptance of a version permanently authorizes you +to choose that version for the Program. + + Later license versions may give you additional or different +permissions. However, no additional obligations are imposed on any +author or copyright holder as a result of your choosing to follow a +later version. + + 15. Disclaimer of Warranty. + + THERE IS NO WARRANTY FOR THE PROGRAM, TO THE EXTENT PERMITTED BY +APPLICABLE LAW. EXCEPT WHEN OTHERWISE STATED IN WRITING THE COPYRIGHT +HOLDERS AND/OR OTHER PARTIES PROVIDE THE PROGRAM "AS IS" WITHOUT WARRANTY +OF ANY KIND, EITHER EXPRESSED OR IMPLIED, INCLUDING, BUT NOT LIMITED TO, +THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR +PURPOSE. THE ENTIRE RISK AS TO THE QUALITY AND PERFORMANCE OF THE PROGRAM +IS WITH YOU. SHOULD THE PROGRAM PROVE DEFECTIVE, YOU ASSUME THE COST OF +ALL NECESSARY SERVICING, REPAIR OR CORRECTION. + + 16. Limitation of Liability. + + IN NO EVENT UNLESS REQUIRED BY APPLICABLE LAW OR AGREED TO IN WRITING +WILL ANY COPYRIGHT HOLDER, OR ANY OTHER PARTY WHO MODIFIES AND/OR CONVEYS +THE PROGRAM AS PERMITTED ABOVE, BE LIABLE TO YOU FOR DAMAGES, INCLUDING ANY +GENERAL, SPECIAL, INCIDENTAL OR CONSEQUENTIAL DAMAGES ARISING OUT OF THE +USE OR INABILITY TO USE THE PROGRAM (INCLUDING BUT NOT LIMITED TO LOSS OF +DATA OR DATA BEING RENDERED INACCURATE OR LOSSES SUSTAINED BY YOU OR THIRD +PARTIES OR A FAILURE OF THE PROGRAM TO OPERATE WITH ANY OTHER PROGRAMS), +EVEN IF SUCH HOLDER OR OTHER PARTY HAS BEEN ADVISED OF THE POSSIBILITY OF +SUCH DAMAGES. + + 17. Interpretation of Sections 15 and 16. + + If the disclaimer of warranty and limitation of liability provided +above cannot be given local legal effect according to their terms, +reviewing courts shall apply local law that most closely approximates +an absolute waiver of all civil liability in connection with the +Program, unless a warranty or assumption of liability accompanies a +copy of the Program in return for a fee. + + END OF TERMS AND CONDITIONS + + How to Apply These Terms to Your New Programs + + If you develop a new program, and you want it to be of the greatest +possible use to the public, the best way to achieve this is to make it +free software which everyone can redistribute and change under these terms. + + To do so, attach the following notices to the program. It is safest +to attach them to the start of each source file to most effectively +state the exclusion of warranty; and each file should have at least +the "copyright" line and a pointer to where the full notice is found. + + + Copyright (C) + + This program is free software: you can redistribute it and/or modify + it under the terms of the GNU General Public License as published by + the Free Software Foundation, either version 3 of the License, or + (at your option) any later version. + + This program is distributed in the hope that it will be useful, + but WITHOUT ANY WARRANTY; without even the implied warranty of + MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + GNU General Public License for more details. + + You should have received a copy of the GNU General Public License + along with this program. If not, see . + +Also add information on how to contact you by electronic and paper mail. + + If the program does terminal interaction, make it output a short +notice like this when it starts in an interactive mode: + + Copyright (C) + This program comes with ABSOLUTELY NO WARRANTY; for details type `show w'. + This is free software, and you are welcome to redistribute it + under certain conditions; type `show c' for details. + +The hypothetical commands `show w' and `show c' should show the appropriate +parts of the General Public License. Of course, your program's commands +might be different; for a GUI interface, you would use an "about box". + + You should also get your employer (if you work as a programmer) or school, +if any, to sign a "copyright disclaimer" for the program, if necessary. +For more information on this, and how to apply and follow the GNU GPL, see +. + + The GNU General Public License does not permit incorporating your program +into proprietary programs. If your program is a subroutine library, you +may consider it more useful to permit linking proprietary applications with +the library. If this is what you want to do, use the GNU Lesser General +Public License instead of this License. But first, please read +. diff --git a/README.md b/README.md index f4b5827a1ebdc8bea70c739bf37876eebaea8405..490d9b066acdf021d37c165821c899e1c204b75e 100644 --- a/README.md +++ b/README.md @@ -1,10 +1,294 @@ ---- -title: Penguinmod Editor 2 -emoji: 👀 -colorFrom: blue -colorTo: indigo -sdk: docker -pinned: false ---- - -Check out the configuration reference at https://huggingface.co/docs/hub/spaces-config-reference +scratch-gui modified for use in [TurboWarp](https://turbowarp.org/) then modified for use in [PenguinMod](https://studio.penguinmod.com) 😀 +[![Open in Gitpod](https://gitpod.io/button/open-in-gitpod.svg)](https://gitpod.io/#https://github.com/PenguinMod/penguinmod.github.io/) +## Setup + +See https://docs.turbowarp.org/development/getting-started to setup the complete TurboWarp environment. + +If you just want to play with the GUI then it's the same process as upstream scratch-gui. + +## License + +TurboWarp's modifications to Scratch are licensed under the GNU General Public License v3.0. See LICENSE or https://www.gnu.org/licenses/ for details. + +The following is the original license for scratch-gui, which we are required to retain. This is NOT the license of this project. + +``` +Copyright (c) 2016, Massachusetts Institute of Technology +All rights reserved. + +Redistribution and use in source and binary forms, with or without modification, are permitted provided that the following conditions are met: + +1. Redistributions of source code must retain the above copyright notice, this list of conditions and the following disclaimer. + +2. Redistributions in binary form must reproduce the above copyright notice, this list of conditions and the following disclaimer in the documentation and/or other materials provided with the distribution. + +3. Neither the name of the copyright holder nor the names of its contributors may be used to endorse or promote products derived from this software without specific prior written permission. + +THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. +``` + +src/lib/default-project/dango.svg is based on [Twemoji](https://twemoji.twitter.com/) and is licensed under CC BY 4.0 https://creativecommons.org/licenses/by/4.0/ + + diff --git a/TRADEMARK b/TRADEMARK new file mode 100644 index 0000000000000000000000000000000000000000..17b5d4c919c9336be6f546ff5d958e38685380af --- /dev/null +++ b/TRADEMARK @@ -0,0 +1 @@ +The Scratch trademarks, including the Scratch name, logo, the Scratch Cat, Gobo, Pico, Nano, Tera and Giga graphics (the "Marks"), are property of the Massachusetts Institute of Technology (MIT). Marks may not be used to endorse or promote products derived from this software without specific prior written permission. diff --git a/build.js b/build.js new file mode 100644 index 0000000000000000000000000000000000000000..575fd70d75940bc99736f946e867574188603e94 --- /dev/null +++ b/build.js @@ -0,0 +1,3 @@ +var ghpages = require('gh-pages'); + +ghpages.publish('src', function(err) {}); diff --git a/docs/project_state_diagram.svg b/docs/project_state_diagram.svg new file mode 100644 index 0000000000000000000000000000000000000000..e24382e5a0b4398bc1c17d9d719a05f50c09ffb5 Binary files /dev/null and b/docs/project_state_diagram.svg differ diff --git a/docs/project_state_example.png b/docs/project_state_example.png new file mode 100644 index 0000000000000000000000000000000000000000..4cda1a5cc360d94e4f1047e7253c0f4d6e64096f Binary files /dev/null and b/docs/project_state_example.png differ diff --git a/favicon.ico b/favicon.ico new file mode 100644 index 0000000000000000000000000000000000000000..cb9686934a80f9f9babd2a149e5105a46850bf92 Binary files /dev/null and b/favicon.ico differ diff --git a/favicon.png b/favicon.png new file mode 100644 index 0000000000000000000000000000000000000000..d361c2365daf97043aa0952b4ef3068a2d2a1742 Binary files /dev/null and b/favicon.png differ diff --git a/package-lock.json b/package-lock.json new file mode 100644 index 0000000000000000000000000000000000000000..f3e882473d0f9de6ced0e3f0b98b52e8a3f8f4ec --- /dev/null +++ b/package-lock.json @@ -0,0 +1,39029 @@ +{ + "name": "scratch-gui", + "version": "0.1.0", + "lockfileVersion": 2, + "requires": true, + "packages": { + "": { + "name": "scratch-gui", + "version": "0.1.0", + "license": "GPL-3.0", + "dependencies": { + "@turbowarp/scratch-l10n": "^3.1000.20230326022803", + "arraybuffer-loader": "^1.0.8", + "autoprefixer": "^9.8.8", + "base64-loader": "1.0.0", + "bowser": "1.9.4", + "classnames": "2.2.6", + "computed-style-to-inline-style": "3.0.0", + "copy-webpack-plugin": "6.4.1", + "core-js": "2.5.7", + "css-loader": "^1.0.1", + "es6-object-assign": "1.1.0", + "file-loader": "2.0.0", + "get-float-time-domain-data": "0.1.0", + "get-user-media-promise": "1.1.4", + "immutable": "3.8.2", + "intl": "1.2.5", + "intl-messageformat": "^2.2.0", + "js-base64": "2.4.9", + "keymirror": "0.1.1", + "localforage": "^1.10.0", + "lodash.bindall": "4.4.0", + "lodash.debounce": "4.0.8", + "lodash.omit": "4.5.0", + "lodash.throttle": "4.0.1", + "minilog": "3.1.0", + "omggif": "1.0.9", + "papaparse": "5.3.0", + "PenguinMod-MarkDown": "github:PenguinMod/PenguinMod-MarkDown#master", + "postcss-import": "^12.0.1", + "postcss-loader": "^3.0.0", + "postcss-simple-vars": "^5.0.2", + "prop-types": "^15.8.1", + "protobufjs": "^7.3.2", + "query-string": "^5.1.1", + "raw-loader": "^0.5.1", + "react": "^16.14.0", + "react-contextmenu": "2.9.4", + "react-dom": "^16.14.0", + "react-draggable": "3.0.5", + "react-ga": "2.5.3", + "react-intl": "2.9.0", + "react-intl-redux": "0.7.0", + "react-modal": "3.9.1", + "react-popover": "0.5.10", + "react-redux": "5.0.7", + "react-responsive": "^4.1.0", + "react-string-replace": "^0.4.4", + "react-style-proptype": "3.2.2", + "react-tabs": "2.3.0", + "react-tooltip": "3.8.0", + "react-virtualized": "9.20.1", + "redux": "3.7.2", + "redux-throttle": "0.1.1", + "scratch-audio": "github:PenguinMod/PenguinMod-Audio#develop", + "scratch-blocks": "github:PenguinMod/PenguinMod-Blocks#develop-builds", + "scratch-paint": "github:PenguinMod/PenguinMod-Paint#develop", + "scratch-render": "github:PenguinMod/PenguinMod-Render#develop", + "scratch-render-fonts": "github:PenguinMod/penguinmod-render-fonts#master", + "scratch-storage": "github:PenguinMod/PenguinMod-Storage#develop", + "scratch-svg-renderer": "github:TurboWarp/scratch-svg-renderer#develop", + "scratch-vm": "github:PenguinMod/PenguinMod-Vm#develop", + "startaudiocontext": "1.2.1", + "style-loader": "^0.23.1", + "text-encoding": "0.7.0", + "theia": "github:FreshPenguin112/theia-pnpm#master", + "to-style": "1.3.3", + "wav-encoder": "1.3.0", + "xhr": "2.5.0" + }, + "devDependencies": { + "@babel/cli": "7.14.8", + "@babel/core": "7.14.8", + "@babel/plugin-proposal-object-rest-spread": "7.14.7", + "@babel/plugin-syntax-dynamic-import": "7.2.0", + "@babel/plugin-transform-async-to-generator": "7.14.5", + "@babel/preset-env": "7.14.8", + "@babel/preset-react": "7.14.5", + "babel-core": "7.0.0-bridge.0", + "babel-eslint": "10.0.3", + "babel-loader": "8.2.2", + "chromedriver": "105.0.0", + "enzyme": "3.10.0", + "enzyme-adapter-react-16": "1.3.0", + "eslint": "5.16.0", + "eslint-config-scratch": "6.0.0", + "eslint-import-resolver-webpack": "0.11.1", + "eslint-plugin-import": "2.23.4", + "eslint-plugin-jest": "22.17.0", + "eslint-plugin-react": "7.24.0", + "gh-pages": "3.2.3", + "html-webpack-plugin": "^4.5.2", + "jest": "21.2.1", + "jest-junit": "7.0.0", + "lodash.defaultsdeep": "4.6.1", + "mkdirp": "1.0.3", + "raf": "3.4.1", + "react-test-renderer": "16.2.0", + "redux-mock-store": "1.5.3", + "rimraf": "2.7.1", + "selenium-webdriver": "3.6.0", + "uglifyjs-webpack-plugin": "1.3.0", + "url-loader": "^4.1.1", + "web-audio-test-api": "0.5.2", + "webpack": "4.46.0", + "webpack-cli": "3.3.12", + "webpack-dev-server": "3.11.2", + "webpack-sources": "3.2.3" + }, + "peerDependencies": { + "react": "^16.0.0", + "react-dom": "^16.0.0" + } + }, + "node_modules/@babel/cli": { + "version": "7.14.8", + "resolved": "https://registry.npmjs.org/@babel/cli/-/cli-7.14.8.tgz", + "integrity": "sha512-lcy6Lymft9Rpfqmrqdd4oTDdUx9ZwaAhAfywVrHG4771Pa6PPT0danJ1kDHBXYqh4HHSmIdA+nlmfxfxSDPtBg==", + "dependencies": { + "commander": "^4.0.1", + "convert-source-map": "^1.1.0", + "fs-readdir-recursive": "^1.1.0", + "glob": "^7.0.0", + "make-dir": "^2.1.0", + "slash": "^2.0.0", + "source-map": "^0.5.0" + }, + "bin": { + "babel": "bin/babel.js", + "babel-external-helpers": "bin/babel-external-helpers.js" + }, + "engines": { + "node": ">=6.9.0" + }, + "optionalDependencies": { + "@nicolo-ribaudo/chokidar-2": "2.1.8-no-fsevents.2", + "chokidar": "^3.4.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" + } + }, + "node_modules/@babel/code-frame": { + "version": "7.26.2", + "resolved": "https://registry.npmjs.org/@babel/code-frame/-/code-frame-7.26.2.tgz", + "integrity": "sha512-RJlIHRueQgwWitWgF8OdFYGZX328Ax5BCemNGlqHfplnRT9ESi8JkFlvaVYbS+UubVY6dpv87Fs2u5M29iNFVQ==", + "dependencies": { + "@babel/helper-validator-identifier": "^7.25.9", + "js-tokens": "^4.0.0", + "picocolors": "^1.0.0" + }, + "engines": { + "node": ">=6.9.0" + } + }, + "node_modules/@babel/compat-data": { + "version": "7.26.2", + "resolved": "https://registry.npmjs.org/@babel/compat-data/-/compat-data-7.26.2.tgz", + "integrity": "sha512-Z0WgzSEa+aUcdiJuCIqgujCshpMWgUpgOxXotrYPSA53hA3qopNaqcJpyr0hVb1FeWdnqFA35/fUtXgBK8srQg==", + "engines": { + "node": ">=6.9.0" + } + }, + "node_modules/@babel/core": { + "version": "7.14.8", + "resolved": "https://registry.npmjs.org/@babel/core/-/core-7.14.8.tgz", + "integrity": "sha512-/AtaeEhT6ErpDhInbXmjHcUQXH0L0TEgscfcxk1qbOvLuKCa5aZT0SOOtDKFY96/CLROwbLSKyFor6idgNaU4Q==", + "dependencies": { + "@babel/code-frame": "^7.14.5", + "@babel/generator": "^7.14.8", + "@babel/helper-compilation-targets": "^7.14.5", + "@babel/helper-module-transforms": "^7.14.8", + "@babel/helpers": "^7.14.8", + "@babel/parser": "^7.14.8", + "@babel/template": "^7.14.5", + "@babel/traverse": "^7.14.8", + "@babel/types": "^7.14.8", + "convert-source-map": "^1.7.0", + "debug": "^4.1.0", + "gensync": "^1.0.0-beta.2", + "json5": "^2.1.2", + "semver": "^6.3.0", + "source-map": "^0.5.0" + }, + "engines": { + "node": ">=6.9.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/babel" + } + }, + "node_modules/@babel/generator": { + "version": "7.26.2", + "resolved": "https://registry.npmjs.org/@babel/generator/-/generator-7.26.2.tgz", + "integrity": "sha512-zevQbhbau95nkoxSq3f/DC/SC+EEOUZd3DYqfSkMhY2/wfSeaHV1Ew4vk8e+x8lja31IbyuUa2uQ3JONqKbysw==", + "dependencies": { + "@babel/parser": "^7.26.2", + "@babel/types": "^7.26.0", + "@jridgewell/gen-mapping": "^0.3.5", + "@jridgewell/trace-mapping": "^0.3.25", + "jsesc": "^3.0.2" + }, + "engines": { + "node": ">=6.9.0" + } + }, + "node_modules/@babel/helper-annotate-as-pure": { + "version": "7.25.9", + "resolved": "https://registry.npmjs.org/@babel/helper-annotate-as-pure/-/helper-annotate-as-pure-7.25.9.tgz", + "integrity": "sha512-gv7320KBUFJz1RnylIg5WWYPRXKZ884AGkYpgpWW02TH66Dl+HaC1t1CKd0z3R4b6hdYEcmrNZHUmfCP+1u3/g==", + "dev": true, + "dependencies": { + "@babel/types": "^7.25.9" + }, + "engines": { + "node": ">=6.9.0" + } + }, + "node_modules/@babel/helper-builder-binary-assignment-operator-visitor": { + "version": "7.25.9", + "resolved": "https://registry.npmjs.org/@babel/helper-builder-binary-assignment-operator-visitor/-/helper-builder-binary-assignment-operator-visitor-7.25.9.tgz", + "integrity": "sha512-C47lC7LIDCnz0h4vai/tpNOI95tCd5ZT3iBt/DBH5lXKHZsyNQv18yf1wIIg2ntiQNgmAvA+DgZ82iW8Qdym8g==", + "dev": true, + "dependencies": { + "@babel/traverse": "^7.25.9", + "@babel/types": "^7.25.9" + }, + "engines": { + "node": ">=6.9.0" + } + }, + "node_modules/@babel/helper-compilation-targets": { + "version": "7.25.9", + "resolved": "https://registry.npmjs.org/@babel/helper-compilation-targets/-/helper-compilation-targets-7.25.9.tgz", + "integrity": "sha512-j9Db8Suy6yV/VHa4qzrj9yZfZxhLWQdVnRlXxmKLYlhWUVB1sB2G5sxuWYXk/whHD9iW76PmNzxZ4UCnTQTVEQ==", + "dependencies": { + "@babel/compat-data": "^7.25.9", + "@babel/helper-validator-option": "^7.25.9", + "browserslist": "^4.24.0", + "lru-cache": "^5.1.1", + "semver": "^6.3.1" + }, + "engines": { + "node": ">=6.9.0" + } + }, + "node_modules/@babel/helper-create-class-features-plugin": { + "version": "7.25.9", + "resolved": "https://registry.npmjs.org/@babel/helper-create-class-features-plugin/-/helper-create-class-features-plugin-7.25.9.tgz", + "integrity": "sha512-UTZQMvt0d/rSz6KI+qdu7GQze5TIajwTS++GUozlw8VBJDEOAqSXwm1WvmYEZwqdqSGQshRocPDqrt4HBZB3fQ==", + "dev": true, + "dependencies": { + "@babel/helper-annotate-as-pure": "^7.25.9", + "@babel/helper-member-expression-to-functions": "^7.25.9", + "@babel/helper-optimise-call-expression": "^7.25.9", + "@babel/helper-replace-supers": "^7.25.9", + "@babel/helper-skip-transparent-expression-wrappers": "^7.25.9", + "@babel/traverse": "^7.25.9", + "semver": "^6.3.1" + }, + "engines": { + "node": ">=6.9.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0" + } + }, + "node_modules/@babel/helper-create-regexp-features-plugin": { + "version": "7.25.9", + "resolved": "https://registry.npmjs.org/@babel/helper-create-regexp-features-plugin/-/helper-create-regexp-features-plugin-7.25.9.tgz", + "integrity": "sha512-ORPNZ3h6ZRkOyAa/SaHU+XsLZr0UQzRwuDQ0cczIA17nAzZ+85G5cVkOJIj7QavLZGSe8QXUmNFxSZzjcZF9bw==", + "dev": true, + "dependencies": { + "@babel/helper-annotate-as-pure": "^7.25.9", + "regexpu-core": "^6.1.1", + "semver": "^6.3.1" + }, + "engines": { + "node": ">=6.9.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0" + } + }, + "node_modules/@babel/helper-define-polyfill-provider": { + "version": "0.2.4", + "resolved": "https://registry.npmjs.org/@babel/helper-define-polyfill-provider/-/helper-define-polyfill-provider-0.2.4.tgz", + "integrity": "sha512-OrpPZ97s+aPi6h2n1OXzdhVis1SGSsMU2aMHgLcOKfsp4/v1NWpx3CWT3lBj5eeBq9cDkPkh+YCfdF7O12uNDQ==", + "dev": true, + "dependencies": { + "@babel/helper-compilation-targets": "^7.13.0", + "@babel/helper-module-imports": "^7.12.13", + "@babel/helper-plugin-utils": "^7.13.0", + "@babel/traverse": "^7.13.0", + "debug": "^4.1.1", + "lodash.debounce": "^4.0.8", + "resolve": "^1.14.2", + "semver": "^6.1.2" + }, + "peerDependencies": { + "@babel/core": "^7.4.0-0" + } + }, + "node_modules/@babel/helper-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-member-expression-to-functions": { + "version": "7.25.9", + "resolved": "https://registry.npmjs.org/@babel/helper-member-expression-to-functions/-/helper-member-expression-to-functions-7.25.9.tgz", + "integrity": "sha512-wbfdZ9w5vk0C0oyHqAJbc62+vet5prjj01jjJ8sKn3j9h3MQQlflEdXYvuqRWjHnM12coDEqiC1IRCi0U/EKwQ==", + "dev": true, + "dependencies": { + "@babel/traverse": "^7.25.9", + "@babel/types": "^7.25.9" + }, + "engines": { + "node": ">=6.9.0" + } + }, + "node_modules/@babel/helper-module-imports": { + "version": "7.25.9", + "resolved": "https://registry.npmjs.org/@babel/helper-module-imports/-/helper-module-imports-7.25.9.tgz", + "integrity": "sha512-tnUA4RsrmflIM6W6RFTLFSXITtl0wKjgpnLgXyowocVPrbYrLUXSBXDgTs8BlbmIzIdlBySRQjINYs2BAkiLtw==", + "dependencies": { + "@babel/traverse": "^7.25.9", + "@babel/types": "^7.25.9" + }, + "engines": { + "node": ">=6.9.0" + } + }, + "node_modules/@babel/helper-module-transforms": { + "version": "7.26.0", + "resolved": "https://registry.npmjs.org/@babel/helper-module-transforms/-/helper-module-transforms-7.26.0.tgz", + "integrity": "sha512-xO+xu6B5K2czEnQye6BHA7DolFFmS3LB7stHZFaOLb1pAwO1HWLS8fXA+eh0A2yIvltPVmx3eNNDBJA2SLHXFw==", + "dependencies": { + "@babel/helper-module-imports": "^7.25.9", + "@babel/helper-validator-identifier": "^7.25.9", + "@babel/traverse": "^7.25.9" + }, + "engines": { + "node": ">=6.9.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0" + } + }, + "node_modules/@babel/helper-optimise-call-expression": { + "version": "7.25.9", + "resolved": "https://registry.npmjs.org/@babel/helper-optimise-call-expression/-/helper-optimise-call-expression-7.25.9.tgz", + "integrity": "sha512-FIpuNaz5ow8VyrYcnXQTDRGvV6tTjkNtCK/RYNDXGSLlUD6cBuQTSw43CShGxjvfBTfcUA/r6UhUCbtYqkhcuQ==", + "dev": true, + "dependencies": { + "@babel/types": "^7.25.9" + }, + "engines": { + "node": ">=6.9.0" + } + }, + "node_modules/@babel/helper-plugin-utils": { + "version": "7.25.9", + "resolved": "https://registry.npmjs.org/@babel/helper-plugin-utils/-/helper-plugin-utils-7.25.9.tgz", + "integrity": "sha512-kSMlyUVdWe25rEsRGviIgOWnoT/nfABVWlqt9N19/dIPWViAOW2s9wznP5tURbs/IDuNk4gPy3YdYRgH3uxhBw==", + "engines": { + "node": ">=6.9.0" + } + }, + "node_modules/@babel/helper-remap-async-to-generator": { + "version": "7.25.9", + "resolved": "https://registry.npmjs.org/@babel/helper-remap-async-to-generator/-/helper-remap-async-to-generator-7.25.9.tgz", + "integrity": "sha512-IZtukuUeBbhgOcaW2s06OXTzVNJR0ybm4W5xC1opWFFJMZbwRj5LCk+ByYH7WdZPZTt8KnFwA8pvjN2yqcPlgw==", + "dev": true, + "dependencies": { + "@babel/helper-annotate-as-pure": "^7.25.9", + "@babel/helper-wrap-function": "^7.25.9", + "@babel/traverse": "^7.25.9" + }, + "engines": { + "node": ">=6.9.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0" + } + }, + "node_modules/@babel/helper-replace-supers": { + "version": "7.25.9", + "resolved": "https://registry.npmjs.org/@babel/helper-replace-supers/-/helper-replace-supers-7.25.9.tgz", + "integrity": "sha512-IiDqTOTBQy0sWyeXyGSC5TBJpGFXBkRynjBeXsvbhQFKj2viwJC76Epz35YLU1fpe/Am6Vppb7W7zM4fPQzLsQ==", + "dev": true, + "dependencies": { + "@babel/helper-member-expression-to-functions": "^7.25.9", + "@babel/helper-optimise-call-expression": "^7.25.9", + "@babel/traverse": "^7.25.9" + }, + "engines": { + "node": ">=6.9.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0" + } + }, + "node_modules/@babel/helper-simple-access": { + "version": "7.25.9", + "resolved": "https://registry.npmjs.org/@babel/helper-simple-access/-/helper-simple-access-7.25.9.tgz", + "integrity": "sha512-c6WHXuiaRsJTyHYLJV75t9IqsmTbItYfdj99PnzYGQZkYKvan5/2jKJ7gu31J3/BJ/A18grImSPModuyG/Eo0Q==", + "dev": true, + "dependencies": { + "@babel/traverse": "^7.25.9", + "@babel/types": "^7.25.9" + }, + "engines": { + "node": ">=6.9.0" + } + }, + "node_modules/@babel/helper-skip-transparent-expression-wrappers": { + "version": "7.25.9", + "resolved": "https://registry.npmjs.org/@babel/helper-skip-transparent-expression-wrappers/-/helper-skip-transparent-expression-wrappers-7.25.9.tgz", + "integrity": "sha512-K4Du3BFa3gvyhzgPcntrkDgZzQaq6uozzcpGbOO1OEJaI+EJdqWIMTLgFgQf6lrfiDFo5FU+BxKepI9RmZqahA==", + "dev": true, + "dependencies": { + "@babel/traverse": "^7.25.9", + "@babel/types": "^7.25.9" + }, + "engines": { + "node": ">=6.9.0" + } + }, + "node_modules/@babel/helper-string-parser": { + "version": "7.25.9", + "resolved": "https://registry.npmjs.org/@babel/helper-string-parser/-/helper-string-parser-7.25.9.tgz", + "integrity": "sha512-4A/SCr/2KLd5jrtOMFzaKjVtAei3+2r/NChoBNoZ3EyP/+GlhoaEGoWOZUmFmoITP7zOJyHIMm+DYRd8o3PvHA==", + "engines": { + "node": ">=6.9.0" + } + }, + "node_modules/@babel/helper-validator-identifier": { + "version": "7.25.9", + "resolved": "https://registry.npmjs.org/@babel/helper-validator-identifier/-/helper-validator-identifier-7.25.9.tgz", + "integrity": "sha512-Ed61U6XJc3CVRfkERJWDz4dJwKe7iLmmJsbOGu9wSloNSFttHV0I8g6UAgb7qnK5ly5bGLPd4oXZlxCdANBOWQ==", + "engines": { + "node": ">=6.9.0" + } + }, + "node_modules/@babel/helper-validator-option": { + "version": "7.25.9", + "resolved": "https://registry.npmjs.org/@babel/helper-validator-option/-/helper-validator-option-7.25.9.tgz", + "integrity": "sha512-e/zv1co8pp55dNdEcCynfj9X7nyUKUXoUEwfXqaZt0omVOmDe9oOTdKStH4GmAw6zxMFs50ZayuMfHDKlO7Tfw==", + "engines": { + "node": ">=6.9.0" + } + }, + "node_modules/@babel/helper-wrap-function": { + "version": "7.25.9", + "resolved": "https://registry.npmjs.org/@babel/helper-wrap-function/-/helper-wrap-function-7.25.9.tgz", + "integrity": "sha512-ETzz9UTjQSTmw39GboatdymDq4XIQbR8ySgVrylRhPOFpsd+JrKHIuF0de7GCWmem+T4uC5z7EZguod7Wj4A4g==", + "dev": true, + "dependencies": { + "@babel/template": "^7.25.9", + "@babel/traverse": "^7.25.9", + "@babel/types": "^7.25.9" + }, + "engines": { + "node": ">=6.9.0" + } + }, + "node_modules/@babel/helpers": { + "version": "7.26.0", + "resolved": "https://registry.npmjs.org/@babel/helpers/-/helpers-7.26.0.tgz", + "integrity": "sha512-tbhNuIxNcVb21pInl3ZSjksLCvgdZy9KwJ8brv993QtIVKJBBkYXz4q4ZbAv31GdnC+R90np23L5FbEBlthAEw==", + "dependencies": { + "@babel/template": "^7.25.9", + "@babel/types": "^7.26.0" + }, + "engines": { + "node": ">=6.9.0" + } + }, + "node_modules/@babel/parser": { + "version": "7.26.2", + "resolved": "https://registry.npmjs.org/@babel/parser/-/parser-7.26.2.tgz", + "integrity": "sha512-DWMCZH9WA4Maitz2q21SRKHo9QXZxkDsbNZoVD62gusNtNBBqDg9i7uOhASfTfIGNzW+O+r7+jAlM8dwphcJKQ==", + "dependencies": { + "@babel/types": "^7.26.0" + }, + "bin": { + "parser": "bin/babel-parser.js" + }, + "engines": { + "node": ">=6.0.0" + } + }, + "node_modules/@babel/plugin-bugfix-v8-spread-parameters-in-optional-chaining": { + "version": "7.25.9", + "resolved": "https://registry.npmjs.org/@babel/plugin-bugfix-v8-spread-parameters-in-optional-chaining/-/plugin-bugfix-v8-spread-parameters-in-optional-chaining-7.25.9.tgz", + "integrity": "sha512-6xWgLZTJXwilVjlnV7ospI3xi+sl8lN8rXXbBD6vYn3UYDlGsag8wrZkKcSI8G6KgqKP7vNFaDgeDnfAABq61g==", + "dev": true, + "dependencies": { + "@babel/helper-plugin-utils": "^7.25.9", + "@babel/helper-skip-transparent-expression-wrappers": "^7.25.9", + "@babel/plugin-transform-optional-chaining": "^7.25.9" + }, + "engines": { + "node": ">=6.9.0" + }, + "peerDependencies": { + "@babel/core": "^7.13.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-class-static-block": { + "version": "7.21.0", + "resolved": "https://registry.npmjs.org/@babel/plugin-proposal-class-static-block/-/plugin-proposal-class-static-block-7.21.0.tgz", + "integrity": "sha512-XP5G9MWNUskFuP30IfFSEFB0Z6HzLIUcjYM4bYOPHXl7eiJ9HFv8tWj6TXTN5QODiEhDZAeI4hLok2iHFFV4hw==", + "deprecated": "This proposal has been merged to the ECMAScript standard and thus this plugin is no longer maintained. Please use @babel/plugin-transform-class-static-block instead.", + "dev": true, + "dependencies": { + "@babel/helper-create-class-features-plugin": "^7.21.0", + "@babel/helper-plugin-utils": "^7.20.2", + "@babel/plugin-syntax-class-static-block": "^7.14.5" + }, + "engines": { + "node": ">=6.9.0" + }, + "peerDependencies": { + "@babel/core": "^7.12.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-dynamic-import/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-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.14.7", + "resolved": "https://registry.npmjs.org/@babel/plugin-proposal-object-rest-spread/-/plugin-proposal-object-rest-spread-7.14.7.tgz", + "integrity": "sha512-082hsZz+sVabfmDWo1Oct1u1AgbKbUAyVgmX4otIc7bdsRgHBXwTwb3DpDmD4Eyyx6DNiuz5UAATT655k+kL5g==", + "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.14.7", + "@babel/helper-compilation-targets": "^7.14.5", + "@babel/helper-plugin-utils": "^7.14.5", + "@babel/plugin-syntax-object-rest-spread": "^7.8.3", + "@babel/plugin-transform-parameters": "^7.14.5" + }, + "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-private-property-in-object": { + "version": "7.21.11", + "resolved": "https://registry.npmjs.org/@babel/plugin-proposal-private-property-in-object/-/plugin-proposal-private-property-in-object-7.21.11.tgz", + "integrity": "sha512-0QZ8qP/3RLDVBwBFoWAwCtgcDZJVwA5LUJRZU8x2YFfKNuFq161wK3cuGrALu5yiPu+vzwTAg/sMWVNeWeNyaw==", + "deprecated": "This proposal has been merged to the ECMAScript standard and thus this plugin is no longer maintained. Please use @babel/plugin-transform-private-property-in-object instead.", + "dev": true, + "dependencies": { + "@babel/helper-annotate-as-pure": "^7.18.6", + "@babel/helper-create-class-features-plugin": "^7.21.0", + "@babel/helper-plugin-utils": "^7.20.2", + "@babel/plugin-syntax-private-property-in-object": "^7.14.5" + }, + "engines": { + "node": ">=6.9.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" + } + }, + "node_modules/@babel/plugin-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-class-static-block": { + "version": "7.14.5", + "resolved": "https://registry.npmjs.org/@babel/plugin-syntax-class-static-block/-/plugin-syntax-class-static-block-7.14.5.tgz", + "integrity": "sha512-b+YyPmr6ldyNnM6sqYeMWE+bgJcJpO6yS4QD7ymxgH34GBPNDM/THBh8iunyvKIZztiwLH4CJZ0RxTk9emgpjw==", + "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-syntax-dynamic-import": { + "version": "7.2.0", + "resolved": "https://registry.npmjs.org/@babel/plugin-syntax-dynamic-import/-/plugin-syntax-dynamic-import-7.2.0.tgz", + "integrity": "sha512-mVxuJ0YroI/h/tbFTPGZR8cv6ai+STMKNBq0f8hFxsxWjl94qqhsb+wXbpNMDPU3cfR1TIsVFzU3nXyZMqyK4w==", + "dev": true, + "dependencies": { + "@babel/helper-plugin-utils": "^7.0.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-jsx": { + "version": "7.25.9", + "resolved": "https://registry.npmjs.org/@babel/plugin-syntax-jsx/-/plugin-syntax-jsx-7.25.9.tgz", + "integrity": "sha512-ld6oezHQMZsZfp6pWtbjaNDF2tiiCYYDqQszHt5VV437lewP9aSi2Of99CK0D0XB21k7FLgnLcmQKyKzynfeAA==", + "dev": true, + "dependencies": { + "@babel/helper-plugin-utils": "^7.25.9" + }, + "engines": { + "node": ">=6.9.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" + } + }, + "node_modules/@babel/plugin-syntax-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-private-property-in-object": { + "version": "7.14.5", + "resolved": "https://registry.npmjs.org/@babel/plugin-syntax-private-property-in-object/-/plugin-syntax-private-property-in-object-7.14.5.tgz", + "integrity": "sha512-0wVnp9dxJ72ZUJDV27ZfbSj6iHLoytYZmh3rFcxNnvsJF3ktkzLDZPy/mA17HGsaQT3/DQsWYX1f1QGWkCoVUg==", + "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-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.25.9", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-arrow-functions/-/plugin-transform-arrow-functions-7.25.9.tgz", + "integrity": "sha512-6jmooXYIwn9ca5/RylZADJ+EnSxVUS5sjeJ9UPk6RWRzXCmOJCy6dqItPJFpw2cuCangPK4OYr5uhGKcmrm5Qg==", + "dev": true, + "dependencies": { + "@babel/helper-plugin-utils": "^7.25.9" + }, + "engines": { + "node": ">=6.9.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" + } + }, + "node_modules/@babel/plugin-transform-async-to-generator": { + "version": "7.14.5", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-async-to-generator/-/plugin-transform-async-to-generator-7.14.5.tgz", + "integrity": "sha512-szkbzQ0mNk0rpu76fzDdqSyPu0MuvpXgC+6rz5rpMb5OIRxdmHfQxrktL8CYolL2d8luMCZTR0DpIMIdL27IjA==", + "dev": true, + "dependencies": { + "@babel/helper-module-imports": "^7.14.5", + "@babel/helper-plugin-utils": "^7.14.5", + "@babel/helper-remap-async-to-generator": "^7.14.5" + }, + "engines": { + "node": ">=6.9.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" + } + }, + "node_modules/@babel/plugin-transform-block-scoped-functions": { + "version": "7.25.9", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-block-scoped-functions/-/plugin-transform-block-scoped-functions-7.25.9.tgz", + "integrity": "sha512-toHc9fzab0ZfenFpsyYinOX0J/5dgJVA2fm64xPewu7CoYHWEivIWKxkK2rMi4r3yQqLnVmheMXRdG+k239CgA==", + "dev": true, + "dependencies": { + "@babel/helper-plugin-utils": "^7.25.9" + }, + "engines": { + "node": ">=6.9.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" + } + }, + "node_modules/@babel/plugin-transform-block-scoping": { + "version": "7.25.9", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-block-scoping/-/plugin-transform-block-scoping-7.25.9.tgz", + "integrity": "sha512-1F05O7AYjymAtqbsFETboN1NvBdcnzMerO+zlMyJBEz6WkMdejvGWw9p05iTSjC85RLlBseHHQpYaM4gzJkBGg==", + "dev": true, + "dependencies": { + "@babel/helper-plugin-utils": "^7.25.9" + }, + "engines": { + "node": ">=6.9.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" + } + }, + "node_modules/@babel/plugin-transform-classes": { + "version": "7.25.9", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-classes/-/plugin-transform-classes-7.25.9.tgz", + "integrity": "sha512-mD8APIXmseE7oZvZgGABDyM34GUmK45Um2TXiBUt7PnuAxrgoSVf123qUzPxEr/+/BHrRn5NMZCdE2m/1F8DGg==", + "dev": true, + "dependencies": { + "@babel/helper-annotate-as-pure": "^7.25.9", + "@babel/helper-compilation-targets": "^7.25.9", + "@babel/helper-plugin-utils": "^7.25.9", + "@babel/helper-replace-supers": "^7.25.9", + "@babel/traverse": "^7.25.9", + "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.25.9", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-computed-properties/-/plugin-transform-computed-properties-7.25.9.tgz", + "integrity": "sha512-HnBegGqXZR12xbcTHlJ9HGxw1OniltT26J5YpfruGqtUHlz/xKf/G2ak9e+t0rVqrjXa9WOhvYPz1ERfMj23AA==", + "dev": true, + "dependencies": { + "@babel/helper-plugin-utils": "^7.25.9", + "@babel/template": "^7.25.9" + }, + "engines": { + "node": ">=6.9.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" + } + }, + "node_modules/@babel/plugin-transform-destructuring": { + "version": "7.25.9", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-destructuring/-/plugin-transform-destructuring-7.25.9.tgz", + "integrity": "sha512-WkCGb/3ZxXepmMiX101nnGiU+1CAdut8oHyEOHxkKuS1qKpU2SMXE2uSvfz8PBuLd49V6LEsbtyPhWC7fnkgvQ==", + "dev": true, + "dependencies": { + "@babel/helper-plugin-utils": "^7.25.9" + }, + "engines": { + "node": ">=6.9.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" + } + }, + "node_modules/@babel/plugin-transform-dotall-regex": { + "version": "7.25.9", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-dotall-regex/-/plugin-transform-dotall-regex-7.25.9.tgz", + "integrity": "sha512-t7ZQ7g5trIgSRYhI9pIJtRl64KHotutUJsh4Eze5l7olJv+mRSg4/MmbZ0tv1eeqRbdvo/+trvJD/Oc5DmW2cA==", + "dev": true, + "dependencies": { + "@babel/helper-create-regexp-features-plugin": "^7.25.9", + "@babel/helper-plugin-utils": "^7.25.9" + }, + "engines": { + "node": ">=6.9.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" + } + }, + "node_modules/@babel/plugin-transform-duplicate-keys": { + "version": "7.25.9", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-duplicate-keys/-/plugin-transform-duplicate-keys-7.25.9.tgz", + "integrity": "sha512-LZxhJ6dvBb/f3x8xwWIuyiAHy56nrRG3PeYTpBkkzkYRRQ6tJLu68lEF5VIqMUZiAV7a8+Tb78nEoMCMcqjXBw==", + "dev": true, + "dependencies": { + "@babel/helper-plugin-utils": "^7.25.9" + }, + "engines": { + "node": ">=6.9.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" + } + }, + "node_modules/@babel/plugin-transform-exponentiation-operator": { + "version": "7.25.9", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-exponentiation-operator/-/plugin-transform-exponentiation-operator-7.25.9.tgz", + "integrity": "sha512-KRhdhlVk2nObA5AYa7QMgTMTVJdfHprfpAk4DjZVtllqRg9qarilstTKEhpVjyt+Npi8ThRyiV8176Am3CodPA==", + "dev": true, + "dependencies": { + "@babel/helper-builder-binary-assignment-operator-visitor": "^7.25.9", + "@babel/helper-plugin-utils": "^7.25.9" + }, + "engines": { + "node": ">=6.9.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" + } + }, + "node_modules/@babel/plugin-transform-for-of": { + "version": "7.25.9", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-for-of/-/plugin-transform-for-of-7.25.9.tgz", + "integrity": "sha512-LqHxduHoaGELJl2uhImHwRQudhCM50pT46rIBNvtT/Oql3nqiS3wOwP+5ten7NpYSXrrVLgtZU3DZmPtWZo16A==", + "dev": true, + "dependencies": { + "@babel/helper-plugin-utils": "^7.25.9", + "@babel/helper-skip-transparent-expression-wrappers": "^7.25.9" + }, + "engines": { + "node": ">=6.9.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" + } + }, + "node_modules/@babel/plugin-transform-function-name": { + "version": "7.25.9", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-function-name/-/plugin-transform-function-name-7.25.9.tgz", + "integrity": "sha512-8lP+Yxjv14Vc5MuWBpJsoUCd3hD6V9DgBon2FVYL4jJgbnVQ9fTgYmonchzZJOVNgzEgbxp4OwAf6xz6M/14XA==", + "dev": true, + "dependencies": { + "@babel/helper-compilation-targets": "^7.25.9", + "@babel/helper-plugin-utils": "^7.25.9", + "@babel/traverse": "^7.25.9" + }, + "engines": { + "node": ">=6.9.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" + } + }, + "node_modules/@babel/plugin-transform-literals": { + "version": "7.25.9", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-literals/-/plugin-transform-literals-7.25.9.tgz", + "integrity": "sha512-9N7+2lFziW8W9pBl2TzaNht3+pgMIRP74zizeCSrtnSKVdUl8mAjjOP2OOVQAfZ881P2cNjDj1uAMEdeD50nuQ==", + "dev": true, + "dependencies": { + "@babel/helper-plugin-utils": "^7.25.9" + }, + "engines": { + "node": ">=6.9.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" + } + }, + "node_modules/@babel/plugin-transform-member-expression-literals": { + "version": "7.25.9", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-member-expression-literals/-/plugin-transform-member-expression-literals-7.25.9.tgz", + "integrity": "sha512-PYazBVfofCQkkMzh2P6IdIUaCEWni3iYEerAsRWuVd8+jlM1S9S9cz1dF9hIzyoZ8IA3+OwVYIp9v9e+GbgZhA==", + "dev": true, + "dependencies": { + "@babel/helper-plugin-utils": "^7.25.9" + }, + "engines": { + "node": ">=6.9.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" + } + }, + "node_modules/@babel/plugin-transform-modules-amd": { + "version": "7.25.9", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-modules-amd/-/plugin-transform-modules-amd-7.25.9.tgz", + "integrity": "sha512-g5T11tnI36jVClQlMlt4qKDLlWnG5pP9CSM4GhdRciTNMRgkfpo5cR6b4rGIOYPgRRuFAvwjPQ/Yk+ql4dyhbw==", + "dev": true, + "dependencies": { + "@babel/helper-module-transforms": "^7.25.9", + "@babel/helper-plugin-utils": "^7.25.9" + }, + "engines": { + "node": ">=6.9.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" + } + }, + "node_modules/@babel/plugin-transform-modules-commonjs": { + "version": "7.25.9", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-modules-commonjs/-/plugin-transform-modules-commonjs-7.25.9.tgz", + "integrity": "sha512-dwh2Ol1jWwL2MgkCzUSOvfmKElqQcuswAZypBSUsScMXvgdT8Ekq5YA6TtqpTVWH+4903NmboMuH1o9i8Rxlyg==", + "dev": true, + "dependencies": { + "@babel/helper-module-transforms": "^7.25.9", + "@babel/helper-plugin-utils": "^7.25.9", + "@babel/helper-simple-access": "^7.25.9" + }, + "engines": { + "node": ">=6.9.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" + } + }, + "node_modules/@babel/plugin-transform-modules-systemjs": { + "version": "7.25.9", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-modules-systemjs/-/plugin-transform-modules-systemjs-7.25.9.tgz", + "integrity": "sha512-hyss7iIlH/zLHaehT+xwiymtPOpsiwIIRlCAOwBB04ta5Tt+lNItADdlXw3jAWZ96VJ2jlhl/c+PNIQPKNfvcA==", + "dev": true, + "dependencies": { + "@babel/helper-module-transforms": "^7.25.9", + "@babel/helper-plugin-utils": "^7.25.9", + "@babel/helper-validator-identifier": "^7.25.9", + "@babel/traverse": "^7.25.9" + }, + "engines": { + "node": ">=6.9.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" + } + }, + "node_modules/@babel/plugin-transform-modules-umd": { + "version": "7.25.9", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-modules-umd/-/plugin-transform-modules-umd-7.25.9.tgz", + "integrity": "sha512-bS9MVObUgE7ww36HEfwe6g9WakQ0KF07mQF74uuXdkoziUPfKyu/nIm663kz//e5O1nPInPFx36z7WJmJ4yNEw==", + "dev": true, + "dependencies": { + "@babel/helper-module-transforms": "^7.25.9", + "@babel/helper-plugin-utils": "^7.25.9" + }, + "engines": { + "node": ">=6.9.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" + } + }, + "node_modules/@babel/plugin-transform-named-capturing-groups-regex": { + "version": "7.25.9", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-named-capturing-groups-regex/-/plugin-transform-named-capturing-groups-regex-7.25.9.tgz", + "integrity": "sha512-oqB6WHdKTGl3q/ItQhpLSnWWOpjUJLsOCLVyeFgeTktkBSCiurvPOsyt93gibI9CmuKvTUEtWmG5VhZD+5T/KA==", + "dev": true, + "dependencies": { + "@babel/helper-create-regexp-features-plugin": "^7.25.9", + "@babel/helper-plugin-utils": "^7.25.9" + }, + "engines": { + "node": ">=6.9.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0" + } + }, + "node_modules/@babel/plugin-transform-new-target": { + "version": "7.25.9", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-new-target/-/plugin-transform-new-target-7.25.9.tgz", + "integrity": "sha512-U/3p8X1yCSoKyUj2eOBIx3FOn6pElFOKvAAGf8HTtItuPyB+ZeOqfn+mvTtg9ZlOAjsPdK3ayQEjqHjU/yLeVQ==", + "dev": true, + "dependencies": { + "@babel/helper-plugin-utils": "^7.25.9" + }, + "engines": { + "node": ">=6.9.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" + } + }, + "node_modules/@babel/plugin-transform-object-super": { + "version": "7.25.9", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-object-super/-/plugin-transform-object-super-7.25.9.tgz", + "integrity": "sha512-Kj/Gh+Rw2RNLbCK1VAWj2U48yxxqL2x0k10nPtSdRa0O2xnHXalD0s+o1A6a0W43gJ00ANo38jxkQreckOzv5A==", + "dev": true, + "dependencies": { + "@babel/helper-plugin-utils": "^7.25.9", + "@babel/helper-replace-supers": "^7.25.9" + }, + "engines": { + "node": ">=6.9.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" + } + }, + "node_modules/@babel/plugin-transform-optional-chaining": { + "version": "7.25.9", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-optional-chaining/-/plugin-transform-optional-chaining-7.25.9.tgz", + "integrity": "sha512-6AvV0FsLULbpnXeBjrY4dmWF8F7gf8QnvTEoO/wX/5xm/xE1Xo8oPuD3MPS+KS9f9XBEAWN7X1aWr4z9HdOr7A==", + "dev": true, + "dependencies": { + "@babel/helper-plugin-utils": "^7.25.9", + "@babel/helper-skip-transparent-expression-wrappers": "^7.25.9" + }, + "engines": { + "node": ">=6.9.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" + } + }, + "node_modules/@babel/plugin-transform-parameters": { + "version": "7.25.9", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-parameters/-/plugin-transform-parameters-7.25.9.tgz", + "integrity": "sha512-wzz6MKwpnshBAiRmn4jR8LYz/g8Ksg0o80XmwZDlordjwEk9SxBzTWC7F5ef1jhbrbOW2DJ5J6ayRukrJmnr0g==", + "dev": true, + "dependencies": { + "@babel/helper-plugin-utils": "^7.25.9" + }, + "engines": { + "node": ">=6.9.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" + } + }, + "node_modules/@babel/plugin-transform-property-literals": { + "version": "7.25.9", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-property-literals/-/plugin-transform-property-literals-7.25.9.tgz", + "integrity": "sha512-IvIUeV5KrS/VPavfSM/Iu+RE6llrHrYIKY1yfCzyO/lMXHQ+p7uGhonmGVisv6tSBSVgWzMBohTcvkC9vQcQFA==", + "dev": true, + "dependencies": { + "@babel/helper-plugin-utils": "^7.25.9" + }, + "engines": { + "node": ">=6.9.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" + } + }, + "node_modules/@babel/plugin-transform-react-display-name": { + "version": "7.25.9", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-react-display-name/-/plugin-transform-react-display-name-7.25.9.tgz", + "integrity": "sha512-KJfMlYIUxQB1CJfO3e0+h0ZHWOTLCPP115Awhaz8U0Zpq36Gl/cXlpoyMRnUWlhNUBAzldnCiAZNvCDj7CrKxQ==", + "dev": true, + "dependencies": { + "@babel/helper-plugin-utils": "^7.25.9" + }, + "engines": { + "node": ">=6.9.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" + } + }, + "node_modules/@babel/plugin-transform-react-jsx": { + "version": "7.25.9", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-react-jsx/-/plugin-transform-react-jsx-7.25.9.tgz", + "integrity": "sha512-s5XwpQYCqGerXl+Pu6VDL3x0j2d82eiV77UJ8a2mDHAW7j9SWRqQ2y1fNo1Z74CdcYipl5Z41zvjj4Nfzq36rw==", + "dev": true, + "dependencies": { + "@babel/helper-annotate-as-pure": "^7.25.9", + "@babel/helper-module-imports": "^7.25.9", + "@babel/helper-plugin-utils": "^7.25.9", + "@babel/plugin-syntax-jsx": "^7.25.9", + "@babel/types": "^7.25.9" + }, + "engines": { + "node": ">=6.9.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" + } + }, + "node_modules/@babel/plugin-transform-react-jsx-development": { + "version": "7.25.9", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-react-jsx-development/-/plugin-transform-react-jsx-development-7.25.9.tgz", + "integrity": "sha512-9mj6rm7XVYs4mdLIpbZnHOYdpW42uoiBCTVowg7sP1thUOiANgMb4UtpRivR0pp5iL+ocvUv7X4mZgFRpJEzGw==", + "dev": true, + "dependencies": { + "@babel/plugin-transform-react-jsx": "^7.25.9" + }, + "engines": { + "node": ">=6.9.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" + } + }, + "node_modules/@babel/plugin-transform-react-pure-annotations": { + "version": "7.25.9", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-react-pure-annotations/-/plugin-transform-react-pure-annotations-7.25.9.tgz", + "integrity": "sha512-KQ/Takk3T8Qzj5TppkS1be588lkbTp5uj7w6a0LeQaTMSckU/wK0oJ/pih+T690tkgI5jfmg2TqDJvd41Sj1Cg==", + "dev": true, + "dependencies": { + "@babel/helper-annotate-as-pure": "^7.25.9", + "@babel/helper-plugin-utils": "^7.25.9" + }, + "engines": { + "node": ">=6.9.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" + } + }, + "node_modules/@babel/plugin-transform-regenerator": { + "version": "7.25.9", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-regenerator/-/plugin-transform-regenerator-7.25.9.tgz", + "integrity": "sha512-vwDcDNsgMPDGP0nMqzahDWE5/MLcX8sv96+wfX7as7LoF/kr97Bo/7fI00lXY4wUXYfVmwIIyG80fGZ1uvt2qg==", + "dev": true, + "dependencies": { + "@babel/helper-plugin-utils": "^7.25.9", + "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.25.9", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-reserved-words/-/plugin-transform-reserved-words-7.25.9.tgz", + "integrity": "sha512-7DL7DKYjn5Su++4RXu8puKZm2XBPHyjWLUidaPEkCUBbE7IPcsrkRHggAOOKydH1dASWdcUBxrkOGNxUv5P3Jg==", + "dev": true, + "dependencies": { + "@babel/helper-plugin-utils": "^7.25.9" + }, + "engines": { + "node": ">=6.9.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" + } + }, + "node_modules/@babel/plugin-transform-shorthand-properties": { + "version": "7.25.9", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-shorthand-properties/-/plugin-transform-shorthand-properties-7.25.9.tgz", + "integrity": "sha512-MUv6t0FhO5qHnS/W8XCbHmiRWOphNufpE1IVxhK5kuN3Td9FT1x4rx4K42s3RYdMXCXpfWkGSbCSd0Z64xA7Ng==", + "dev": true, + "dependencies": { + "@babel/helper-plugin-utils": "^7.25.9" + }, + "engines": { + "node": ">=6.9.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" + } + }, + "node_modules/@babel/plugin-transform-spread": { + "version": "7.25.9", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-spread/-/plugin-transform-spread-7.25.9.tgz", + "integrity": "sha512-oNknIB0TbURU5pqJFVbOOFspVlrpVwo2H1+HUIsVDvp5VauGGDP1ZEvO8Nn5xyMEs3dakajOxlmkNW7kNgSm6A==", + "dev": true, + "dependencies": { + "@babel/helper-plugin-utils": "^7.25.9", + "@babel/helper-skip-transparent-expression-wrappers": "^7.25.9" + }, + "engines": { + "node": ">=6.9.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" + } + }, + "node_modules/@babel/plugin-transform-sticky-regex": { + "version": "7.25.9", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-sticky-regex/-/plugin-transform-sticky-regex-7.25.9.tgz", + "integrity": "sha512-WqBUSgeVwucYDP9U/xNRQam7xV8W5Zf+6Eo7T2SRVUFlhRiMNFdFz58u0KZmCVVqs2i7SHgpRnAhzRNmKfi2uA==", + "dev": true, + "dependencies": { + "@babel/helper-plugin-utils": "^7.25.9" + }, + "engines": { + "node": ">=6.9.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" + } + }, + "node_modules/@babel/plugin-transform-template-literals": { + "version": "7.25.9", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-template-literals/-/plugin-transform-template-literals-7.25.9.tgz", + "integrity": "sha512-o97AE4syN71M/lxrCtQByzphAdlYluKPDBzDVzMmfCobUjjhAryZV0AIpRPrxN0eAkxXO6ZLEScmt+PNhj2OTw==", + "dev": true, + "dependencies": { + "@babel/helper-plugin-utils": "^7.25.9" + }, + "engines": { + "node": ">=6.9.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" + } + }, + "node_modules/@babel/plugin-transform-typeof-symbol": { + "version": "7.25.9", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-typeof-symbol/-/plugin-transform-typeof-symbol-7.25.9.tgz", + "integrity": "sha512-v61XqUMiueJROUv66BVIOi0Fv/CUuZuZMl5NkRoCVxLAnMexZ0A3kMe7vvZ0nulxMuMp0Mk6S5hNh48yki08ZA==", + "dev": true, + "dependencies": { + "@babel/helper-plugin-utils": "^7.25.9" + }, + "engines": { + "node": ">=6.9.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" + } + }, + "node_modules/@babel/plugin-transform-unicode-escapes": { + "version": "7.25.9", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-unicode-escapes/-/plugin-transform-unicode-escapes-7.25.9.tgz", + "integrity": "sha512-s5EDrE6bW97LtxOcGj1Khcx5AaXwiMmi4toFWRDP9/y0Woo6pXC+iyPu/KuhKtfSrNFd7jJB+/fkOtZy6aIC6Q==", + "dev": true, + "dependencies": { + "@babel/helper-plugin-utils": "^7.25.9" + }, + "engines": { + "node": ">=6.9.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" + } + }, + "node_modules/@babel/plugin-transform-unicode-regex": { + "version": "7.25.9", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-unicode-regex/-/plugin-transform-unicode-regex-7.25.9.tgz", + "integrity": "sha512-yoxstj7Rg9dlNn9UQxzk4fcNivwv4nUYz7fYXBaKxvw/lnmPuOm/ikoELygbYq68Bls3D/D+NBPHiLwZdZZ4HA==", + "dev": true, + "dependencies": { + "@babel/helper-create-regexp-features-plugin": "^7.25.9", + "@babel/helper-plugin-utils": "^7.25.9" + }, + "engines": { + "node": ">=6.9.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" + } + }, + "node_modules/@babel/preset-env": { + "version": "7.14.8", + "resolved": "https://registry.npmjs.org/@babel/preset-env/-/preset-env-7.14.8.tgz", + "integrity": "sha512-a9aOppDU93oArQ51H+B8M1vH+tayZbuBqzjOhntGetZVa+4tTu5jp+XTwqHGG2lxslqomPYVSjIxQkFwXzgnxg==", + "dev": true, + "dependencies": { + "@babel/compat-data": "^7.14.7", + "@babel/helper-compilation-targets": "^7.14.5", + "@babel/helper-plugin-utils": "^7.14.5", + "@babel/helper-validator-option": "^7.14.5", + "@babel/plugin-bugfix-v8-spread-parameters-in-optional-chaining": "^7.14.5", + "@babel/plugin-proposal-async-generator-functions": "^7.14.7", + "@babel/plugin-proposal-class-properties": "^7.14.5", + "@babel/plugin-proposal-class-static-block": "^7.14.5", + "@babel/plugin-proposal-dynamic-import": "^7.14.5", + "@babel/plugin-proposal-export-namespace-from": "^7.14.5", + "@babel/plugin-proposal-json-strings": "^7.14.5", + "@babel/plugin-proposal-logical-assignment-operators": "^7.14.5", + "@babel/plugin-proposal-nullish-coalescing-operator": "^7.14.5", + "@babel/plugin-proposal-numeric-separator": "^7.14.5", + "@babel/plugin-proposal-object-rest-spread": "^7.14.7", + "@babel/plugin-proposal-optional-catch-binding": "^7.14.5", + "@babel/plugin-proposal-optional-chaining": "^7.14.5", + "@babel/plugin-proposal-private-methods": "^7.14.5", + "@babel/plugin-proposal-private-property-in-object": "^7.14.5", + "@babel/plugin-proposal-unicode-property-regex": "^7.14.5", + "@babel/plugin-syntax-async-generators": "^7.8.4", + "@babel/plugin-syntax-class-properties": "^7.12.13", + "@babel/plugin-syntax-class-static-block": "^7.14.5", + "@babel/plugin-syntax-dynamic-import": "^7.8.3", + "@babel/plugin-syntax-export-namespace-from": "^7.8.3", + "@babel/plugin-syntax-json-strings": "^7.8.3", + "@babel/plugin-syntax-logical-assignment-operators": "^7.10.4", + "@babel/plugin-syntax-nullish-coalescing-operator": "^7.8.3", + "@babel/plugin-syntax-numeric-separator": "^7.10.4", + "@babel/plugin-syntax-object-rest-spread": "^7.8.3", + "@babel/plugin-syntax-optional-catch-binding": "^7.8.3", + "@babel/plugin-syntax-optional-chaining": "^7.8.3", + "@babel/plugin-syntax-private-property-in-object": "^7.14.5", + "@babel/plugin-syntax-top-level-await": "^7.14.5", + "@babel/plugin-transform-arrow-functions": "^7.14.5", + "@babel/plugin-transform-async-to-generator": "^7.14.5", + "@babel/plugin-transform-block-scoped-functions": "^7.14.5", + "@babel/plugin-transform-block-scoping": "^7.14.5", + "@babel/plugin-transform-classes": "^7.14.5", + "@babel/plugin-transform-computed-properties": "^7.14.5", + "@babel/plugin-transform-destructuring": "^7.14.7", + "@babel/plugin-transform-dotall-regex": "^7.14.5", + "@babel/plugin-transform-duplicate-keys": "^7.14.5", + "@babel/plugin-transform-exponentiation-operator": "^7.14.5", + "@babel/plugin-transform-for-of": "^7.14.5", + "@babel/plugin-transform-function-name": "^7.14.5", + "@babel/plugin-transform-literals": "^7.14.5", + "@babel/plugin-transform-member-expression-literals": "^7.14.5", + "@babel/plugin-transform-modules-amd": "^7.14.5", + "@babel/plugin-transform-modules-commonjs": "^7.14.5", + "@babel/plugin-transform-modules-systemjs": "^7.14.5", + "@babel/plugin-transform-modules-umd": "^7.14.5", + "@babel/plugin-transform-named-capturing-groups-regex": "^7.14.7", + "@babel/plugin-transform-new-target": "^7.14.5", + "@babel/plugin-transform-object-super": "^7.14.5", + "@babel/plugin-transform-parameters": "^7.14.5", + "@babel/plugin-transform-property-literals": "^7.14.5", + "@babel/plugin-transform-regenerator": "^7.14.5", + "@babel/plugin-transform-reserved-words": "^7.14.5", + "@babel/plugin-transform-shorthand-properties": "^7.14.5", + "@babel/plugin-transform-spread": "^7.14.6", + "@babel/plugin-transform-sticky-regex": "^7.14.5", + "@babel/plugin-transform-template-literals": "^7.14.5", + "@babel/plugin-transform-typeof-symbol": "^7.14.5", + "@babel/plugin-transform-unicode-escapes": "^7.14.5", + "@babel/plugin-transform-unicode-regex": "^7.14.5", + "@babel/preset-modules": "^0.1.4", + "@babel/types": "^7.14.8", + "babel-plugin-polyfill-corejs2": "^0.2.2", + "babel-plugin-polyfill-corejs3": "^0.2.2", + "babel-plugin-polyfill-regenerator": "^0.2.2", + "core-js-compat": "^3.15.0", + "semver": "^6.3.0" + }, + "engines": { + "node": ">=6.9.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" + } + }, + "node_modules/@babel/preset-env/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/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/@babel/preset-react": { + "version": "7.14.5", + "resolved": "https://registry.npmjs.org/@babel/preset-react/-/preset-react-7.14.5.tgz", + "integrity": "sha512-XFxBkjyObLvBaAvkx1Ie95Iaq4S/GUEIrejyrntQ/VCMKUYvKLoyKxOBzJ2kjA3b6rC9/KL6KXfDC2GqvLiNqQ==", + "dev": true, + "dependencies": { + "@babel/helper-plugin-utils": "^7.14.5", + "@babel/helper-validator-option": "^7.14.5", + "@babel/plugin-transform-react-display-name": "^7.14.5", + "@babel/plugin-transform-react-jsx": "^7.14.5", + "@babel/plugin-transform-react-jsx-development": "^7.14.5", + "@babel/plugin-transform-react-pure-annotations": "^7.14.5" + }, + "engines": { + "node": ">=6.9.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" + } + }, + "node_modules/@babel/runtime": { + "version": "7.26.0", + "resolved": "https://registry.npmjs.org/@babel/runtime/-/runtime-7.26.0.tgz", + "integrity": "sha512-FDSOghenHTiToteC/QRlv2q3DhPZ/oOXTBoirfWNx1Cx3TMVcGWQtMMmQcSvb/JjpNeGzx8Pq/b4fKEJuWm1sw==", + "dependencies": { + "regenerator-runtime": "^0.14.0" + }, + "engines": { + "node": ">=6.9.0" + } + }, + "node_modules/@babel/runtime/node_modules/regenerator-runtime": { + "version": "0.14.1", + "resolved": "https://registry.npmjs.org/regenerator-runtime/-/regenerator-runtime-0.14.1.tgz", + "integrity": "sha512-dYnhHh0nJoMfnkZs6GmmhFknAGRrLznOu5nc9ML+EJxGvrx6H7teuevqVqCuPcPK//3eDrrjQhehXVx9cnkGdw==" + }, + "node_modules/@babel/template": { + "version": "7.25.9", + "resolved": "https://registry.npmjs.org/@babel/template/-/template-7.25.9.tgz", + "integrity": "sha512-9DGttpmPvIxBb/2uwpVo3dqJ+O6RooAFOS+lB+xDqoE2PVCE8nfoHMdZLpfCQRLwvohzXISPZcgxt80xLfsuwg==", + "dependencies": { + "@babel/code-frame": "^7.25.9", + "@babel/parser": "^7.25.9", + "@babel/types": "^7.25.9" + }, + "engines": { + "node": ">=6.9.0" + } + }, + "node_modules/@babel/traverse": { + "version": "7.25.9", + "resolved": "https://registry.npmjs.org/@babel/traverse/-/traverse-7.25.9.tgz", + "integrity": "sha512-ZCuvfwOwlz/bawvAuvcj8rrithP2/N55Tzz342AkTvq4qaWbGfmCk/tKhNaV2cthijKrPAA8SRJV5WWe7IBMJw==", + "dependencies": { + "@babel/code-frame": "^7.25.9", + "@babel/generator": "^7.25.9", + "@babel/parser": "^7.25.9", + "@babel/template": "^7.25.9", + "@babel/types": "^7.25.9", + "debug": "^4.3.1", + "globals": "^11.1.0" + }, + "engines": { + "node": ">=6.9.0" + } + }, + "node_modules/@babel/types": { + "version": "7.26.0", + "resolved": "https://registry.npmjs.org/@babel/types/-/types-7.26.0.tgz", + "integrity": "sha512-Z/yiTPj+lDVnF7lWeKCIJzaIkI0vYO87dMpZ4bg4TDrFe4XXLFWL1TbXU27gBP3QccxV9mZICCrnjnYlJjXHOA==", + "dependencies": { + "@babel/helper-string-parser": "^7.25.9", + "@babel/helper-validator-identifier": "^7.25.9" + }, + "engines": { + "node": ">=6.9.0" + } + }, + "node_modules/@gar/promisify": { + "version": "1.1.3", + "resolved": "https://registry.npmjs.org/@gar/promisify/-/promisify-1.1.3.tgz", + "integrity": "sha512-k2Ty1JcVojjJFwrg/ThKi2ujJ7XNLYaFGNB/bWT9wGR+oSMJHMa5w+CUq6p/pVrKeNNgA7pCqEcjSnHVoqJQFw==" + }, + "node_modules/@jest/types": { + "version": "24.9.0", + "resolved": "https://registry.npmjs.org/@jest/types/-/types-24.9.0.tgz", + "integrity": "sha512-XKK7ze1apu5JWQ5eZjHITP66AX+QsLlbaJRBGYr8pNzwcAE2JVkwnf0yqjHTsDRcjR0mujy/NmZMXw5kl+kGBw==", + "dev": true, + "dependencies": { + "@types/istanbul-lib-coverage": "^2.0.0", + "@types/istanbul-reports": "^1.1.1", + "@types/yargs": "^13.0.0" + }, + "engines": { + "node": ">= 6" + } + }, + "node_modules/@jridgewell/gen-mapping": { + "version": "0.3.5", + "resolved": "https://registry.npmjs.org/@jridgewell/gen-mapping/-/gen-mapping-0.3.5.tgz", + "integrity": "sha512-IzL8ZoEDIBRWEzlCcRhOaCupYyN5gdIK+Q6fbFdPDg6HqX6jpkItn7DFIpW9LQzXG6Df9sA7+OKnq0qlz/GaQg==", + "dependencies": { + "@jridgewell/set-array": "^1.2.1", + "@jridgewell/sourcemap-codec": "^1.4.10", + "@jridgewell/trace-mapping": "^0.3.24" + }, + "engines": { + "node": ">=6.0.0" + } + }, + "node_modules/@jridgewell/resolve-uri": { + "version": "3.1.2", + "resolved": "https://registry.npmjs.org/@jridgewell/resolve-uri/-/resolve-uri-3.1.2.tgz", + "integrity": "sha512-bRISgCIjP20/tbWSPWMEi54QVPRZExkuD9lJL+UIxUKtwVJA8wW1Trb1jMs1RFXo1CBTNZ/5hpC9QvmKWdopKw==", + "engines": { + "node": ">=6.0.0" + } + }, + "node_modules/@jridgewell/set-array": { + "version": "1.2.1", + "resolved": "https://registry.npmjs.org/@jridgewell/set-array/-/set-array-1.2.1.tgz", + "integrity": "sha512-R8gLRTZeyp03ymzP/6Lil/28tGeGEzhx1q2k703KGWRAI1VdvPIXdG70VJc2pAMw3NA6JKL5hhFu1sJX0Mnn/A==", + "engines": { + "node": ">=6.0.0" + } + }, + "node_modules/@jridgewell/sourcemap-codec": { + "version": "1.5.0", + "resolved": "https://registry.npmjs.org/@jridgewell/sourcemap-codec/-/sourcemap-codec-1.5.0.tgz", + "integrity": "sha512-gv3ZRaISU3fjPAgNsriBRqGWQL6quFx04YMPW/zD8XMLsU32mhCCbfbO6KZFLjvYpCZ8zyDEgqsgf+PwPaM7GQ==" + }, + "node_modules/@jridgewell/trace-mapping": { + "version": "0.3.25", + "resolved": "https://registry.npmjs.org/@jridgewell/trace-mapping/-/trace-mapping-0.3.25.tgz", + "integrity": "sha512-vNk6aEwybGtawWmy/PzwnGDOjCkLWSD2wqvjGGAgOAwCGWySYXfYoxt00IJkTF+8Lb57DwOb3Aa0o9CApepiYQ==", + "dependencies": { + "@jridgewell/resolve-uri": "^3.1.0", + "@jridgewell/sourcemap-codec": "^1.4.14" + } + }, + "node_modules/@nicolo-ribaudo/chokidar-2": { + "version": "2.1.8-no-fsevents.2", + "resolved": "https://registry.npmjs.org/@nicolo-ribaudo/chokidar-2/-/chokidar-2-2.1.8-no-fsevents.2.tgz", + "integrity": "sha512-Fb8WxUFOBQVl+CX4MWet5o7eCc6Pj04rXIwVKZ6h1NnqTo45eOQW6aWyhG25NIODvWFwTDMwBsYxrQ3imxpetg==", + "optional": true, + "dependencies": { + "anymatch": "^2.0.0", + "async-each": "^1.0.1", + "braces": "^2.3.2", + "glob-parent": "^5.1.2", + "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" + } + }, + "node_modules/@nodelib/fs.scandir": { + "version": "2.1.5", + "resolved": "https://registry.npmjs.org/@nodelib/fs.scandir/-/fs.scandir-2.1.5.tgz", + "integrity": "sha512-vq24Bq3ym5HEQm2NKCr3yXDwjc7vTsEThRDnkp2DK9p1uqLR+DHurm/NOTo0KG7HYHU7eppKZj3MyqYuMBf62g==", + "dependencies": { + "@nodelib/fs.stat": "2.0.5", + "run-parallel": "^1.1.9" + }, + "engines": { + "node": ">= 8" + } + }, + "node_modules/@nodelib/fs.stat": { + "version": "2.0.5", + "resolved": "https://registry.npmjs.org/@nodelib/fs.stat/-/fs.stat-2.0.5.tgz", + "integrity": "sha512-RkhPPp2zrqDAQA/2jNhnztcPAlv64XdhIp7a7454A5ovI7Bukxgt7MX7udwAu3zg1DcpPU0rz3VV1SeaqvY4+A==", + "engines": { + "node": ">= 8" + } + }, + "node_modules/@nodelib/fs.walk": { + "version": "1.2.8", + "resolved": "https://registry.npmjs.org/@nodelib/fs.walk/-/fs.walk-1.2.8.tgz", + "integrity": "sha512-oGB+UxlgWcgQkgwo8GcEGwemoTFt3FIO9ababBmaGwXIoBKZ+GTy0pP185beGg7Llih/NSHSV2XAs1lnznocSg==", + "dependencies": { + "@nodelib/fs.scandir": "2.1.5", + "fastq": "^1.6.0" + }, + "engines": { + "node": ">= 8" + } + }, + "node_modules/@npmcli/fs": { + "version": "1.1.1", + "resolved": "https://registry.npmjs.org/@npmcli/fs/-/fs-1.1.1.tgz", + "integrity": "sha512-8KG5RD0GVP4ydEzRn/I4BNDuxDtqVbOdm8675T49OIG/NGhaK0pjPX7ZcDlvKYbA+ulvVK3ztfcF4uBdOxuJbQ==", + "dependencies": { + "@gar/promisify": "^1.0.1", + "semver": "^7.3.5" + } + }, + "node_modules/@npmcli/fs/node_modules/semver": { + "version": "7.6.3", + "resolved": "https://registry.npmjs.org/semver/-/semver-7.6.3.tgz", + "integrity": "sha512-oVekP1cKtI+CTDvHWYFUcMtsK/00wmAEfyqKfNdARm8u1wNVhSgaX7A8d4UuIlUI5e84iEwOhs7ZPYRmzU9U6A==", + "bin": { + "semver": "bin/semver.js" + }, + "engines": { + "node": ">=10" + } + }, + "node_modules/@npmcli/move-file": { + "version": "1.1.2", + "resolved": "https://registry.npmjs.org/@npmcli/move-file/-/move-file-1.1.2.tgz", + "integrity": "sha512-1SUf/Cg2GzGDyaf15aR9St9TWlb+XvbZXWpDx8YKs7MLzMH/BCeopv+y9vzrzgkfykCGuWOlSu3mZhj2+FQcrg==", + "deprecated": "This functionality has been moved to @npmcli/fs", + "dependencies": { + "mkdirp": "^1.0.4", + "rimraf": "^3.0.2" + }, + "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==", + "bin": { + "mkdirp": "bin/cmd.js" + }, + "engines": { + "node": ">=10" + } + }, + "node_modules/@npmcli/move-file/node_modules/rimraf": { + "version": "3.0.2", + "resolved": "https://registry.npmjs.org/rimraf/-/rimraf-3.0.2.tgz", + "integrity": "sha512-JZkJMZkAGFFPP2YqXZXPbMlMBgsxzE8ILs4lMIX/2o0L9UBw9O/Y3o6wFw/i9YLapcUJWwqbi3kdxIPdC62TIA==", + "deprecated": "Rimraf versions prior to v4 are no longer supported", + "dependencies": { + "glob": "^7.1.3" + }, + "bin": { + "rimraf": "bin.js" + }, + "funding": { + "url": "https://github.com/sponsors/isaacs" + } + }, + "node_modules/@protobufjs/aspromise": { + "version": "1.1.2", + "resolved": "https://registry.npmjs.org/@protobufjs/aspromise/-/aspromise-1.1.2.tgz", + "integrity": "sha512-j+gKExEuLmKwvz3OgROXtrJ2UG2x8Ch2YZUxahh+s1F2HZ+wAceUNLkvy6zKCPVRkU++ZWQrdxsUeQXmcg4uoQ==" + }, + "node_modules/@protobufjs/base64": { + "version": "1.1.2", + "resolved": "https://registry.npmjs.org/@protobufjs/base64/-/base64-1.1.2.tgz", + "integrity": "sha512-AZkcAA5vnN/v4PDqKyMR5lx7hZttPDgClv83E//FMNhR2TMcLUhfRUBHCmSl0oi9zMgDDqRUJkSxO3wm85+XLg==" + }, + "node_modules/@protobufjs/codegen": { + "version": "2.0.4", + "resolved": "https://registry.npmjs.org/@protobufjs/codegen/-/codegen-2.0.4.tgz", + "integrity": "sha512-YyFaikqM5sH0ziFZCN3xDC7zeGaB/d0IUb9CATugHWbd1FRFwWwt4ld4OYMPWu5a3Xe01mGAULCdqhMlPl29Jg==" + }, + "node_modules/@protobufjs/eventemitter": { + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/@protobufjs/eventemitter/-/eventemitter-1.1.0.tgz", + "integrity": "sha512-j9ednRT81vYJ9OfVuXG6ERSTdEL1xVsNgqpkxMsbIabzSo3goCjDIveeGv5d03om39ML71RdmrGNjG5SReBP/Q==" + }, + "node_modules/@protobufjs/fetch": { + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/@protobufjs/fetch/-/fetch-1.1.0.tgz", + "integrity": "sha512-lljVXpqXebpsijW71PZaCYeIcE5on1w5DlQy5WH6GLbFryLUrBD4932W/E2BSpfRJWseIL4v/KPgBFxDOIdKpQ==", + "dependencies": { + "@protobufjs/aspromise": "^1.1.1", + "@protobufjs/inquire": "^1.1.0" + } + }, + "node_modules/@protobufjs/float": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/@protobufjs/float/-/float-1.0.2.tgz", + "integrity": "sha512-Ddb+kVXlXst9d+R9PfTIxh1EdNkgoRe5tOX6t01f1lYWOvJnSPDBlG241QLzcyPdoNTsblLUdujGSE4RzrTZGQ==" + }, + "node_modules/@protobufjs/inquire": { + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/@protobufjs/inquire/-/inquire-1.1.0.tgz", + "integrity": "sha512-kdSefcPdruJiFMVSbn801t4vFK7KB/5gd2fYvrxhuJYg8ILrmn9SKSX2tZdV6V+ksulWqS7aXjBcRXl3wHoD9Q==" + }, + "node_modules/@protobufjs/path": { + "version": "1.1.2", + "resolved": "https://registry.npmjs.org/@protobufjs/path/-/path-1.1.2.tgz", + "integrity": "sha512-6JOcJ5Tm08dOHAbdR3GrvP+yUUfkjG5ePsHYczMFLq3ZmMkAD98cDgcT2iA1lJ9NVwFd4tH/iSSoe44YWkltEA==" + }, + "node_modules/@protobufjs/pool": { + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/@protobufjs/pool/-/pool-1.1.0.tgz", + "integrity": "sha512-0kELaGSIDBKvcgS4zkjz1PeddatrjYcmMWOlAuAPwAeccUrPHdUqo/J6LiymHHEiJT5NrF1UVwxY14f+fy4WQw==" + }, + "node_modules/@protobufjs/utf8": { + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/@protobufjs/utf8/-/utf8-1.1.0.tgz", + "integrity": "sha512-Vvn3zZrhQZkkBE8LSuW3em98c0FwgO4nxzv6OdSxPKJIEKY2bGbHn+mhGIPerzI4twdxaP8/0+06HBpwf345Lw==" + }, + "node_modules/@sindresorhus/is": { + "version": "0.7.0", + "resolved": "https://registry.npmjs.org/@sindresorhus/is/-/is-0.7.0.tgz", + "integrity": "sha512-ONhaKPIufzzrlNbqtWFFd+jlnemX6lJAgq9ZeiZtS7I1PIf/la7CW4m83rTXRnVnsMbW2k56pGYu7AUFJD9Pow==", + "engines": { + "node": ">=4" + } + }, + "node_modules/@testim/chrome-version": { + "version": "1.1.4", + "resolved": "https://registry.npmjs.org/@testim/chrome-version/-/chrome-version-1.1.4.tgz", + "integrity": "sha512-kIhULpw9TrGYnHp/8VfdcneIcxKnLixmADtukQRtJUmsVlMg0niMkwV0xZmi8hqa57xqilIHjWFA0GKvEjVU5g==", + "dev": true + }, + "node_modules/@transifex/api": { + "version": "4.3.0", + "resolved": "https://registry.npmjs.org/@transifex/api/-/api-4.3.0.tgz", + "integrity": "sha512-RCpqAqxZlrHDo7rfam8tLSoT02wvF8LQeNRC0VZG5IGrH+wv+G6fB8PWLLHrvUuaqO6XCwkMmYlJ/X9U9TLTHw==", + "dependencies": { + "core-js": "^3.22.4" + }, + "engines": { + "node": ">=14.0.0" + } + }, + "node_modules/@transifex/api/node_modules/core-js": { + "version": "3.39.0", + "resolved": "https://registry.npmjs.org/core-js/-/core-js-3.39.0.tgz", + "integrity": "sha512-raM0ew0/jJUqkJ0E6e8UDtl+y/7ktFivgWvqw8dNSQeNWoSDLvQ1H/RN3aPXB9tBd4/FhyR4RDPGhsNIMsAn7g==", + "hasInstallScript": true, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/core-js" + } + }, + "node_modules/@turbowarp/json": { + "version": "0.1.2", + "resolved": "https://registry.npmjs.org/@turbowarp/json/-/json-0.1.2.tgz", + "integrity": "sha512-9nWywp+0SH7ROVzQPQQO9gMWBikahsqyMWp1Ku8VV0q+q6bnx6dS0aNPTjqTtF2GHAY55hcREsqKzaoUdWBSwg==" + }, + "node_modules/@turbowarp/nanolog": { + "version": "0.2.0", + "resolved": "https://registry.npmjs.org/@turbowarp/nanolog/-/nanolog-0.2.0.tgz", + "integrity": "sha512-texcM9oxfEsADVlVDR5UhLkYclPKsV9mytJh+9pHHonNcUrxRVGF6FkJTzWO/Hl5NafU1crSdw737nqKE3atSA==" + }, + "node_modules/@turbowarp/paper": { + "version": "0.12.202407262155", + "resolved": "https://registry.npmjs.org/@turbowarp/paper/-/paper-0.12.202407262155.tgz", + "integrity": "sha512-BxoKfghjobEeQT9pThi5U1REMBluJjeBmQsvKxSCcDfS6vCDF9ye/8fYmsreceZcNxdia+hKYZPr21s914lG1w==", + "engines": { + "node": ">=8.0.0" + } + }, + "node_modules/@turbowarp/scratch-l10n": { + "version": "3.1001.202405101234", + "resolved": "https://registry.npmjs.org/@turbowarp/scratch-l10n/-/scratch-l10n-3.1001.202405101234.tgz", + "integrity": "sha512-a0JTugOunBFQqAKtjdkViUSmLxuDWwtdNi+1gbqnbDQyGfHOBdOe1xVkmQekw/CzR2HgsBAlL8aS4rsuVXzR3Q==", + "dependencies": { + "@babel/cli": "^7.1.2", + "@babel/core": "^7.1.2", + "@transifex/api": "4.3.0", + "babel-plugin-react-intl": "^3.0.1", + "download": "^8.0.0", + "transifex": "1.6.6" + }, + "bin": { + "build-i18n-src": "scripts/build-i18n-src.js", + "tx-push-src": "scripts/tx-push-src.js" + } + }, + "node_modules/@types/babel__core": { + "version": "7.20.5", + "resolved": "https://registry.npmjs.org/@types/babel__core/-/babel__core-7.20.5.tgz", + "integrity": "sha512-qoQprZvz5wQFJwMDqeseRXWv3rqMvhgpbXFfVyWhbx9X47POIA6i/+dXefEmZKoAgOaTdaIgNSMqMIU61yRyzA==", + "dependencies": { + "@babel/parser": "^7.20.7", + "@babel/types": "^7.20.7", + "@types/babel__generator": "*", + "@types/babel__template": "*", + "@types/babel__traverse": "*" + } + }, + "node_modules/@types/babel__generator": { + "version": "7.6.8", + "resolved": "https://registry.npmjs.org/@types/babel__generator/-/babel__generator-7.6.8.tgz", + "integrity": "sha512-ASsj+tpEDsEiFr1arWrlN6V3mdfjRMZt6LtK/Vp/kreFLnr5QH5+DhvD5nINYZXzwJvXeGq+05iUXcAzVrqWtw==", + "dependencies": { + "@babel/types": "^7.0.0" + } + }, + "node_modules/@types/babel__template": { + "version": "7.4.4", + "resolved": "https://registry.npmjs.org/@types/babel__template/-/babel__template-7.4.4.tgz", + "integrity": "sha512-h/NUaSyG5EyxBIp8YRxo4RMe2/qQgvyowRwVMzhYhBCONbW8PUsg4lkFMrhgZhUe5z3L3MiLDuvyJ/CaPa2A8A==", + "dependencies": { + "@babel/parser": "^7.1.0", + "@babel/types": "^7.0.0" + } + }, + "node_modules/@types/babel__traverse": { + "version": "7.20.6", + "resolved": "https://registry.npmjs.org/@types/babel__traverse/-/babel__traverse-7.20.6.tgz", + "integrity": "sha512-r1bzfrm0tomOI8g1SzvCaQHo6Lcv6zu0EA+W2kHrt8dyrHQxGzBBL4kdkzIS+jBMV+EYcMAEAqXqYaLJq5rOZg==", + "dependencies": { + "@babel/types": "^7.20.7" + } + }, + "node_modules/@types/glob": { + "version": "7.2.0", + "resolved": "https://registry.npmjs.org/@types/glob/-/glob-7.2.0.tgz", + "integrity": "sha512-ZUxbzKl0IfJILTS6t7ip5fQQM/J3TJYubDm3nMbgubNNYS62eXeUpoLUC8/7fJNiFYHTrGPQn7hspDUzIHX3UA==", + "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 + }, + "node_modules/@types/istanbul-lib-coverage": { + "version": "2.0.6", + "resolved": "https://registry.npmjs.org/@types/istanbul-lib-coverage/-/istanbul-lib-coverage-2.0.6.tgz", + "integrity": "sha512-2QF/t/auWm0lsy8XtKVPG19v3sSOQlJe/YHZgfjb/KBBHOGSV+J2q/S671rcq9uTBrLAXmZpqJiaQbMT+zNU1w==", + "dev": true + }, + "node_modules/@types/istanbul-lib-report": { + "version": "3.0.3", + "resolved": "https://registry.npmjs.org/@types/istanbul-lib-report/-/istanbul-lib-report-3.0.3.tgz", + "integrity": "sha512-NQn7AHQnk/RSLOxrBbGyJM/aVQ+pjj5HCgasFxc0K/KhoATfQ/47AyUl15I2yBUpihjmas+a+VJBOqecrFH+uA==", + "dev": true, + "dependencies": { + "@types/istanbul-lib-coverage": "*" + } + }, + "node_modules/@types/istanbul-reports": { + "version": "1.1.2", + "resolved": "https://registry.npmjs.org/@types/istanbul-reports/-/istanbul-reports-1.1.2.tgz", + "integrity": "sha512-P/W9yOX/3oPZSpaYOCQzGqgCQRXn0FFO/V8bWrCQs+wLmvVVxk6CRBXALEvNs9OHIatlnlFokfhuDo2ug01ciw==", + "dev": true, + "dependencies": { + "@types/istanbul-lib-coverage": "*", + "@types/istanbul-lib-report": "*" + } + }, + "node_modules/@types/json-schema": { + "version": "7.0.15", + "resolved": "https://registry.npmjs.org/@types/json-schema/-/json-schema-7.0.15.tgz", + "integrity": "sha512-5+fP8P8MFNC+AyZCDxrB2pkZFPGzqQWUzpSeuuVLvm8VMcorNYavBqoFcxK8bQz4Qsbn4oUEEem4wDLfcysGHA==" + }, + "node_modules/@types/json5": { + "version": "0.0.29", + "resolved": "https://registry.npmjs.org/@types/json5/-/json5-0.0.29.tgz", + "integrity": "sha512-dRLjCWHYg4oaA77cxO64oO+7JwCwnIzkZPdrrC71jQmQtlhM556pwKo5bUzqvZndkVbeFLIIi+9TC40JNF5hNQ==", + "dev": true + }, + "node_modules/@types/minimatch": { + "version": "5.1.2", + "resolved": "https://registry.npmjs.org/@types/minimatch/-/minimatch-5.1.2.tgz", + "integrity": "sha512-K0VQKziLUWkVKiRVrx4a40iPaxTUefQmjtkQofBkYRcoaaL/8rhwDWww9qWbrgicNOgnpIsMxyNIUM4+n6dUIA==", + "dev": true + }, + "node_modules/@types/node": { + "version": "22.9.0", + "resolved": "https://registry.npmjs.org/@types/node/-/node-22.9.0.tgz", + "integrity": "sha512-vuyHg81vvWA1Z1ELfvLko2c8f34gyA0zaic0+Rllc5lbCnbSyuvb2Oxpm6TAUAC/2xZN3QGqxBNggD1nNR2AfQ==", + "dependencies": { + "undici-types": "~6.19.8" + } + }, + "node_modules/@types/source-list-map": { + "version": "0.1.6", + "resolved": "https://registry.npmjs.org/@types/source-list-map/-/source-list-map-0.1.6.tgz", + "integrity": "sha512-5JcVt1u5HDmlXkwOD2nslZVllBBc7HDuOICfiZah2Z0is8M8g+ddAEawbmd3VjedfDHBzxCaXLs07QEmb7y54g==", + "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 + }, + "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, + "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, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/@types/webpack": { + "version": "4.41.40", + "resolved": "https://registry.npmjs.org/@types/webpack/-/webpack-4.41.40.tgz", + "integrity": "sha512-u6kMFSBM9HcoTpUXnL6mt2HSzftqb3JgYV6oxIgL2dl6sX6aCa5k6SOkzv5DuZjBTPUE/dJltKtwwuqrkZHpfw==", + "dev": 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": "3.2.3", + "resolved": "https://registry.npmjs.org/@types/webpack-sources/-/webpack-sources-3.2.3.tgz", + "integrity": "sha512-4nZOdMwSPHZ4pTEZzSp0AsTM4K7Qmu40UKW4tJDiOVs20UzYF9l+qUe4s0ftfN0pin06n+5cWWDJXH+sbhAiDw==", + "dev": true, + "dependencies": { + "@types/node": "*", + "@types/source-list-map": "*", + "source-map": "^0.7.3" + } + }, + "node_modules/@types/webpack-sources/node_modules/source-map": { + "version": "0.7.4", + "resolved": "https://registry.npmjs.org/source-map/-/source-map-0.7.4.tgz", + "integrity": "sha512-l3BikUxvPOcn5E74dZiq5BGsTb5yEwhaTSzccU6t4sDOH8NWJCstKO5QT2CvtFoK6F0saL7p9xHAqHOlCPJygA==", + "dev": true, + "engines": { + "node": ">= 8" + } + }, + "node_modules/@types/webpack/node_modules/anymatch": { + "version": "3.1.3", + "resolved": "https://registry.npmjs.org/anymatch/-/anymatch-3.1.3.tgz", + "integrity": "sha512-KMReFUr0B4t+D+OBkjR3KYqvocp2XaSzO55UcB6mgQMd3KbcE+mWTyvVV7D/zsdEbNnV6acZUutkiHQXvTr1Rw==", + "dev": true, + "dependencies": { + "normalize-path": "^3.0.0", + "picomatch": "^2.0.4" + }, + "engines": { + "node": ">= 8" + } + }, + "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, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/@types/yargs": { + "version": "13.0.12", + "resolved": "https://registry.npmjs.org/@types/yargs/-/yargs-13.0.12.tgz", + "integrity": "sha512-qCxJE1qgz2y0hA4pIxjBR+PelCH0U5CK1XJXFwCNqfmliatKp47UCXXE9Dyk1OXBDLvsCF57TqQEJaeLfDYEOQ==", + "dev": true, + "dependencies": { + "@types/yargs-parser": "*" + } + }, + "node_modules/@types/yargs-parser": { + "version": "21.0.3", + "resolved": "https://registry.npmjs.org/@types/yargs-parser/-/yargs-parser-21.0.3.tgz", + "integrity": "sha512-I4q9QU9MQv4oEOz4tAHJtNz1cwuLxn2F3xcc2iV5WdqLPpUnj30aUuxt1mAxYTG+oe8CZMV/+6rU4S4gRDzqtQ==", + "dev": true + }, + "node_modules/@types/yauzl": { + "version": "2.10.3", + "resolved": "https://registry.npmjs.org/@types/yauzl/-/yauzl-2.10.3.tgz", + "integrity": "sha512-oJoftv0LSuaDZE3Le4DbKX+KS9G36NzOeSap90UIK0yMA/NhKJhqlSGtNDORNRaIbQfzjXDrQa0ytJ6mNRGz/Q==", + "dev": true, + "optional": true, + "dependencies": { + "@types/node": "*" + } + }, + "node_modules/@typescript-eslint/experimental-utils": { + "version": "1.13.0", + "resolved": "https://registry.npmjs.org/@typescript-eslint/experimental-utils/-/experimental-utils-1.13.0.tgz", + "integrity": "sha512-zmpS6SyqG4ZF64ffaJ6uah6tWWWgZ8m+c54XXgwFtUv0jNz8aJAVx8chMCvnk7yl6xwn8d+d96+tWp7fXzTuDg==", + "dev": true, + "dependencies": { + "@types/json-schema": "^7.0.3", + "@typescript-eslint/typescript-estree": "1.13.0", + "eslint-scope": "^4.0.0" + }, + "engines": { + "node": "^6.14.0 || ^8.10.0 || >=9.10.0" + }, + "peerDependencies": { + "eslint": "*" + } + }, + "node_modules/@typescript-eslint/typescript-estree": { + "version": "1.13.0", + "resolved": "https://registry.npmjs.org/@typescript-eslint/typescript-estree/-/typescript-estree-1.13.0.tgz", + "integrity": "sha512-b5rCmd2e6DCC6tCTN9GSUAuxdYwCM/k/2wdjHGrIRGPSJotWMCe/dGpi66u42bhuh8q3QBzqM4TMA1GUUCJvdw==", + "dev": true, + "dependencies": { + "lodash.unescape": "4.0.1", + "semver": "5.5.0" + }, + "engines": { + "node": ">=6.14.0" + } + }, + "node_modules/@typescript-eslint/typescript-estree/node_modules/semver": { + "version": "5.5.0", + "resolved": "https://registry.npmjs.org/semver/-/semver-5.5.0.tgz", + "integrity": "sha512-4SJ3dm0WAwWy/NVeioZh5AntkdJoWKxHxcmyP622fOkgHa4z3R0TdBJICINyaSDE6uNwVc8gZr+ZinwZAH4xIA==", + "dev": true, + "bin": { + "semver": "bin/semver" + } + }, + "node_modules/@vernier/godirect": { + "version": "1.5.0", + "resolved": "https://registry.npmjs.org/@vernier/godirect/-/godirect-1.5.0.tgz", + "integrity": "sha512-vMS0fQubI3WSSLg1Ry3aey/qWCl9XoCsFzgwOWYkeJs45YxjPel+42pLh5pO7uP6oF47sjZUKx8kGOoTiiiirA==" + }, + "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==", + "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==" + }, + "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==" + }, + "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==" + }, + "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==", + "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==" + }, + "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==", + "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==" + }, + "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==", + "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==", + "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==", + "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==" + }, + "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==", + "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==", + "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==", + "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==", + "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==", + "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==", + "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==" + }, + "node_modules/@xtuc/long": { + "version": "4.2.2", + "resolved": "https://registry.npmjs.org/@xtuc/long/-/long-4.2.2.tgz", + "integrity": "sha512-NuHqBY1PB/D8xU6s/thBgOAiAP7HOYDQ32+BFZILJ8ivkUkAHQnWfn6WhL79Owj1qmUnoN/YPhktdIoucipkAQ==" + }, + "node_modules/abab": { + "version": "1.0.4", + "resolved": "https://registry.npmjs.org/abab/-/abab-1.0.4.tgz", + "integrity": "sha512-I+Wi+qiE2kUXyrRhNsWv6XsjUTBJjSoVSctKNBfLG5zG/Xe7Rjbxf13+vqYHNTwHaFU+FtSlVxOCTiMEVtPv0A==", + "deprecated": "Use your platform's native atob() and btoa() methods instead", + "dev": true + }, + "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==", + "dev": true, + "dependencies": { + "mime-types": "~2.1.34", + "negotiator": "0.6.3" + }, + "engines": { + "node": ">= 0.6" + } + }, + "node_modules/accepts/node_modules/negotiator": { + "version": "0.6.3", + "resolved": "https://registry.npmjs.org/negotiator/-/negotiator-0.6.3.tgz", + "integrity": "sha512-+EUsqGPLsM+j/zdChZjsnX51g4XrHFOIXwfnCVPGlQk/k5giakcKsuxCObBRu6DSm9opw/O6slWbJdghQM4bBg==", + "dev": true, + "engines": { + "node": ">= 0.6" + } + }, + "node_modules/acorn": { + "version": "6.4.2", + "resolved": "https://registry.npmjs.org/acorn/-/acorn-6.4.2.tgz", + "integrity": "sha512-XtGIhXwF8YM8bJhGxG5kXgjkEuNGLTkoYqVE+KMR+aspr4KGYmKYg7yUe3KghyQ9yheNwLnjmzh/7+gfDBmHCQ==", + "bin": { + "acorn": "bin/acorn" + }, + "engines": { + "node": ">=0.4.0" + } + }, + "node_modules/acorn-globals": { + "version": "3.1.0", + "resolved": "https://registry.npmjs.org/acorn-globals/-/acorn-globals-3.1.0.tgz", + "integrity": "sha512-uWttZCk96+7itPxK8xCzY86PnxKTMrReKDqrHzv42VQY0K30PUO8WY13WMOuI+cOdX4EIdzdvQ8k6jkuGRFMYw==", + "dev": true, + "dependencies": { + "acorn": "^4.0.4" + } + }, + "node_modules/acorn-globals/node_modules/acorn": { + "version": "4.0.13", + "resolved": "https://registry.npmjs.org/acorn/-/acorn-4.0.13.tgz", + "integrity": "sha512-fu2ygVGuMmlzG8ZeRJ0bvR41nsAkxxhbyk8bZ1SS521Z7vmgJFTQQlfz/Mp/nJexGBz+v8sC9bM6+lNgskt4Ug==", + "dev": true, + "bin": { + "acorn": "bin/acorn" + }, + "engines": { + "node": ">=0.4.0" + } + }, + "node_modules/acorn-jsx": { + "version": "5.3.2", + "resolved": "https://registry.npmjs.org/acorn-jsx/-/acorn-jsx-5.3.2.tgz", + "integrity": "sha512-rq9s+JNhf0IChjtDXxllJ7g41oZk5SlXtp0LHwyA5cejwn7vKmKp4pPri6YEePv2PU65sAsegbXtIinmDFDXgQ==", + "dev": true, + "peerDependencies": { + "acorn": "^6.0.0 || ^7.0.0 || ^8.0.0" + } + }, + "node_modules/agent-base": { + "version": "6.0.2", + "resolved": "https://registry.npmjs.org/agent-base/-/agent-base-6.0.2.tgz", + "integrity": "sha512-RZNwNclF7+MS/8bDg70amg32dyeZGZxiDuQmZxKLAlQjr3jGyLx+4Kkk58UO7D2QdgFIQCovuSuZESne6RG6XQ==", + "dev": true, + "dependencies": { + "debug": "4" + }, + "engines": { + "node": ">= 6.0.0" + } + }, + "node_modules/aggregate-error": { + "version": "3.1.0", + "resolved": "https://registry.npmjs.org/aggregate-error/-/aggregate-error-3.1.0.tgz", + "integrity": "sha512-4I7Td01quW/RpocfNayFdFVk1qSuoh0E7JrbRJ16nH01HhKFQ88INq9Sd+nd72zqRySlr9BmDA8xlEJ6vJMrYA==", + "dependencies": { + "clean-stack": "^2.0.0", + "indent-string": "^4.0.0" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/airbnb-prop-types": { + "version": "2.16.0", + "resolved": "https://registry.npmjs.org/airbnb-prop-types/-/airbnb-prop-types-2.16.0.tgz", + "integrity": "sha512-7WHOFolP/6cS96PhKNrslCLMYAI8yB1Pp6u6XmxozQOiZbsI5ycglZr5cHhBFfuRcQQjzCMith5ZPZdYiJCxUg==", + "deprecated": "This package has been renamed to 'prop-types-tools'", + "dev": true, + "dependencies": { + "array.prototype.find": "^2.1.1", + "function.prototype.name": "^1.1.2", + "is-regex": "^1.1.0", + "object-is": "^1.1.2", + "object.assign": "^4.1.0", + "object.entries": "^1.1.2", + "prop-types": "^15.7.2", + "prop-types-exact": "^1.2.0", + "react-is": "^16.13.1" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + }, + "peerDependencies": { + "react": "^0.14 || ^15.0.0 || ^16.0.0-alpha" + } + }, + "node_modules/ajv": { + "version": "6.12.6", + "resolved": "https://registry.npmjs.org/ajv/-/ajv-6.12.6.tgz", + "integrity": "sha512-j3fVLgvTo527anyYyJOGTYJbG+vnnQYvE0m5mmkc1TK+nxAppkCLMIL0aZ4dblVCNoGShhm+kzE4ZUykBoMg4g==", + "dependencies": { + "fast-deep-equal": "^3.1.1", + "fast-json-stable-stringify": "^2.0.0", + "json-schema-traverse": "^0.4.1", + "uri-js": "^4.2.2" + }, + "funding": { + "type": "github", + "url": "https://github.com/sponsors/epoberezkin" + } + }, + "node_modules/ajv-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==", + "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==", + "peerDependencies": { + "ajv": "^6.9.1" + } + }, + "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/ansi-escapes": { + "version": "3.2.0", + "resolved": "https://registry.npmjs.org/ansi-escapes/-/ansi-escapes-3.2.0.tgz", + "integrity": "sha512-cBhpre4ma+U0T1oM5fXg7Dy1Jw7zzwv7lt/GoCpr+hDQJoYnKVPLL4dCvSEFMmQurOQvSrwT7SL/DAlhBI97RQ==", + "dev": true, + "engines": { + "node": ">=4" + } + }, + "node_modules/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-regex": { + "version": "2.1.1", + "resolved": "https://registry.npmjs.org/ansi-regex/-/ansi-regex-2.1.1.tgz", + "integrity": "sha512-TIGnTpdo+E3+pCyAluZvtED5p5wCqLdezCyhPZzKPcxvFplEt4i+W7OONCKgeZFT3+y5NZZfOOS/Bdcanm1MYA==", + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/ansi-styles": { + "version": "2.2.1", + "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-2.2.1.tgz", + "integrity": "sha512-kmCevFghRiWM7HB5zTPULl4r9bVFSWjz62MhqizDGUrq2NWuNMQyuv4tHHoKJHs69M/MF64lEcHdYIocrdWQYA==", + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/anymatch": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/anymatch/-/anymatch-2.0.0.tgz", + "integrity": "sha512-5teOsQWABXHHBFP9y3skS5P3d/WfWXpv3FUpy+LorMrNYaT9pI4oLMQX7jzQ2KklNpGpWHzdCXTDT2Y3XGlZBw==", + "devOptional": true, + "dependencies": { + "micromatch": "^3.1.4", + "normalize-path": "^2.1.1" + } + }, + "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==", + "devOptional": true, + "dependencies": { + "remove-trailing-separator": "^1.0.1" + }, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/append-transform": { + "version": "0.4.0", + "resolved": "https://registry.npmjs.org/append-transform/-/append-transform-0.4.0.tgz", + "integrity": "sha512-Yisb7ew0ZEyDtRYQ+b+26o9KbiYPFxwcsxKzbssigzRRMJ9LpExPVUg6Fos7eP7yP3q7///tzze4nm4lTptPBw==", + "dev": true, + "dependencies": { + "default-require-extensions": "^1.0.0" + }, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/aproba": { + "version": "1.2.0", + "resolved": "https://registry.npmjs.org/aproba/-/aproba-1.2.0.tgz", + "integrity": "sha512-Y9J6ZjXtoYh8RnXVCMOU/ttDmk1aBjunq9vO0ta5x85WDQiQfUF9sIPBITdbiiIVcBo03Hi3jMxigBtsddlXRw==" + }, + "node_modules/archive-type": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/archive-type/-/archive-type-4.0.0.tgz", + "integrity": "sha512-zV4Ky0v1F8dBrdYElwTvQhweQ0P7Kwc1aluqJsYtOBP01jXcWCyW2IEfI1YiqsG+Iy7ZR+o5LF1N+PGECBxHWA==", + "dependencies": { + "file-type": "^4.2.0" + }, + "engines": { + "node": ">=4" + } + }, + "node_modules/archive-type/node_modules/file-type": { + "version": "4.4.0", + "resolved": "https://registry.npmjs.org/file-type/-/file-type-4.4.0.tgz", + "integrity": "sha512-f2UbFQEk7LXgWpi5ntcO86OeA/cC80fuDDDaX/fZ2ZGel+AF7leRQqBBW1eJNiiQkrZlAoM6P+VYP5P6bOlDEQ==", + "engines": { + "node": ">=4" + } + }, + "node_modules/argparse": { + "version": "1.0.10", + "resolved": "https://registry.npmjs.org/argparse/-/argparse-1.0.10.tgz", + "integrity": "sha512-o5Roy6tNG4SL/FOkCAN6RzjiakZS25RLYFrcMttJqbdd8BWrnA+fGz57iN5Pb06pvBGvl5gQ0B48dJlslXvoTg==", + "dependencies": { + "sprintf-js": "~1.0.2" + } + }, + "node_modules/arr-diff": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/arr-diff/-/arr-diff-4.0.0.tgz", + "integrity": "sha512-YVIQ82gZPGBebQV/a8dar4AitzCQs0jjXwMPZllpXMaGjXPYVUawSxQrRsjhjupyVxEvbHgUmIhKVlND+j02kA==", + "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==", + "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": "sha512-sKpyeERZ02v1FeCZT8lrfJq5u6goHCtpTAzPwJYe7c8SPFOboNjNg1vz2L4VTn9T4PQxEx13TbXLmYUcS6Ug7Q==", + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/array-buffer-byte-length": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/array-buffer-byte-length/-/array-buffer-byte-length-1.0.1.tgz", + "integrity": "sha512-ahC5W1xgou+KTXix4sAO8Ki12Q+jf4i0+tmk3sC+zgcynshkHxzpXdImBehiUYKKKDwvfFiJl1tZt6ewscS1Mg==", + "dev": true, + "dependencies": { + "call-bind": "^1.0.5", + "is-array-buffer": "^3.0.4" + }, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/array-equal": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/array-equal/-/array-equal-1.0.2.tgz", + "integrity": "sha512-gUHx76KtnhEgB3HOuFYiCm3FIdEs6ocM2asHvNTkfu/Y09qQVrrVVaOKENmS2KkSaGoxgXNqC+ZVtR/n0MOkSA==", + "dev": true, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/array-find": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/array-find/-/array-find-1.0.0.tgz", + "integrity": "sha512-kO/vVCacW9mnpn3WPWbTVlEnOabK2L7LWi2HViURtCM46y1zb6I8UMjx4LgbiqadTgHnLInUronwn3ampNTJtQ==", + "dev": true + }, + "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-includes": { + "version": "3.1.8", + "resolved": "https://registry.npmjs.org/array-includes/-/array-includes-3.1.8.tgz", + "integrity": "sha512-itaWrbYbqpGXkGhZPGUulwnhVf5Hpy1xiCFsGqyIGglbBxmG5vSjxQen3/WGOjPpNEv1RtBLKxbmVXm8HpJStQ==", + "dev": true, + "dependencies": { + "call-bind": "^1.0.7", + "define-properties": "^1.2.1", + "es-abstract": "^1.23.2", + "es-object-atoms": "^1.0.0", + "get-intrinsic": "^1.2.4", + "is-string": "^1.0.7" + }, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/array-union": { + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/array-union/-/array-union-2.1.0.tgz", + "integrity": "sha512-HGyxoOTYUyCM6stUe6EJgnd4EoewAI7zMdfqO+kGjnlZmBDz/cR5pf8r/cR4Wq60sL/p0IkcjUEEPwS3GFrIyw==", + "engines": { + "node": ">=8" + } + }, + "node_modules/array-uniq": { + "version": "1.0.3", + "resolved": "https://registry.npmjs.org/array-uniq/-/array-uniq-1.0.3.tgz", + "integrity": "sha512-MNha4BWQ6JbwhFhj03YK552f7cb3AzoE8SzeljgChvL1dl3IcvggXVz1DilzySZkCja+CXuZbdW7yATchWn8/Q==", + "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": "sha512-SleRWjh9JUud2wH1hPs9rZBZ33H6T9HOiL0uwGnGx9FpE6wKGyfWugmbkEOIs6qWrZhg0LWeLziLrEwQJhs5mQ==", + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/array.prototype.filter": { + "version": "1.0.4", + "resolved": "https://registry.npmjs.org/array.prototype.filter/-/array.prototype.filter-1.0.4.tgz", + "integrity": "sha512-r+mCJ7zXgXElgR4IRC+fkvNCeoaavWBs6EdCso5Tbcf+iEMKzBU/His60lt34WEZ9vlb8wDkZvQGcVI5GwkfoQ==", + "dev": true, + "dependencies": { + "call-bind": "^1.0.7", + "define-properties": "^1.2.1", + "es-abstract": "^1.23.2", + "es-array-method-boxes-properly": "^1.0.0", + "es-object-atoms": "^1.0.0", + "is-string": "^1.0.7" + }, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/array.prototype.find": { + "version": "2.2.3", + "resolved": "https://registry.npmjs.org/array.prototype.find/-/array.prototype.find-2.2.3.tgz", + "integrity": "sha512-fO/ORdOELvjbbeIfZfzrXFMhYHGofRGqd+am9zm3tZ4GlJINj/pA2eITyfd65Vg6+ZbHd/Cys7stpoRSWtQFdA==", + "dev": true, + "dependencies": { + "call-bind": "^1.0.7", + "define-properties": "^1.2.1", + "es-abstract": "^1.23.2", + "es-object-atoms": "^1.0.0", + "es-shim-unscopables": "^1.0.2" + }, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/array.prototype.flat": { + "version": "1.3.2", + "resolved": "https://registry.npmjs.org/array.prototype.flat/-/array.prototype.flat-1.3.2.tgz", + "integrity": "sha512-djYB+Zx2vLewY8RWlNCUdHjDXs2XOgm602S9E7P/UpHgfeHL00cRiIF+IN/G/aUJ7kGPb6yO/ErDI5V2s8iycA==", + "dev": true, + "dependencies": { + "call-bind": "^1.0.2", + "define-properties": "^1.2.0", + "es-abstract": "^1.22.1", + "es-shim-unscopables": "^1.0.0" + }, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/array.prototype.flatmap": { + "version": "1.3.2", + "resolved": "https://registry.npmjs.org/array.prototype.flatmap/-/array.prototype.flatmap-1.3.2.tgz", + "integrity": "sha512-Ewyx0c9PmpcsByhSW4r+9zDU7sGjFc86qf/kKtuSCRdhfbk0SNLLkaT5qvcHnRGgc5NP/ly/y+qkXkqONX54CQ==", + "dev": true, + "dependencies": { + "call-bind": "^1.0.2", + "define-properties": "^1.2.0", + "es-abstract": "^1.22.1", + "es-shim-unscopables": "^1.0.0" + }, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/array.prototype.reduce": { + "version": "1.0.7", + "resolved": "https://registry.npmjs.org/array.prototype.reduce/-/array.prototype.reduce-1.0.7.tgz", + "integrity": "sha512-mzmiUCVwtiD4lgxYP8g7IYy8El8p2CSMePvIbTS7gchKir/L1fgJrk0yDKmAX6mnRQFKNADYIk8nNlTris5H1Q==", + "dev": true, + "dependencies": { + "call-bind": "^1.0.7", + "define-properties": "^1.2.1", + "es-abstract": "^1.23.2", + "es-array-method-boxes-properly": "^1.0.0", + "es-errors": "^1.3.0", + "es-object-atoms": "^1.0.0", + "is-string": "^1.0.7" + }, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/arraybuffer-loader": { + "version": "1.0.8", + "resolved": "https://registry.npmjs.org/arraybuffer-loader/-/arraybuffer-loader-1.0.8.tgz", + "integrity": "sha512-CwUVCcxCgcgZUu2w741OV6Xj1tvRVQebq22RCyGXiLgJOJ4e4M/59EPYdtK2MLfIN28t1TDvuh2ojstNq3Kh5g==", + "dependencies": { + "loader-utils": "^1.1.0" + }, + "engines": { + "node": ">= 4.0.0" + } + }, + "node_modules/arraybuffer.prototype.slice": { + "version": "1.0.3", + "resolved": "https://registry.npmjs.org/arraybuffer.prototype.slice/-/arraybuffer.prototype.slice-1.0.3.tgz", + "integrity": "sha512-bMxMKAjg13EBSVscxTaYA4mRc5t1UAXa2kXiGTNfZ079HIWXEkKmkgFrh/nJqamaLSrXO5H4WFFkPEaLJWbs3A==", + "dev": true, + "dependencies": { + "array-buffer-byte-length": "^1.0.1", + "call-bind": "^1.0.5", + "define-properties": "^1.2.1", + "es-abstract": "^1.22.3", + "es-errors": "^1.2.1", + "get-intrinsic": "^1.2.3", + "is-array-buffer": "^3.0.4", + "is-shared-array-buffer": "^1.0.2" + }, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/arrify": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/arrify/-/arrify-1.0.1.tgz", + "integrity": "sha512-3CYzex9M9FGQjCGMGyi6/31c8GJbgb0qGyrx5HWxPd0aCwh4cB2YjMb2Xf9UuoogrMrlO9cTqnB5rI5GHZTcUA==", + "dev": true, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/asap": { + "version": "2.0.6", + "resolved": "https://registry.npmjs.org/asap/-/asap-2.0.6.tgz", + "integrity": "sha512-BSHWgDSAiKs50o2Re8ppvp3seVHXSRM44cdSsT9FfNEUUZLOGWVCsiWaRPWM1Znn+mqZ1OfVZ3z3DWEzSp7hRA==", + "dev": true + }, + "node_modules/asn1": { + "version": "0.2.6", + "resolved": "https://registry.npmjs.org/asn1/-/asn1-0.2.6.tgz", + "integrity": "sha512-ix/FxPn0MDjeyJ7i/yoHGFt/EX6LyNbxSEhPPXODPL+KB0VPk86UYfL0lMdy+KCnv+fmvIzySwaK5COwqVbWTQ==", + "dependencies": { + "safer-buffer": "~2.1.0" + } + }, + "node_modules/asn1.js": { + "version": "4.10.1", + "resolved": "https://registry.npmjs.org/asn1.js/-/asn1.js-4.10.1.tgz", + "integrity": "sha512-p32cOF5q0Zqs9uBiONKYLm6BClCoBCM5O9JfeUSlnQLBTxYdTK+pW+nXflm8UkKd2UYlEbYz5qEi0JuZR9ckSw==", + "dependencies": { + "bn.js": "^4.0.0", + "inherits": "^2.0.1", + "minimalistic-assert": "^1.0.0" + } + }, + "node_modules/asn1.js/node_modules/bn.js": { + "version": "4.12.1", + "resolved": "https://registry.npmjs.org/bn.js/-/bn.js-4.12.1.tgz", + "integrity": "sha512-k8TVBiPkPJT9uHLdOKfFpqcfprwBFOAAXXozRubr7R7PfIuKvQlzcI4M0pALeqXN09vdaMbUdUj+pass+uULAg==" + }, + "node_modules/assert": { + "version": "1.5.1", + "resolved": "https://registry.npmjs.org/assert/-/assert-1.5.1.tgz", + "integrity": "sha512-zzw1uCAgLbsKwBfFc8CX78DDg+xZeBksSO3vwVIDDN5i94eOrPsSSyiVhmsSABFDM/OcpE2aagCat9dnWQLG1A==", + "dependencies": { + "object.assign": "^4.1.4", + "util": "^0.10.4" + } + }, + "node_modules/assert-plus": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/assert-plus/-/assert-plus-1.0.0.tgz", + "integrity": "sha512-NfJ4UzBCcQGLDlQq7nHxH+tv3kyZ0hHQqF5BO6J7tNJeP5do1llPr8dZ8zHonfhAu0PHAdMkSo+8o0wxg9lZWw==", + "engines": { + "node": ">=0.8" + } + }, + "node_modules/assert/node_modules/inherits": { + "version": "2.0.3", + "resolved": "https://registry.npmjs.org/inherits/-/inherits-2.0.3.tgz", + "integrity": "sha512-x00IRNXNy63jwGkJmzPigoySHbaqpNuzKbBOmzK+g2OdZpQ9w+sxCN+VSB3ja7IAge2OP2qpfxTjeNcyjmW1uw==" + }, + "node_modules/assert/node_modules/util": { + "version": "0.10.4", + "resolved": "https://registry.npmjs.org/util/-/util-0.10.4.tgz", + "integrity": "sha512-0Pm9hTQ3se5ll1XihRic3FDIku70C+iHUdT/W926rSgHV5QgXsYbKZN8MSC3tJtSkhuROzvsQjAaFENRXr+19A==", + "dependencies": { + "inherits": "2.0.3" + } + }, + "node_modules/assign-symbols": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/assign-symbols/-/assign-symbols-1.0.0.tgz", + "integrity": "sha512-Q+JC7Whu8HhmTdBph/Tq59IoRtoy6KAm5zzPv00WdujX82lbAL8K7WVjne7vdCsAmbF4AYaDOPyO3k0kl8qIrw==", + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/astral-regex": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/astral-regex/-/astral-regex-1.0.0.tgz", + "integrity": "sha512-+Ryf6g3BKoRc7jfp7ad8tM4TtMiaWvbF/1/sQcZPkkS7ag3D5nMBCe2UfOTONtAkaG0tO0ij3C5Lwmf1EiyjHg==", + "dev": true, + "engines": { + "node": ">=4" + } + }, + "node_modules/async": { + "version": "2.6.4", + "resolved": "https://registry.npmjs.org/async/-/async-2.6.4.tgz", + "integrity": "sha512-mzo5dfJYwAn29PeiJ0zvwTo04zj8HDJj0Mn8TD7sno7q12prdbnasKJHhkm2c1LgrhlJ0teaea8860oxi51mGA==", + "dev": true, + "dependencies": { + "lodash": "^4.17.14" + } + }, + "node_modules/async-each": { + "version": "1.0.6", + "resolved": "https://registry.npmjs.org/async-each/-/async-each-1.0.6.tgz", + "integrity": "sha512-c646jH1avxr+aVpndVMeAfYw7wAa6idufrlN3LPA4PmKS0QEGp6PIC9nwz0WQkkvBGAMEki3pFdtxaF39J9vvg==", + "devOptional": true, + "funding": [ + { + "type": "individual", + "url": "https://paulmillr.com/funding/" + } + ] + }, + "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": "sha512-Oei9OH4tRh0YqU3GxhX79dM/mwVgvbZJaSNaRk+bshkj0S5cfHcgYakreBjrHwatXKbz+IoIdYLxrKim2MjW0Q==" + }, + "node_modules/atob": { + "version": "2.1.2", + "resolved": "https://registry.npmjs.org/atob/-/atob-2.1.2.tgz", + "integrity": "sha512-Wm6ukoaOGJi/73p/cl2GvLjTI5JM1k/O14isD73YML8StrH/7/lRFgmg8nICZgD3bZZvjwCGxtMOD3wWNAu8cg==", + "bin": { + "atob": "bin/atob.js" + }, + "engines": { + "node": ">= 4.5.0" + } + }, + "node_modules/audio-context": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/audio-context/-/audio-context-1.0.1.tgz", + "integrity": "sha512-b7ZmHGyjcAI3KmshPa4YSPxPbjglZQtKfZtzqhUfE3VeoANTsNffywkmujI32Sj31Aku/aB9s3BW4r3nmTF88g==", + "deprecated": "Depends on Web-Audio-API implementation. Use either web-audio-api, web-audio-js or web-audio-engine package.", + "dependencies": { + "global": "^4.3.1" + } + }, + "node_modules/automation-events": { + "version": "7.1.4", + "resolved": "https://registry.npmjs.org/automation-events/-/automation-events-7.1.4.tgz", + "integrity": "sha512-KCkUSGBKlZz2DTnjzHLnPzlTayExlkeIrzIgq5OqZgwvZsmgSsyQOXv/L+r8P14yR69xfSnwL2FmmzSCzI9o/g==", + "dependencies": { + "@babel/runtime": "^7.26.0", + "tslib": "^2.8.1" + }, + "engines": { + "node": ">=18.2.0" + } + }, + "node_modules/autoprefixer": { + "version": "9.8.8", + "resolved": "https://registry.npmjs.org/autoprefixer/-/autoprefixer-9.8.8.tgz", + "integrity": "sha512-eM9d/swFopRt5gdJ7jrpCwgvEMIayITpojhkkSMRsFHYuH5bkSQ4p/9qTEHtmNudUZh22Tehu7I6CxAW0IXTKA==", + "dependencies": { + "browserslist": "^4.12.0", + "caniuse-lite": "^1.0.30001109", + "normalize-range": "^0.1.2", + "num2fraction": "^1.2.2", + "picocolors": "^0.2.1", + "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/autoprefixer/node_modules/picocolors": { + "version": "0.2.1", + "resolved": "https://registry.npmjs.org/picocolors/-/picocolors-0.2.1.tgz", + "integrity": "sha512-cMlDqaLEqfSaW8Z7N5Jw+lyIW869EzT73/F5lhtY9cLGoVxSXznfgfXMO0Z5K0o0Q2TkTXq+0KFsdnSe3jDViA==" + }, + "node_modules/available-typed-arrays": { + "version": "1.0.7", + "resolved": "https://registry.npmjs.org/available-typed-arrays/-/available-typed-arrays-1.0.7.tgz", + "integrity": "sha512-wvUjBtSGN7+7SjNpq/9M2Tg350UZD3q62IFZLbRAR1bSMlCo1ZaeW+BJ+D090e4hIIZLBcTDWe4Mh4jvUDajzQ==", + "dev": true, + "dependencies": { + "possible-typed-array-names": "^1.0.0" + }, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/aws-sign2": { + "version": "0.7.0", + "resolved": "https://registry.npmjs.org/aws-sign2/-/aws-sign2-0.7.0.tgz", + "integrity": "sha512-08kcGqnYf/YmjoRhfxyu+CLxBjUtHLXLXX/vUfx9l2LYzG3c1m61nrpyFUZI6zeS+Li/wWMMidD9KgrqtGq3mA==", + "engines": { + "node": "*" + } + }, + "node_modules/aws4": { + "version": "1.13.2", + "resolved": "https://registry.npmjs.org/aws4/-/aws4-1.13.2.tgz", + "integrity": "sha512-lHe62zvbTB5eEABUVi/AwVh0ZKY9rMMDhmm+eeyuuUQbQ3+J+fONVQOZyj+DdrvD4BY33uYniyRJ4UJIaSKAfw==" + }, + "node_modules/axios": { + "version": "0.27.2", + "resolved": "https://registry.npmjs.org/axios/-/axios-0.27.2.tgz", + "integrity": "sha512-t+yRIyySRTp/wua5xEr+z1q60QmLq8ABsS5O9Me1AsE5dfKqgnCFzwiCZZ/cGNd1lq4/7akDWMxdhVlucjmnOQ==", + "dev": true, + "dependencies": { + "follow-redirects": "^1.14.9", + "form-data": "^4.0.0" + } + }, + "node_modules/babel-code-frame": { + "version": "6.26.0", + "resolved": "https://registry.npmjs.org/babel-code-frame/-/babel-code-frame-6.26.0.tgz", + "integrity": "sha512-XqYMR2dfdGMW+hd0IUZ2PwK+fGeFkOxZJ0wY+JaQAHzt1Zx8LcvpiZD2NiGkEG8qx0CfkAOr5xt76d1e8vG90g==", + "dependencies": { + "chalk": "^1.1.3", + "esutils": "^2.0.2", + "js-tokens": "^3.0.2" + } + }, + "node_modules/babel-code-frame/node_modules/js-tokens": { + "version": "3.0.2", + "resolved": "https://registry.npmjs.org/js-tokens/-/js-tokens-3.0.2.tgz", + "integrity": "sha512-RjTcuD4xjtthQkaWH7dFlH85L+QaVtSoOyGdZ3g6HFhS9dFNDfLyqgm2NFe2X6cQpeFmt0452FJjFG5UameExg==" + }, + "node_modules/babel-core": { + "version": "7.0.0-bridge.0", + "resolved": "https://registry.npmjs.org/babel-core/-/babel-core-7.0.0-bridge.0.tgz", + "integrity": "sha512-poPX9mZH/5CSanm50Q+1toVci6pv5KSRv/5TWCwtzQS5XEwn40BcCrgIeMFWP9CKKIniKXNxoIOnOq4VVlGXhg==", + "dev": true, + "peerDependencies": { + "@babel/core": "^7.0.0-0" + } + }, + "node_modules/babel-eslint": { + "version": "10.0.3", + "resolved": "https://registry.npmjs.org/babel-eslint/-/babel-eslint-10.0.3.tgz", + "integrity": "sha512-z3U7eMY6r/3f3/JB9mTsLjyxrv0Yb1zb8PCWCLpguxfCzBIZUwy23R1t/XKewP+8mEN2Ck8Dtr4q20z6ce6SoA==", + "deprecated": "babel-eslint is now @babel/eslint-parser. This package will no longer receive updates.", + "dev": true, + "dependencies": { + "@babel/code-frame": "^7.0.0", + "@babel/parser": "^7.0.0", + "@babel/traverse": "^7.0.0", + "@babel/types": "^7.0.0", + "eslint-visitor-keys": "^1.0.0", + "resolve": "^1.12.0" + }, + "engines": { + "node": ">=6" + }, + "peerDependencies": { + "eslint": ">= 4.12.1" + } + }, + "node_modules/babel-generator": { + "version": "6.26.1", + "resolved": "https://registry.npmjs.org/babel-generator/-/babel-generator-6.26.1.tgz", + "integrity": "sha512-HyfwY6ApZj7BYTcJURpM5tznulaBvyio7/0d4zFOeMPUmfxkCjHocCuoLa2SAGzBI8AREcH3eP3758F672DppA==", + "dev": true, + "dependencies": { + "babel-messages": "^6.23.0", + "babel-runtime": "^6.26.0", + "babel-types": "^6.26.0", + "detect-indent": "^4.0.0", + "jsesc": "^1.3.0", + "lodash": "^4.17.4", + "source-map": "^0.5.7", + "trim-right": "^1.0.1" + } + }, + "node_modules/babel-generator/node_modules/jsesc": { + "version": "1.3.0", + "resolved": "https://registry.npmjs.org/jsesc/-/jsesc-1.3.0.tgz", + "integrity": "sha512-Mke0DA0QjUWuJlhsE0ZPPhYiJkRap642SmI/4ztCFaUs6V2AiH1sfecc+57NgaryfAA2VR3v6O+CSjC1jZJKOA==", + "dev": true, + "bin": { + "jsesc": "bin/jsesc" + } + }, + "node_modules/babel-helpers": { + "version": "6.24.1", + "resolved": "https://registry.npmjs.org/babel-helpers/-/babel-helpers-6.24.1.tgz", + "integrity": "sha512-n7pFrqQm44TCYvrCDb0MqabAF+JUBq+ijBvNMUxpkLjJaAu32faIexewMumrH5KLLJ1HDyT0PTEqRyAe/GwwuQ==", + "dev": true, + "dependencies": { + "babel-runtime": "^6.22.0", + "babel-template": "^6.24.1" + } + }, + "node_modules/babel-jest": { + "version": "21.2.0", + "resolved": "https://registry.npmjs.org/babel-jest/-/babel-jest-21.2.0.tgz", + "integrity": "sha512-O0W2qLoWu1QOoOGgxiR2JID4O6WSpxPiQanrkyi9SSlM0PJ60Ptzlck47lhtnr9YZO3zYOsxHwnyeWJ6AffoBQ==", + "dev": true, + "dependencies": { + "babel-plugin-istanbul": "^4.0.0", + "babel-preset-jest": "^21.2.0" + }, + "peerDependencies": { + "babel-core": "^6.0.0 || ^7.0.0-alpha || ^7.0.0-beta || ^7.0.0" + } + }, + "node_modules/babel-loader": { + "version": "8.2.2", + "resolved": "https://registry.npmjs.org/babel-loader/-/babel-loader-8.2.2.tgz", + "integrity": "sha512-JvTd0/D889PQBtUXJ2PXaKU/pjZDMtHA9V2ecm+eNRmmBCMR09a+fmpGTNwnJtFmFl5Ei7Vy47LjBb+L0wQ99g==", + "dev": true, + "dependencies": { + "find-cache-dir": "^3.3.1", + "loader-utils": "^1.4.0", + "make-dir": "^3.1.0", + "schema-utils": "^2.6.5" + }, + "engines": { + "node": ">= 8.9" + }, + "peerDependencies": { + "@babel/core": "^7.0.0", + "webpack": ">=2" + } + }, + "node_modules/babel-loader/node_modules/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/babel-messages": { + "version": "6.23.0", + "resolved": "https://registry.npmjs.org/babel-messages/-/babel-messages-6.23.0.tgz", + "integrity": "sha512-Bl3ZiA+LjqaMtNYopA9TYE9HP1tQ+E5dLxE0XrAzcIJeK2UqF0/EaqXwBn9esd4UmTfEab+P+UYQ1GnioFIb/w==", + "dev": true, + "dependencies": { + "babel-runtime": "^6.22.0" + } + }, + "node_modules/babel-plugin-istanbul": { + "version": "4.1.6", + "resolved": "https://registry.npmjs.org/babel-plugin-istanbul/-/babel-plugin-istanbul-4.1.6.tgz", + "integrity": "sha512-PWP9FQ1AhZhS01T/4qLSKoHGY/xvkZdVBGlKM/HuxxS3+sC66HhTNR7+MpbO/so/cz/wY94MeSWJuP1hXIPfwQ==", + "dev": true, + "dependencies": { + "babel-plugin-syntax-object-rest-spread": "^6.13.0", + "find-up": "^2.1.0", + "istanbul-lib-instrument": "^1.10.1", + "test-exclude": "^4.2.1" + } + }, + "node_modules/babel-plugin-jest-hoist": { + "version": "21.2.0", + "resolved": "https://registry.npmjs.org/babel-plugin-jest-hoist/-/babel-plugin-jest-hoist-21.2.0.tgz", + "integrity": "sha512-yi5QuiVyyvhBUDLP4ButAnhYzkdrUwWDtvUJv71hjH3fclhnZg4HkDeqaitcR2dZZx/E67kGkRcPVjtVu+SJfQ==", + "dev": true + }, + "node_modules/babel-plugin-polyfill-corejs2": { + "version": "0.2.3", + "resolved": "https://registry.npmjs.org/babel-plugin-polyfill-corejs2/-/babel-plugin-polyfill-corejs2-0.2.3.tgz", + "integrity": "sha512-NDZ0auNRzmAfE1oDDPW2JhzIMXUk+FFe2ICejmt5T4ocKgiQx3e0VCRx9NCAidcMtL2RUZaWtXnmjTCkx0tcbA==", + "dev": true, + "dependencies": { + "@babel/compat-data": "^7.13.11", + "@babel/helper-define-polyfill-provider": "^0.2.4", + "semver": "^6.1.1" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" + } + }, + "node_modules/babel-plugin-polyfill-corejs3": { + "version": "0.2.5", + "resolved": "https://registry.npmjs.org/babel-plugin-polyfill-corejs3/-/babel-plugin-polyfill-corejs3-0.2.5.tgz", + "integrity": "sha512-ninF5MQNwAX9Z7c9ED+H2pGt1mXdP4TqzlHKyPIYmJIYz0N+++uwdM7RnJukklhzJ54Q84vA4ZJkgs7lu5vqcw==", + "dev": true, + "dependencies": { + "@babel/helper-define-polyfill-provider": "^0.2.2", + "core-js-compat": "^3.16.2" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" + } + }, + "node_modules/babel-plugin-polyfill-regenerator": { + "version": "0.2.3", + "resolved": "https://registry.npmjs.org/babel-plugin-polyfill-regenerator/-/babel-plugin-polyfill-regenerator-0.2.3.tgz", + "integrity": "sha512-JVE78oRZPKFIeUqFGrSORNzQnrDwZR16oiWeGM8ZyjBn2XAT5OjP+wXx5ESuo33nUsFUEJYjtklnsKbxW5L+7g==", + "dev": true, + "dependencies": { + "@babel/helper-define-polyfill-provider": "^0.2.4" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" + } + }, + "node_modules/babel-plugin-react-intl": { + "version": "3.5.1", + "resolved": "https://registry.npmjs.org/babel-plugin-react-intl/-/babel-plugin-react-intl-3.5.1.tgz", + "integrity": "sha512-1jlEJCSmLaJM4tjIKpu64UZ833COCHmwR77bFJDOye+zlwf80uR1b8p41l4tClx1QsrfI+qV6w/5AiPYQgaMUQ==", + "deprecated": "this package has been renamed to babel-plugin-formatjs", + "dependencies": { + "@babel/core": "^7.4.5", + "@babel/helper-plugin-utils": "^7.0.0", + "@types/babel__core": "^7.1.2", + "fs-extra": "^8.0.1", + "intl-messageformat-parser": "^1.8.1" + } + }, + "node_modules/babel-plugin-syntax-object-rest-spread": { + "version": "6.13.0", + "resolved": "https://registry.npmjs.org/babel-plugin-syntax-object-rest-spread/-/babel-plugin-syntax-object-rest-spread-6.13.0.tgz", + "integrity": "sha512-C4Aq+GaAj83pRQ0EFgTvw5YO6T3Qz2KGrNRwIj9mSoNHVvdZY4KO2uA6HNtNXCw993iSZnckY1aLW8nOi8i4+w==", + "dev": true + }, + "node_modules/babel-preset-jest": { + "version": "21.2.0", + "resolved": "https://registry.npmjs.org/babel-preset-jest/-/babel-preset-jest-21.2.0.tgz", + "integrity": "sha512-hm9cBnr2h3J7yXoTtAVV0zg+3vg0Q/gT2GYuzlreTU0EPkJRtlNgKJJ3tBKEn0+VjAi3JykV6xCJkuUYttEEfA==", + "dev": true, + "dependencies": { + "babel-plugin-jest-hoist": "^21.2.0", + "babel-plugin-syntax-object-rest-spread": "^6.13.0" + } + }, + "node_modules/babel-register": { + "version": "6.26.0", + "resolved": "https://registry.npmjs.org/babel-register/-/babel-register-6.26.0.tgz", + "integrity": "sha512-veliHlHX06wjaeY8xNITbveXSiI+ASFnOqvne/LaIJIqOWi2Ogmj91KOugEz/hoh/fwMhXNBJPCv8Xaz5CyM4A==", + "dev": true, + "dependencies": { + "babel-core": "^6.26.0", + "babel-runtime": "^6.26.0", + "core-js": "^2.5.0", + "home-or-tmp": "^2.0.0", + "lodash": "^4.17.4", + "mkdirp": "^0.5.1", + "source-map-support": "^0.4.15" + } + }, + "node_modules/babel-register/node_modules/babel-core": { + "version": "6.26.3", + "resolved": "https://registry.npmjs.org/babel-core/-/babel-core-6.26.3.tgz", + "integrity": "sha512-6jyFLuDmeidKmUEb3NM+/yawG0M2bDZ9Z1qbZP59cyHLz8kYGKYwpJP0UwUKKUiTRNvxfLesJnTedqczP7cTDA==", + "dev": true, + "dependencies": { + "babel-code-frame": "^6.26.0", + "babel-generator": "^6.26.0", + "babel-helpers": "^6.24.1", + "babel-messages": "^6.23.0", + "babel-register": "^6.26.0", + "babel-runtime": "^6.26.0", + "babel-template": "^6.26.0", + "babel-traverse": "^6.26.0", + "babel-types": "^6.26.0", + "babylon": "^6.18.0", + "convert-source-map": "^1.5.1", + "debug": "^2.6.9", + "json5": "^0.5.1", + "lodash": "^4.17.4", + "minimatch": "^3.0.4", + "path-is-absolute": "^1.0.1", + "private": "^0.1.8", + "slash": "^1.0.0", + "source-map": "^0.5.7" + } + }, + "node_modules/babel-register/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/babel-register/node_modules/json5": { + "version": "0.5.1", + "resolved": "https://registry.npmjs.org/json5/-/json5-0.5.1.tgz", + "integrity": "sha512-4xrs1aW+6N5DalkqSVA8fxh458CXvR99WU8WLKmq4v8eWAL86Xo3BVqyd3SkA9wEVjCMqyvvRRkshAdOnBp5rw==", + "dev": true, + "bin": { + "json5": "lib/cli.js" + } + }, + "node_modules/babel-register/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==", + "dev": true, + "dependencies": { + "minimist": "^1.2.6" + }, + "bin": { + "mkdirp": "bin/cmd.js" + } + }, + "node_modules/babel-register/node_modules/ms": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/ms/-/ms-2.0.0.tgz", + "integrity": "sha512-Tpp60P6IUJDTuOq/5Z8cdskzJujfwqfOTkrwIwj7IRISpnkJnT6SyJ4PCPnGMoFjC9ddhal5KVIYtAt97ix05A==", + "dev": true + }, + "node_modules/babel-register/node_modules/slash": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/slash/-/slash-1.0.0.tgz", + "integrity": "sha512-3TYDR7xWt4dIqV2JauJr+EJeW356RXijHeUlO+8djJ+uBXPn8/2dpzBc8yQhh583sVvc9CvFAeQVgijsH+PNNg==", + "dev": true, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/babel-register/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/babel-runtime": { + "version": "6.26.0", + "resolved": "https://registry.npmjs.org/babel-runtime/-/babel-runtime-6.26.0.tgz", + "integrity": "sha512-ITKNuq2wKlW1fJg9sSW52eepoYgZBggvOAHC0u/CYu/qxQ9EVzThCgR69BnSXLHjy2f7SY5zaQ4yt7H9ZVxY2g==", + "dependencies": { + "core-js": "^2.4.0", + "regenerator-runtime": "^0.11.0" + } + }, + "node_modules/babel-template": { + "version": "6.26.0", + "resolved": "https://registry.npmjs.org/babel-template/-/babel-template-6.26.0.tgz", + "integrity": "sha512-PCOcLFW7/eazGUKIoqH97sO9A2UYMahsn/yRQ7uOk37iutwjq7ODtcTNF+iFDSHNfkctqsLRjLP7URnOx0T1fg==", + "dev": true, + "dependencies": { + "babel-runtime": "^6.26.0", + "babel-traverse": "^6.26.0", + "babel-types": "^6.26.0", + "babylon": "^6.18.0", + "lodash": "^4.17.4" + } + }, + "node_modules/babel-traverse": { + "version": "6.26.0", + "resolved": "https://registry.npmjs.org/babel-traverse/-/babel-traverse-6.26.0.tgz", + "integrity": "sha512-iSxeXx7apsjCHe9c7n8VtRXGzI2Bk1rBSOJgCCjfyXb6v1aCqE1KSEpq/8SXuVN8Ka/Rh1WDTF0MDzkvTA4MIA==", + "dev": true, + "dependencies": { + "babel-code-frame": "^6.26.0", + "babel-messages": "^6.23.0", + "babel-runtime": "^6.26.0", + "babel-types": "^6.26.0", + "babylon": "^6.18.0", + "debug": "^2.6.8", + "globals": "^9.18.0", + "invariant": "^2.2.2", + "lodash": "^4.17.4" + } + }, + "node_modules/babel-traverse/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/babel-traverse/node_modules/globals": { + "version": "9.18.0", + "resolved": "https://registry.npmjs.org/globals/-/globals-9.18.0.tgz", + "integrity": "sha512-S0nG3CLEQiY/ILxqtztTWH/3iRRdyBLw6KMDxnKMchrtbj2OFmehVh0WUCfW3DUrIgx/qFrJPICrq4Z4sTR9UQ==", + "dev": true, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/babel-traverse/node_modules/ms": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/ms/-/ms-2.0.0.tgz", + "integrity": "sha512-Tpp60P6IUJDTuOq/5Z8cdskzJujfwqfOTkrwIwj7IRISpnkJnT6SyJ4PCPnGMoFjC9ddhal5KVIYtAt97ix05A==", + "dev": true + }, + "node_modules/babel-types": { + "version": "6.26.0", + "resolved": "https://registry.npmjs.org/babel-types/-/babel-types-6.26.0.tgz", + "integrity": "sha512-zhe3V/26rCWsEZK8kZN+HaQj5yQ1CilTObixFzKW1UWjqG7618Twz6YEsCnjfg5gBcJh02DrpCkS9h98ZqDY+g==", + "dev": true, + "dependencies": { + "babel-runtime": "^6.26.0", + "esutils": "^2.0.2", + "lodash": "^4.17.4", + "to-fast-properties": "^1.0.3" + } + }, + "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/balanced-match": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/balanced-match/-/balanced-match-1.0.2.tgz", + "integrity": "sha512-3oSeUO0TMV67hN1AmbXsK4yaqU7tjiHlbxRDZOpH0KW9+CeX4bRAaX0Anxt0tx2MrpRpWwQaPwIlISEJhYU5Pw==" + }, + "node_modules/base": { + "version": "0.11.2", + "resolved": "https://registry.npmjs.org/base/-/base-0.11.2.tgz", + "integrity": "sha512-5T6P4xPgpp0YDFvSWwEZ4NoE3aM4QBQXDzmVbraCkFj8zHM+mba8SyqB5DbZWyR7mYHo6Y7BdQo3MoA4m0TeQg==", + "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": "sha512-cZTYKFWspt9jZsMscWo8sc/5lbPC9Q0N5nBLgb+Yd915iL3udB1uFgS3B8YCx66UVHq018DAVFoee7x+gxggeA==", + "dependencies": { + "is-descriptor": "^1.0.0" + }, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/base64-js": { + "version": "1.5.1", + "resolved": "https://registry.npmjs.org/base64-js/-/base64-js-1.5.1.tgz", + "integrity": "sha512-AKpaYlHn8t4SVbOHCy+b5+KKgvR4vrsD8vbvrbiQJps7fKDTkjkDry6ji0rUJjC0kzbNePLwzxq8iypo41qeWA==", + "funding": [ + { + "type": "github", + "url": "https://github.com/sponsors/feross" + }, + { + "type": "patreon", + "url": "https://www.patreon.com/feross" + }, + { + "type": "consulting", + "url": "https://feross.org/support" + } + ] + }, + "node_modules/base64-loader": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/base64-loader/-/base64-loader-1.0.0.tgz", + "integrity": "sha512-p32+F8dg+ANGx7s8QsZS74ZPHfIycmC2yZcoerzFgbersIYWitPbbF39G6SBx3gyvzyLH5nt1ooocxr0IHuWKA==" + }, + "node_modules/batch": { + "version": "0.6.1", + "resolved": "https://registry.npmjs.org/batch/-/batch-0.6.1.tgz", + "integrity": "sha512-x+VAiMRL6UPkx+kudNvxTl6hB2XNNCG2r+7wixVfIYwu/2HKRXimwQyaumLjMveWvT2Hkd/cAJw+QBMfJ/EKVw==", + "dev": true + }, + "node_modules/bcrypt-pbkdf": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/bcrypt-pbkdf/-/bcrypt-pbkdf-1.0.2.tgz", + "integrity": "sha512-qeFIXtP4MSoi6NLqO12WfqARWWuCKi2Rn/9hJLEmtB5yTNr9DqFWkJRCf2qShWzPeAMRnOgCrq0sg/KLv5ES9w==", + "dependencies": { + "tweetnacl": "^0.14.3" + } + }, + "node_modules/big.js": { + "version": "5.2.2", + "resolved": "https://registry.npmjs.org/big.js/-/big.js-5.2.2.tgz", + "integrity": "sha512-vyL2OymJxmarO8gxMr0mhChsO9QGwhynfuu4+MHTAW6czfq9humCB7rKpUjDd9YUiDPU4mzpyupFSvOClAwbmQ==", + "engines": { + "node": "*" + } + }, + "node_modules/binary-extensions": { + "version": "1.13.1", + "resolved": "https://registry.npmjs.org/binary-extensions/-/binary-extensions-1.13.1.tgz", + "integrity": "sha512-Un7MIEDdUC5gNpcGDV97op1Ywk748MpHcFTHoYs6qnj1Z3j7I53VG3nwZhKzoBZmbdRNnb6WRdFlwl7tSDuZGw==", + "devOptional": true, + "engines": { + "node": ">=0.10.0" + } + }, + "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==", + "optional": true, + "dependencies": { + "file-uri-to-path": "1.0.0" + } + }, + "node_modules/bl": { + "version": "1.2.3", + "resolved": "https://registry.npmjs.org/bl/-/bl-1.2.3.tgz", + "integrity": "sha512-pvcNpa0UU69UT341rO6AYy4FVAIkUHuZXRIWbq+zHnsVcRzDDjIAhGuuYoi0d//cwIwtt4pkpKycWEfjdV+vww==", + "dependencies": { + "readable-stream": "^2.3.5", + "safe-buffer": "^5.1.1" + } + }, + "node_modules/bluebird": { + "version": "3.7.2", + "resolved": "https://registry.npmjs.org/bluebird/-/bluebird-3.7.2.tgz", + "integrity": "sha512-XpNj6GDQzdfW+r2Wnn7xiSAd7TM3jzkxGXBGTtWKuSXv1xUV+azxAm8jdWZN06QTQk+2N2XB9jRDkvbmQmcRtg==" + }, + "node_modules/bn.js": { + "version": "5.2.1", + "resolved": "https://registry.npmjs.org/bn.js/-/bn.js-5.2.1.tgz", + "integrity": "sha512-eXRvHzWyYPBuB4NBy0cmYQjGitUrtqwbvlzP3G6VFnNRbsZQIxQ10PbKKHt8gZ/HW/D/747aDl+QkDqg3KQLMQ==" + }, + "node_modules/body-parser": { + "version": "1.20.3", + "resolved": "https://registry.npmjs.org/body-parser/-/body-parser-1.20.3.tgz", + "integrity": "sha512-7rAxByjUMqQ3/bHJy7D6OGXvx/MMc4IqBn/X0fcM1QUcAItpZrBEYhWGem+tzXH90c+G01ypMcYJBO9Y30203g==", + "dev": true, + "dependencies": { + "bytes": "3.1.2", + "content-type": "~1.0.5", + "debug": "2.6.9", + "depd": "2.0.0", + "destroy": "1.2.0", + "http-errors": "2.0.0", + "iconv-lite": "0.4.24", + "on-finished": "2.4.1", + "qs": "6.13.0", + "raw-body": "2.5.2", + "type-is": "~1.6.18", + "unpipe": "1.0.0" + }, + "engines": { + "node": ">= 0.8", + "npm": "1.2.8000 || >= 1.4.16" + } + }, + "node_modules/body-parser/node_modules/debug": { + "version": "2.6.9", + "resolved": "https://registry.npmjs.org/debug/-/debug-2.6.9.tgz", + "integrity": "sha512-bC7ElrdJaJnPbAP+1EotYvqZsb3ecl5wi6Bfi6BJTUcNowp6cvspg0jXznRTKDjm/E7AdgFBVeAPVMNcKGsHMA==", + "dev": true, + "dependencies": { + "ms": "2.0.0" + } + }, + "node_modules/body-parser/node_modules/iconv-lite": { + "version": "0.4.24", + "resolved": "https://registry.npmjs.org/iconv-lite/-/iconv-lite-0.4.24.tgz", + "integrity": "sha512-v3MXnZAcvnywkTUEZomIActle7RXXeedOR31wwl7VlyoXO4Qi9arvSenNQWne1TcRwhCL1HwLI21bEqdpj8/rA==", + "dev": true, + "dependencies": { + "safer-buffer": ">= 2.1.2 < 3" + }, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/body-parser/node_modules/ms": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/ms/-/ms-2.0.0.tgz", + "integrity": "sha512-Tpp60P6IUJDTuOq/5Z8cdskzJujfwqfOTkrwIwj7IRISpnkJnT6SyJ4PCPnGMoFjC9ddhal5KVIYtAt97ix05A==", + "dev": true + }, + "node_modules/body-parser/node_modules/qs": { + "version": "6.13.0", + "resolved": "https://registry.npmjs.org/qs/-/qs-6.13.0.tgz", + "integrity": "sha512-+38qI9SOr8tfZ4QmJNplMUxqjbe7LKvvZgWdExBOmd+egZTtjLB67Gu0HRX3u/XOq7UU2Nx6nsjvS16Z9uwfpg==", + "dev": true, + "dependencies": { + "side-channel": "^1.0.6" + }, + "engines": { + "node": ">=0.6" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/bonjour": { + "version": "3.5.0", + "resolved": "https://registry.npmjs.org/bonjour/-/bonjour-3.5.0.tgz", + "integrity": "sha512-RaVTblr+OnEli0r/ud8InrU7D+G0y6aJhlxaLa6Pwty4+xoxboF1BsUI45tujvRpbj9dQVoglChqonGAsjEBYg==", + "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": "sha512-JZOSA7Mo9sNGB8+UjSgzdLtokWAky1zbztM3WRLCbZ70/3cTANmQmOdR7y2g+J0e2WXywy1yS468tY+IruqEww==", + "dev": true + }, + "node_modules/bowser": { + "version": "1.9.4", + "resolved": "https://registry.npmjs.org/bowser/-/bowser-1.9.4.tgz", + "integrity": "sha512-9IdMmj2KjigRq6oWhmwv1W36pDuA4STQZ8q6YO9um+x07xgYNCD3Oou+WP/3L1HNz7iqythGet3/p4wvc8AAwQ==" + }, + "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": "2.3.2", + "resolved": "https://registry.npmjs.org/braces/-/braces-2.3.2.tgz", + "integrity": "sha512-aNdbnj9P8PjdXU4ybaWLK2IF3jc/EoDYbC7AazW6to3TRsfXxscC9UXOB5iDiEQrkyIbWp2SLQda4+QAa7nc3w==", + "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/brfs": { + "version": "1.6.1", + "resolved": "https://registry.npmjs.org/brfs/-/brfs-1.6.1.tgz", + "integrity": "sha512-OfZpABRQQf+Xsmju8XE9bDjs+uU4vLREGolP7bDgcpsI17QREyZ4Bl+2KLxxx1kCgA0fAIhKQBaBYh+PEcCqYQ==", + "dependencies": { + "quote-stream": "^1.0.1", + "resolve": "^1.1.5", + "static-module": "^2.2.0", + "through2": "^2.0.0" + }, + "bin": { + "brfs": "bin/cmd.js" + } + }, + "node_modules/brorand": { + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/brorand/-/brorand-1.1.0.tgz", + "integrity": "sha512-cKV8tMCEpQs4hK/ik71d6LrPOnpkpGBR0wzxqr68g2m/LB2GxVYQroAjMJZRVM1Y4BCjCKc3vAamxSzOY2RP+w==" + }, + "node_modules/browser-resolve": { + "version": "1.11.3", + "resolved": "https://registry.npmjs.org/browser-resolve/-/browser-resolve-1.11.3.tgz", + "integrity": "sha512-exDi1BYWB/6raKHmDTCicQfTkqwN5fioMFV4j8BsfMU4R2DK/QfZfK7kOVkmWCNANf0snkBzqGqAJBao9gZMdQ==", + "dev": true, + "dependencies": { + "resolve": "1.1.7" + } + }, + "node_modules/browser-resolve/node_modules/resolve": { + "version": "1.1.7", + "resolved": "https://registry.npmjs.org/resolve/-/resolve-1.1.7.tgz", + "integrity": "sha512-9znBF0vBcaSN3W2j7wKvdERPwqTxSpCq+if5C0WoTCyV9n24rua28jeuQ2pL/HOf+yUe/Mef+H/5p60K0Id3bg==", + "dev": true + }, + "node_modules/browser-stdout": { + "version": "1.3.0", + "resolved": "https://registry.npmjs.org/browser-stdout/-/browser-stdout-1.3.0.tgz", + "integrity": "sha512-7Rfk377tpSM9TWBEeHs0FlDZGoAIei2V/4MdZJoFMBFAK6BqLpxAIUepGRHGdPFgGsLb02PXovC4qddyHvQqTg==" + }, + "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==", + "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==", + "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==", + "dependencies": { + "cipher-base": "^1.0.1", + "des.js": "^1.0.0", + "inherits": "^2.0.1", + "safe-buffer": "^5.1.2" + } + }, + "node_modules/browserify-rsa": { + "version": "4.1.1", + "resolved": "https://registry.npmjs.org/browserify-rsa/-/browserify-rsa-4.1.1.tgz", + "integrity": "sha512-YBjSAiTqM04ZVei6sXighu679a3SqWORA3qZTEqZImnlkDIFtKc6pNutpjyZ8RJTjQtuYfeetkxM11GwoYXMIQ==", + "dependencies": { + "bn.js": "^5.2.1", + "randombytes": "^2.1.0", + "safe-buffer": "^5.2.1" + }, + "engines": { + "node": ">= 0.10" + } + }, + "node_modules/browserify-sign": { + "version": "4.2.3", + "resolved": "https://registry.npmjs.org/browserify-sign/-/browserify-sign-4.2.3.tgz", + "integrity": "sha512-JWCZW6SKhfhjJxO8Tyiiy+XYB7cqd2S5/+WeYHsKdNKFlCBhKbblba1A/HN/90YwtxKc8tCErjffZl++UNmGiw==", + "dependencies": { + "bn.js": "^5.2.1", + "browserify-rsa": "^4.1.0", + "create-hash": "^1.2.0", + "create-hmac": "^1.1.7", + "elliptic": "^6.5.5", + "hash-base": "~3.0", + "inherits": "^2.0.4", + "parse-asn1": "^5.1.7", + "readable-stream": "^2.3.8", + "safe-buffer": "^5.2.1" + }, + "engines": { + "node": ">= 0.12" + } + }, + "node_modules/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==", + "dependencies": { + "pako": "~1.0.5" + } + }, + "node_modules/browserslist": { + "version": "4.24.2", + "resolved": "https://registry.npmjs.org/browserslist/-/browserslist-4.24.2.tgz", + "integrity": "sha512-ZIc+Q62revdMcqC6aChtW4jz3My3klmCO1fEmINZY/8J3EpBg5/A/D0AKmBveUh6pgoeycoMkVMko84tuYS+Gg==", + "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.30001669", + "electron-to-chromium": "^1.5.41", + "node-releases": "^2.0.18", + "update-browserslist-db": "^1.1.1" + }, + "bin": { + "browserslist": "cli.js" + }, + "engines": { + "node": "^6 || ^7 || ^8 || ^9 || ^10 || ^11 || ^12 || >=13.7" + } + }, + "node_modules/bser": { + "version": "2.1.1", + "resolved": "https://registry.npmjs.org/bser/-/bser-2.1.1.tgz", + "integrity": "sha512-gQxTNE/GAfIIrmHLUE3oJyp5FO6HRBfhjnw4/wMmA63ZGDJnWBmgY/lyQBpnDUkGmAhbSe39tx2d/iTOAfglwQ==", + "dev": true, + "dependencies": { + "node-int64": "^0.4.0" + } + }, + "node_modules/btoa": { + "version": "1.2.1", + "resolved": "https://registry.npmjs.org/btoa/-/btoa-1.2.1.tgz", + "integrity": "sha512-SB4/MIGlsiVkMcHmT+pSmIPoNDoHg+7cMzmt3Uxt628MTz2487DKSqK/fuhFBrkuqrYv5UCEnACpF4dTFNKc/g==", + "bin": { + "btoa": "bin/btoa.js" + }, + "engines": { + "node": ">= 0.4.0" + } + }, + "node_modules/buffer": { + "version": "4.9.2", + "resolved": "https://registry.npmjs.org/buffer/-/buffer-4.9.2.tgz", + "integrity": "sha512-xq+q3SRMOxGivLhBNaUdC64hDTQwejJ+H0T/NB1XMtTVEwNTrfFF3gAxiyW0Bu/xWEGhjVKgUcMhCrUy2+uCWg==", + "dependencies": { + "base64-js": "^1.0.2", + "ieee754": "^1.1.4", + "isarray": "^1.0.0" + } + }, + "node_modules/buffer-alloc": { + "version": "1.2.0", + "resolved": "https://registry.npmjs.org/buffer-alloc/-/buffer-alloc-1.2.0.tgz", + "integrity": "sha512-CFsHQgjtW1UChdXgbyJGtnm+O/uLQeZdtbDo8mfUgYXCHSM1wgrVxXm6bSyrUuErEb+4sYVGCzASBRot7zyrow==", + "dependencies": { + "buffer-alloc-unsafe": "^1.1.0", + "buffer-fill": "^1.0.0" + } + }, + "node_modules/buffer-alloc-unsafe": { + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/buffer-alloc-unsafe/-/buffer-alloc-unsafe-1.1.0.tgz", + "integrity": "sha512-TEM2iMIEQdJ2yjPJoSIsldnleVaAk1oW3DBVUykyOLsEsFmEc9kn+SFFPz+gl54KQNxlDnAwCXosOS9Okx2xAg==" + }, + "node_modules/buffer-crc32": { + "version": "0.2.13", + "resolved": "https://registry.npmjs.org/buffer-crc32/-/buffer-crc32-0.2.13.tgz", + "integrity": "sha512-VO9Ht/+p3SN7SKWqcrgEzjGbRSJYTx+Q1pTQC0wrWqHx0vpJraQ6GtHx8tvcg1rlK1byhU5gccxgOgj7B0TDkQ==", + "engines": { + "node": "*" + } + }, + "node_modules/buffer-equal": { + "version": "0.0.1", + "resolved": "https://registry.npmjs.org/buffer-equal/-/buffer-equal-0.0.1.tgz", + "integrity": "sha512-RgSV6InVQ9ODPdLWJ5UAqBqJBOg370Nz6ZQtRzpt6nUjc8v0St97uJ4PYC6NztqIScrAXafKM3mZPMygSe1ggA==", + "engines": { + "node": ">=0.4.0" + } + }, + "node_modules/buffer-fill": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/buffer-fill/-/buffer-fill-1.0.0.tgz", + "integrity": "sha512-T7zexNBwiiaCOGDg9xNX9PBmjrubblRkENuptryuI64URkXDFum9il/JGL8Lm8wYfAXpredVXXZz7eMHilimiQ==" + }, + "node_modules/buffer-from": { + "version": "1.1.2", + "resolved": "https://registry.npmjs.org/buffer-from/-/buffer-from-1.1.2.tgz", + "integrity": "sha512-E+XQCRwSbaaiChtv6k6Dwgc+bx+Bs6vuKJHHl5kox/BaKbhiXzqQOwK4cO22yElGp2OCmjwVhT3HmxgyPGnJfQ==" + }, + "node_modules/buffer-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": "sha512-571s0T7nZWK6vB67HI5dyUF7wXiNcfaPPPTl6zYCNApANjIvYJTg7hlud/+cJpdAhS7dVzqMLmfhfHR3rAcOjQ==" + }, + "node_modules/buffer/node_modules/isarray": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/isarray/-/isarray-1.0.0.tgz", + "integrity": "sha512-VLghIWNM6ELQzo7zwmcg0NmTVyWKYjvIeM83yjp0wRDTmUnrM678fQbcKBo6n2CJEF0szoG//ytg+TKla89ALQ==" + }, + "node_modules/builtin-modules": { + "version": "1.1.1", + "resolved": "https://registry.npmjs.org/builtin-modules/-/builtin-modules-1.1.1.tgz", + "integrity": "sha512-wxXCdllwGhI2kCC0MnvTGYTMvnVZTvqgypkiTI8Pa5tcz2i6VqsqwYGgqwXji+4RgCzms6EajE4IxiUH6HH8nQ==", + "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": "sha512-HpGFw18DgFWlncDfjTa2rcQ4W88O1mC8e8yZ2AvQY5KDaktSTwo+KRf6nHK6FRI5FyRyb/5T6+TSxfP7QyGsmQ==" + }, + "node_modules/bytes": { + "version": "3.1.2", + "resolved": "https://registry.npmjs.org/bytes/-/bytes-3.1.2.tgz", + "integrity": "sha512-/Nf7TyzTx6S3yRJObOAV7956r8cr2+Oj8AC5dt8wSP3BQAoeX58NoHyCU8P8zGkNXStjTSi6fzO6F0pBdcYbEg==", + "dev": true, + "engines": { + "node": ">= 0.8" + } + }, + "node_modules/cacache": { + "version": "15.3.0", + "resolved": "https://registry.npmjs.org/cacache/-/cacache-15.3.0.tgz", + "integrity": "sha512-VVdYzXEn+cnbXpFgWs5hTT7OScegHVmLhJIR8Ufqk3iFD6A6j5iSX1KuBTfNEv4tdJWE2PzA6IVFtcLC7fN9wQ==", + "dependencies": { + "@npmcli/fs": "^1.0.0", + "@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.1", + "tar": "^6.0.2", + "unique-filename": "^1.1.1" + }, + "engines": { + "node": ">= 10" + } + }, + "node_modules/cacache/node_modules/lru-cache": { + "version": "6.0.0", + "resolved": "https://registry.npmjs.org/lru-cache/-/lru-cache-6.0.0.tgz", + "integrity": "sha512-Jo6dJ04CmSjuznwJSS3pUeWmd/H0ffTlkXXgwZi+eq1UCmqQwCh+eLsYOYCwY991i2Fah4h1BEMCx4qThGbsiA==", + "dependencies": { + "yallist": "^4.0.0" + }, + "engines": { + "node": ">=10" + } + }, + "node_modules/cacache/node_modules/rimraf": { + "version": "3.0.2", + "resolved": "https://registry.npmjs.org/rimraf/-/rimraf-3.0.2.tgz", + "integrity": "sha512-JZkJMZkAGFFPP2YqXZXPbMlMBgsxzE8ILs4lMIX/2o0L9UBw9O/Y3o6wFw/i9YLapcUJWwqbi3kdxIPdC62TIA==", + "deprecated": "Rimraf versions prior to v4 are no longer supported", + "dependencies": { + "glob": "^7.1.3" + }, + "bin": { + "rimraf": "bin.js" + }, + "funding": { + "url": "https://github.com/sponsors/isaacs" + } + }, + "node_modules/cacache/node_modules/yallist": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/yallist/-/yallist-4.0.0.tgz", + "integrity": "sha512-3wdGidZyq5PB084XLES5TpOSRA3wjXAlIWMhum2kRcv/41Sn2emQ0dycQW4uZXLejwKvg6EsvbdlVL+FYEct7A==" + }, + "node_modules/cache-base": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/cache-base/-/cache-base-1.0.1.tgz", + "integrity": "sha512-AKcdTnFSWATd5/GCPRxr2ChwIJ85CeyrEyjRHlKxQ56d4XJMGym0uAiKn0xbLOGOl3+yRpOTi484dVCEc5AUzQ==", + "dependencies": { + "collection-visit": "^1.0.0", + "component-emitter": "^1.2.1", + "get-value": "^2.0.6", + "has-value": "^1.0.0", + "isobject": "^3.0.1", + "set-value": "^2.0.0", + "to-object-path": "^0.3.0", + "union-value": "^1.0.0", + "unset-value": "^1.0.0" + }, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/cacheable-request": { + "version": "2.1.4", + "resolved": "https://registry.npmjs.org/cacheable-request/-/cacheable-request-2.1.4.tgz", + "integrity": "sha512-vag0O2LKZ/najSoUwDbVlnlCFvhBE/7mGTY2B5FgCBDcRD+oVV1HYTOwM6JZfMg/hIcM6IwnTZ1uQQL5/X3xIQ==", + "dependencies": { + "clone-response": "1.0.2", + "get-stream": "3.0.0", + "http-cache-semantics": "3.8.1", + "keyv": "3.0.0", + "lowercase-keys": "1.0.0", + "normalize-url": "2.0.1", + "responselike": "1.0.2" + } + }, + "node_modules/cacheable-request/node_modules/get-stream": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/get-stream/-/get-stream-3.0.0.tgz", + "integrity": "sha512-GlhdIUuVakc8SJ6kK0zAFbiGzRFzNnY4jUuEbV9UROo4Y+0Ny4fjvcZFVTeDA4odpFyOQzaw6hXukJSq/f28sQ==", + "engines": { + "node": ">=4" + } + }, + "node_modules/cacheable-request/node_modules/lowercase-keys": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/lowercase-keys/-/lowercase-keys-1.0.0.tgz", + "integrity": "sha512-RPlX0+PHuvxVDZ7xX+EBVAp4RsVxP/TdDSN2mJYdiq1Lc4Hz7EUSjUI7RZrKKlmrIzVhf6Jo2stj7++gVarS0A==", + "engines": { + "node": ">=0.10.0" + } + }, + "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/caller-callsite": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/caller-callsite/-/caller-callsite-2.0.0.tgz", + "integrity": "sha512-JuG3qI4QOftFsZyOn1qq87fq5grLIyk1JYd5lJmdA+fG7aQ9pA/i3JIJGcO3q0MrRcHlOt1U+ZeHW8Dq9axALQ==", + "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": "sha512-MCL3sf6nCSXOwCTzvPKhN18TU7AHTvdtam8DAogxcrJ8Rjfbbg7Lgng64H9Iy+vUV6VGFClN/TyxBkAebLRR4A==", + "dependencies": { + "caller-callsite": "^2.0.0" + }, + "engines": { + "node": ">=4" + } + }, + "node_modules/callsites": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/callsites/-/callsites-2.0.0.tgz", + "integrity": "sha512-ksWePWBloaWPxJYQ8TL0JHvtci6G5QTKwQ95RcWAa/lzoAKuAOflGdAK92hpHXjkwb8zLxoLNUoNYZgVsaJzvQ==", + "engines": { + "node": ">=4" + } + }, + "node_modules/camel-case": { + "version": "4.1.2", + "resolved": "https://registry.npmjs.org/camel-case/-/camel-case-4.1.2.tgz", + "integrity": "sha512-gxGWBrTT1JuMx6R+o5PTXMmUnhnVzLQ9SNutD4YqKtI6ap897t3tKECYla6gCWEkplXnlNybEkZg9GEGxKFCgw==", + "dev": true, + "dependencies": { + "pascal-case": "^3.1.2", + "tslib": "^2.0.3" + } + }, + "node_modules/camelcase": { + "version": "4.1.0", + "resolved": "https://registry.npmjs.org/camelcase/-/camelcase-4.1.0.tgz", + "integrity": "sha512-FxAv7HpHrXbh3aPo4o2qxHay2lkLY3x5Mw3KeE4KQE8ysVfziWeRZDwcjauvwBSGEC/nXUPzZy8zeh4HokqOnw==", + "dev": true, + "engines": { + "node": ">=4" + } + }, + "node_modules/caniuse-lite": { + "version": "1.0.30001680", + "resolved": "https://registry.npmjs.org/caniuse-lite/-/caniuse-lite-1.0.30001680.tgz", + "integrity": "sha512-rPQy70G6AGUMnbwS1z6Xg+RkHYPAi18ihs47GH0jcxIG7wArmPgY3XbS2sRdBbxJljp3thdT8BIqv9ccCypiPA==", + "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/cannon-es": { + "version": "0.20.0", + "resolved": "https://registry.npmjs.org/cannon-es/-/cannon-es-0.20.0.tgz", + "integrity": "sha512-eZhWTZIkFOnMAJOgfXJa9+b3kVlvG+FX4mdkpePev/w/rP5V8NRquGyEozcjPfEoXUlb+p7d9SUcmDSn14prOA==" + }, + "node_modules/canvas-toBlob": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/canvas-toBlob/-/canvas-toBlob-1.0.0.tgz", + "integrity": "sha512-oU5bawygt/Nef9F+C49eTFmzXzz6yKdGqn6J1wn/LZQF5ulnnZVm0KIZzik85I6tjCbZFH6aa47j4bU2tkHxRw==" + }, + "node_modules/capture-exit": { + "version": "1.2.0", + "resolved": "https://registry.npmjs.org/capture-exit/-/capture-exit-1.2.0.tgz", + "integrity": "sha512-IS4lTgp57lUcpXzyCaiUQcRZBxZAkzl+jNXrMUXZjdnr2yujpKUMG9OYeYL29i6fL66ihypvVJ/MeX0B+9pWOg==", + "dev": true, + "dependencies": { + "rsvp": "^3.3.3" + } + }, + "node_modules/caseless": { + "version": "0.12.0", + "resolved": "https://registry.npmjs.org/caseless/-/caseless-0.12.0.tgz", + "integrity": "sha512-4tYFyifaFfGacoiObjJegolkwSU4xQNGbVgUiNYVUxbQ2x2lUsFvY4hVgVzGiIe6WLOPqycWXA40l+PWsxthUw==" + }, + "node_modules/chalk": { + "version": "1.1.3", + "resolved": "https://registry.npmjs.org/chalk/-/chalk-1.1.3.tgz", + "integrity": "sha512-U3lRVLMSlsCfjqYPbLyVv11M9CPW4I728d6TCKMAOJueEeB9/8o+eSsMnxPJD+Q+K909sdESg7C+tIkoH6on1A==", + "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/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/cheerio": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/cheerio/-/cheerio-1.0.0.tgz", + "integrity": "sha512-quS9HgjQpdaXOvsZz82Oz7uxtXiy6UIsIQcpBj7HRw2M63Skasm9qlDocAM7jNuaxdhpPU7c4kJN+gA5MCu4ww==", + "dev": true, + "dependencies": { + "cheerio-select": "^2.1.0", + "dom-serializer": "^2.0.0", + "domhandler": "^5.0.3", + "domutils": "^3.1.0", + "encoding-sniffer": "^0.2.0", + "htmlparser2": "^9.1.0", + "parse5": "^7.1.2", + "parse5-htmlparser2-tree-adapter": "^7.0.0", + "parse5-parser-stream": "^7.1.2", + "undici": "^6.19.5", + "whatwg-mimetype": "^4.0.0" + }, + "engines": { + "node": ">=18.17" + }, + "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==", + "dev": true, + "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/chokidar": { + "version": "3.6.0", + "resolved": "https://registry.npmjs.org/chokidar/-/chokidar-3.6.0.tgz", + "integrity": "sha512-7VT13fmjotKpGipCW9JEQAusEPE+Ei8nl6/g4FBAmIm0GOOLMua9NDDo/DWp0ZAxCr3cPq5ZpBqmPAQgDda2Pw==", + "optional": true, + "dependencies": { + "anymatch": "~3.1.2", + "braces": "~3.0.2", + "glob-parent": "~5.1.2", + "is-binary-path": "~2.1.0", + "is-glob": "~4.0.1", + "normalize-path": "~3.0.0", + "readdirp": "~3.6.0" + }, + "engines": { + "node": ">= 8.10.0" + }, + "funding": { + "url": "https://paulmillr.com/funding/" + }, + "optionalDependencies": { + "fsevents": "~2.3.2" + } + }, + "node_modules/chokidar/node_modules/anymatch": { + "version": "3.1.3", + "resolved": "https://registry.npmjs.org/anymatch/-/anymatch-3.1.3.tgz", + "integrity": "sha512-KMReFUr0B4t+D+OBkjR3KYqvocp2XaSzO55UcB6mgQMd3KbcE+mWTyvVV7D/zsdEbNnV6acZUutkiHQXvTr1Rw==", + "optional": true, + "dependencies": { + "normalize-path": "^3.0.0", + "picomatch": "^2.0.4" + }, + "engines": { + "node": ">= 8" + } + }, + "node_modules/chokidar/node_modules/binary-extensions": { + "version": "2.3.0", + "resolved": "https://registry.npmjs.org/binary-extensions/-/binary-extensions-2.3.0.tgz", + "integrity": "sha512-Ceh+7ox5qe7LJuLHoY0feh3pHuUDHAcRUeyL2VYghZwfpkNIy/+8Ocg0a3UuSoYzavmylwuLWQOf3hl0jjMMIw==", + "optional": true, + "engines": { + "node": ">=8" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/chokidar/node_modules/braces": { + "version": "3.0.3", + "resolved": "https://registry.npmjs.org/braces/-/braces-3.0.3.tgz", + "integrity": "sha512-yQbXgO/OSZVD2IsiLlro+7Hf6Q18EJrKSEsdoMzKePKXct3gvD8oLcOQdIzGupr5Fj+EDe8gO/lxc1BzfMpxvA==", + "optional": true, + "dependencies": { + "fill-range": "^7.1.1" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/chokidar/node_modules/fill-range": { + "version": "7.1.1", + "resolved": "https://registry.npmjs.org/fill-range/-/fill-range-7.1.1.tgz", + "integrity": "sha512-YsGpe3WHLK8ZYi4tWDg2Jy3ebRz2rXowDxnld4bkQB00cc/1Zw9AWnC0i9ztDJitivtQvaI9KaLyKrc+hBW0yg==", + "optional": true, + "dependencies": { + "to-regex-range": "^5.0.1" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/chokidar/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==", + "optional": true, + "dependencies": { + "binary-extensions": "^2.0.0" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/chokidar/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==", + "optional": true, + "engines": { + "node": ">=0.12.0" + } + }, + "node_modules/chokidar/node_modules/readdirp": { + "version": "3.6.0", + "resolved": "https://registry.npmjs.org/readdirp/-/readdirp-3.6.0.tgz", + "integrity": "sha512-hOS089on8RduqdbhvQ5Z37A0ESjsqz6qnRcffsMU3495FuTdqSm+7bhJ29JvIOsBDEEnan5DPu9t3To9VRlMzA==", + "optional": true, + "dependencies": { + "picomatch": "^2.2.1" + }, + "engines": { + "node": ">=8.10.0" + } + }, + "node_modules/chokidar/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==", + "optional": true, + "dependencies": { + "is-number": "^7.0.0" + }, + "engines": { + "node": ">=8.0" + } + }, + "node_modules/chownr": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/chownr/-/chownr-2.0.0.tgz", + "integrity": "sha512-bIomtDF5KGpdogkLd9VspvFzk9KfpyyGlS8YFVZl7TGPBHL5snIOnxeshwVgPteQ9b4Eydl+pVbIyE1DcvCWgQ==", + "engines": { + "node": ">=10" + } + }, + "node_modules/chrome-trace-event": { + "version": "1.0.4", + "resolved": "https://registry.npmjs.org/chrome-trace-event/-/chrome-trace-event-1.0.4.tgz", + "integrity": "sha512-rNjApaLzuwaOTjCiT8lSDdGN1APCiqkChLMJxJPWLunPAt5fy8xgU9/jNOchV84wfIxrA0lRQB7oCT8jrn/wrQ==", + "engines": { + "node": ">=6.0" + } + }, + "node_modules/chromedriver": { + "version": "105.0.0", + "resolved": "https://registry.npmjs.org/chromedriver/-/chromedriver-105.0.0.tgz", + "integrity": "sha512-BX3GOUW5m6eiW9cVVF8hw+EFxvrGqYCxbwOqnpk8PjbNFqL5xjy7yel+e6ilJPjckAYFutMKs8XJvOs/W85vvg==", + "deprecated": "Chromedriver download url has changed. Use version 114.0.2 or newer.", + "dev": true, + "hasInstallScript": true, + "dependencies": { + "@testim/chrome-version": "^1.1.2", + "axios": "^0.27.2", + "del": "^6.0.0", + "extract-zip": "^2.0.1", + "https-proxy-agent": "^5.0.0", + "proxy-from-env": "^1.1.0", + "tcp-port-used": "^1.0.1" + }, + "bin": { + "chromedriver": "bin/chromedriver" + }, + "engines": { + "node": ">=10" + } + }, + "node_modules/ci-info": { + "version": "1.6.0", + "resolved": "https://registry.npmjs.org/ci-info/-/ci-info-1.6.0.tgz", + "integrity": "sha512-vsGdkwSCDpWmP80ncATX7iea5DWQemg1UgCW5J8tqjU3lYw4FBYuj89J0CTVomA7BEfvSZd84GmHko+MxFQU2A==", + "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==", + "dependencies": { + "inherits": "^2.0.1", + "safe-buffer": "^5.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==", + "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": "sha512-Rr7ADjQZenceVOAKop6ALkkRAmH1A4Gx9hV/7ZujPUN2rkATqFO0JZLZInbAjpZYoJ1gUx8MRMQVkYemcbMSTA==", + "dependencies": { + "is-descriptor": "^0.1.0" + }, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/class-utils/node_modules/is-descriptor": { + "version": "0.1.7", + "resolved": "https://registry.npmjs.org/is-descriptor/-/is-descriptor-0.1.7.tgz", + "integrity": "sha512-C3grZTvObeN1xud4cRWl366OMXZTj0+HGyk4hvfpx4ZHt1Pb60ANSXqCK7pdOTeUQpRzECBSTphqvD7U+l22Eg==", + "dependencies": { + "is-accessor-descriptor": "^1.0.1", + "is-data-descriptor": "^1.0.1" + }, + "engines": { + "node": ">= 0.4" + } + }, + "node_modules/classnames": { + "version": "2.2.6", + "resolved": "https://registry.npmjs.org/classnames/-/classnames-2.2.6.tgz", + "integrity": "sha512-JR/iSQOSt+LQIWwrwEzJ9uk0xfN3mTVYMwt1Ir5mUcSN6pU+V4zQFFaJsclJbPuAUQH+yfWef6tm7l1quW3C8Q==" + }, + "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, + "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, + "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==", + "engines": { + "node": ">=6" + } + }, + "node_modules/cli-cursor": { + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/cli-cursor/-/cli-cursor-2.1.0.tgz", + "integrity": "sha512-8lgKz8LmCRYZZQDpRyT2m5rKJ08TnU4tR9FFFW2rxpxR1FzWi4PQ/NfyODchAatHaUgnSPVcx/R5w6NuTBzFiw==", + "dev": true, + "dependencies": { + "restore-cursor": "^2.0.0" + }, + "engines": { + "node": ">=4" + } + }, + "node_modules/cli-width": { + "version": "2.2.1", + "resolved": "https://registry.npmjs.org/cli-width/-/cli-width-2.2.1.tgz", + "integrity": "sha512-GRMWDxpOB6Dgk2E5Uo+3eEBvtOOlimMmpbFiKuLFnQzYDavtLFY3K5ona41jgN/WdRZtG7utuVSVTL4HbZHGkw==", + "dev": true + }, + "node_modules/cliui": { + "version": "3.2.0", + "resolved": "https://registry.npmjs.org/cliui/-/cliui-3.2.0.tgz", + "integrity": "sha512-0yayqDxWQbqk3ojkYqUKqaAQ6AfNKeKWRNA8kR0WXzAsdHpP4BIaOmMAG87JGuO6qcobyW4GjxHd9PmhEd+T9w==", + "dependencies": { + "string-width": "^1.0.1", + "strip-ansi": "^3.0.1", + "wrap-ansi": "^2.0.0" + } + }, + "node_modules/cliui/node_modules/is-fullwidth-code-point": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/is-fullwidth-code-point/-/is-fullwidth-code-point-1.0.0.tgz", + "integrity": "sha512-1pqUqRjkhPJ9miNq9SwMfdvi6lBJcd6eFxvfaivQhaH3SgisfiuudvFntdKOmxuee/77l+FPjKrQjWvmPjWrRw==", + "dependencies": { + "number-is-nan": "^1.0.0" + }, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/cliui/node_modules/string-width": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/string-width/-/string-width-1.0.2.tgz", + "integrity": "sha512-0XsVpQLnVCXHJfyEs8tC0zpTVIr5PKKsQtkT29IwupnPTjtPmQ3xT/4yCREF9hYkV/3M3kzcUTSAZT6a6h81tw==", + "dependencies": { + "code-point-at": "^1.0.0", + "is-fullwidth-code-point": "^1.0.0", + "strip-ansi": "^3.0.0" + }, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/clone-response": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/clone-response/-/clone-response-1.0.2.tgz", + "integrity": "sha512-yjLXh88P599UOyPTFX0POsd7WxnbsVsGohcwzHOLspIhhpalPw1BcqED8NblyZLKcGrL8dTgMlcaZxV2jAD41Q==", + "dependencies": { + "mimic-response": "^1.0.0" + } + }, + "node_modules/code-point-at": { + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/code-point-at/-/code-point-at-1.1.0.tgz", + "integrity": "sha512-RpAVKQA5T63xEj6/giIbUEtZwJ4UFIc3ZtvEkiaUERylqe8xb5IvqcgOurZLahv93CLKfxcw5YI+DZcUBRyLXA==", + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/collection-visit": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/collection-visit/-/collection-visit-1.0.0.tgz", + "integrity": "sha512-lNkKvzEeMBBjUGHZ+q6z9pSJla0KWAQPvtzhEV9+iGyQYG+pBpl7xKDhxoNSOZH2hhv0v5k0y2yAM4o4SjoSkw==", + "dependencies": { + "map-visit": "^1.0.0", + "object-visit": "^1.0.0" + }, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/color-convert": { + "version": "0.5.3", + "resolved": "https://registry.npmjs.org/color-convert/-/color-convert-0.5.3.tgz", + "integrity": "sha512-RwBeO/B/vZR3dfKL1ye/vx8MHZ40ugzpyfeVG5GsiuGnrlMWe2o8wxBbLCpw9CsxV+wHuzYlCiWnybrIA0ling==" + }, + "node_modules/color-name": { + "version": "1.1.3", + "resolved": "https://registry.npmjs.org/color-name/-/color-name-1.1.3.tgz", + "integrity": "sha512-72fSenhMw2HZMTVHeCA9KCmpEIbzWiQsjN+BHcBbS9vr1mtt+vJjPdksIBNUmKAW8TFUDPJK5SUU3QhE9NEXDw==" + }, + "node_modules/colors": { + "version": "0.6.2", + "resolved": "https://registry.npmjs.org/colors/-/colors-0.6.2.tgz", + "integrity": "sha512-OsSVtHK8Ir8r3+Fxw/b4jS1ZLPXkV6ZxDRJQzeD7qo0SqMXWrHDM71DgYzPMHY8SFJ0Ao+nNU2p1MmwdzKqPrw==", + "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==", + "dependencies": { + "delayed-stream": "~1.0.0" + }, + "engines": { + "node": ">= 0.8" + } + }, + "node_modules/commander": { + "version": "4.1.1", + "resolved": "https://registry.npmjs.org/commander/-/commander-4.1.1.tgz", + "integrity": "sha512-NOKm8xhkzAjzFx8B2v5OAHT+u5pRQc2UCa2Vq9jYL/31o2wi9mxBA7LIFs3sV5VSC49z6pEhfbMULvShKj26WA==", + "engines": { + "node": ">= 6" + } + }, + "node_modules/commondir": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/commondir/-/commondir-1.0.1.tgz", + "integrity": "sha512-W9pAhw0ja1Edb5GVdIF1mjZw/ASI0AlShXM83UUGe2DVr5TdAPEA1OA8m/g8zWp9x6On7gqufY+FatDbC3MDQg==" + }, + "node_modules/complex.js": { + "version": "2.4.2", + "resolved": "https://registry.npmjs.org/complex.js/-/complex.js-2.4.2.tgz", + "integrity": "sha512-qtx7HRhPGSCBtGiST4/WGHuW+zeaND/6Ld+db6PbrulIB1i2Ev/2UPiqcmpQNPSyfBKraC0EOvOKCB5dGZKt3g==", + "engines": { + "node": "*" + }, + "funding": { + "type": "github", + "url": "https://github.com/sponsors/rawify" + } + }, + "node_modules/component-emitter": { + "version": "1.3.1", + "resolved": "https://registry.npmjs.org/component-emitter/-/component-emitter-1.3.1.tgz", + "integrity": "sha512-T0+barUSQRTUQASh8bx02dl+DhF54GtIDY13Y3m9oWTklKbb3Wv974meRpeZ3lp1JpLVECWWNHC4vaG2XHXouQ==", + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "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.5", + "resolved": "https://registry.npmjs.org/compression/-/compression-1.7.5.tgz", + "integrity": "sha512-bQJ0YRck5ak3LgtnpKkiabX5pNF7tMUh1BSy2ZBOTh0Dim0BUu6aPPwByIns6/A5Prh8PufSPerMDUklpzes2Q==", + "dev": true, + "dependencies": { + "bytes": "3.1.2", + "compressible": "~2.0.18", + "debug": "2.6.9", + "negotiator": "~0.6.4", + "on-headers": "~1.0.2", + "safe-buffer": "5.2.1", + "vary": "~1.1.2" + }, + "engines": { + "node": ">= 0.8.0" + } + }, + "node_modules/compression/node_modules/debug": { + "version": "2.6.9", + "resolved": "https://registry.npmjs.org/debug/-/debug-2.6.9.tgz", + "integrity": "sha512-bC7ElrdJaJnPbAP+1EotYvqZsb3ecl5wi6Bfi6BJTUcNowp6cvspg0jXznRTKDjm/E7AdgFBVeAPVMNcKGsHMA==", + "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": "sha512-Tpp60P6IUJDTuOq/5Z8cdskzJujfwqfOTkrwIwj7IRISpnkJnT6SyJ4PCPnGMoFjC9ddhal5KVIYtAt97ix05A==", + "dev": true + }, + "node_modules/computed-style-to-inline-style": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/computed-style-to-inline-style/-/computed-style-to-inline-style-3.0.0.tgz", + "integrity": "sha512-6XAOG2ZZkpCfbM9AhRN4/wjMgQujtH/2q/eowZON190oAASUjEb3jwcodjmRlR8HNDMahJdBQwchuDftOtF7eg==" + }, + "node_modules/concat-map": { + "version": "0.0.1", + "resolved": "https://registry.npmjs.org/concat-map/-/concat-map-0.0.1.tgz", + "integrity": "sha512-/Srv4dswyQNBfohGpz9o6Yb3Gz3SrUDqBH5rTuhGR7ahtlbYKnVxw2bCFMRljaA7EXHaXZ8wsHdodFvbkhKmqg==" + }, + "node_modules/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/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/console-browserify": { + "version": "1.2.0", + "resolved": "https://registry.npmjs.org/console-browserify/-/console-browserify-1.2.0.tgz", + "integrity": "sha512-ZMkYO/LkF17QvCPqM0gxw8yUzigAOZOSWSHg91FH6orS7vcEj5dVZTidN2fQ14yBSdg97RqhSNwLUXInd52OTA==" + }, + "node_modules/constants-browserify": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/constants-browserify/-/constants-browserify-1.0.0.tgz", + "integrity": "sha512-xFxOwqIzR/e1k1gLiWEophSCMqXcwVHIH7akf7b/vxcUeGunlj3hvZaaqxwHsTgn+IndtkQJgSztIDWeumWJDQ==" + }, + "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==", + "dev": true, + "engines": { + "node": ">= 0.6" + } + }, + "node_modules/content-type-parser": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/content-type-parser/-/content-type-parser-1.0.2.tgz", + "integrity": "sha512-lM4l4CnMEwOLHAHr/P6MEZwZFPJFtAAKgL6pogbXmVZggIqXhdB6RbBtPOTsw2FcXwYhehRGERJmRrjOiIB8pQ==", + "deprecated": "Use whatwg-mimetype instead", + "dev": true + }, + "node_modules/convert-source-map": { + "version": "1.9.0", + "resolved": "https://registry.npmjs.org/convert-source-map/-/convert-source-map-1.9.0.tgz", + "integrity": "sha512-ASFBup0Mz1uyiIjANan1jzLQami9z1PoYSZCiiYW2FczPbenXc45FZdBZLzOT+r6+iciuEModtmCti+hjaAk0A==" + }, + "node_modules/cookie": { + "version": "0.7.1", + "resolved": "https://registry.npmjs.org/cookie/-/cookie-0.7.1.tgz", + "integrity": "sha512-6DnInpx7SJ2AK3+CTUE/ZM0vWTUboZCegxhC2xiIydHR9jNuTAASBrfEpHhiGOZw/nX51bHt6YQl8jsGo4y/0w==", + "dev": true, + "engines": { + "node": ">= 0.6" + } + }, + "node_modules/cookie-signature": { + "version": "1.0.6", + "resolved": "https://registry.npmjs.org/cookie-signature/-/cookie-signature-1.0.6.tgz", + "integrity": "sha512-QADzlaHc8icV8I7vbaJXJwod9HWYp8uCqf1xa4OfNu1T7JVxQIrUgOWtHdNDtPiywmFbiS12VjotIXLrKM3orQ==", + "dev": true + }, + "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==", + "deprecated": "This package is no longer supported.", + "dependencies": { + "aproba": "^1.1.1", + "fs-write-stream-atomic": "^1.0.8", + "iferr": "^0.1.5", + "mkdirp": "^0.5.1", + "rimraf": "^2.5.4", + "run-queue": "^1.0.0" + } + }, + "node_modules/copy-concurrently/node_modules/mkdirp": { + "version": "0.5.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/copy-descriptor": { + "version": "0.1.1", + "resolved": "https://registry.npmjs.org/copy-descriptor/-/copy-descriptor-0.1.1.tgz", + "integrity": "sha512-XgZ0pFcakEUlbwQEVNg3+QAis1FyTL3Qel9FYy8pSkQqoG3PNoT0bOCQtOXcOkur21r2Eq2kI+IE+gsmAEVlYw==", + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/copy-webpack-plugin": { + "version": "6.4.1", + "resolved": "https://registry.npmjs.org/copy-webpack-plugin/-/copy-webpack-plugin-6.4.1.tgz", + "integrity": "sha512-MXyPCjdPVx5iiWyl40Va3JGh27bKzOTNY3NjUTrosD2q7dR/cLD0013uqJ3BpFbUjyONINjb6qI7nDIJujrMbA==", + "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/loader-utils": { + "version": "2.0.4", + "resolved": "https://registry.npmjs.org/loader-utils/-/loader-utils-2.0.4.tgz", + "integrity": "sha512-xXqpXoINfFhgua9xiqD8fPFHgkoq1mmmpE92WlDbm9rNRd/EbRb+Gqf908T2DMfuHjjJlksiK2RbHVOdD/MqSw==", + "dependencies": { + "big.js": "^5.2.2", + "emojis-list": "^3.0.0", + "json5": "^2.1.2" + }, + "engines": { + "node": ">=8.9.0" + } + }, + "node_modules/copy-webpack-plugin/node_modules/schema-utils": { + "version": "3.3.0", + "resolved": "https://registry.npmjs.org/schema-utils/-/schema-utils-3.3.0.tgz", + "integrity": "sha512-pN/yOAvcC+5rQ5nERGuwrjLlYvLTbCibnZ1I7B1LaiAz9BRBlE9GMgE/eqV30P7aJQUf7Ddimy/RsbYO/GrVGg==", + "dependencies": { + "@types/json-schema": "^7.0.8", + "ajv": "^6.12.5", + "ajv-keywords": "^3.5.2" + }, + "engines": { + "node": ">= 10.13.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/webpack" + } + }, + "node_modules/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==", + "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==", + "dependencies": { + "source-list-map": "^2.0.0", + "source-map": "~0.6.1" + } + }, + "node_modules/core-js": { + "version": "2.5.7", + "resolved": "https://registry.npmjs.org/core-js/-/core-js-2.5.7.tgz", + "integrity": "sha512-RszJCAxg/PP6uzXVXL6BsxSXx/B05oJAQ2vkJRjyjrEcNVycaqOmNb5OTxZPE3xa5gwZduqza6L9JOCenh/Ecw==", + "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." + }, + "node_modules/core-js-compat": { + "version": "3.39.0", + "resolved": "https://registry.npmjs.org/core-js-compat/-/core-js-compat-3.39.0.tgz", + "integrity": "sha512-VgEUx3VwlExr5no0tXlBt+silBvhTryPwCXRI2Id1PN8WTKu7MreethvddqOubrYxkFdv/RnYrqlv1sFNAUelw==", + "dev": true, + "dependencies": { + "browserslist": "^4.24.2" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/core-js" + } + }, + "node_modules/core-util-is": { + "version": "1.0.3", + "resolved": "https://registry.npmjs.org/core-util-is/-/core-util-is-1.0.3.tgz", + "integrity": "sha512-ZQBvi1DcpJ4GDqanjucZ2Hj3wEO5pZDS89BWbkcrvdxksJorwUDDZamX9ldFkp9aw2lmBDLgkObEA4DWNJ9FYQ==" + }, + "node_modules/cosmiconfig": { + "version": "5.2.1", + "resolved": "https://registry.npmjs.org/cosmiconfig/-/cosmiconfig-5.2.1.tgz", + "integrity": "sha512-H65gsXo1SKjf8zmrJ67eJk8aIRKV5ff2D4uKZIBZShbhGSpEmsQOPW/SKMKYhSTrqR7ufy6RP69rPogdaPh/kA==", + "dependencies": { + "import-fresh": "^2.0.0", + "is-directory": "^0.3.1", + "js-yaml": "^3.13.1", + "parse-json": "^4.0.0" + }, + "engines": { + "node": ">=4" + } + }, + "node_modules/cosmiconfig/node_modules/import-fresh": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/import-fresh/-/import-fresh-2.0.0.tgz", + "integrity": "sha512-eZ5H8rcgYazHbKC3PG4ClHNykCSxtAhxSSEM+2mb+7evD2CKF5V7c0dNum7AdpDh0ZdICwZY9sRSn8f+KH96sg==", + "dependencies": { + "caller-path": "^2.0.0", + "resolve-from": "^3.0.0" + }, + "engines": { + "node": ">=4" + } + }, + "node_modules/cosmiconfig/node_modules/resolve-from": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/resolve-from/-/resolve-from-3.0.0.tgz", + "integrity": "sha512-GnlH6vxLymXJNMBo7XP1fJIzBFbdYt49CuTwmB/6N53t+kMPRMFKz783LlQ4tv28XoQfMWinAJX6WCGf2IlaIw==", + "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==", + "dependencies": { + "bn.js": "^4.1.0", + "elliptic": "^6.5.3" + } + }, + "node_modules/create-ecdh/node_modules/bn.js": { + "version": "4.12.1", + "resolved": "https://registry.npmjs.org/bn.js/-/bn.js-4.12.1.tgz", + "integrity": "sha512-k8TVBiPkPJT9uHLdOKfFpqcfprwBFOAAXXozRubr7R7PfIuKvQlzcI4M0pALeqXN09vdaMbUdUj+pass+uULAg==" + }, + "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==", + "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==", + "dependencies": { + "cipher-base": "^1.0.3", + "create-hash": "^1.1.0", + "inherits": "^2.0.1", + "ripemd160": "^2.0.0", + "safe-buffer": "^5.0.1", + "sha.js": "^2.4.8" + } + }, + "node_modules/cross-spawn": { + "version": "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.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/crypto-browserify": { + "version": "3.12.1", + "resolved": "https://registry.npmjs.org/crypto-browserify/-/crypto-browserify-3.12.1.tgz", + "integrity": "sha512-r4ESw/IlusD17lgQi1O20Fa3qNnsckR126TdUuBgAu7GBYSIPvdNyONd3Zrxh0xCwA4+6w/TDArBPsMvhur+KQ==", + "dependencies": { + "browserify-cipher": "^1.0.1", + "browserify-sign": "^4.2.3", + "create-ecdh": "^4.0.4", + "create-hash": "^1.2.0", + "create-hmac": "^1.1.7", + "diffie-hellman": "^5.0.3", + "hash-base": "~3.0.4", + "inherits": "^2.0.4", + "pbkdf2": "^3.1.2", + "public-encrypt": "^4.0.3", + "randombytes": "^2.1.0", + "randomfill": "^1.0.4" + }, + "engines": { + "node": ">= 0.10" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/css-loader": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/css-loader/-/css-loader-1.0.1.tgz", + "integrity": "sha512-+ZHAZm/yqvJ2kDtPne3uX0C+Vr3Zn5jFn2N4HywtS5ujwvsVkyg0VArEXpl3BgczDA8anieki1FIzhchX4yrDw==", + "dependencies": { + "babel-code-frame": "^6.26.0", + "css-selector-tokenizer": "^0.7.0", + "icss-utils": "^2.1.0", + "loader-utils": "^1.0.2", + "lodash": "^4.17.11", + "postcss": "^6.0.23", + "postcss-modules-extract-imports": "^1.2.0", + "postcss-modules-local-by-default": "^1.2.0", + "postcss-modules-scope": "^1.1.0", + "postcss-modules-values": "^1.3.0", + "postcss-value-parser": "^3.3.0", + "source-list-map": "^2.0.0" + }, + "engines": { + "node": ">= 6.9.0 <7.0.0 || >= 8.9.0" + }, + "peerDependencies": { + "webpack": "^4.0.0" + } + }, + "node_modules/css-loader/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/css-loader/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/css-loader/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/css-loader/node_modules/postcss": { + "version": "6.0.23", + "resolved": "https://registry.npmjs.org/postcss/-/postcss-6.0.23.tgz", + "integrity": "sha512-soOk1h6J3VMTZtVeVpv15/Hpdl2cBLX3CAw4TAbkpTJiNPk9YP/zWcD1ND+xEtvyuuvKzbxliTOIyvkSeSJ6ag==", + "dependencies": { + "chalk": "^2.4.1", + "source-map": "^0.6.1", + "supports-color": "^5.4.0" + }, + "engines": { + "node": ">=4.0.0" + } + }, + "node_modules/css-loader/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==" + }, + "node_modules/css-loader/node_modules/source-map": { + "version": "0.6.1", + "resolved": "https://registry.npmjs.org/source-map/-/source-map-0.6.1.tgz", + "integrity": "sha512-UjgapumWlbMhkBgzT7Ykc5YXUT46F0iKu8SGXq0bcwP5dz/h0Plj6enJqjz1Zbq2l5WaqYnrVbwWOWMyF3F47g==", + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/css-loader/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/css-mediaquery": { + "version": "0.1.2", + "resolved": "https://registry.npmjs.org/css-mediaquery/-/css-mediaquery-0.1.2.tgz", + "integrity": "sha512-COtn4EROW5dBGlE/4PiKnh6rZpAPxDeFLaEEwt4i10jpDMFt2EhQGS79QmmrO+iKCHv0PU/HrOWEhijFd1x99Q==" + }, + "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==", + "dev": true, + "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-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==", + "dependencies": { + "cssesc": "^3.0.0", + "fastparse": "^1.1.2" + } + }, + "node_modules/css-tree": { + "version": "1.1.3", + "resolved": "https://registry.npmjs.org/css-tree/-/css-tree-1.1.3.tgz", + "integrity": "sha512-tRpdppF7TRazZrjJ6v3stzv93qxRcSsFmW6cX0Zm2NVKpxE1WV1HblnghVv9TreireHkqI/VDEsfolRF1p6y7Q==", + "dependencies": { + "mdn-data": "2.0.14", + "source-map": "^0.6.1" + }, + "engines": { + "node": ">=8.0.0" + } + }, + "node_modules/css-tree/node_modules/source-map": { + "version": "0.6.1", + "resolved": "https://registry.npmjs.org/source-map/-/source-map-0.6.1.tgz", + "integrity": "sha512-UjgapumWlbMhkBgzT7Ykc5YXUT46F0iKu8SGXq0bcwP5dz/h0Plj6enJqjz1Zbq2l5WaqYnrVbwWOWMyF3F47g==", + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/css-vendor": { + "version": "0.3.8", + "resolved": "https://registry.npmjs.org/css-vendor/-/css-vendor-0.3.8.tgz", + "integrity": "sha512-Vx/Vl3zsHj32Z+WTNzGjd2iSbSIJTYHMmyGUT2nzCjj0Xk4qLfwpQ8nF6TQ5oo3Cf0s/An3DTc7LclH1BkAXbQ==", + "dependencies": { + "is-in-browser": "^1.0.2" + } + }, + "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, + "engines": { + "node": ">= 6" + }, + "funding": { + "url": "https://github.com/sponsors/fb55" + } + }, + "node_modules/cssesc": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/cssesc/-/cssesc-3.0.0.tgz", + "integrity": "sha512-/Tb/JcjK111nNScGob5MNtsntNM1aCNUDipB/TkwZFhyDrrE47SOx/18wF2bbjgc3ZzCSKW1T5nt5EbFoAz/Vg==", + "bin": { + "cssesc": "bin/cssesc" + }, + "engines": { + "node": ">=4" + } + }, + "node_modules/cssom": { + "version": "0.3.8", + "resolved": "https://registry.npmjs.org/cssom/-/cssom-0.3.8.tgz", + "integrity": "sha512-b0tGHbfegbhPJpxpiBPU2sCkigAqtM9O121le6bbOlgyV+NyGyCmVfJ6QW9eRjz8CpNfWEOYBIMIGRYkLwsIYg==", + "dev": true + }, + "node_modules/cssstyle": { + "version": "0.2.37", + "resolved": "https://registry.npmjs.org/cssstyle/-/cssstyle-0.2.37.tgz", + "integrity": "sha512-FUpKc+1FNBsHUr9IsfSGCovr8VuGOiiuzlgCyppKBjJi2jYTOFLN3oiiNRMIvYqbFzF38mqKj4BgcevzU5/kIA==", + "dev": true, + "dependencies": { + "cssom": "0.3.x" + } + }, + "node_modules/cyclist": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/cyclist/-/cyclist-1.0.2.tgz", + "integrity": "sha512-0sVXIohTfLqVIW3kb/0n6IiWF3Ifj5nm2XaSrLq2DI6fKIGa2fYAZdk917rUneaeLVpYfFcyXE2ft0fe3remsA==" + }, + "node_modules/dashdash": { + "version": "1.14.1", + "resolved": "https://registry.npmjs.org/dashdash/-/dashdash-1.14.1.tgz", + "integrity": "sha512-jRFi8UDGo6j+odZiEpjazZaWqEal3w/basFjQHQEwVtZJGDpxbH1MeYluwCS8Xq5wmLJooDlMgvVarmWfGM44g==", + "dependencies": { + "assert-plus": "^1.0.0" + }, + "engines": { + "node": ">=0.10" + } + }, + "node_modules/data-view-buffer": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/data-view-buffer/-/data-view-buffer-1.0.1.tgz", + "integrity": "sha512-0lht7OugA5x3iJLOWFhWK/5ehONdprk0ISXqVFn/NFrDu+cuc8iADFrGQz5BnRK7LLU3JmkbXSxaqX+/mXYtUA==", + "dev": true, + "dependencies": { + "call-bind": "^1.0.6", + "es-errors": "^1.3.0", + "is-data-view": "^1.0.1" + }, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/data-view-byte-length": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/data-view-byte-length/-/data-view-byte-length-1.0.1.tgz", + "integrity": "sha512-4J7wRJD3ABAzr8wP+OcIcqq2dlUKp4DVflx++hs5h5ZKydWMI6/D/fAot+yh6g2tHh8fLFTvNOaVN357NvSrOQ==", + "dev": true, + "dependencies": { + "call-bind": "^1.0.7", + "es-errors": "^1.3.0", + "is-data-view": "^1.0.1" + }, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/data-view-byte-offset": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/data-view-byte-offset/-/data-view-byte-offset-1.0.0.tgz", + "integrity": "sha512-t/Ygsytq+R995EJ5PZlD4Cu56sWa8InXySaViRzw9apusqsOO2bQP+SbYzAhR0pFKoB+43lYy8rWban9JSuXnA==", + "dev": true, + "dependencies": { + "call-bind": "^1.0.6", + "es-errors": "^1.3.0", + "is-data-view": "^1.0.1" + }, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/debug": { + "version": "4.3.7", + "resolved": "https://registry.npmjs.org/debug/-/debug-4.3.7.tgz", + "integrity": "sha512-Er2nc/H7RrMXZBFCEim6TCmMk02Z8vLC2Rbi1KEBggpo0fS6l0S1nnapwmIi3yW/+GOJap1Krg4w0Hg80oCqgQ==", + "dependencies": { + "ms": "^2.1.3" + }, + "engines": { + "node": ">=6.0" + }, + "peerDependenciesMeta": { + "supports-color": { + "optional": true + } + } + }, + "node_modules/decamelize": { + "version": "1.2.0", + "resolved": "https://registry.npmjs.org/decamelize/-/decamelize-1.2.0.tgz", + "integrity": "sha512-z2S+W9X73hAUUki+N+9Za2lBlun89zigOyGrsax+KUQ6wKW4ZoWpEYBkGhQjwAjjDCkWxhY0VKEhk8wzY7F5cA==", + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/decimal.js": { + "version": "10.4.3", + "resolved": "https://registry.npmjs.org/decimal.js/-/decimal.js-10.4.3.tgz", + "integrity": "sha512-VBBaLc1MgL5XpzgIP7ny5Z6Nx3UrRkIViUkPUdtl9aya5amy3De1gsUUSB1g3+3sExYNjCAsAznmukyxCb1GRA==" + }, + "node_modules/decode-html": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/decode-html/-/decode-html-2.0.0.tgz", + "integrity": "sha512-lVJ+EBozhAXA2nSQG+xAgcD0P5K3uejnIIvM09uoQfS8AALkQ+HhHcEUvKovXi0EIpIZWjm0y8X7ULjaJpgY9w==" + }, + "node_modules/decode-uri-component": { + "version": "0.2.2", + "resolved": "https://registry.npmjs.org/decode-uri-component/-/decode-uri-component-0.2.2.tgz", + "integrity": "sha512-FqUYQ+8o158GyGTrMFJms9qh3CqTKvAqgqsTnkLI8sKu0028orqBhxNMFkFen0zGyg6epACD32pjVk58ngIErQ==", + "engines": { + "node": ">=0.10" + } + }, + "node_modules/decompress": { + "version": "4.2.1", + "resolved": "https://registry.npmjs.org/decompress/-/decompress-4.2.1.tgz", + "integrity": "sha512-e48kc2IjU+2Zw8cTb6VZcJQ3lgVbS4uuB1TfCHbiZIP/haNXm+SVyhu+87jts5/3ROpd82GSVCoNs/z8l4ZOaQ==", + "dependencies": { + "decompress-tar": "^4.0.0", + "decompress-tarbz2": "^4.0.0", + "decompress-targz": "^4.0.0", + "decompress-unzip": "^4.0.1", + "graceful-fs": "^4.1.10", + "make-dir": "^1.0.0", + "pify": "^2.3.0", + "strip-dirs": "^2.0.0" + }, + "engines": { + "node": ">=4" + } + }, + "node_modules/decompress-response": { + "version": "3.3.0", + "resolved": "https://registry.npmjs.org/decompress-response/-/decompress-response-3.3.0.tgz", + "integrity": "sha512-BzRPQuY1ip+qDonAOz42gRm/pg9F768C+npV/4JOsxRC2sq+Rlk+Q4ZCAsOhnIaMrgarILY+RMUIvMmmX1qAEA==", + "dependencies": { + "mimic-response": "^1.0.0" + }, + "engines": { + "node": ">=4" + } + }, + "node_modules/decompress-tar": { + "version": "4.1.1", + "resolved": "https://registry.npmjs.org/decompress-tar/-/decompress-tar-4.1.1.tgz", + "integrity": "sha512-JdJMaCrGpB5fESVyxwpCx4Jdj2AagLmv3y58Qy4GE6HMVjWz1FeVQk1Ct4Kye7PftcdOo/7U7UKzYBJgqnGeUQ==", + "dependencies": { + "file-type": "^5.2.0", + "is-stream": "^1.1.0", + "tar-stream": "^1.5.2" + }, + "engines": { + "node": ">=4" + } + }, + "node_modules/decompress-tar/node_modules/file-type": { + "version": "5.2.0", + "resolved": "https://registry.npmjs.org/file-type/-/file-type-5.2.0.tgz", + "integrity": "sha512-Iq1nJ6D2+yIO4c8HHg4fyVb8mAJieo1Oloy1mLLaB2PvezNedhBVm+QU7g0qM42aiMbRXTxKKwGD17rjKNJYVQ==", + "engines": { + "node": ">=4" + } + }, + "node_modules/decompress-tarbz2": { + "version": "4.1.1", + "resolved": "https://registry.npmjs.org/decompress-tarbz2/-/decompress-tarbz2-4.1.1.tgz", + "integrity": "sha512-s88xLzf1r81ICXLAVQVzaN6ZmX4A6U4z2nMbOwobxkLoIIfjVMBg7TeguTUXkKeXni795B6y5rnvDw7rxhAq9A==", + "dependencies": { + "decompress-tar": "^4.1.0", + "file-type": "^6.1.0", + "is-stream": "^1.1.0", + "seek-bzip": "^1.0.5", + "unbzip2-stream": "^1.0.9" + }, + "engines": { + "node": ">=4" + } + }, + "node_modules/decompress-tarbz2/node_modules/file-type": { + "version": "6.2.0", + "resolved": "https://registry.npmjs.org/file-type/-/file-type-6.2.0.tgz", + "integrity": "sha512-YPcTBDV+2Tm0VqjybVd32MHdlEGAtuxS3VAYsumFokDSMG+ROT5wawGlnHDoz7bfMcMDt9hxuXvXwoKUx2fkOg==", + "engines": { + "node": ">=4" + } + }, + "node_modules/decompress-targz": { + "version": "4.1.1", + "resolved": "https://registry.npmjs.org/decompress-targz/-/decompress-targz-4.1.1.tgz", + "integrity": "sha512-4z81Znfr6chWnRDNfFNqLwPvm4db3WuZkqV+UgXQzSngG3CEKdBkw5jrv3axjjL96glyiiKjsxJG3X6WBZwX3w==", + "dependencies": { + "decompress-tar": "^4.1.1", + "file-type": "^5.2.0", + "is-stream": "^1.1.0" + }, + "engines": { + "node": ">=4" + } + }, + "node_modules/decompress-targz/node_modules/file-type": { + "version": "5.2.0", + "resolved": "https://registry.npmjs.org/file-type/-/file-type-5.2.0.tgz", + "integrity": "sha512-Iq1nJ6D2+yIO4c8HHg4fyVb8mAJieo1Oloy1mLLaB2PvezNedhBVm+QU7g0qM42aiMbRXTxKKwGD17rjKNJYVQ==", + "engines": { + "node": ">=4" + } + }, + "node_modules/decompress-unzip": { + "version": "4.0.1", + "resolved": "https://registry.npmjs.org/decompress-unzip/-/decompress-unzip-4.0.1.tgz", + "integrity": "sha512-1fqeluvxgnn86MOh66u8FjbtJpAFv5wgCT9Iw8rcBqQcCo5tO8eiJw7NNTrvt9n4CRBVq7CstiS922oPgyGLrw==", + "dependencies": { + "file-type": "^3.8.0", + "get-stream": "^2.2.0", + "pify": "^2.3.0", + "yauzl": "^2.4.2" + }, + "engines": { + "node": ">=4" + } + }, + "node_modules/decompress-unzip/node_modules/file-type": { + "version": "3.9.0", + "resolved": "https://registry.npmjs.org/file-type/-/file-type-3.9.0.tgz", + "integrity": "sha512-RLoqTXE8/vPmMuTI88DAzhMYC99I8BWv7zYP4A1puo5HIjEJ5EX48ighy4ZyKMG9EDXxBgW6e++cn7d1xuFghA==", + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/decompress-unzip/node_modules/get-stream": { + "version": "2.3.1", + "resolved": "https://registry.npmjs.org/get-stream/-/get-stream-2.3.1.tgz", + "integrity": "sha512-AUGhbbemXxrZJRD5cDvKtQxLuYaIbNtDTK8YqupCI393Q2KSTreEsLUN3ZxAWFGiKTzL6nKuzfcIvieflUX9qA==", + "dependencies": { + "object-assign": "^4.0.1", + "pinkie-promise": "^2.0.0" + }, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/decompress-unzip/node_modules/pify": { + "version": "2.3.0", + "resolved": "https://registry.npmjs.org/pify/-/pify-2.3.0.tgz", + "integrity": "sha512-udgsAY+fTnvv7kI7aaxbqwWNb0AHiB0qBO89PZKPkoTmGOgdbrHDKD+0B2X4uTfJ/FT1R09r9gTsjUjNJotuog==", + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/decompress/node_modules/make-dir": { + "version": "1.3.0", + "resolved": "https://registry.npmjs.org/make-dir/-/make-dir-1.3.0.tgz", + "integrity": "sha512-2w31R7SJtieJJnQtGc7RVL2StM2vGYVfqUOvUDxH6bC6aJTxPxTF0GnIgCyu7tjockiUWAYQRbxa7vKn34s5sQ==", + "dependencies": { + "pify": "^3.0.0" + }, + "engines": { + "node": ">=4" + } + }, + "node_modules/decompress/node_modules/make-dir/node_modules/pify": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/pify/-/pify-3.0.0.tgz", + "integrity": "sha512-C3FsVNH1udSEX48gGX1xfvwTWfsYWj5U+8/uK15BGzIGrKoUpghX8hWZwa/OFnakBiiVNmBvemTJR5mcy7iPcg==", + "engines": { + "node": ">=4" + } + }, + "node_modules/decompress/node_modules/pify": { + "version": "2.3.0", + "resolved": "https://registry.npmjs.org/pify/-/pify-2.3.0.tgz", + "integrity": "sha512-udgsAY+fTnvv7kI7aaxbqwWNb0AHiB0qBO89PZKPkoTmGOgdbrHDKD+0B2X4uTfJ/FT1R09r9gTsjUjNJotuog==", + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/deep-equal": { + "version": "1.1.2", + "resolved": "https://registry.npmjs.org/deep-equal/-/deep-equal-1.1.2.tgz", + "integrity": "sha512-5tdhKF6DbU7iIzrIOa1AOUt39ZRm13cmL1cGEh//aqR8x9+tNfbywRf0n5FD/18OKMdo7DNEtrX2t22ZAkI+eg==", + "dev": true, + "dependencies": { + "is-arguments": "^1.1.1", + "is-date-object": "^1.0.5", + "is-regex": "^1.1.4", + "object-is": "^1.1.5", + "object-keys": "^1.1.1", + "regexp.prototype.flags": "^1.5.1" + }, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/deep-is": { + "version": "0.1.4", + "resolved": "https://registry.npmjs.org/deep-is/-/deep-is-0.1.4.tgz", + "integrity": "sha512-oIPzksmTg4/MriiaYGO+okXDT7ztn/w3Eptv/+gSIdMdKsJo0u4CfYNFJPy+4SKMuCqGw2wxnA+URMg3t8a/bQ==" + }, + "node_modules/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/default-gateway/node_modules/ip-regex": { + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/ip-regex/-/ip-regex-2.1.0.tgz", + "integrity": "sha512-58yWmlHpp7VYfcdTwMTvwMmqx/Elfxjd9RXTDyMsbL7lLWmhMylLEqiYVLKuLzOZqVgiWXD9MfR62Vv89VRxkw==", + "dev": true, + "engines": { + "node": ">=4" + } + }, + "node_modules/default-require-extensions": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/default-require-extensions/-/default-require-extensions-1.0.0.tgz", + "integrity": "sha512-Dn2eAftOqXhNXs5f/Xjn7QTZ6kDYkx7u0EXQInN1oyYwsZysu11q7oTtaKcbzLxZRJiDHa8VmwpWmb4lY5FqgA==", + "dev": true, + "dependencies": { + "strip-bom": "^2.0.0" + }, + "engines": { + "node": ">=0.10.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/define-properties": { + "version": "1.2.1", + "resolved": "https://registry.npmjs.org/define-properties/-/define-properties-1.2.1.tgz", + "integrity": "sha512-8QmQKqEASLd5nx0U1B1okLElbUuuttJ/AnYmRXbbbGDWh6uS208EjD4Xqq/I9wK7u0v6O08XhTWnt5XtEbR6Dg==", + "dependencies": { + "define-data-property": "^1.0.1", + "has-property-descriptors": "^1.0.0", + "object-keys": "^1.1.1" + }, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/define-property": { + "version": "2.0.2", + "resolved": "https://registry.npmjs.org/define-property/-/define-property-2.0.2.tgz", + "integrity": "sha512-jwK2UV4cnPpbcG7+VRARKTZPUWowwXA8bzH5NP6ud0oeAxyYPuGZUAC7hMugpCdz4BeSZl2Dl9k66CHJ/46ZYQ==", + "dependencies": { + "is-descriptor": "^1.0.2", + "isobject": "^3.0.1" + }, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/del": { + "version": "6.1.1", + "resolved": "https://registry.npmjs.org/del/-/del-6.1.1.tgz", + "integrity": "sha512-ua8BhapfP0JUJKC/zV9yHHDW/rDoDxP4Zhn3AkA6/xT6gY7jYXJiaeyBZznYVujhZZET+UgcbZiQ7sN3WqcImg==", + "dev": true, + "dependencies": { + "globby": "^11.0.1", + "graceful-fs": "^4.2.4", + "is-glob": "^4.0.1", + "is-path-cwd": "^2.2.0", + "is-path-inside": "^3.0.2", + "p-map": "^4.0.0", + "rimraf": "^3.0.2", + "slash": "^3.0.0" + }, + "engines": { + "node": ">=10" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/del/node_modules/rimraf": { + "version": "3.0.2", + "resolved": "https://registry.npmjs.org/rimraf/-/rimraf-3.0.2.tgz", + "integrity": "sha512-JZkJMZkAGFFPP2YqXZXPbMlMBgsxzE8ILs4lMIX/2o0L9UBw9O/Y3o6wFw/i9YLapcUJWwqbi3kdxIPdC62TIA==", + "deprecated": "Rimraf versions prior to v4 are no longer supported", + "dev": true, + "dependencies": { + "glob": "^7.1.3" + }, + "bin": { + "rimraf": "bin.js" + }, + "funding": { + "url": "https://github.com/sponsors/isaacs" + } + }, + "node_modules/del/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/delayed-stream": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/delayed-stream/-/delayed-stream-1.0.0.tgz", + "integrity": "sha512-ZySD7Nf91aLB0RxL4KGrKHBXl7Eds1DAmEdcoVawXnLD7SDhpNgtuII2aAkg7a7QS41jxPSZ17p4VdGnMHk3MQ==", + "engines": { + "node": ">=0.4.0" + } + }, + "node_modules/depd": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/depd/-/depd-2.0.0.tgz", + "integrity": "sha512-g7nH6P6dyDioJogAAGprGpCtVImJhpPk/roCzdb3fIh61/s/nPsfR6onyMwkCAR/OlC3yBC0lESvUoQEAssIrw==", + "dev": true, + "engines": { + "node": ">= 0.8" + } + }, + "node_modules/des.js": { + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/des.js/-/des.js-1.1.0.tgz", + "integrity": "sha512-r17GxjhUCjSRy8aiJpr8/UadFIzMzJGexI3Nmz4ADi9LYSFx4gTBp80+NaX/YsXWWLhpZ7v/v/ubEc/bCNfKwg==", + "dependencies": { + "inherits": "^2.0.1", + "minimalistic-assert": "^1.0.0" + } + }, + "node_modules/destroy": { + "version": "1.2.0", + "resolved": "https://registry.npmjs.org/destroy/-/destroy-1.2.0.tgz", + "integrity": "sha512-2sJGJTaXIIaR1w4iJSNoN0hnMY7Gpc/n8D4qSCJw8QqFWXf7cuAgnEHxBpweaVcPevC2l3KpjYCx3NypQQgaJg==", + "dev": true, + "engines": { + "node": ">= 0.8", + "npm": "1.2.8000 || >= 1.4.16" + } + }, + "node_modules/detect-file": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/detect-file/-/detect-file-1.0.0.tgz", + "integrity": "sha512-DtCOLG98P007x7wiiOmfI0fi3eIKyWiLTGJ2MDnVi/E04lWGbf+JzrRHMm0rgIIZJGtHpKpbVgLWHrv8xXpc3Q==", + "dev": true, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/detect-indent": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/detect-indent/-/detect-indent-4.0.0.tgz", + "integrity": "sha512-BDKtmHlOzwI7iRuEkhzsnPoi5ypEhWAJB5RvHWe1kMr06js3uK5B3734i3ui5Yd+wOJV1cpE4JnivPD283GU/A==", + "dev": true, + "dependencies": { + "repeating": "^2.0.0" + }, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/detect-node": { + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/detect-node/-/detect-node-2.1.0.tgz", + "integrity": "sha512-T0NIuQpnTvFDATNuHN5roPwSBG83rFsuO+MXXH9/3N1eFbn4wcPjttvjMLEPWJ0RGUYgQE7cGgS3tNxbqCGM7g==", + "dev": true + }, + "node_modules/diff": { + "version": "3.5.0", + "resolved": "https://registry.npmjs.org/diff/-/diff-3.5.0.tgz", + "integrity": "sha512-A46qtFgd+g7pDZinpnwiRJtxbC1hpgf0uzP3iG89scHk0AUC7A1TGxf5OiiOUv/JMZR8GOt8hL900hV0bOy5xA==", + "dev": true, + "engines": { + "node": ">=0.3.1" + } + }, + "node_modules/diff-match-patch": { + "version": "1.0.4", + "resolved": "https://registry.npmjs.org/diff-match-patch/-/diff-match-patch-1.0.4.tgz", + "integrity": "sha512-Uv3SW8bmH9nAtHKaKSanOQmj2DnlH65fUpcrMdfdaOxUG02QQ4YGZ8AE7kKOMisF7UqvOlGKVYWRvezdncW9lg==" + }, + "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==", + "dependencies": { + "bn.js": "^4.1.0", + "miller-rabin": "^4.0.0", + "randombytes": "^2.0.0" + } + }, + "node_modules/diffie-hellman/node_modules/bn.js": { + "version": "4.12.1", + "resolved": "https://registry.npmjs.org/bn.js/-/bn.js-4.12.1.tgz", + "integrity": "sha512-k8TVBiPkPJT9uHLdOKfFpqcfprwBFOAAXXozRubr7R7PfIuKvQlzcI4M0pALeqXN09vdaMbUdUj+pass+uULAg==" + }, + "node_modules/dir-glob": { + "version": "3.0.1", + "resolved": "https://registry.npmjs.org/dir-glob/-/dir-glob-3.0.1.tgz", + "integrity": "sha512-WkrWp9GR4KXfKGYzOLmTuGVi1UWFfws377n9cc55/tb6DuqyF6pcQ5AbiHEshaDpY9v6oaSr2XCDidGmMwdzIA==", + "dependencies": { + "path-type": "^4.0.0" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/discontinuous-range": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/discontinuous-range/-/discontinuous-range-1.0.0.tgz", + "integrity": "sha512-c68LpLbO+7kP/b1Hr1qs8/BJ09F5khZGTxqxZuhzxpmwJKOgRFHJWIb9/KmqnqHhLdO55aOxFH/EGBvUQbL/RQ==", + "dev": true + }, + "node_modules/dns-equal": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/dns-equal/-/dns-equal-1.0.0.tgz", + "integrity": "sha512-z+paD6YUQsk+AbGCEM4PrOXSss5gd66QfcVBFTKR/HpFL9jCqikS94HYwKww6fQyO7IxrIIyUu+g0Ka9tUS2Cg==", + "dev": true + }, + "node_modules/dns-packet": { + "version": "1.3.4", + "resolved": "https://registry.npmjs.org/dns-packet/-/dns-packet-1.3.4.tgz", + "integrity": "sha512-BQ6F4vycLXBvdrJZ6S3gZewt6rcrks9KBgM9vrhW+knGRqc8uEdT7fuCwloc7nny5xNoMJ17HGH0R/6fpo8ECA==", + "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": "sha512-Ix5PrWjphuSoUXV/Zv5gaFHjnaJtb02F2+Si3Ht9dyJ87+Z/lMmy+dpNHtTGraNK958ndXq2i+GLkWsWHcKaBQ==", + "dev": true, + "dependencies": { + "buffer-indexof": "^1.0.0" + } + }, + "node_modules/doctrine": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/doctrine/-/doctrine-3.0.0.tgz", + "integrity": "sha512-yS+Q5i3hBf7GBkd4KG8a7eBNNWNGLTaEwwYWUijIYM7zrlYDM0BFXHjjPWlWZ1Rg7UaddZeIDmi9jF3HmqiQ2w==", + "dev": true, + "dependencies": { + "esutils": "^2.0.2" + }, + "engines": { + "node": ">=6.0.0" + } + }, + "node_modules/dom-converter": { + "version": "0.2.0", + "resolved": "https://registry.npmjs.org/dom-converter/-/dom-converter-0.2.0.tgz", + "integrity": "sha512-gd3ypIPfOMr9h5jIKq8E3sHOTCjeirnl0WK5ZdS1AW0Odt0b1PaWaHdJ4Qk4klv+YB9aJBS7mESXjFoDQPu6DA==", + "dev": true, + "dependencies": { + "utila": "~0.4" + } + }, + "node_modules/dom-helpers": { + "version": "3.4.0", + "resolved": "https://registry.npmjs.org/dom-helpers/-/dom-helpers-3.4.0.tgz", + "integrity": "sha512-LnuPJ+dwqKDIyotW1VzmOZ5TONUN7CwkCR5hrgawTUbkBGYdeoNLZo6nNfGkCrjtE1nXXaj7iMMpDa8/d9WoIA==", + "dependencies": { + "@babel/runtime": "^7.1.2" + } + }, + "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==", + "dev": true, + "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/dom-walk": { + "version": "0.1.2", + "resolved": "https://registry.npmjs.org/dom-walk/-/dom-walk-0.1.2.tgz", + "integrity": "sha512-6QvTW9mrGeIegrFXdtQi9pk7O/nSK6lSdXW2eqUspN5LWD7UTji2Fqw5V2YLjBpHEoU9Xl/eUWNpDeZvoyOv2w==" + }, + "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==", + "engines": { + "node": ">=0.4", + "npm": ">=1.2" + } + }, + "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" + } + ] + }, + "node_modules/domhandler": { + "version": "5.0.3", + "resolved": "https://registry.npmjs.org/domhandler/-/domhandler-5.0.3.tgz", + "integrity": "sha512-cgwlv/1iFQiFnU96XXgROh8xTeetsnJiDsTc7TYCLFd9+/WNkIqPTxiM/8pSd8VIrhXGTf1Ny1q1hquVqDJB5w==", + "dev": true, + "dependencies": { + "domelementtype": "^2.3.0" + }, + "engines": { + "node": ">= 4" + }, + "funding": { + "url": "https://github.com/fb55/domhandler?sponsor=1" + } + }, + "node_modules/dompurify": { + "version": "2.5.7", + "resolved": "https://registry.npmjs.org/dompurify/-/dompurify-2.5.7.tgz", + "integrity": "sha512-2q4bEI+coQM8f5ez7kt2xclg1XsecaV9ASJk/54vwlfRRNQfDqJz2pzQ8t0Ix/ToBpXlVjrRIx7pFC/o8itG2Q==" + }, + "node_modules/domutils": { + "version": "3.1.0", + "resolved": "https://registry.npmjs.org/domutils/-/domutils-3.1.0.tgz", + "integrity": "sha512-H78uMmQtI2AhgDJjWeQmHwJJ2bLPD3GMmO7Zja/ZZh84wkm+4ut+IUnUdRa8uCGX88DiVx1j6FRe1XfxEgjEZA==", + "dev": true, + "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/dot-case": { + "version": "3.0.4", + "resolved": "https://registry.npmjs.org/dot-case/-/dot-case-3.0.4.tgz", + "integrity": "sha512-Kv5nKlh6yRrdrGvxeJ2e5y2eRUpkUosIW4A2AS38zwSz27zu7ufDwQPi5Jhs3XAlGNetl3bmnGhQsMtkKJnj3w==", + "dev": true, + "dependencies": { + "no-case": "^3.0.4", + "tslib": "^2.0.3" + } + }, + "node_modules/download": { + "version": "8.0.0", + "resolved": "https://registry.npmjs.org/download/-/download-8.0.0.tgz", + "integrity": "sha512-ASRY5QhDk7FK+XrQtQyvhpDKanLluEEQtWl/J7Lxuf/b+i8RYh997QeXvL85xitrmRKVlx9c7eTrcRdq2GS4eA==", + "dependencies": { + "archive-type": "^4.0.0", + "content-disposition": "^0.5.2", + "decompress": "^4.2.1", + "ext-name": "^5.0.0", + "file-type": "^11.1.0", + "filenamify": "^3.0.0", + "get-stream": "^4.1.0", + "got": "^8.3.1", + "make-dir": "^2.1.0", + "p-event": "^2.1.0", + "pify": "^4.0.1" + }, + "engines": { + "node": ">=10" + } + }, + "node_modules/duplexer2": { + "version": "0.1.4", + "resolved": "https://registry.npmjs.org/duplexer2/-/duplexer2-0.1.4.tgz", + "integrity": "sha512-asLFVfWWtJ90ZyOUHMqk7/S2w2guQKxUI2itj3d92ADHhxUSbCMGi1f1cBcJ7xM1To+pE/Khbwo1yuNbMEPKeA==", + "dependencies": { + "readable-stream": "^2.0.2" + } + }, + "node_modules/duplexer3": { + "version": "0.1.5", + "resolved": "https://registry.npmjs.org/duplexer3/-/duplexer3-0.1.5.tgz", + "integrity": "sha512-1A8za6ws41LQgv9HrE/66jyC5yuSjQ3L/KOpFtoBilsAK2iA2wuS5rTt1OCzIvtS2V7nVmedsUU+DGRcjBmOYA==" + }, + "node_modules/duplexify": { + "version": "3.7.1", + "resolved": "https://registry.npmjs.org/duplexify/-/duplexify-3.7.1.tgz", + "integrity": "sha512-07z8uv2wMyS51kKhD1KsdXJg5WQ6t93RneqRxUHnskXVtlYYkLqM0gqStQZ3pj073g687jPCHrqNfCzawLYh5g==", + "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": "sha512-eh9O+hwRHNbG4BLTjEl3nw044CkGm5X6LoaCf7LPp7UU8Qrt47JYNi6nPX8xjW97TKGKm1ouctg0QSpZe9qrnw==", + "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": "sha512-WMwm9LhRUo+WUaRN+vRuETqG89IgZphVSNkdFgeb6sS/E4OrDIN7t48CAewSHXc6C8lefD8KKfr5vY61brQlow==", + "dev": true + }, + "node_modules/electron-to-chromium": { + "version": "1.5.62", + "resolved": "https://registry.npmjs.org/electron-to-chromium/-/electron-to-chromium-1.5.62.tgz", + "integrity": "sha512-t8c+zLmJHa9dJy96yBZRXGQYoiCEnHYgFwn1asvSPZSUdVxnB62A4RASd7k41ytG3ErFBA0TpHlKg9D9SQBmLg==" + }, + "node_modules/elliptic": { + "version": "6.6.1", + "resolved": "https://registry.npmjs.org/elliptic/-/elliptic-6.6.1.tgz", + "integrity": "sha512-RaddvvMatK2LJHqFJ+YA4WysVN5Ita9E35botqIYspQ4TkRAlCicdzKOjlyv/1Za5RyTNn7di//eEV0uTAfe3g==", + "dependencies": { + "bn.js": "^4.11.9", + "brorand": "^1.1.0", + "hash.js": "^1.0.0", + "hmac-drbg": "^1.0.1", + "inherits": "^2.0.4", + "minimalistic-assert": "^1.0.1", + "minimalistic-crypto-utils": "^1.0.1" + } + }, + "node_modules/elliptic/node_modules/bn.js": { + "version": "4.12.1", + "resolved": "https://registry.npmjs.org/bn.js/-/bn.js-4.12.1.tgz", + "integrity": "sha512-k8TVBiPkPJT9uHLdOKfFpqcfprwBFOAAXXozRubr7R7PfIuKvQlzcI4M0pALeqXN09vdaMbUdUj+pass+uULAg==" + }, + "node_modules/email-addresses": { + "version": "3.1.0", + "resolved": "https://registry.npmjs.org/email-addresses/-/email-addresses-3.1.0.tgz", + "integrity": "sha512-k0/r7GrWVL32kZlGwfPNgB2Y/mMXVTq/decgLczm/j34whdaspNrZO8CnXPf1laaHxI6ptUlsnAxN+UAPw+fzg==", + "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==", + "engines": { + "node": ">= 4" + } + }, + "node_modules/encodeurl": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/encodeurl/-/encodeurl-2.0.0.tgz", + "integrity": "sha512-Q0n9HRi4m6JuGIV1eFlmvJB7ZEVxu93IrMyiMsGC0lrMJMWzRgx6WGquyfQgZVb31vhGgXnfmPNNXmxnOkRBrg==", + "dev": true, + "engines": { + "node": ">= 0.8" + } + }, + "node_modules/encoding": { + "version": "0.1.13", + "resolved": "https://registry.npmjs.org/encoding/-/encoding-0.1.13.tgz", + "integrity": "sha512-ETBauow1T35Y/WZMkio9jiM0Z5xjHHmJ4XmjZOq1l/dXz3lr2sRn87nJy20RupqSh1F2m3HHPSp8ShIPQJrJ3A==", + "dev": true, + "dependencies": { + "iconv-lite": "^0.6.2" + } + }, + "node_modules/encoding-sniffer": { + "version": "0.2.0", + "resolved": "https://registry.npmjs.org/encoding-sniffer/-/encoding-sniffer-0.2.0.tgz", + "integrity": "sha512-ju7Wq1kg04I3HtiYIOrUrdfdDvkyO9s5XM8QAj/bN61Yo/Vb4vgJxy5vi4Yxk01gWHbrofpPtpxM8bKger9jhg==", + "dev": true, + "dependencies": { + "iconv-lite": "^0.6.3", + "whatwg-encoding": "^3.1.1" + }, + "funding": { + "url": "https://github.com/fb55/encoding-sniffer?sponsor=1" + } + }, + "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==", + "dependencies": { + "once": "^1.4.0" + } + }, + "node_modules/enhanced-resolve": { + "version": "0.9.1", + "resolved": "https://registry.npmjs.org/enhanced-resolve/-/enhanced-resolve-0.9.1.tgz", + "integrity": "sha512-kxpoMgrdtkXZ5h0SeraBS1iRntpTpQ3R8ussdb38+UAFnMGX5DDyJXePm+OCHOcoXvHDw7mc2erbJBpDnl7TPw==", + "dev": true, + "dependencies": { + "graceful-fs": "^4.1.2", + "memory-fs": "^0.2.0", + "tapable": "^0.1.8" + }, + "engines": { + "node": ">=0.6" + } + }, + "node_modules/entities": { + "version": "4.5.0", + "resolved": "https://registry.npmjs.org/entities/-/entities-4.5.0.tgz", + "integrity": "sha512-V0hjH4dGPh9Ao5p0MoRY6BVqtwCjhz6vI5LT8AJ55H+4g9/4vbHx1I54fS0XuclLhDHArPQCiMjDxjaL8fPxhw==", + "dev": true, + "engines": { + "node": ">=0.12" + }, + "funding": { + "url": "https://github.com/fb55/entities?sponsor=1" + } + }, + "node_modules/enzyme": { + "version": "3.10.0", + "resolved": "https://registry.npmjs.org/enzyme/-/enzyme-3.10.0.tgz", + "integrity": "sha512-p2yy9Y7t/PFbPoTvrWde7JIYB2ZyGC+NgTNbVEGvZ5/EyoYSr9aG/2rSbVvyNvMHEhw9/dmGUJHWtfQIEiX9pg==", + "dev": true, + "dependencies": { + "array.prototype.flat": "^1.2.1", + "cheerio": "^1.0.0-rc.2", + "function.prototype.name": "^1.1.0", + "has": "^1.0.3", + "html-element-map": "^1.0.0", + "is-boolean-object": "^1.0.0", + "is-callable": "^1.1.4", + "is-number-object": "^1.0.3", + "is-regex": "^1.0.4", + "is-string": "^1.0.4", + "is-subset": "^0.1.1", + "lodash.escape": "^4.0.1", + "lodash.isequal": "^4.5.0", + "object-inspect": "^1.6.0", + "object-is": "^1.0.1", + "object.assign": "^4.1.0", + "object.entries": "^1.0.4", + "object.values": "^1.0.4", + "raf": "^3.4.0", + "rst-selector-parser": "^2.2.3", + "string.prototype.trim": "^1.1.2" + } + }, + "node_modules/enzyme-adapter-react-16": { + "version": "1.3.0", + "resolved": "https://registry.npmjs.org/enzyme-adapter-react-16/-/enzyme-adapter-react-16-1.3.0.tgz", + "integrity": "sha512-TRX+Y5QPreGmqfFU3bPsJUmqNZX9paQCmQ93kj7hnfQoZzufO/pahGN/OviWn60YcgaQojhf0AWv3PxrIDARbA==", + "dev": true, + "dependencies": { + "enzyme-adapter-utils": "^1.6.0", + "function.prototype.name": "^1.1.0", + "object.assign": "^4.1.0", + "object.values": "^1.0.4", + "prop-types": "^15.6.2", + "react-is": "^16.4.2", + "react-test-renderer": "^16.0.0-0" + }, + "peerDependencies": { + "enzyme": "^3.0.0", + "react": "^16.0.0-0", + "react-dom": "^16.0.0-0" + } + }, + "node_modules/enzyme-adapter-utils": { + "version": "1.14.2", + "resolved": "https://registry.npmjs.org/enzyme-adapter-utils/-/enzyme-adapter-utils-1.14.2.tgz", + "integrity": "sha512-1ZC++RlsYRaiOWE5NRaF5OgsMt7F5rn/VuaJIgc7eW/fmgg8eS1/Ut7EugSPPi7VMdWMLcymRnMF+mJUJ4B8KA==", + "dev": true, + "dependencies": { + "airbnb-prop-types": "^2.16.0", + "function.prototype.name": "^1.1.6", + "hasown": "^2.0.0", + "object.assign": "^4.1.5", + "object.fromentries": "^2.0.7", + "prop-types": "^15.8.1", + "semver": "^6.3.1" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + }, + "peerDependencies": { + "react": "0.13.x || 0.14.x || ^15.0.0-0 || ^16.0.0-0" + } + }, + "node_modules/errno": { + "version": "0.1.8", + "resolved": "https://registry.npmjs.org/errno/-/errno-0.1.8.tgz", + "integrity": "sha512-dJ6oBr5SQ1VSd9qkk7ByRgb/1SH4JZjCHSW/mr63/QcXO9zLVxvJ6Oy13nio03rxpSnVDDjFor75SjVeZWPW/A==", + "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==", + "dependencies": { + "is-arrayish": "^0.2.1" + } + }, + "node_modules/es-abstract": { + "version": "1.23.5", + "resolved": "https://registry.npmjs.org/es-abstract/-/es-abstract-1.23.5.tgz", + "integrity": "sha512-vlmniQ0WNPwXqA0BnmwV3Ng7HxiGlh6r5U6JcTMNx8OilcAGqVJBHJcPjqOMaczU9fRuRK5Px2BdVyPRnKMMVQ==", + "dev": true, + "dependencies": { + "array-buffer-byte-length": "^1.0.1", + "arraybuffer.prototype.slice": "^1.0.3", + "available-typed-arrays": "^1.0.7", + "call-bind": "^1.0.7", + "data-view-buffer": "^1.0.1", + "data-view-byte-length": "^1.0.1", + "data-view-byte-offset": "^1.0.0", + "es-define-property": "^1.0.0", + "es-errors": "^1.3.0", + "es-object-atoms": "^1.0.0", + "es-set-tostringtag": "^2.0.3", + "es-to-primitive": "^1.2.1", + "function.prototype.name": "^1.1.6", + "get-intrinsic": "^1.2.4", + "get-symbol-description": "^1.0.2", + "globalthis": "^1.0.4", + "gopd": "^1.0.1", + "has-property-descriptors": "^1.0.2", + "has-proto": "^1.0.3", + "has-symbols": "^1.0.3", + "hasown": "^2.0.2", + "internal-slot": "^1.0.7", + "is-array-buffer": "^3.0.4", + "is-callable": "^1.2.7", + "is-data-view": "^1.0.1", + "is-negative-zero": "^2.0.3", + "is-regex": "^1.1.4", + "is-shared-array-buffer": "^1.0.3", + "is-string": "^1.0.7", + "is-typed-array": "^1.1.13", + "is-weakref": "^1.0.2", + "object-inspect": "^1.13.3", + "object-keys": "^1.1.1", + "object.assign": "^4.1.5", + "regexp.prototype.flags": "^1.5.3", + "safe-array-concat": "^1.1.2", + "safe-regex-test": "^1.0.3", + "string.prototype.trim": "^1.2.9", + "string.prototype.trimend": "^1.0.8", + "string.prototype.trimstart": "^1.0.8", + "typed-array-buffer": "^1.0.2", + "typed-array-byte-length": "^1.0.1", + "typed-array-byte-offset": "^1.0.2", + "typed-array-length": "^1.0.6", + "unbox-primitive": "^1.0.2", + "which-typed-array": "^1.1.15" + }, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/es-array-method-boxes-properly": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/es-array-method-boxes-properly/-/es-array-method-boxes-properly-1.0.0.tgz", + "integrity": "sha512-wd6JXUmyHmt8T5a2xreUwKcGPq6f1f+WwIJkijUqiGcJz1qqnZgP6XIK+QyIWU5lT7imeNxUll48bziG+TSYcA==", + "dev": true + }, + "node_modules/es-define-property": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/es-define-property/-/es-define-property-1.0.0.tgz", + "integrity": "sha512-jxayLKShrEqqzJ0eumQbVhTYQM27CfT1T35+gCgDFoL82JLsXqTJ76zv6A0YLOgEnLUMvLzsDsGIrl8NFpT2gQ==", + "dependencies": { + "get-intrinsic": "^1.2.4" + }, + "engines": { + "node": ">= 0.4" + } + }, + "node_modules/es-errors": { + "version": "1.3.0", + "resolved": "https://registry.npmjs.org/es-errors/-/es-errors-1.3.0.tgz", + "integrity": "sha512-Zf5H2Kxt2xjTvbJvP2ZWLEICxA6j+hAmMzIlypy4xcBg1vKVnx89Wy0GbS+kf5cwCVFFzdCFh2XSCFNULS6csw==", + "engines": { + "node": ">= 0.4" + } + }, + "node_modules/es-object-atoms": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/es-object-atoms/-/es-object-atoms-1.0.0.tgz", + "integrity": "sha512-MZ4iQ6JwHOBQjahnjwaC1ZtIBH+2ohjamzAO3oaHcXYup7qxjF2fixyH+Q71voWHeOkI2q/TnJao/KfXYIZWbw==", + "dev": true, + "dependencies": { + "es-errors": "^1.3.0" + }, + "engines": { + "node": ">= 0.4" + } + }, + "node_modules/es-set-tostringtag": { + "version": "2.0.3", + "resolved": "https://registry.npmjs.org/es-set-tostringtag/-/es-set-tostringtag-2.0.3.tgz", + "integrity": "sha512-3T8uNMC3OQTHkFUsFq8r/BwAXLHvU/9O9mE0fBc/MY5iq/8H7ncvO947LmYA6ldWw9Uh8Yhf25zu6n7nML5QWQ==", + "dev": true, + "dependencies": { + "get-intrinsic": "^1.2.4", + "has-tostringtag": "^1.0.2", + "hasown": "^2.0.1" + }, + "engines": { + "node": ">= 0.4" + } + }, + "node_modules/es-shim-unscopables": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/es-shim-unscopables/-/es-shim-unscopables-1.0.2.tgz", + "integrity": "sha512-J3yBRXCzDu4ULnQwxyToo/OjdMx6akgVC7K6few0a7F/0wLtmKKN7I73AH5T2836UuXRqN7Qg+IIUw/+YJksRw==", + "dev": true, + "dependencies": { + "hasown": "^2.0.0" + } + }, + "node_modules/es-to-primitive": { + "version": "1.2.1", + "resolved": "https://registry.npmjs.org/es-to-primitive/-/es-to-primitive-1.2.1.tgz", + "integrity": "sha512-QCOllgZJtaUo9miYBcLChTUaHNjJF3PYs1VidD7AwiEj1kYxKeQTctLAezAOH5ZKRH0g2IgPn6KwB4IT8iRpvA==", + "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/es6-object-assign": { + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/es6-object-assign/-/es6-object-assign-1.1.0.tgz", + "integrity": "sha512-MEl9uirslVwqQU369iHNWZXsI8yaZYGg/D65aOgZkeyFJwHYSxilf7rQzXKI7DdDuBPrBXbfk3sl9hJhmd5AUw==" + }, + "node_modules/es6-promise": { + "version": "3.0.2", + "resolved": "https://registry.npmjs.org/es6-promise/-/es6-promise-3.0.2.tgz", + "integrity": "sha512-CUD62/uqeE0L+EJeypOKuFfM56CFaH4vo+++J76bff0NkeQ2bBmWVCTNxL2hj9HeCYPkof6Gqea0BSeK17gBzA==" + }, + "node_modules/escalade": { + "version": "3.2.0", + "resolved": "https://registry.npmjs.org/escalade/-/escalade-3.2.0.tgz", + "integrity": "sha512-WUj2qlxaQtO4g6Pq5c29GTcWGDyd8itL8zTlipgECz3JesAiiOKotd8JU6otB3PACgG6xkJUyVhboMS+bje/jA==", + "engines": { + "node": ">=6" + } + }, + "node_modules/escape-html": { + "version": "1.0.3", + "resolved": "https://registry.npmjs.org/escape-html/-/escape-html-1.0.3.tgz", + "integrity": "sha512-NiSupZ4OeuGwr68lGIeym/ksIZMJodUGOSCZ/FSnTxcrekbvqrgdUxlJOMpijaKZVjAJrWrGs/6Jy8OMuyj9ow==", + "dev": true + }, + "node_modules/escape-latex": { + "version": "1.2.0", + "resolved": "https://registry.npmjs.org/escape-latex/-/escape-latex-1.2.0.tgz", + "integrity": "sha512-nV5aVWW1K0wEiUIEdZ4erkGGH8mDxGyxSeqPzRNtWP7ataw+/olFObw7hujFWlVjNsaDFw5VZ5NzVSIqRgfTiw==" + }, + "node_modules/escape-string-regexp": { + "version": "1.0.5", + "resolved": "https://registry.npmjs.org/escape-string-regexp/-/escape-string-regexp-1.0.5.tgz", + "integrity": "sha512-vbRorB5FUQWvla16U8R/qgaFIya2qGzwDrNmCZuYKrbdSUMG6I1ZCGQRefkRVhuOkIGVne7BQ35DSfo1qvJqFg==", + "engines": { + "node": ">=0.8.0" + } + }, + "node_modules/escodegen": { + "version": "1.14.3", + "resolved": "https://registry.npmjs.org/escodegen/-/escodegen-1.14.3.tgz", + "integrity": "sha512-qFcX0XJkdg+PB3xjZZG/wKSuT1PnQWx57+TVSjIMmILd2yC/6ByYElPwJnslDsuWuSAp4AwJGumarAAmJch5Kw==", + "dev": true, + "dependencies": { + "esprima": "^4.0.1", + "estraverse": "^4.2.0", + "esutils": "^2.0.2", + "optionator": "^0.8.1" + }, + "bin": { + "escodegen": "bin/escodegen.js", + "esgenerate": "bin/esgenerate.js" + }, + "engines": { + "node": ">=4.0" + }, + "optionalDependencies": { + "source-map": "~0.6.1" + } + }, + "node_modules/escodegen/node_modules/source-map": { + "version": "0.6.1", + "resolved": "https://registry.npmjs.org/source-map/-/source-map-0.6.1.tgz", + "integrity": "sha512-UjgapumWlbMhkBgzT7Ykc5YXUT46F0iKu8SGXq0bcwP5dz/h0Plj6enJqjz1Zbq2l5WaqYnrVbwWOWMyF3F47g==", + "dev": true, + "optional": true, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/eslint": { + "version": "5.16.0", + "resolved": "https://registry.npmjs.org/eslint/-/eslint-5.16.0.tgz", + "integrity": "sha512-S3Rz11i7c8AA5JPv7xAH+dOyq/Cu/VXHiHXBPOU1k/JAM5dXqQPt3qcrhpHSorXmrpu2g0gkIBVXAqCpzfoZIg==", + "deprecated": "This version is no longer supported. Please see https://eslint.org/version-support for other options.", + "dev": true, + "dependencies": { + "@babel/code-frame": "^7.0.0", + "ajv": "^6.9.1", + "chalk": "^2.1.0", + "cross-spawn": "^6.0.5", + "debug": "^4.0.1", + "doctrine": "^3.0.0", + "eslint-scope": "^4.0.3", + "eslint-utils": "^1.3.1", + "eslint-visitor-keys": "^1.0.0", + "espree": "^5.0.1", + "esquery": "^1.0.1", + "esutils": "^2.0.2", + "file-entry-cache": "^5.0.1", + "functional-red-black-tree": "^1.0.1", + "glob": "^7.1.2", + "globals": "^11.7.0", + "ignore": "^4.0.6", + "import-fresh": "^3.0.0", + "imurmurhash": "^0.1.4", + "inquirer": "^6.2.2", + "js-yaml": "^3.13.0", + "json-stable-stringify-without-jsonify": "^1.0.1", + "levn": "^0.3.0", + "lodash": "^4.17.11", + "minimatch": "^3.0.4", + "mkdirp": "^0.5.1", + "natural-compare": "^1.4.0", + "optionator": "^0.8.2", + "path-is-inside": "^1.0.2", + "progress": "^2.0.0", + "regexpp": "^2.0.1", + "semver": "^5.5.1", + "strip-ansi": "^4.0.0", + "strip-json-comments": "^2.0.1", + "table": "^5.2.3", + "text-table": "^0.2.0" + }, + "bin": { + "eslint": "bin/eslint.js" + }, + "engines": { + "node": "^6.14.0 || ^8.10.0 || >=9.10.0" + } + }, + "node_modules/eslint-config-scratch": { + "version": "6.0.0", + "resolved": "https://registry.npmjs.org/eslint-config-scratch/-/eslint-config-scratch-6.0.0.tgz", + "integrity": "sha512-2aW7EVWhjTrwaM54hjAZeRETh/habWeQ5xzTbPO2dG//RtixBztUAmdxqAHKH8MEtmAMsUhf3mRjO1BstO4dGg==", + "dev": true, + "optionalDependencies": { + "eslint-plugin-react": ">=7.14.2" + }, + "peerDependencies": { + "babel-eslint": ">=8.0.1", + "eslint": ">=5.3.0" + } + }, + "node_modules/eslint-import-resolver-node": { + "version": "0.3.9", + "resolved": "https://registry.npmjs.org/eslint-import-resolver-node/-/eslint-import-resolver-node-0.3.9.tgz", + "integrity": "sha512-WFj2isz22JahUv+B788TlO3N6zL3nNJGU8CcZbPZvVEkBPaJdCV4vy5wyghty5ROFbCRnm132v8BScu5/1BQ8g==", + "dev": true, + "dependencies": { + "debug": "^3.2.7", + "is-core-module": "^2.13.0", + "resolve": "^1.22.4" + } + }, + "node_modules/eslint-import-resolver-node/node_modules/debug": { + "version": "3.2.7", + "resolved": "https://registry.npmjs.org/debug/-/debug-3.2.7.tgz", + "integrity": "sha512-CFjzYYAi4ThfiQvizrFQevTTXHtnCqWfe7x1AhgEscTz6ZbLbfoLRLPugTQyBth6f8ZERVUSyWHFD/7Wu4t1XQ==", + "dev": true, + "dependencies": { + "ms": "^2.1.1" + } + }, + "node_modules/eslint-import-resolver-webpack": { + "version": "0.11.1", + "resolved": "https://registry.npmjs.org/eslint-import-resolver-webpack/-/eslint-import-resolver-webpack-0.11.1.tgz", + "integrity": "sha512-eK3zR7xVQR/MaoBWwGuD+CULYVuqe5QFlDukman71aI6IboCGzggDUohHNfu1ZeBnbHcUHJc0ywWoXUBNB6qdg==", + "dev": true, + "dependencies": { + "array-find": "^1.0.0", + "debug": "^2.6.8", + "enhanced-resolve": "~0.9.0", + "find-root": "^1.1.0", + "has": "^1.0.1", + "interpret": "^1.0.0", + "lodash": "^4.17.4", + "node-libs-browser": "^1.0.0 || ^2.0.0", + "resolve": "^1.10.0", + "semver": "^5.3.0" + }, + "peerDependencies": { + "eslint-plugin-import": ">=1.4.0", + "webpack": ">=1.11.0" + } + }, + "node_modules/eslint-import-resolver-webpack/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/eslint-import-resolver-webpack/node_modules/ms": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/ms/-/ms-2.0.0.tgz", + "integrity": "sha512-Tpp60P6IUJDTuOq/5Z8cdskzJujfwqfOTkrwIwj7IRISpnkJnT6SyJ4PCPnGMoFjC9ddhal5KVIYtAt97ix05A==", + "dev": true + }, + "node_modules/eslint-import-resolver-webpack/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/eslint-module-utils": { + "version": "2.12.0", + "resolved": "https://registry.npmjs.org/eslint-module-utils/-/eslint-module-utils-2.12.0.tgz", + "integrity": "sha512-wALZ0HFoytlyh/1+4wuZ9FJCD/leWHQzzrxJ8+rebyReSLk7LApMyd3WJaLVoN+D5+WIdJyDK1c6JnE65V4Zyg==", + "dev": true, + "dependencies": { + "debug": "^3.2.7" + }, + "engines": { + "node": ">=4" + }, + "peerDependenciesMeta": { + "eslint": { + "optional": true + } + } + }, + "node_modules/eslint-module-utils/node_modules/debug": { + "version": "3.2.7", + "resolved": "https://registry.npmjs.org/debug/-/debug-3.2.7.tgz", + "integrity": "sha512-CFjzYYAi4ThfiQvizrFQevTTXHtnCqWfe7x1AhgEscTz6ZbLbfoLRLPugTQyBth6f8ZERVUSyWHFD/7Wu4t1XQ==", + "dev": true, + "dependencies": { + "ms": "^2.1.1" + } + }, + "node_modules/eslint-plugin-import": { + "version": "2.23.4", + "resolved": "https://registry.npmjs.org/eslint-plugin-import/-/eslint-plugin-import-2.23.4.tgz", + "integrity": "sha512-6/wP8zZRsnQFiR3iaPFgh5ImVRM1WN5NUWfTIRqwOdeiGJlBcSk82o1FEVq8yXmy4lkIzTo7YhHCIxlU/2HyEQ==", + "dev": true, + "dependencies": { + "array-includes": "^3.1.3", + "array.prototype.flat": "^1.2.4", + "debug": "^2.6.9", + "doctrine": "^2.1.0", + "eslint-import-resolver-node": "^0.3.4", + "eslint-module-utils": "^2.6.1", + "find-up": "^2.0.0", + "has": "^1.0.3", + "is-core-module": "^2.4.0", + "minimatch": "^3.0.4", + "object.values": "^1.1.3", + "pkg-up": "^2.0.0", + "read-pkg-up": "^3.0.0", + "resolve": "^1.20.0", + "tsconfig-paths": "^3.9.0" + }, + "engines": { + "node": ">=4" + }, + "peerDependencies": { + "eslint": "^2 || ^3 || ^4 || ^5 || ^6 || ^7.2.0" + } + }, + "node_modules/eslint-plugin-import/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/eslint-plugin-import/node_modules/doctrine": { + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/doctrine/-/doctrine-2.1.0.tgz", + "integrity": "sha512-35mSku4ZXK0vfCuHEDAwt55dg2jNajHZ1odvF+8SSr82EsZY4QmXfuWso8oEd8zRhVObSN18aM0CjSdoBX7zIw==", + "dev": true, + "dependencies": { + "esutils": "^2.0.2" + }, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/eslint-plugin-import/node_modules/ms": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/ms/-/ms-2.0.0.tgz", + "integrity": "sha512-Tpp60P6IUJDTuOq/5Z8cdskzJujfwqfOTkrwIwj7IRISpnkJnT6SyJ4PCPnGMoFjC9ddhal5KVIYtAt97ix05A==", + "dev": true + }, + "node_modules/eslint-plugin-jest": { + "version": "22.17.0", + "resolved": "https://registry.npmjs.org/eslint-plugin-jest/-/eslint-plugin-jest-22.17.0.tgz", + "integrity": "sha512-WT4DP4RoGBhIQjv+5D0FM20fAdAUstfYAf/mkufLNTojsfgzc5/IYW22cIg/Q4QBavAZsROQlqppiWDpFZDS8Q==", + "dev": true, + "dependencies": { + "@typescript-eslint/experimental-utils": "^1.13.0" + }, + "engines": { + "node": ">=6" + }, + "peerDependencies": { + "eslint": ">=5" + } + }, + "node_modules/eslint-plugin-react": { + "version": "7.24.0", + "resolved": "https://registry.npmjs.org/eslint-plugin-react/-/eslint-plugin-react-7.24.0.tgz", + "integrity": "sha512-KJJIx2SYx7PBx3ONe/mEeMz4YE0Lcr7feJTCMyyKb/341NcjuAgim3Acgan89GfPv7nxXK2+0slu0CWXYM4x+Q==", + "dev": true, + "dependencies": { + "array-includes": "^3.1.3", + "array.prototype.flatmap": "^1.2.4", + "doctrine": "^2.1.0", + "has": "^1.0.3", + "jsx-ast-utils": "^2.4.1 || ^3.0.0", + "minimatch": "^3.0.4", + "object.entries": "^1.1.4", + "object.fromentries": "^2.0.4", + "object.values": "^1.1.4", + "prop-types": "^15.7.2", + "resolve": "^2.0.0-next.3", + "string.prototype.matchall": "^4.0.5" + }, + "engines": { + "node": ">=4" + }, + "peerDependencies": { + "eslint": "^3 || ^4 || ^5 || ^6 || ^7" + } + }, + "node_modules/eslint-plugin-react/node_modules/doctrine": { + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/doctrine/-/doctrine-2.1.0.tgz", + "integrity": "sha512-35mSku4ZXK0vfCuHEDAwt55dg2jNajHZ1odvF+8SSr82EsZY4QmXfuWso8oEd8zRhVObSN18aM0CjSdoBX7zIw==", + "dev": true, + "dependencies": { + "esutils": "^2.0.2" + }, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/eslint-plugin-react/node_modules/resolve": { + "version": "2.0.0-next.5", + "resolved": "https://registry.npmjs.org/resolve/-/resolve-2.0.0-next.5.tgz", + "integrity": "sha512-U7WjGVG9sH8tvjW5SmGbQuui75FiyjAX72HX15DwBBwF9dNiQZRQAg9nnPhYy+TUnE0+VcrttuvNI8oSxZcocA==", + "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/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==", + "dependencies": { + "esrecurse": "^4.1.0", + "estraverse": "^4.1.1" + }, + "engines": { + "node": ">=4.0.0" + } + }, + "node_modules/eslint-utils": { + "version": "1.4.3", + "resolved": "https://registry.npmjs.org/eslint-utils/-/eslint-utils-1.4.3.tgz", + "integrity": "sha512-fbBN5W2xdY45KulGXmLHZ3c3FHfVYmKg0IrAKGOkT/464PQsx2UeIzfz1RmEci+KLm1bBaAzZAh8+/E+XAeZ8Q==", + "dev": true, + "dependencies": { + "eslint-visitor-keys": "^1.1.0" + }, + "engines": { + "node": ">=6" + } + }, + "node_modules/eslint-visitor-keys": { + "version": "1.3.0", + "resolved": "https://registry.npmjs.org/eslint-visitor-keys/-/eslint-visitor-keys-1.3.0.tgz", + "integrity": "sha512-6J72N8UNa462wa/KFODt/PJ3IU60SDpC3QXC1Hjc1BXXpfL2C9R5+AU7jhe0F6GREqVMh4Juu+NY7xn+6dipUQ==", + "dev": true, + "engines": { + "node": ">=4" + } + }, + "node_modules/eslint/node_modules/ansi-regex": { + "version": "3.0.1", + "resolved": "https://registry.npmjs.org/ansi-regex/-/ansi-regex-3.0.1.tgz", + "integrity": "sha512-+O9Jct8wf++lXxxFc4hc8LsjaSq0HFzzL7cVsw8pRDIPdjKD2mT4ytDZlLuSBZ4cLKZFXIrMGO7DbQCtMJJMKw==", + "dev": true, + "engines": { + "node": ">=4" + } + }, + "node_modules/eslint/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/eslint/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/eslint/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/eslint/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==", + "dev": true, + "dependencies": { + "minimist": "^1.2.6" + }, + "bin": { + "mkdirp": "bin/cmd.js" + } + }, + "node_modules/eslint/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/eslint/node_modules/strip-ansi": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/strip-ansi/-/strip-ansi-4.0.0.tgz", + "integrity": "sha512-4XaJ2zQdCzROZDivEVIDPkcQn8LMFSa8kj8Gxb/Lnwzv9A8VctNZ+lfivC/sV3ivW8ElJTERXZoPBRrZKkNKow==", + "dev": true, + "dependencies": { + "ansi-regex": "^3.0.0" + }, + "engines": { + "node": ">=4" + } + }, + "node_modules/eslint/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/espree": { + "version": "5.0.1", + "resolved": "https://registry.npmjs.org/espree/-/espree-5.0.1.tgz", + "integrity": "sha512-qWAZcWh4XE/RwzLJejfcofscgMc9CamR6Tn1+XRXNzrvUSSbiAjGOI/fggztjIi7y9VLPqnICMIPiGyr8JaZ0A==", + "dev": true, + "dependencies": { + "acorn": "^6.0.7", + "acorn-jsx": "^5.0.0", + "eslint-visitor-keys": "^1.0.0" + }, + "engines": { + "node": ">=6.0.0" + } + }, + "node_modules/esprima": { + "version": "4.0.1", + "resolved": "https://registry.npmjs.org/esprima/-/esprima-4.0.1.tgz", + "integrity": "sha512-eGuFFw7Upda+g4p+QHvnW0RyTX/SVeJBDM/gCtMARO0cLuT2HcEKnTPvhjV6aGeqrCB/sbNop0Kszm0jsaWU4A==", + "bin": { + "esparse": "bin/esparse.js", + "esvalidate": "bin/esvalidate.js" + }, + "engines": { + "node": ">=4" + } + }, + "node_modules/esquery": { + "version": "1.6.0", + "resolved": "https://registry.npmjs.org/esquery/-/esquery-1.6.0.tgz", + "integrity": "sha512-ca9pw9fomFcKPvFLXhBKUK90ZvGibiGOvRJNbjljY7s7uq/5YO4BOzcYtJqExdx99rF6aAcnRxHmcUHcz6sQsg==", + "dev": true, + "dependencies": { + "estraverse": "^5.1.0" + }, + "engines": { + "node": ">=0.10" + } + }, + "node_modules/esquery/node_modules/estraverse": { + "version": "5.3.0", + "resolved": "https://registry.npmjs.org/estraverse/-/estraverse-5.3.0.tgz", + "integrity": "sha512-MMdARuVEQziNTeJD8DgMqmhwR11BRQ/cBP+pLtYdSTnf3MIO8fFeiINEbX36ZdNlfU/7A9f3gUw49B3oQsvwBA==", + "dev": true, + "engines": { + "node": ">=4.0" + } + }, + "node_modules/esrecurse": { + "version": "4.3.0", + "resolved": "https://registry.npmjs.org/esrecurse/-/esrecurse-4.3.0.tgz", + "integrity": "sha512-KmfKL3b6G+RXvP8N1vr3Tq1kL/oCFgn2NYXEtqP8/L3pKapUA4G8cFVaoF3SU323CD4XypR/ffioHmkti6/Tag==", + "dependencies": { + "estraverse": "^5.2.0" + }, + "engines": { + "node": ">=4.0" + } + }, + "node_modules/esrecurse/node_modules/estraverse": { + "version": "5.3.0", + "resolved": "https://registry.npmjs.org/estraverse/-/estraverse-5.3.0.tgz", + "integrity": "sha512-MMdARuVEQziNTeJD8DgMqmhwR11BRQ/cBP+pLtYdSTnf3MIO8fFeiINEbX36ZdNlfU/7A9f3gUw49B3oQsvwBA==", + "engines": { + "node": ">=4.0" + } + }, + "node_modules/estraverse": { + "version": "4.3.0", + "resolved": "https://registry.npmjs.org/estraverse/-/estraverse-4.3.0.tgz", + "integrity": "sha512-39nnKffWz8xN1BU/2c79n9nB9HDzo0niYUqx6xyqUnyoAnQyyWpOTdZEeiCch8BBu515t4wp9ZmgVfVhn9EBpw==", + "engines": { + "node": ">=4.0" + } + }, + "node_modules/esutils": { + "version": "2.0.3", + "resolved": "https://registry.npmjs.org/esutils/-/esutils-2.0.3.tgz", + "integrity": "sha512-kVscqXk4OCp68SZ0dkgEKVi6/8ij300KBWTJq32P/dYeWTSwK41WyTxalN1eRmA5Z9UU/LX9D7FWSmV9SAYx6g==", + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/etag": { + "version": "1.8.1", + "resolved": "https://registry.npmjs.org/etag/-/etag-1.8.1.tgz", + "integrity": "sha512-aIL5Fx7mawVa300al2BnEE4iNvo1qETxLrPI/o05L7z6go7fCw1J6EQmbK4FmJ2AS7kgVF/KEZWufBfdClMcPg==", + "dev": true, + "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.3.0", + "resolved": "https://registry.npmjs.org/events/-/events-3.3.0.tgz", + "integrity": "sha512-mQw+2fkQbALzQ7V0MY0IqdnXNOeTtP4r0lN9z7AAawCXgqea7bDii20AYrIBrFd/Hx0M2Ocz6S111CaFkUcb0Q==", + "engines": { + "node": ">=0.8.x" + } + }, + "node_modules/eventsource": { + "version": "2.0.2", + "resolved": "https://registry.npmjs.org/eventsource/-/eventsource-2.0.2.tgz", + "integrity": "sha512-IzUmBGPR3+oUG9dUeXynyNmf91/3zUSJg1lCktzKw47OXuhco54U3r9B7O4XX+Rb1Itm9OZ2b0RkTs10bICOxA==", + "dev": 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==", + "dependencies": { + "md5.js": "^1.3.4", + "safe-buffer": "^5.1.1" + } + }, + "node_modules/exec-sh": { + "version": "0.2.2", + "resolved": "https://registry.npmjs.org/exec-sh/-/exec-sh-0.2.2.tgz", + "integrity": "sha512-FIUCJz1RbuS0FKTdaAafAByGS0CPvU3R0MeHxgtl+djzCc//F8HakL8GzmVNZanasTbTAY/3DRFA0KpVqj/eAw==", + "dev": true, + "dependencies": { + "merge": "^1.2.0" + } + }, + "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/exenv": { + "version": "1.2.2", + "resolved": "https://registry.npmjs.org/exenv/-/exenv-1.2.2.tgz", + "integrity": "sha512-Z+ktTxTwv9ILfgKCk32OX3n/doe+OcLTRtqK9pcL+JsP3J1/VW8Uvl4ZjLlKqeW4rzK4oesDOGMEMRIZqtP4Iw==" + }, + "node_modules/expand-brackets": { + "version": "2.1.4", + "resolved": "https://registry.npmjs.org/expand-brackets/-/expand-brackets-2.1.4.tgz", + "integrity": "sha512-w/ozOKR9Obk3qoWeY/WDi6MFta9AoMR+zud60mdnbniMcBxRuFJyDt2LdX/14A1UABeqk+Uk+LDfUpvoGKppZA==", + "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==", + "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": "sha512-Rr7ADjQZenceVOAKop6ALkkRAmH1A4Gx9hV/7ZujPUN2rkATqFO0JZLZInbAjpZYoJ1gUx8MRMQVkYemcbMSTA==", + "dependencies": { + "is-descriptor": "^0.1.0" + }, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/expand-brackets/node_modules/is-descriptor": { + "version": "0.1.7", + "resolved": "https://registry.npmjs.org/is-descriptor/-/is-descriptor-0.1.7.tgz", + "integrity": "sha512-C3grZTvObeN1xud4cRWl366OMXZTj0+HGyk4hvfpx4ZHt1Pb60ANSXqCK7pdOTeUQpRzECBSTphqvD7U+l22Eg==", + "dependencies": { + "is-accessor-descriptor": "^1.0.1", + "is-data-descriptor": "^1.0.1" + }, + "engines": { + "node": ">= 0.4" + } + }, + "node_modules/expand-brackets/node_modules/ms": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/ms/-/ms-2.0.0.tgz", + "integrity": "sha512-Tpp60P6IUJDTuOq/5Z8cdskzJujfwqfOTkrwIwj7IRISpnkJnT6SyJ4PCPnGMoFjC9ddhal5KVIYtAt97ix05A==" + }, + "node_modules/expand-range": { + "version": "1.8.2", + "resolved": "https://registry.npmjs.org/expand-range/-/expand-range-1.8.2.tgz", + "integrity": "sha512-AFASGfIlnIbkKPQwX1yHaDjFvh/1gyKJODme52V6IORh69uEYgZp0o9C+qsIGNVEiuuhQU0CSSl++Rlegg1qvA==", + "dev": true, + "dependencies": { + "fill-range": "^2.1.0" + }, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/expand-range/node_modules/fill-range": { + "version": "2.2.4", + "resolved": "https://registry.npmjs.org/fill-range/-/fill-range-2.2.4.tgz", + "integrity": "sha512-cnrcCbj01+j2gTG921VZPnHbjmdAf8oQV/iGeV2kZxGSyfYjjTyY79ErsK1WJWMpw6DaApEX72binqJE+/d+5Q==", + "dev": true, + "dependencies": { + "is-number": "^2.1.0", + "isobject": "^2.0.0", + "randomatic": "^3.0.0", + "repeat-element": "^1.1.2", + "repeat-string": "^1.5.2" + }, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/expand-range/node_modules/is-number": { + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/is-number/-/is-number-2.1.0.tgz", + "integrity": "sha512-QUzH43Gfb9+5yckcrSA0VBDwEtDUchrk4F6tfJZQuNzDJbEDB9cZNzSfXGQ1jqmdDY/kl41lUOWM9syA8z8jlg==", + "dev": true, + "dependencies": { + "kind-of": "^3.0.2" + }, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/expand-range/node_modules/isarray": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/isarray/-/isarray-1.0.0.tgz", + "integrity": "sha512-VLghIWNM6ELQzo7zwmcg0NmTVyWKYjvIeM83yjp0wRDTmUnrM678fQbcKBo6n2CJEF0szoG//ytg+TKla89ALQ==", + "dev": true + }, + "node_modules/expand-range/node_modules/isobject": { + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/isobject/-/isobject-2.1.0.tgz", + "integrity": "sha512-+OUdGJlgjOBZDfxnDjYYG6zp487z0JGNQq3cYQYg5f5hKR+syHMsaztzGeml/4kGG55CSpKSpWTY+jYGgsHLgA==", + "dev": true, + "dependencies": { + "isarray": "1.0.0" + }, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/expand-tilde": { + "version": "2.0.2", + "resolved": "https://registry.npmjs.org/expand-tilde/-/expand-tilde-2.0.2.tgz", + "integrity": "sha512-A5EmesHW6rfnZ9ysHQjPdJRni0SRar0tjtG5MNtm9n5TUvsYU8oozprtRD4AqHxcZWWlVuAmQo2nWKfN9oyjTw==", + "dev": true, + "dependencies": { + "homedir-polyfill": "^1.0.1" + }, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/expect": { + "version": "21.2.1", + "resolved": "https://registry.npmjs.org/expect/-/expect-21.2.1.tgz", + "integrity": "sha512-orfQQqFRTX0jH7znRIGi8ZMR8kTNpXklTTz8+HGTpmTKZo3Occ6JNB5FXMb8cRuiiC/GyDqsr30zUa66ACYlYw==", + "dev": true, + "dependencies": { + "ansi-styles": "^3.2.0", + "jest-diff": "^21.2.1", + "jest-get-type": "^21.2.0", + "jest-matcher-utils": "^21.2.1", + "jest-message-util": "^21.2.1", + "jest-regex-util": "^21.2.0" + } + }, + "node_modules/expect/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/expect/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/express": { + "version": "4.21.1", + "resolved": "https://registry.npmjs.org/express/-/express-4.21.1.tgz", + "integrity": "sha512-YSFlK1Ee0/GC8QaO91tHcDxJiE/X4FbpAyQWkxAvG6AXCuR65YzK8ua6D9hvi/TzUfZMpc+BwuM1IPw8fmQBiQ==", + "dev": true, + "dependencies": { + "accepts": "~1.3.8", + "array-flatten": "1.1.1", + "body-parser": "1.20.3", + "content-disposition": "0.5.4", + "content-type": "~1.0.4", + "cookie": "0.7.1", + "cookie-signature": "1.0.6", + "debug": "2.6.9", + "depd": "2.0.0", + "encodeurl": "~2.0.0", + "escape-html": "~1.0.3", + "etag": "~1.8.1", + "finalhandler": "1.3.1", + "fresh": "0.5.2", + "http-errors": "2.0.0", + "merge-descriptors": "1.0.3", + "methods": "~1.1.2", + "on-finished": "2.4.1", + "parseurl": "~1.3.3", + "path-to-regexp": "0.1.10", + "proxy-addr": "~2.0.7", + "qs": "6.13.0", + "range-parser": "~1.2.1", + "safe-buffer": "5.2.1", + "send": "0.19.0", + "serve-static": "1.16.2", + "setprototypeof": "1.2.0", + "statuses": "2.0.1", + "type-is": "~1.6.18", + "utils-merge": "1.0.1", + "vary": "~1.1.2" + }, + "engines": { + "node": ">= 0.10.0" + } + }, + "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": "sha512-PCVAQswWemu6UdxsDFFX/+gVeYqKAod3D3UVm91jHwynguOwAvYPhx8nNlM++NqRcK6CxxpUafjmhIdKiHibqg==", + "dev": true + }, + "node_modules/express/node_modules/debug": { + "version": "2.6.9", + "resolved": "https://registry.npmjs.org/debug/-/debug-2.6.9.tgz", + "integrity": "sha512-bC7ElrdJaJnPbAP+1EotYvqZsb3ecl5wi6Bfi6BJTUcNowp6cvspg0jXznRTKDjm/E7AdgFBVeAPVMNcKGsHMA==", + "dev": true, + "dependencies": { + "ms": "2.0.0" + } + }, + "node_modules/express/node_modules/ms": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/ms/-/ms-2.0.0.tgz", + "integrity": "sha512-Tpp60P6IUJDTuOq/5Z8cdskzJujfwqfOTkrwIwj7IRISpnkJnT6SyJ4PCPnGMoFjC9ddhal5KVIYtAt97ix05A==", + "dev": true + }, + "node_modules/express/node_modules/qs": { + "version": "6.13.0", + "resolved": "https://registry.npmjs.org/qs/-/qs-6.13.0.tgz", + "integrity": "sha512-+38qI9SOr8tfZ4QmJNplMUxqjbe7LKvvZgWdExBOmd+egZTtjLB67Gu0HRX3u/XOq7UU2Nx6nsjvS16Z9uwfpg==", + "dev": true, + "dependencies": { + "side-channel": "^1.0.6" + }, + "engines": { + "node": ">=0.6" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/ext-list": { + "version": "2.2.2", + "resolved": "https://registry.npmjs.org/ext-list/-/ext-list-2.2.2.tgz", + "integrity": "sha512-u+SQgsubraE6zItfVA0tBuCBhfU9ogSRnsvygI7wht9TS510oLkBRXBsqopeUG/GBOIQyKZO9wjTqIu/sf5zFA==", + "dependencies": { + "mime-db": "^1.28.0" + }, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/ext-name": { + "version": "5.0.0", + "resolved": "https://registry.npmjs.org/ext-name/-/ext-name-5.0.0.tgz", + "integrity": "sha512-yblEwXAbGv1VQDmow7s38W77hzAgJAO50ztBLMcUyUBfxv1HC+LGwtiEN+Co6LtlqT/5uwVOxsD4TNIilWhwdQ==", + "dependencies": { + "ext-list": "^2.0.0", + "sort-keys-length": "^1.0.0" + }, + "engines": { + "node": ">=4" + } + }, + "node_modules/extend": { + "version": "3.0.2", + "resolved": "https://registry.npmjs.org/extend/-/extend-3.0.2.tgz", + "integrity": "sha512-fjquC59cD7CyW6urNXK0FBufkZcoiGG80wTuPujX590cB5Ttln20E2UB4S/WARVqhXffZl2LNgS+gQdPIIim/g==" + }, + "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==", + "dependencies": { + "is-extendable": "^0.1.0" + }, + "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/external-editor/node_modules/iconv-lite": { + "version": "0.4.24", + "resolved": "https://registry.npmjs.org/iconv-lite/-/iconv-lite-0.4.24.tgz", + "integrity": "sha512-v3MXnZAcvnywkTUEZomIActle7RXXeedOR31wwl7VlyoXO4Qi9arvSenNQWne1TcRwhCL1HwLI21bEqdpj8/rA==", + "dev": true, + "dependencies": { + "safer-buffer": ">= 2.1.2 < 3" + }, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/extglob": { + "version": "2.0.4", + "resolved": "https://registry.npmjs.org/extglob/-/extglob-2.0.4.tgz", + "integrity": "sha512-Nmb6QXkELsuBr24CJSkilo6UHHgbekK5UiZgfE6UHD3Eb27YC6oD+bhcT+tJ6cl8dmsgdQxnWlcry8ksBIBLpw==", + "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": "sha512-cZTYKFWspt9jZsMscWo8sc/5lbPC9Q0N5nBLgb+Yd915iL3udB1uFgS3B8YCx66UVHq018DAVFoee7x+gxggeA==", + "dependencies": { + "is-descriptor": "^1.0.0" + }, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/extract-zip": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/extract-zip/-/extract-zip-2.0.1.tgz", + "integrity": "sha512-GDhU9ntwuKyGXdZBUgTIe+vXnWj0fppUEtMDL0+idd5Sta8TGpHssn/eusA9mrPr9qNDym6SxAYZjNvCn/9RBg==", + "dev": true, + "dependencies": { + "debug": "^4.1.1", + "get-stream": "^5.1.0", + "yauzl": "^2.10.0" + }, + "bin": { + "extract-zip": "cli.js" + }, + "engines": { + "node": ">= 10.17.0" + }, + "optionalDependencies": { + "@types/yauzl": "^2.9.1" + } + }, + "node_modules/extract-zip/node_modules/get-stream": { + "version": "5.2.0", + "resolved": "https://registry.npmjs.org/get-stream/-/get-stream-5.2.0.tgz", + "integrity": "sha512-nBF+F1rAZVCu/p7rjzgA+Yb4lfYXrpl7a6VmJrU8wF9I1CKvP/QwPNZHnOlwbTkY6dvtFIzFMSyQXbLoTQPRpA==", + "dev": true, + "dependencies": { + "pump": "^3.0.0" + }, + "engines": { + "node": ">=8" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/extsprintf": { + "version": "1.3.0", + "resolved": "https://registry.npmjs.org/extsprintf/-/extsprintf-1.3.0.tgz", + "integrity": "sha512-11Ndz7Nv+mvAC1j0ktTa7fAb0vLyGGX+rMHNBYQviQDGU0Hw7lhctJANqbPhu9nV9/izT/IntTgZ7Im/9LJs9g==", + "engines": [ + "node >=0.6.0" + ] + }, + "node_modules/falafel": { + "version": "2.2.5", + "resolved": "https://registry.npmjs.org/falafel/-/falafel-2.2.5.tgz", + "integrity": "sha512-HuC1qF9iTnHDnML9YZAdCDQwT0yKl/U55K4XSUXqGAA2GLoafFgWRqdAbhWJxXaYD4pyoVxAJ8wH670jMpI9DQ==", + "dependencies": { + "acorn": "^7.1.1", + "isarray": "^2.0.1" + }, + "engines": { + "node": ">=0.4.0" + } + }, + "node_modules/falafel/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/fast-deep-equal": { + "version": "3.1.3", + "resolved": "https://registry.npmjs.org/fast-deep-equal/-/fast-deep-equal-3.1.3.tgz", + "integrity": "sha512-f3qQ9oQy9j2AhBe/H9VC91wLmKBCCU/gDOnKNAYG5hswO7BLKj09Hc5HYNz9cGI++xlpDCIgDaitVs03ATR84Q==" + }, + "node_modules/fast-glob": { + "version": "3.3.2", + "resolved": "https://registry.npmjs.org/fast-glob/-/fast-glob-3.3.2.tgz", + "integrity": "sha512-oX2ruAFQwf/Orj8m737Y5adxDQO0LAB7/S5MnxCdTNDd4p6BsyIVsv9JQsATbTSq8KHRpLwIHbVlUNatxd+1Ow==", + "dependencies": { + "@nodelib/fs.stat": "^2.0.2", + "@nodelib/fs.walk": "^1.2.3", + "glob-parent": "^5.1.2", + "merge2": "^1.3.0", + "micromatch": "^4.0.4" + }, + "engines": { + "node": ">=8.6.0" + } + }, + "node_modules/fast-glob/node_modules/braces": { + "version": "3.0.3", + "resolved": "https://registry.npmjs.org/braces/-/braces-3.0.3.tgz", + "integrity": "sha512-yQbXgO/OSZVD2IsiLlro+7Hf6Q18EJrKSEsdoMzKePKXct3gvD8oLcOQdIzGupr5Fj+EDe8gO/lxc1BzfMpxvA==", + "dependencies": { + "fill-range": "^7.1.1" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/fast-glob/node_modules/fill-range": { + "version": "7.1.1", + "resolved": "https://registry.npmjs.org/fill-range/-/fill-range-7.1.1.tgz", + "integrity": "sha512-YsGpe3WHLK8ZYi4tWDg2Jy3ebRz2rXowDxnld4bkQB00cc/1Zw9AWnC0i9ztDJitivtQvaI9KaLyKrc+hBW0yg==", + "dependencies": { + "to-regex-range": "^5.0.1" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/fast-glob/node_modules/is-number": { + "version": "7.0.0", + "resolved": "https://registry.npmjs.org/is-number/-/is-number-7.0.0.tgz", + "integrity": "sha512-41Cifkg6e8TylSpdtTpeLVMqvSBEVzTttHvERD741+pnZ8ANv0004MRL43QKPDlK9cGvNp6NZWZUBlbGXYxxng==", + "engines": { + "node": ">=0.12.0" + } + }, + "node_modules/fast-glob/node_modules/micromatch": { + "version": "4.0.8", + "resolved": "https://registry.npmjs.org/micromatch/-/micromatch-4.0.8.tgz", + "integrity": "sha512-PXwfBhYu0hBCPw8Dn0E+WDYb7af3dSLVWKi3HGv84IdF4TyFoC0ysxFd0Goxw7nSv4T/PzEJQxsYsEiFCKo2BA==", + "dependencies": { + "braces": "^3.0.3", + "picomatch": "^2.3.1" + }, + "engines": { + "node": ">=8.6" + } + }, + "node_modules/fast-glob/node_modules/to-regex-range": { + "version": "5.0.1", + "resolved": "https://registry.npmjs.org/to-regex-range/-/to-regex-range-5.0.1.tgz", + "integrity": "sha512-65P7iz6X5yEr1cwcgvQxbbIw7Uk3gOy5dIdtZ4rDveLqhrdJP+Li/Hx6tyK0NEb+2GCyneCMJiGqrADCSNk8sQ==", + "dependencies": { + "is-number": "^7.0.0" + }, + "engines": { + "node": ">=8.0" + } + }, + "node_modules/fast-json-stable-stringify": { + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/fast-json-stable-stringify/-/fast-json-stable-stringify-2.1.0.tgz", + "integrity": "sha512-lhd/wF+Lk98HZoTCtlVraHtfh5XYijIjalXck7saUtuanSDyLMxnHhSXEDJqHxD7msR8D0uCmqlkwjCV8xvwHw==" + }, + "node_modules/fast-levenshtein": { + "version": "2.0.6", + "resolved": "https://registry.npmjs.org/fast-levenshtein/-/fast-levenshtein-2.0.6.tgz", + "integrity": "sha512-DCXu6Ifhqcks7TZKY3Hxp3y6qphY5SJZmrWMDrKcERSOXWQdMhU9Ig/PYrzyw/ul9jOIyh0N4M0tbC5hodg8dw==" + }, + "node_modules/fastestsmallesttextencoderdecoder": { + "version": "1.0.22", + "resolved": "https://registry.npmjs.org/fastestsmallesttextencoderdecoder/-/fastestsmallesttextencoderdecoder-1.0.22.tgz", + "integrity": "sha512-Pb8d48e+oIuY4MaM64Cd7OW1gt4nxCHs7/ddPPZ/Ic3sg8yVGM7O9wDvZ7us6ScaUupzM+pfBolwtYhN1IxBIw==" + }, + "node_modules/fastparse": { + "version": "1.1.2", + "resolved": "https://registry.npmjs.org/fastparse/-/fastparse-1.1.2.tgz", + "integrity": "sha512-483XLLxTVIwWK3QTrMGRqUfUpoOs/0hbQrl2oz4J0pAcm3A3bu84wxTFqGqkJzewCLdME38xJLJAxBABfQT8sQ==" + }, + "node_modules/fastq": { + "version": "1.17.1", + "resolved": "https://registry.npmjs.org/fastq/-/fastq-1.17.1.tgz", + "integrity": "sha512-sRVD3lWVIXWg6By68ZN7vho9a1pQcN/WBFaAAsDDFzlJjvoGx0P8z7V1t72grFJfJhu3YPZBuu25f7Kaw2jN1w==", + "dependencies": { + "reusify": "^1.0.4" + } + }, + "node_modules/faye-websocket": { + "version": "0.11.4", + "resolved": "https://registry.npmjs.org/faye-websocket/-/faye-websocket-0.11.4.tgz", + "integrity": "sha512-CzbClwlXAuiRQAlUyfqPgvPoNKTckTPGfwZV4ZdAhVcP2lh9KUxJg2b5GkE7XbjKQ3YJnQ9z6D9ntLAlB+tP8g==", + "dev": true, + "dependencies": { + "websocket-driver": ">=0.5.1" + }, + "engines": { + "node": ">=0.8.0" + } + }, + "node_modules/fb-watchman": { + "version": "2.0.2", + "resolved": "https://registry.npmjs.org/fb-watchman/-/fb-watchman-2.0.2.tgz", + "integrity": "sha512-p5161BqbuCaSnB8jIbzQHOlpgsPmK5rJVDfDKO91Axs5NC1uu3HRQm6wt9cd9/+GtQQIO53JdGXXoyDpTAsgYA==", + "dev": true, + "dependencies": { + "bser": "2.1.1" + } + }, + "node_modules/fbjs": { + "version": "0.8.18", + "resolved": "https://registry.npmjs.org/fbjs/-/fbjs-0.8.18.tgz", + "integrity": "sha512-EQaWFK+fEPSoibjNy8IxUtaFOMXcWsY0JaVrQoZR9zC8N2Ygf9iDITPWjUTVIax95b6I742JFLqASHfsag/vKA==", + "dev": true, + "dependencies": { + "core-js": "^1.0.0", + "isomorphic-fetch": "^2.1.1", + "loose-envify": "^1.0.0", + "object-assign": "^4.1.0", + "promise": "^7.1.1", + "setimmediate": "^1.0.5", + "ua-parser-js": "^0.7.30" + } + }, + "node_modules/fbjs/node_modules/core-js": { + "version": "1.2.7", + "resolved": "https://registry.npmjs.org/core-js/-/core-js-1.2.7.tgz", + "integrity": "sha512-ZiPp9pZlgxpWRu0M+YWbm6+aQ84XEfH1JRXvfOc/fILWI0VKhLC2LX13X1NYq4fULzLMq7Hfh43CSo2/aIaUPA==", + "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 + }, + "node_modules/fd-slicer": { + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/fd-slicer/-/fd-slicer-1.1.0.tgz", + "integrity": "sha512-cE1qsB/VwyQozZ+q1dGxR8LBYNZeofhEdUNGSMbQD3Gw2lAzX9Zb3uIU6Ebc/Fmyjo9AWWfnn0AUCHqtevs/8g==", + "dependencies": { + "pend": "~1.2.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." + }, + "node_modules/figures": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/figures/-/figures-2.0.0.tgz", + "integrity": "sha512-Oa2M9atig69ZkfwiApY8F2Yy+tzMbazyvqv21R0NsSC8floSOC09BbT1ITWAdoMGQvJ/aZnR1KMwdx9tvHnTNA==", + "dev": true, + "dependencies": { + "escape-string-regexp": "^1.0.5" + }, + "engines": { + "node": ">=4" + } + }, + "node_modules/file-entry-cache": { + "version": "5.0.1", + "resolved": "https://registry.npmjs.org/file-entry-cache/-/file-entry-cache-5.0.1.tgz", + "integrity": "sha512-bCg29ictuBaKUwwArK4ouCaqDgLZcysCFLmM/Yn/FDoqndh/9vNuQfXRDvTuXKLxfD/JtZQGKFT8MGcJBK644g==", + "dev": true, + "dependencies": { + "flat-cache": "^2.0.1" + }, + "engines": { + "node": ">=4" + } + }, + "node_modules/file-loader": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/file-loader/-/file-loader-2.0.0.tgz", + "integrity": "sha512-YCsBfd1ZGCyonOKLxPiKPdu+8ld9HAaMEvJewzz+b2eTF7uL5Zm/HdBF6FjCrpCMRq25Mi0U1gl4pwn2TlH7hQ==", + "dependencies": { + "loader-utils": "^1.0.2", + "schema-utils": "^1.0.0" + }, + "engines": { + "node": ">= 6.9.0 < 7.0.0 || >= 8.9.0" + }, + "peerDependencies": { + "webpack": "^2.0.0 || ^3.0.0 || ^4.0.0" + } + }, + "node_modules/file-loader/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==", + "dependencies": { + "ajv": "^6.1.0", + "ajv-errors": "^1.0.0", + "ajv-keywords": "^3.1.0" + }, + "engines": { + "node": ">= 4" + } + }, + "node_modules/file-type": { + "version": "11.1.0", + "resolved": "https://registry.npmjs.org/file-type/-/file-type-11.1.0.tgz", + "integrity": "sha512-rM0UO7Qm9K7TWTtA6AShI/t7H5BPjDeGVDaNyg9BjHAj3PysKy7+8C8D137R88jnR3rFJZQB/tFgydl5sN5m7g==", + "engines": { + "node": ">=6" + } + }, + "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==", + "optional": true + }, + "node_modules/filename-regex": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/filename-regex/-/filename-regex-2.0.1.tgz", + "integrity": "sha512-BTCqyBaWBTsauvnHiE8i562+EdJj+oUpkqWp2R1iCoR8f6oo8STRu3of7WJJ0TqWtxN50a5YFpzYK4Jj9esYfQ==", + "dev": true, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/filename-reserved-regex": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/filename-reserved-regex/-/filename-reserved-regex-2.0.0.tgz", + "integrity": "sha512-lc1bnsSr4L4Bdif8Xb/qrtokGbq5zlsms/CYH8PP+WtCkGNF65DPiQY8vG3SakEdRn8Dlnm+gW/qWKKjS5sZzQ==", + "engines": { + "node": ">=4" + } + }, + "node_modules/filenamify": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/filenamify/-/filenamify-3.0.0.tgz", + "integrity": "sha512-5EFZ//MsvJgXjBAFJ+Bh2YaCTRF/VP1YOmGrgt+KJ4SFRLjI87EIdwLLuT6wQX0I4F9W41xutobzczjsOKlI/g==", + "dependencies": { + "filename-reserved-regex": "^2.0.0", + "strip-outer": "^1.0.0", + "trim-repeated": "^1.0.0" + }, + "engines": { + "node": ">=6" + } + }, + "node_modules/fileset": { + "version": "2.0.3", + "resolved": "https://registry.npmjs.org/fileset/-/fileset-2.0.3.tgz", + "integrity": "sha512-UxowFKnAFIwtmSxgKjWAVgjE3Fk7MQJT0ZIyl0NwIFZTrx4913rLaonGJ84V+x/2+w/pe4ULHRns+GZPs1TVuw==", + "dev": true, + "dependencies": { + "glob": "^7.0.3", + "minimatch": "^3.0.3" + } + }, + "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==", + "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/finalhandler": { + "version": "1.3.1", + "resolved": "https://registry.npmjs.org/finalhandler/-/finalhandler-1.3.1.tgz", + "integrity": "sha512-6BN9trH7bp3qvnrRyzsBz+g3lZxTNZTbVO2EV1CS0WIcDbawYVdYvGflME/9QP0h0pYlCDBCTjYa9nZzMDpyxQ==", + "dev": true, + "dependencies": { + "debug": "2.6.9", + "encodeurl": "~2.0.0", + "escape-html": "~1.0.3", + "on-finished": "2.4.1", + "parseurl": "~1.3.3", + "statuses": "2.0.1", + "unpipe": "~1.0.0" + }, + "engines": { + "node": ">= 0.8" + } + }, + "node_modules/finalhandler/node_modules/debug": { + "version": "2.6.9", + "resolved": "https://registry.npmjs.org/debug/-/debug-2.6.9.tgz", + "integrity": "sha512-bC7ElrdJaJnPbAP+1EotYvqZsb3ecl5wi6Bfi6BJTUcNowp6cvspg0jXznRTKDjm/E7AdgFBVeAPVMNcKGsHMA==", + "dev": true, + "dependencies": { + "ms": "2.0.0" + } + }, + "node_modules/finalhandler/node_modules/ms": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/ms/-/ms-2.0.0.tgz", + "integrity": "sha512-Tpp60P6IUJDTuOq/5Z8cdskzJujfwqfOTkrwIwj7IRISpnkJnT6SyJ4PCPnGMoFjC9ddhal5KVIYtAt97ix05A==", + "dev": true + }, + "node_modules/find-cache-dir": { + "version": "3.3.2", + "resolved": "https://registry.npmjs.org/find-cache-dir/-/find-cache-dir-3.3.2.tgz", + "integrity": "sha512-wXZV5emFEjrridIgED11OoUKLxiYjAcqot/NJdAkOhlJ+vGzwhOAfcG5OX1jP+S0PcjEn8bdMJv+g2jwQ3Onig==", + "dependencies": { + "commondir": "^1.0.1", + "make-dir": "^3.0.2", + "pkg-dir": "^4.1.0" + }, + "engines": { + "node": ">=8" + }, + "funding": { + "url": "https://github.com/avajs/find-cache-dir?sponsor=1" + } + }, + "node_modules/find-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==", + "dependencies": { + "semver": "^6.0.0" + }, + "engines": { + "node": ">=8" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/find-root": { + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/find-root/-/find-root-1.1.0.tgz", + "integrity": "sha512-NKfW6bec6GfKc0SGx1e07QZY9PE99u0Bft/0rzSD5k3sO/vwkVUpDUKVm5Gpp5Ue3YfShPFTX2070tDs5kB9Ng==", + "dev": true + }, + "node_modules/find-up": { + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/find-up/-/find-up-2.1.0.tgz", + "integrity": "sha512-NWzkk0jSJtTt08+FBFMvXoeZnOJD+jTtsRmBYbAIzJdX6l7dLgR7CTubCM5/eDdPUBvLCeVasP1brfVR/9/EZQ==", + "dev": true, + "dependencies": { + "locate-path": "^2.0.0" + }, + "engines": { + "node": ">=4" + } + }, + "node_modules/findup": { + "version": "0.1.5", + "resolved": "https://registry.npmjs.org/findup/-/findup-0.1.5.tgz", + "integrity": "sha512-Udxo3C9A6alt2GZ2MNsgnIvX7De0V3VGxeP/x98NSVgSlizcDHdmJza61LI7zJy4OEtSiJyE72s0/+tBl5/ZxA==", + "dependencies": { + "colors": "~0.6.0-1", + "commander": "~2.1.0" + }, + "bin": { + "findup": "bin/findup.js" + }, + "engines": { + "node": ">=0.6" + } + }, + "node_modules/findup-sync": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/findup-sync/-/findup-sync-3.0.0.tgz", + "integrity": "sha512-YbffarhcicEhOrm4CtrwdKBdCuz576RLdhJDsIfvNtxUuhdRet1qZcsMjqbePtAseKdAnDyM/IyXbu7PRPRLYg==", + "dev": true, + "dependencies": { + "detect-file": "^1.0.0", + "is-glob": "^4.0.0", + "micromatch": "^3.0.4", + "resolve-dir": "^1.0.1" + }, + "engines": { + "node": ">= 0.10" + } + }, + "node_modules/findup/node_modules/commander": { + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/commander/-/commander-2.1.0.tgz", + "integrity": "sha512-J2wnb6TKniXNOtoHS8TSrG9IOQluPrsmyAJ8oCUJOBmv+uLBCyPYAZkD2jFvw2DCzIXNnISIM01NIvr35TkBMQ==", + "engines": { + "node": ">= 0.6.x" + } + }, + "node_modules/flat-cache": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/flat-cache/-/flat-cache-2.0.1.tgz", + "integrity": "sha512-LoQe6yDuUMDzQAEH8sgmh4Md6oZnc/7PjtwjNFSzveXqSHt6ka9fPBuso7IGf9Rz4uqnSnWiFH2B/zj24a5ReA==", + "dev": true, + "dependencies": { + "flatted": "^2.0.0", + "rimraf": "2.6.3", + "write": "1.0.3" + }, + "engines": { + "node": ">=4" + } + }, + "node_modules/flat-cache/node_modules/rimraf": { + "version": "2.6.3", + "resolved": "https://registry.npmjs.org/rimraf/-/rimraf-2.6.3.tgz", + "integrity": "sha512-mwqeW5XsA2qAejG46gYdENaxXjx9onRNCfn7L0duuP4hCuTIi/QO7PDK07KJfp1d+izWPrzEJDcSqBa0OZQriA==", + "deprecated": "Rimraf versions prior to v4 are no longer supported", + "dev": true, + "dependencies": { + "glob": "^7.1.3" + }, + "bin": { + "rimraf": "bin.js" + } + }, + "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==", + "dependencies": { + "inherits": "^2.0.3", + "readable-stream": "^2.3.6" + } + }, + "node_modules/follow-redirects": { + "version": "1.15.9", + "resolved": "https://registry.npmjs.org/follow-redirects/-/follow-redirects-1.15.9.tgz", + "integrity": "sha512-gew4GsXizNgdoRyqmyfMHyAmXsZDk6mHkSxZFCzW9gwlbtOW44CDtYavM+y+72qD/Vq2l550kMF52DT8fOLJqQ==", + "dev": true, + "funding": [ + { + "type": "individual", + "url": "https://github.com/sponsors/RubenVerborgh" + } + ], + "engines": { + "node": ">=4.0" + }, + "peerDependenciesMeta": { + "debug": { + "optional": true + } + } + }, + "node_modules/for-each": { + "version": "0.3.3", + "resolved": "https://registry.npmjs.org/for-each/-/for-each-0.3.3.tgz", + "integrity": "sha512-jqYfLp7mo9vIyQf8ykW2v7A+2N4QjeCeI5+Dz9XraiO1ign81wjiH7Fb9vSOWvQfNtmSa4H2RoQTrrXivdUZmw==", + "dev": true, + "dependencies": { + "is-callable": "^1.1.3" + } + }, + "node_modules/for-in": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/for-in/-/for-in-1.0.2.tgz", + "integrity": "sha512-7EwmXrOjyL+ChxMhmG5lnW9MPt1aIeZEwKhQzoBUdTV0N3zuwWDZYVJatDvZ2OyzPUvdIAZDsCetk3coyMfcnQ==", + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/for-own": { + "version": "0.1.5", + "resolved": "https://registry.npmjs.org/for-own/-/for-own-0.1.5.tgz", + "integrity": "sha512-SKmowqGTJoPzLO1T0BBJpkfp3EMacCMOuH40hOUbrbzElVktk4DioXVM99QkLCyKoiuOmyjgcWMpVz2xjE7LZw==", + "dev": true, + "dependencies": { + "for-in": "^1.0.1" + }, + "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": "sha512-j0KLYPhm6zeac4lz3oJ3o65qvgQCcPubiyotZrXqEaG4hNagNYO8qdlUrX5vwqv9ohqeT/Z3j6+yW067yWWdUw==", + "engines": { + "node": "*" + } + }, + "node_modules/form-data": { + "version": "4.0.1", + "resolved": "https://registry.npmjs.org/form-data/-/form-data-4.0.1.tgz", + "integrity": "sha512-tzN8e4TX8+kkxGPK8D5u0FNmjPUjw3lwC9lSLxxoB/+GtsJG91CO8bSWy73APlgAZzZbXEYZJuxjkHH2w+Ezhw==", + "dev": true, + "dependencies": { + "asynckit": "^0.4.0", + "combined-stream": "^1.0.8", + "mime-types": "^2.1.12" + }, + "engines": { + "node": ">= 6" + } + }, + "node_modules/format-message": { + "version": "6.2.1", + "resolved": "https://registry.npmjs.org/format-message/-/format-message-6.2.1.tgz", + "integrity": "sha512-6gBXI+MOE9pu9QNeZf95V87GKYiLCdUvhisjts75xonaPAshtBu20NTZt2l8kbYcoMtxNyH9E9af+aieIRfVmw==", + "dependencies": { + "format-message-formats": "^6.2.0", + "format-message-interpret": "^6.2.0", + "format-message-parse": "^6.2.0", + "lookup-closest-locale": "^6.2.0" + } + }, + "node_modules/format-message-formats": { + "version": "6.2.4", + "resolved": "https://registry.npmjs.org/format-message-formats/-/format-message-formats-6.2.4.tgz", + "integrity": "sha512-smT/fAqBLqusWfWCKRAx6QBDAAbmYznWsIyTyk66COmvwt2Byiqd7SJe2ma9a5oV0kwRaOJpN/F4lr4YK/n6qQ==" + }, + "node_modules/format-message-interpret": { + "version": "6.2.4", + "resolved": "https://registry.npmjs.org/format-message-interpret/-/format-message-interpret-6.2.4.tgz", + "integrity": "sha512-dRvz9mXhITApyOtfuFEb/XqvCe1u6RMkQW49UJHXS8w2S8cAHCqq5LNDFK+QK6XVzcofROycLb/k1uybTAKt2w==", + "dependencies": { + "format-message-formats": "^6.2.4", + "lookup-closest-locale": "^6.2.0" + } + }, + "node_modules/format-message-parse": { + "version": "6.2.4", + "resolved": "https://registry.npmjs.org/format-message-parse/-/format-message-parse-6.2.4.tgz", + "integrity": "sha512-k7WqXkEzgXkW4wkHdS6Cv2Ou0rIFtiDelZjgoe1saW4p7FT7zS8OeAUpAekhormqzpeecR97e4vBft1zMsfFOQ==" + }, + "node_modules/forwarded": { + "version": "0.2.0", + "resolved": "https://registry.npmjs.org/forwarded/-/forwarded-0.2.0.tgz", + "integrity": "sha512-buRG0fpBtRHSTCOASe6hD258tEubFoRLb4ZNA6NxMVHNw2gOcwHo9wyablzMzOA5z9xA9L1KNjk/Nt6MT9aYow==", + "dev": true, + "engines": { + "node": ">= 0.6" + } + }, + "node_modules/fraction.js": { + "version": "4.3.4", + "resolved": "https://registry.npmjs.org/fraction.js/-/fraction.js-4.3.4.tgz", + "integrity": "sha512-pwiTgt0Q7t+GHZA4yaLjObx4vXmmdcS0iSJ19o8d/goUGgItX9UZWKWNnLHehxviD8wU2IWRsnR8cD5+yOJP2Q==", + "engines": { + "node": "*" + }, + "funding": { + "type": "patreon", + "url": "https://github.com/sponsors/rawify" + } + }, + "node_modules/fragment-cache": { + "version": "0.2.1", + "resolved": "https://registry.npmjs.org/fragment-cache/-/fragment-cache-0.2.1.tgz", + "integrity": "sha512-GMBAbW9antB8iZRHLoGw0b3HANt57diZYFO/HL1JGIC1MjKrdmhxvrJbupnVvpys0zsz7yBApXdQyfepKly2kA==", + "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": "sha512-zJ2mQYM18rEFOudeV4GShTGIQ7RbzA7ozbU9I/XBpm7kqgMywgmylMwXHxZJmkVoYkna9d2pVXVXPdYTP9ej8Q==", + "dev": true, + "engines": { + "node": ">= 0.6" + } + }, + "node_modules/from2": { + "version": "2.3.0", + "resolved": "https://registry.npmjs.org/from2/-/from2-2.3.0.tgz", + "integrity": "sha512-OMcX/4IC/uqEPVgGeyfN22LJk6AZrMkRZHxcHBMBvHScDGgwTm2GT2Wkgtocyd3JfZffjj2kYUDXXII0Fk9W0g==", + "dependencies": { + "inherits": "^2.0.1", + "readable-stream": "^2.0.0" + } + }, + "node_modules/from2-array": { + "version": "0.0.4", + "resolved": "https://registry.npmjs.org/from2-array/-/from2-array-0.0.4.tgz", + "integrity": "sha512-0G0cAp7sYLobH7ALsr835x98PU/YeVF7wlwxdWbCUaea7wsa7lJfKZUAo6p2YZGZ8F94luCuqHZS3JtFER6uPg==", + "dependencies": { + "from2": "^2.0.3" + } + }, + "node_modules/fs-constants": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/fs-constants/-/fs-constants-1.0.0.tgz", + "integrity": "sha512-y6OAwoSIf7FyjMIv94u+b5rdheZEjzR63GTyZJm5qh4Bi+2YgwLCcI/fPFZkL5PSixOt6ZNKm+w+Hfp/Bciwow==" + }, + "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==", + "dependencies": { + "graceful-fs": "^4.2.0", + "jsonfile": "^4.0.0", + "universalify": "^0.1.0" + }, + "engines": { + "node": ">=6 <7 || >=8" + } + }, + "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==", + "dependencies": { + "minipass": "^3.0.0" + }, + "engines": { + "node": ">= 8" + } + }, + "node_modules/fs-readdir-recursive": { + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/fs-readdir-recursive/-/fs-readdir-recursive-1.1.0.tgz", + "integrity": "sha512-GNanXlVr2pf02+sPN40XN8HG+ePaNcvM0q5mZBd668Obwb0yD5GiUbZOFgwn8kGMY6I3mdyDJzieUy3PTYyTRA==" + }, + "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": "sha512-gehEzmPn2nAwr39eay+x3X34Ra+M2QlVUTLhkXPjWdeO8RF9kszk116avgBJM3ZyNHgHXBNx+VmPaFC36k0PzA==", + "deprecated": "This package is no longer supported.", + "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": "sha512-OO0pH2lK6a0hZnAdau5ItzHPI6pUlvI7jMVnxUQRtw4owF2wk8lOSabtGDCTP4Ggrg2MbGnWO9X8K1t4+fGMDw==" + }, + "node_modules/fsevents": { + "version": "2.3.3", + "resolved": "https://registry.npmjs.org/fsevents/-/fsevents-2.3.3.tgz", + "integrity": "sha512-5xoDfX+fL7faATnagmWPpbFtwh/R77WmMMqqHGS65C3vvB0YHrgF+B1YmZ3441tMj5n63k0212XNoJwzlhffQw==", + "hasInstallScript": true, + "optional": true, + "os": [ + "darwin" + ], + "engines": { + "node": "^8.16.0 || ^10.6.0 || >=11.0.0" + } + }, + "node_modules/function-bind": { + "version": "1.1.2", + "resolved": "https://registry.npmjs.org/function-bind/-/function-bind-1.1.2.tgz", + "integrity": "sha512-7XHNxH7qX9xG5mIwxkhumTox/MIRNcOgDrxWsMt2pAr23WHp6MrRlN7FBSFpCpr+oVO0F744iUgR82nJMfG2SA==", + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/function.prototype.name": { + "version": "1.1.6", + "resolved": "https://registry.npmjs.org/function.prototype.name/-/function.prototype.name-1.1.6.tgz", + "integrity": "sha512-Z5kx79swU5P27WEayXM1tBi5Ze/lbIyiNgU3qyXUOf9b2rgXYyF9Dy9Cx+IQv/Lc8WCG6L82zwUPpSS9hGehIg==", + "dev": true, + "dependencies": { + "call-bind": "^1.0.2", + "define-properties": "^1.2.0", + "es-abstract": "^1.22.1", + "functions-have-names": "^1.2.3" + }, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/functional-red-black-tree": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/functional-red-black-tree/-/functional-red-black-tree-1.0.1.tgz", + "integrity": "sha512-dsKNQNdj6xA3T+QlADDA7mOSlX0qiMINjn0cgr+eGHGsbSHzTabcIogz2+p/iqP1Xs6EP/sS2SbqH+brGTbq0g==", + "dev": true + }, + "node_modules/functions-have-names": { + "version": "1.2.3", + "resolved": "https://registry.npmjs.org/functions-have-names/-/functions-have-names-1.2.3.tgz", + "integrity": "sha512-xckBUXyTIqT97tq2x2AMb+g163b5JFysYk0x4qxNFwbfQkmNZoiRHb6sPzI9/QV33WeuvVYBUIiD4NzNIyqaRQ==", + "dev": true, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/gensync": { + "version": "1.0.0-beta.2", + "resolved": "https://registry.npmjs.org/gensync/-/gensync-1.0.0-beta.2.tgz", + "integrity": "sha512-3hN7NaskYvMDLQY55gnW3NQ+mesEAepTqlg+VEbj7zzqEMBVNhzcGYYeqFo/TlYz6eQiFcp1HcsCZO+nGgS8zg==", + "engines": { + "node": ">=6.9.0" + } + }, + "node_modules/get-caller-file": { + "version": "1.0.3", + "resolved": "https://registry.npmjs.org/get-caller-file/-/get-caller-file-1.0.3.tgz", + "integrity": "sha512-3t6rVToeoZfYSGd8YoLFR2DJkiQrIiUrGcjvFX2mDw3bn6k2OtwHN0TNCLbBO+w8qTvimhDkv+LSscbJY1vE6w==", + "dev": true + }, + "node_modules/get-float-time-domain-data": { + "version": "0.1.0", + "resolved": "https://registry.npmjs.org/get-float-time-domain-data/-/get-float-time-domain-data-0.1.0.tgz", + "integrity": "sha512-6lWdVMny7vJ+xWxGUmVdSW7rd4L2byptiVkjH3QEBsxcHSa8UbC/HsZmixHK/ZQ1EYsOaQjaeRgR+NAsIerEJQ==" + }, + "node_modules/get-intrinsic": { + "version": "1.2.4", + "resolved": "https://registry.npmjs.org/get-intrinsic/-/get-intrinsic-1.2.4.tgz", + "integrity": "sha512-5uYhsJH8VJBTv7oslg4BznJYhDoRI6waYCxMmCdnTrcCrHA/fCFKoTFz2JKKE0HdDFUF7/oQuhzumXJK7paBRQ==", + "dependencies": { + "es-errors": "^1.3.0", + "function-bind": "^1.1.2", + "has-proto": "^1.0.1", + "has-symbols": "^1.0.3", + "hasown": "^2.0.0" + }, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/get-stream": { + "version": "4.1.0", + "resolved": "https://registry.npmjs.org/get-stream/-/get-stream-4.1.0.tgz", + "integrity": "sha512-GMat4EJ5161kIy2HevLlr4luNjBgvmj413KaQA7jt4V8B4RDsfpHk7WQ9GVqfYyyx8OS/L66Kox+rJRNklLK7w==", + "dependencies": { + "pump": "^3.0.0" + }, + "engines": { + "node": ">=6" + } + }, + "node_modules/get-symbol-description": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/get-symbol-description/-/get-symbol-description-1.0.2.tgz", + "integrity": "sha512-g0QYk1dZBxGwk+Ngc+ltRH2IBp2f7zBkBMBJZCDerh6EhlhSR6+9irMCuT/09zD6qkarHUSn529sK/yL4S27mg==", + "dev": true, + "dependencies": { + "call-bind": "^1.0.5", + "es-errors": "^1.3.0", + "get-intrinsic": "^1.2.4" + }, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/get-user-media-promise": { + "version": "1.1.4", + "resolved": "https://registry.npmjs.org/get-user-media-promise/-/get-user-media-promise-1.1.4.tgz", + "integrity": "sha512-k49YuV2z0d3gKHLPTFKYfzEA9kduuQk7YBf8ev2dxrKk+DhMyuzfQnK9ZSxkEhE/jv3BZY62M0eICWa7lak9nw==" + }, + "node_modules/get-value": { + "version": "2.0.6", + "resolved": "https://registry.npmjs.org/get-value/-/get-value-2.0.6.tgz", + "integrity": "sha512-Ln0UQDlxH1BapMu3GPtf7CuYNwRZf2gwCuPqbyG6pB8WfmFpzqcy4xtAaAMUhnNqjMKTiCPZG2oMT3YSx8U2NA==", + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/getpass": { + "version": "0.1.7", + "resolved": "https://registry.npmjs.org/getpass/-/getpass-0.1.7.tgz", + "integrity": "sha512-0fzj9JxOLfJ+XGLhR8ze3unN0KZCgZwiSSDz168VERjK8Wl8kVSdcu2kspd4s4wtAa1y/qrVRiAA0WclVsu0ng==", + "dependencies": { + "assert-plus": "^1.0.0" + } + }, + "node_modules/gh-pages": { + "version": "3.2.3", + "resolved": "https://registry.npmjs.org/gh-pages/-/gh-pages-3.2.3.tgz", + "integrity": "sha512-jA1PbapQ1jqzacECfjUaO9gV8uBgU6XNMV0oXLtfCX3haGLe5Atq8BxlrADhbD6/UdG9j6tZLWAkAybndOXTJg==", + "dev": true, + "dependencies": { + "async": "^2.6.1", + "commander": "^2.18.0", + "email-addresses": "^3.0.1", + "filenamify": "^4.3.0", + "find-cache-dir": "^3.3.1", + "fs-extra": "^8.1.0", + "globby": "^6.1.0" + }, + "bin": { + "gh-pages": "bin/gh-pages.js", + "gh-pages-clean": "bin/gh-pages-clean.js" + }, + "engines": { + "node": ">=10" + } + }, + "node_modules/gh-pages/node_modules/array-union": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/array-union/-/array-union-1.0.2.tgz", + "integrity": "sha512-Dxr6QJj/RdU/hCaBjOfxW+q6lyuVE6JFWIrAUpuOOhoJJoQ99cUn3igRaHVB5P9WrgFVN0FfArM3x0cueOU8ng==", + "dev": true, + "dependencies": { + "array-uniq": "^1.0.1" + }, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/gh-pages/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/gh-pages/node_modules/filenamify": { + "version": "4.3.0", + "resolved": "https://registry.npmjs.org/filenamify/-/filenamify-4.3.0.tgz", + "integrity": "sha512-hcFKyUG57yWGAzu1CMt/dPzYZuv+jAJUT85bL8mrXvNe6hWj6yEHEc4EdcgiA6Z3oi1/9wXJdZPXF2dZNgwgOg==", + "dev": true, + "dependencies": { + "filename-reserved-regex": "^2.0.0", + "strip-outer": "^1.0.1", + "trim-repeated": "^1.0.0" + }, + "engines": { + "node": ">=8" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/gh-pages/node_modules/globby": { + "version": "6.1.0", + "resolved": "https://registry.npmjs.org/globby/-/globby-6.1.0.tgz", + "integrity": "sha512-KVbFv2TQtbzCoxAnfD6JcHZTYCzyliEaaeM/gH8qQdkKr5s0OP9scEgvdcngyk7AVdY6YVW/TJHd+lQ/Df3Daw==", + "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/gh-pages/node_modules/pify": { + "version": "2.3.0", + "resolved": "https://registry.npmjs.org/pify/-/pify-2.3.0.tgz", + "integrity": "sha512-udgsAY+fTnvv7kI7aaxbqwWNb0AHiB0qBO89PZKPkoTmGOgdbrHDKD+0B2X4uTfJ/FT1R09r9gTsjUjNJotuog==", + "dev": true, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/glob": { + "version": "7.2.3", + "resolved": "https://registry.npmjs.org/glob/-/glob-7.2.3.tgz", + "integrity": "sha512-nFR0zLpU2YCaRxwoCJvL6UvCH2JFyFVIvwTLsIf21AuHlMskA1hhTdk+LlYJtOlYt9v6dvszD2BGRqBL+iQK9Q==", + "deprecated": "Glob versions prior to v9 are no longer supported", + "dependencies": { + "fs.realpath": "^1.0.0", + "inflight": "^1.0.4", + "inherits": "2", + "minimatch": "^3.1.1", + "once": "^1.3.0", + "path-is-absolute": "^1.0.0" + }, + "engines": { + "node": "*" + }, + "funding": { + "url": "https://github.com/sponsors/isaacs" + } + }, + "node_modules/glob-base": { + "version": "0.3.0", + "resolved": "https://registry.npmjs.org/glob-base/-/glob-base-0.3.0.tgz", + "integrity": "sha512-ab1S1g1EbO7YzauaJLkgLp7DZVAqj9M/dvKlTt8DkXA2tiOIcSMrlVI2J1RZyB5iJVccEscjGn+kpOG9788MHA==", + "dev": true, + "dependencies": { + "glob-parent": "^2.0.0", + "is-glob": "^2.0.0" + }, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/glob-base/node_modules/glob-parent": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/glob-parent/-/glob-parent-2.0.0.tgz", + "integrity": "sha512-JDYOvfxio/t42HKdxkAYaCiBN7oYiuxykOxKxdaUW5Qn0zaYN3gRQWolrwdnf0shM9/EP0ebuuTmyoXNr1cC5w==", + "dev": true, + "dependencies": { + "is-glob": "^2.0.0" + } + }, + "node_modules/glob-base/node_modules/is-extglob": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/is-extglob/-/is-extglob-1.0.0.tgz", + "integrity": "sha512-7Q+VbVafe6x2T+Tu6NcOf6sRklazEPmBoB3IWk3WdGZM2iGUwU/Oe3Wtq5lSEkDTTlpp8yx+5t4pzO/i9Ty1ww==", + "dev": true, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/glob-base/node_modules/is-glob": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/is-glob/-/is-glob-2.0.1.tgz", + "integrity": "sha512-a1dBeB19NXsf/E0+FHqkagizel/LQw2DjSQpvQrj3zT+jYPpaUCryPnrQajXKFLCMuf4I6FhRpaGtw4lPrG6Eg==", + "dev": true, + "dependencies": { + "is-extglob": "^1.0.0" + }, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/glob-parent": { + "version": "5.1.2", + "resolved": "https://registry.npmjs.org/glob-parent/-/glob-parent-5.1.2.tgz", + "integrity": "sha512-AOIgSQCepiJYwP3ARnGx+5VnTu2HBYdzbGP45eLw1vr3zB3vZLeyed1sC9hnbcOc9/SrMyM5RPQrkGz4aS9Zow==", + "dependencies": { + "is-glob": "^4.0.1" + }, + "engines": { + "node": ">= 6" + } + }, + "node_modules/global": { + "version": "4.4.0", + "resolved": "https://registry.npmjs.org/global/-/global-4.4.0.tgz", + "integrity": "sha512-wv/LAoHdRE3BeTGz53FAamhGlPLhlssK45usmGFThIi4XqnBmjKQ16u+RNbP7WvigRZDxUsM0J3gcQ5yicaL0w==", + "dependencies": { + "min-document": "^2.19.0", + "process": "^0.11.10" + } + }, + "node_modules/global-modules": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/global-modules/-/global-modules-2.0.0.tgz", + "integrity": "sha512-NGbfmJBp9x8IxyJSd1P+otYK8vonoJactOogrVfFRIAEY1ukil8RSKDz2Yo7wh1oihl51l/r6W4epkeKJHqL8A==", + "dev": true, + "dependencies": { + "global-prefix": "^3.0.0" + }, + "engines": { + "node": ">=6" + } + }, + "node_modules/global-prefix": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/global-prefix/-/global-prefix-3.0.0.tgz", + "integrity": "sha512-awConJSVCHVGND6x3tmMaKcQvwXLhjdkmomy2W+Goaui8YPgYgXJZewhg3fWC+DlfqqQuWg8AwqjGTD2nAPVWg==", + "dev": true, + "dependencies": { + "ini": "^1.3.5", + "kind-of": "^6.0.2", + "which": "^1.3.1" + }, + "engines": { + "node": ">=6" + } + }, + "node_modules/global-prefix/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/globals": { + "version": "11.12.0", + "resolved": "https://registry.npmjs.org/globals/-/globals-11.12.0.tgz", + "integrity": "sha512-WOBp/EEGUiIsJSp7wcv/y6MO+lV9UoncWqxuFfm8eBwzWNgyfBd6Gz+IeKQ9jCmyhoH99g15M3T+QaVHFjizVA==", + "engines": { + "node": ">=4" + } + }, + "node_modules/globalthis": { + "version": "1.0.4", + "resolved": "https://registry.npmjs.org/globalthis/-/globalthis-1.0.4.tgz", + "integrity": "sha512-DpLKbNU4WylpxJykQujfCcwYWiV/Jhm50Goo0wrVILAv5jOr9d+H+UR3PhSCD2rCCEIg0uc+G+muBTwD54JhDQ==", + "dev": true, + "dependencies": { + "define-properties": "^1.2.1", + "gopd": "^1.0.1" + }, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/globby": { + "version": "11.1.0", + "resolved": "https://registry.npmjs.org/globby/-/globby-11.1.0.tgz", + "integrity": "sha512-jhIXaOzy1sb8IyocaruWSn1TjmnBVs8Ayhcy83rmxNJ8q2uWKCAj3CnJY+KpGSXCueAPc0i05kVvVKtP1t9S3g==", + "dependencies": { + "array-union": "^2.1.0", + "dir-glob": "^3.0.1", + "fast-glob": "^3.2.9", + "ignore": "^5.2.0", + "merge2": "^1.4.1", + "slash": "^3.0.0" + }, + "engines": { + "node": ">=10" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/globby/node_modules/ignore": { + "version": "5.3.2", + "resolved": "https://registry.npmjs.org/ignore/-/ignore-5.3.2.tgz", + "integrity": "sha512-hsBTNUqQTDwkWtcdYI2i06Y/nUBEsNEDJKjWdigLvegy8kDuJAS8uRlpkkcQpyEXL0Z/pjDy5HBmMjRCJ2gq+g==", + "engines": { + "node": ">= 4" + } + }, + "node_modules/globby/node_modules/slash": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/slash/-/slash-3.0.0.tgz", + "integrity": "sha512-g9Q1haeby36OSStwb4ntCGGGaKsaVSjQ68fBxoQcutl5fS1vuY18H3wSt3jFyFtrkx+Kz0V1G85A4MyAdDMi2Q==", + "engines": { + "node": ">=8" + } + }, + "node_modules/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/got": { + "version": "8.3.2", + "resolved": "https://registry.npmjs.org/got/-/got-8.3.2.tgz", + "integrity": "sha512-qjUJ5U/hawxosMryILofZCkm3C84PLJS/0grRIpjAwu+Lkxxj5cxeCU25BG0/3mDSpXKTyZr8oh8wIgLaH0QCw==", + "dependencies": { + "@sindresorhus/is": "^0.7.0", + "cacheable-request": "^2.1.1", + "decompress-response": "^3.3.0", + "duplexer3": "^0.1.4", + "get-stream": "^3.0.0", + "into-stream": "^3.1.0", + "is-retry-allowed": "^1.1.0", + "isurl": "^1.0.0-alpha5", + "lowercase-keys": "^1.0.0", + "mimic-response": "^1.0.0", + "p-cancelable": "^0.4.0", + "p-timeout": "^2.0.1", + "pify": "^3.0.0", + "safe-buffer": "^5.1.1", + "timed-out": "^4.0.1", + "url-parse-lax": "^3.0.0", + "url-to-options": "^1.0.1" + }, + "engines": { + "node": ">=4" + } + }, + "node_modules/got/node_modules/get-stream": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/get-stream/-/get-stream-3.0.0.tgz", + "integrity": "sha512-GlhdIUuVakc8SJ6kK0zAFbiGzRFzNnY4jUuEbV9UROo4Y+0Ny4fjvcZFVTeDA4odpFyOQzaw6hXukJSq/f28sQ==", + "engines": { + "node": ">=4" + } + }, + "node_modules/got/node_modules/pify": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/pify/-/pify-3.0.0.tgz", + "integrity": "sha512-C3FsVNH1udSEX48gGX1xfvwTWfsYWj5U+8/uK15BGzIGrKoUpghX8hWZwa/OFnakBiiVNmBvemTJR5mcy7iPcg==", + "engines": { + "node": ">=4" + } + }, + "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/grapheme-breaker": { + "version": "0.3.2", + "resolved": "https://registry.npmjs.org/grapheme-breaker/-/grapheme-breaker-0.3.2.tgz", + "integrity": "sha512-mB6rwkw1Z7z4z2RkFFTd/+q6Ug1gnCgjKAervAKgBeNI1mSr8E5EUWoYzFNOZsLHFArLfpk+O8X8qXC7uvuawQ==", + "dependencies": { + "brfs": "^1.2.0", + "unicode-trie": "^0.3.1" + } + }, + "node_modules/growl": { + "version": "1.10.3", + "resolved": "https://registry.npmjs.org/growl/-/growl-1.10.3.tgz", + "integrity": "sha512-hKlsbA5Vu3xsh1Cg3J7jSmX/WaW6A5oBeqzM88oNbCRQFz+zUaXm6yxS4RVytp1scBoJzSYl4YAEOQIt6O8V1Q==", + "engines": { + "node": ">=4.x" + } + }, + "node_modules/growly": { + "version": "1.3.0", + "resolved": "https://registry.npmjs.org/growly/-/growly-1.3.0.tgz", + "integrity": "sha512-+xGQY0YyAWCnqy7Cd++hc2JqMYzlm0dG30Jd0beaA64sROr8C4nt8Yc9V5Ro3avlSUDTN0ulqP/VBKi1/lLygw==", + "dev": true + }, + "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/handlebars": { + "version": "4.7.8", + "resolved": "https://registry.npmjs.org/handlebars/-/handlebars-4.7.8.tgz", + "integrity": "sha512-vafaFqs8MZkRrSX7sFVUdo3ap/eNiLnb4IakshzvP56X5Nr1iGKAIqdX6tMlm6HcNRIkr6AxO5jFEoJzzpT8aQ==", + "dev": true, + "dependencies": { + "minimist": "^1.2.5", + "neo-async": "^2.6.2", + "source-map": "^0.6.1", + "wordwrap": "^1.0.0" + }, + "bin": { + "handlebars": "bin/handlebars" + }, + "engines": { + "node": ">=0.4.7" + }, + "optionalDependencies": { + "uglify-js": "^3.1.4" + } + }, + "node_modules/handlebars/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/har-schema": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/har-schema/-/har-schema-2.0.0.tgz", + "integrity": "sha512-Oqluz6zhGX8cyRaTQlFMPw80bSJVG2x/cFb8ZPhUILGgHka9SsokCCOQgpveePerqidZOrT14ipqfJb7ILcW5Q==", + "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", + "dependencies": { + "ajv": "^6.12.3", + "har-schema": "^2.0.0" + }, + "engines": { + "node": ">=6" + } + }, + "node_modules/has": { + "version": "1.0.4", + "resolved": "https://registry.npmjs.org/has/-/has-1.0.4.tgz", + "integrity": "sha512-qdSAmqLF6209RFj4VVItywPMbm3vWylknmB3nvNiUIs72xAimcM8nVYxYr7ncvZq5qzk9MKIZR8ijqD/1QuYjQ==", + "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": "sha512-C8vBJ8DwUCx19vhm7urhTuUsr4/IyP6l4VzNQDv+ryHQObW3TTTp9yB68WpYgRe2bbaGuZ/se74IqFeVnMnLZg==", + "dependencies": { + "ansi-regex": "^2.0.0" + }, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/has-bigints": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/has-bigints/-/has-bigints-1.0.2.tgz", + "integrity": "sha512-tSvCKtBr9lkF0Ex0aQiP9N+OpV4zi2r/Nee5VkRDbaqv35RLYMzbwQfFSZZH0kR+Rd6302UJZ2p/bJCEoR3VoQ==", + "dev": true, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/has-flag": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/has-flag/-/has-flag-3.0.0.tgz", + "integrity": "sha512-sKJf1+ceQBr4SMkvQnBDNDtf4TXpVhVGateu0t918bl30FnbE2m4vNLX+VWe/dpjlb+HugGYzW7uQXH98HPEYw==", + "engines": { + "node": ">=4" + } + }, + "node_modules/has-property-descriptors": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/has-property-descriptors/-/has-property-descriptors-1.0.2.tgz", + "integrity": "sha512-55JNKuIW+vq4Ke1BjOTjM2YctQIvCT7GFzHwmfZPGo5wnrgkid0YQtnAleFSqumZm4az3n2BS+erby5ipJdgrg==", + "dependencies": { + "es-define-property": "^1.0.0" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/has-proto": { + "version": "1.0.3", + "resolved": "https://registry.npmjs.org/has-proto/-/has-proto-1.0.3.tgz", + "integrity": "sha512-SJ1amZAJUiZS+PhsVLf5tGydlaVB8EdFpaSO4gmiUKUOxk8qzn5AIy4ZeJUmh22znIdk/uMAUT2pl3FxzVUH+Q==", + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/has-symbol-support-x": { + "version": "1.4.2", + "resolved": "https://registry.npmjs.org/has-symbol-support-x/-/has-symbol-support-x-1.4.2.tgz", + "integrity": "sha512-3ToOva++HaW+eCpgqZrCfN51IPB+7bJNVT6CUATzueB5Heb8o6Nam0V3HG5dlDvZU1Gn5QLcbahiKw/XVk5JJw==", + "engines": { + "node": "*" + } + }, + "node_modules/has-symbols": { + "version": "1.0.3", + "resolved": "https://registry.npmjs.org/has-symbols/-/has-symbols-1.0.3.tgz", + "integrity": "sha512-l3LCuF6MgDNwTDKkdYGEihYjt5pRPbEg46rtlmnSPlUbgmB8LOIrKJbYYFBSbnPaJexMKtiPO8hmeRjRz2Td+A==", + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/has-to-string-tag-x": { + "version": "1.4.1", + "resolved": "https://registry.npmjs.org/has-to-string-tag-x/-/has-to-string-tag-x-1.4.1.tgz", + "integrity": "sha512-vdbKfmw+3LoOYVr+mtxHaX5a96+0f3DljYd8JOqvOLsf5mw2Otda2qCDT9qRqLAhrjyQ0h7ual5nOiASpsGNFw==", + "dependencies": { + "has-symbol-support-x": "^1.4.1" + }, + "engines": { + "node": "*" + } + }, + "node_modules/has-tostringtag": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/has-tostringtag/-/has-tostringtag-1.0.2.tgz", + "integrity": "sha512-NqADB8VjPFLM2V0VvHUewwwsw0ZWBaIdgo+ieHtK3hasLz4qeCRjYcqfB6AQrBggRKppKF8L52/VqdVsO47Dlw==", + "dev": true, + "dependencies": { + "has-symbols": "^1.0.3" + }, + "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": "sha512-IBXk4GTsLYdQ7Rvt+GRBrFSVEkmuOUy4re0Xjd9kJSUQpnTrWR4/y9RpfexN9vkAPMFuQoeWKwqzPozRTlasGw==", + "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": "sha512-ODYZC64uqzmtfGMEAX/FvZiRyWLpAC3vYnNunURUnkGVTS+mI0smVsWaPydRBsE3g+ok7h960jChO8mFcWlHaQ==", + "dependencies": { + "is-number": "^3.0.0", + "kind-of": "^4.0.0" + }, + "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": "sha512-24XsCxmEbRwEDbz/qz3stgin8TTzZ1ESR56OMCN0ujYg+vRutNSiOj9bHH9u85DKgXguraugV5sFuvbD4FW/hw==", + "dependencies": { + "is-buffer": "^1.1.5" + }, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/hash-base": { + "version": "3.0.4", + "resolved": "https://registry.npmjs.org/hash-base/-/hash-base-3.0.4.tgz", + "integrity": "sha512-EeeoJKjTyt868liAlVmcv2ZsUfGHlE3Q+BICOXcZiwN3osr5Q/zFGYmTJpoIzuaSTAwndFy+GqhEwlU4L3j4Ow==", + "dependencies": { + "inherits": "^2.0.1", + "safe-buffer": "^5.0.1" + }, + "engines": { + "node": ">=4" + } + }, + "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==", + "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==", + "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, + "bin": { + "he": "bin/he" + } + }, + "node_modules/heap": { + "version": "0.2.5", + "resolved": "https://registry.npmjs.org/heap/-/heap-0.2.5.tgz", + "integrity": "sha512-G7HLD+WKcrOyJP5VQwYZNC3Z6FcQ7YYjEFiFoIj8PfEr73mu421o8B1N5DKUcc8K37EsJ2XXWA8DtrDz/2dReg==" + }, + "node_modules/hmac-drbg": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/hmac-drbg/-/hmac-drbg-1.0.1.tgz", + "integrity": "sha512-Tti3gMqLdZfhOQY1Mzf/AanLiqh1WTiJgEj26ZuYQ9fbkLomzGchCws4FyrSd4VkpBfiNhaE1On+lOz894jvXg==", + "dependencies": { + "hash.js": "^1.0.3", + "minimalistic-assert": "^1.0.0", + "minimalistic-crypto-utils": "^1.0.1" + } + }, + "node_modules/hoist-non-react-statics": { + "version": "3.3.2", + "resolved": "https://registry.npmjs.org/hoist-non-react-statics/-/hoist-non-react-statics-3.3.2.tgz", + "integrity": "sha512-/gGivxi8JPKWNm/W0jSmzcMPpfpPLc3dY/6GxhX2hQ9iGj3aDfklV4ET7NjKpSinLpJ5vafa9iiGIEZg10SfBw==", + "dependencies": { + "react-is": "^16.7.0" + } + }, + "node_modules/home-or-tmp": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/home-or-tmp/-/home-or-tmp-2.0.0.tgz", + "integrity": "sha512-ycURW7oUxE2sNiPVw1HVEFsW+ecOpJ5zaj7eC0RlwhibhRBod20muUN8qu/gzx956YrLolVvs1MTXwKgC2rVEg==", + "dev": true, + "dependencies": { + "os-homedir": "^1.0.0", + "os-tmpdir": "^1.0.1" + }, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/homedir-polyfill": { + "version": "1.0.3", + "resolved": "https://registry.npmjs.org/homedir-polyfill/-/homedir-polyfill-1.0.3.tgz", + "integrity": "sha512-eSmmWE5bZTK2Nou4g0AI3zZ9rswp7GRKoKXS1BLUkvPviOqs4YTN1djQIqrXy9k5gEtdLPy86JjRwsNM9tnDcA==", + "dev": true, + "dependencies": { + "parse-passwd": "^1.0.0" + }, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/hosted-git-info": { + "version": "2.8.9", + "resolved": "https://registry.npmjs.org/hosted-git-info/-/hosted-git-info-2.8.9.tgz", + "integrity": "sha512-mxIDAb9Lsm6DoOJ7xH+5+X4y1LU/4Hi50L9C5sIswK3JzULS4bwk1FvjdBgvYR4bzT4tuUQiC15FE2f5HbLvYw==" + }, + "node_modules/hpack.js": { + "version": "2.1.6", + "resolved": "https://registry.npmjs.org/hpack.js/-/hpack.js-2.1.6.tgz", + "integrity": "sha512-zJxVehUdMGIKsRaNt7apO2Gqp0BdqW5yaiGHXXmbpvxgBYVZnAql+BJb4RO5ad2MgpbZKn5G6nMnegrH1FcNYQ==", + "dev": true, + "dependencies": { + "inherits": "^2.0.1", + "obuf": "^1.0.0", + "readable-stream": "^2.0.1", + "wbuf": "^1.1.0" + } + }, + "node_modules/html-element-map": { + "version": "1.3.1", + "resolved": "https://registry.npmjs.org/html-element-map/-/html-element-map-1.3.1.tgz", + "integrity": "sha512-6XMlxrAFX4UEEGxctfFnmrFaaZFNf9i5fNuV5wZ3WWQ4FVaNP1aX1LkX9j2mfEx1NpjeE/rL3nmgEn23GdFmrg==", + "dev": true, + "dependencies": { + "array.prototype.filter": "^1.0.0", + "call-bind": "^1.0.2" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/html-encoding-sniffer": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/html-encoding-sniffer/-/html-encoding-sniffer-1.0.2.tgz", + "integrity": "sha512-71lZziiDnsuabfdYiUeWdCVyKuqwWi23L8YeIgV9jSSZHCtb6wB1BKWooH7L3tn4/FuZJMVWyNaIDr4RGmaSYw==", + "dev": true, + "dependencies": { + "whatwg-encoding": "^1.0.1" + } + }, + "node_modules/html-encoding-sniffer/node_modules/iconv-lite": { + "version": "0.4.24", + "resolved": "https://registry.npmjs.org/iconv-lite/-/iconv-lite-0.4.24.tgz", + "integrity": "sha512-v3MXnZAcvnywkTUEZomIActle7RXXeedOR31wwl7VlyoXO4Qi9arvSenNQWne1TcRwhCL1HwLI21bEqdpj8/rA==", + "dev": true, + "dependencies": { + "safer-buffer": ">= 2.1.2 < 3" + }, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/html-encoding-sniffer/node_modules/whatwg-encoding": { + "version": "1.0.5", + "resolved": "https://registry.npmjs.org/whatwg-encoding/-/whatwg-encoding-1.0.5.tgz", + "integrity": "sha512-b5lim54JOPN9HtzvK9HFXvBma/rnfFeqsic0hSpjtDbVxR3dJKLc+KB4V6GgiGOvl7CY/KNh8rxSo9DKQrnUEw==", + "dev": true, + "dependencies": { + "iconv-lite": "0.4.24" + } + }, + "node_modules/html-entities": { + "version": "1.4.0", + "resolved": "https://registry.npmjs.org/html-entities/-/html-entities-1.4.0.tgz", + "integrity": "sha512-8nxjcBcd8wovbeKx7h3wTji4e6+rhaVuPNpMqwWgnHh+N9ToqsCs6XztWRBPQ+UtzsoMAdKZtUENoVzU/EMtZA==", + "dev": true + }, + "node_modules/html-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, + "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-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, + "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/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/htmlparser2": { + "version": "9.1.0", + "resolved": "https://registry.npmjs.org/htmlparser2/-/htmlparser2-9.1.0.tgz", + "integrity": "sha512-5zfg6mHUoaer/97TxnGpxmbR7zJtPwIYFMZ/H5ucTlPZhKvtum05yiPK3Mgai3a0DyVxv7qYqoweaEd2nrYQzQ==", + "dev": true, + "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.1.0", + "entities": "^4.5.0" + } + }, + "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==" + }, + "node_modules/http-deceiver": { + "version": "1.2.7", + "resolved": "https://registry.npmjs.org/http-deceiver/-/http-deceiver-1.2.7.tgz", + "integrity": "sha512-LmpOGxTfbpgtGVxJrj5k7asXHCgNZp5nLfp+hWc8QQRqtb7fUy6kRY3BO1h9ddF6yIPYUARgxGOwB42DnxIaNw==", + "dev": true + }, + "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==", + "dev": true, + "dependencies": { + "depd": "2.0.0", + "inherits": "2.0.4", + "setprototypeof": "1.2.0", + "statuses": "2.0.1", + "toidentifier": "1.0.1" + }, + "engines": { + "node": ">= 0.8" + } + }, + "node_modules/http-parser-js": { + "version": "0.5.8", + "resolved": "https://registry.npmjs.org/http-parser-js/-/http-parser-js-0.5.8.tgz", + "integrity": "sha512-SGeBX54F94Wgu5RH3X5jsDtf4eHyRogWX1XGT3b4HuW3tQPM4AaBzoUji/4AAJNXCEOWZ5O0DgZmJw1947gD5Q==", + "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-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-signature": { + "version": "1.2.0", + "resolved": "https://registry.npmjs.org/http-signature/-/http-signature-1.2.0.tgz", + "integrity": "sha512-CAbnr6Rz4CYQkLYUtSNXxQPUH2gK8f3iWexVlsnMeD+GjlsQ0Xsy1cOX+mN3dtxYomRy21CiOzU8Uhw6OwncEQ==", + "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": "sha512-J+FkSdyD+0mA0N+81tMotaRMfSL9SGi+xpD3T6YApKsc3bGSXJlfXri3VyFOeYkfLRQisDk1W+jIFFKBeUBbBg==" + }, + "node_modules/https-proxy-agent": { + "version": "5.0.1", + "resolved": "https://registry.npmjs.org/https-proxy-agent/-/https-proxy-agent-5.0.1.tgz", + "integrity": "sha512-dFcAjpTQFgoLMzC2VwU+C/CbS7uRL0lWmxDITmqm7C+7F0Odmj6s9l6alZc6AELXhrnggM2CeWSXHGOdX2YtwA==", + "dev": true, + "dependencies": { + "agent-base": "6", + "debug": "4" + }, + "engines": { + "node": ">= 6" + } + }, + "node_modules/hull.js": { + "version": "0.2.10", + "resolved": "https://registry.npmjs.org/hull.js/-/hull.js-0.2.10.tgz", + "integrity": "sha512-UO3W30HxhWgeSpNKCdXt00xkwjRTGmhQaoZNP8ll509Nl+DP9juXE3wRGizihuop08FSB4xtAWIbWSe+RxEoog==", + "deprecated": "This package is no longer published on npmjs.com, you are using a deprecated and vulnerable version. Do not use it. Check package homepage on GitHub to see how to fetch the latest version." + }, + "node_modules/hyphenate-style-name": { + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/hyphenate-style-name/-/hyphenate-style-name-1.1.0.tgz", + "integrity": "sha512-WDC/ui2VVRrz3jOVi+XtjqkDjiVjTtFaAGiW37k6b+ohyQ5wYDOGkvCZa8+H0nx3gyvv0+BST9xuOgIyGQ00gw==" + }, + "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==", + "dev": true, + "dependencies": { + "safer-buffer": ">= 2.1.2 < 3.0.0" + }, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/icss-replace-symbols": { + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/icss-replace-symbols/-/icss-replace-symbols-1.1.0.tgz", + "integrity": "sha512-chIaY3Vh2mh2Q3RGXttaDIzeiPvaVXJ+C4DAh/w3c37SKZ/U6PGMmuicR2EQQp9bKG8zLMCl7I+PtIoOOPp8Gg==" + }, + "node_modules/icss-utils": { + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/icss-utils/-/icss-utils-2.1.0.tgz", + "integrity": "sha512-bsVoyn/1V4R1kYYjLcWLedozAM4FClZUdjE9nIr8uWY7xs78y9DATgwz2wGU7M+7z55KenmmTkN2DVJ7bqzjAA==", + "dependencies": { + "postcss": "^6.0.1" + } + }, + "node_modules/icss-utils/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/icss-utils/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/icss-utils/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/icss-utils/node_modules/postcss": { + "version": "6.0.23", + "resolved": "https://registry.npmjs.org/postcss/-/postcss-6.0.23.tgz", + "integrity": "sha512-soOk1h6J3VMTZtVeVpv15/Hpdl2cBLX3CAw4TAbkpTJiNPk9YP/zWcD1ND+xEtvyuuvKzbxliTOIyvkSeSJ6ag==", + "dependencies": { + "chalk": "^2.4.1", + "source-map": "^0.6.1", + "supports-color": "^5.4.0" + }, + "engines": { + "node": ">=4.0.0" + } + }, + "node_modules/icss-utils/node_modules/source-map": { + "version": "0.6.1", + "resolved": "https://registry.npmjs.org/source-map/-/source-map-0.6.1.tgz", + "integrity": "sha512-UjgapumWlbMhkBgzT7Ykc5YXUT46F0iKu8SGXq0bcwP5dz/h0Plj6enJqjz1Zbq2l5WaqYnrVbwWOWMyF3F47g==", + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/icss-utils/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/ieee754": { + "version": "1.2.1", + "resolved": "https://registry.npmjs.org/ieee754/-/ieee754-1.2.1.tgz", + "integrity": "sha512-dcyqhDvX1C46lXZcVqCpK+FtMRQVdIMN6/Df5js2zouUsqG7I6sFxitIC+7KYK29KdXOLHdu9zL4sFnoVQnqaA==", + "funding": [ + { + "type": "github", + "url": "https://github.com/sponsors/feross" + }, + { + "type": "patreon", + "url": "https://www.patreon.com/feross" + }, + { + "type": "consulting", + "url": "https://feross.org/support" + } + ] + }, + "node_modules/iferr": { + "version": "0.1.5", + "resolved": "https://registry.npmjs.org/iferr/-/iferr-0.1.5.tgz", + "integrity": "sha512-DUNFN5j7Tln0D+TxzloUjKB+CtVu6myn0JEFak6dG18mNt9YkQ6lzGCdafwofISZ1lLF3xRHJ98VKy9ynkcFaA==" + }, + "node_modules/ify-loader": { + "version": "1.0.4", + "resolved": "https://registry.npmjs.org/ify-loader/-/ify-loader-1.0.4.tgz", + "integrity": "sha512-fzWOWwsTZH3c2GPNJy1dndN5lk+oyXGPbg9YrHv/UwC/SmlxNEUAst6evF1H9ySGbezgBA42YGLSr1WzAwgx9w==", + "dependencies": { + "bl": "^1.0.0", + "findup": "^0.1.5", + "from2-array": "0.0.4", + "map-limit": "0.0.1", + "multipipe": "^0.3.0", + "read-package-json": "^2.0.2", + "resolve": "^1.1.6" + } + }, + "node_modules/ignore": { + "version": "4.0.6", + "resolved": "https://registry.npmjs.org/ignore/-/ignore-4.0.6.tgz", + "integrity": "sha512-cyFDKrqc/YdcWFniJhzI42+AzS+gNwmUzOSFcRCQYwySuBBBy/KjuxWLZ/FHEH6Moq1NizMOBWyTcv8O4OZIMg==", + "dev": true, + "engines": { + "node": ">= 4" + } + }, + "node_modules/immediate": { + "version": "3.0.6", + "resolved": "https://registry.npmjs.org/immediate/-/immediate-3.0.6.tgz", + "integrity": "sha512-XXOFtyqDjNDAQxVfYxuF7g9Il/IbWmmlQg2MYKOH8ExIT1qg6xc4zyS3HaEEATgs1btfzxq15ciUiY7gjSXRGQ==" + }, + "node_modules/immutable": { + "version": "3.8.2", + "resolved": "https://registry.npmjs.org/immutable/-/immutable-3.8.2.tgz", + "integrity": "sha512-15gZoQ38eYjEjxkorfbcgBKBL6R7T459OuK+CpcWt7O3KF4uPCx2tD0uFETlUDIyo+1789crbMhTvQBSR5yBMg==", + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/import-cwd": { + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/import-cwd/-/import-cwd-2.1.0.tgz", + "integrity": "sha512-Ew5AZzJQFqrOV5BTW3EIoHAnoie1LojZLXKcCQ/yTRyVZosBhK1x1ViYjHGf5pAFOq8ZyChZp6m/fSN7pJyZtg==", + "dependencies": { + "import-from": "^2.1.0" + }, + "engines": { + "node": ">=4" + } + }, + "node_modules/import-fresh": { + "version": "3.3.0", + "resolved": "https://registry.npmjs.org/import-fresh/-/import-fresh-3.3.0.tgz", + "integrity": "sha512-veYYhQa+D1QBKznvhUHxb8faxlrwUnxseDAbAp457E0wLNio2bOSKnjYDhMj+YiAq61xrMGhQk9iXVk5FzgQMw==", + "dev": true, + "dependencies": { + "parent-module": "^1.0.0", + "resolve-from": "^4.0.0" + }, + "engines": { + "node": ">=6" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/import-from": { + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/import-from/-/import-from-2.1.0.tgz", + "integrity": "sha512-0vdnLL2wSGnhlRmzHJAg5JHjt1l2vYhzJ7tNLGbeVg0fse56tpGaH0uzH+r9Slej+BSXXEHvBKDEnVSLLE9/+w==", + "dependencies": { + "resolve-from": "^3.0.0" + }, + "engines": { + "node": ">=4" + } + }, + "node_modules/import-from/node_modules/resolve-from": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/resolve-from/-/resolve-from-3.0.0.tgz", + "integrity": "sha512-GnlH6vxLymXJNMBo7XP1fJIzBFbdYt49CuTwmB/6N53t+kMPRMFKz783LlQ4tv28XoQfMWinAJX6WCGf2IlaIw==", + "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/import-local/node_modules/find-up": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/find-up/-/find-up-3.0.0.tgz", + "integrity": "sha512-1yD6RmLI1XBfxugvORwlck6f75tYL+iR0jqwsOrOxMZyGYqUuDhJ0l4AXdO1iX/FTs9cBAMEk1gWSEx1kSbylg==", + "dev": true, + "dependencies": { + "locate-path": "^3.0.0" + }, + "engines": { + "node": ">=6" + } + }, + "node_modules/import-local/node_modules/locate-path": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/locate-path/-/locate-path-3.0.0.tgz", + "integrity": "sha512-7AO748wWnIhNqAuaty2ZWHkQHRSNfPVIsPIfwEOWO22AmaoVrWavlOcMR5nzTLNYvp36X220/maaRsrec1G65A==", + "dev": true, + "dependencies": { + "p-locate": "^3.0.0", + "path-exists": "^3.0.0" + }, + "engines": { + "node": ">=6" + } + }, + "node_modules/import-local/node_modules/p-limit": { + "version": "2.3.0", + "resolved": "https://registry.npmjs.org/p-limit/-/p-limit-2.3.0.tgz", + "integrity": "sha512-//88mFWSJx8lxCzwdAABTJL2MyWB12+eIY7MDL2SqLmAkeKU9qxRvWuSyTjm3FUmpBEMuFfckAIqEaVGUDxb6w==", + "dev": true, + "dependencies": { + "p-try": "^2.0.0" + }, + "engines": { + "node": ">=6" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/import-local/node_modules/p-locate": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/p-locate/-/p-locate-3.0.0.tgz", + "integrity": "sha512-x+12w/To+4GFfgJhBEpiDcLozRJGegY+Ei7/z0tSLkMmxGZNybVMSfWj9aJn8Z5Fc7dBUNJOOVgPv2H7IwulSQ==", + "dev": true, + "dependencies": { + "p-limit": "^2.0.0" + }, + "engines": { + "node": ">=6" + } + }, + "node_modules/import-local/node_modules/pkg-dir": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/pkg-dir/-/pkg-dir-3.0.0.tgz", + "integrity": "sha512-/E57AYkoeQ25qkxMj5PBOVgF8Kiu/h7cYS30Z5+R7WaiCCBfLq58ZI/dSeaEKb9WVJV5n/03QwrN3IeWIFllvw==", + "dev": true, + "dependencies": { + "find-up": "^3.0.0" + }, + "engines": { + "node": ">=6" + } + }, + "node_modules/imurmurhash": { + "version": "0.1.4", + "resolved": "https://registry.npmjs.org/imurmurhash/-/imurmurhash-0.1.4.tgz", + "integrity": "sha512-JmXMZ6wuvDmLiHEml9ykzqO6lwFbof0GG4IkcGaENdCRDDmMVnny7s5HsIgHCbaq0w2MyPhDqkhTUgS2LU2PHA==", + "engines": { + "node": ">=0.8.19" + } + }, + "node_modules/indent-string": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/indent-string/-/indent-string-4.0.0.tgz", + "integrity": "sha512-EdDDZu4A2OyIK7Lr/2zG+w5jmbuk1DVBnEwREQvBzspBJkCEbRa8GxU1lghYcaGJCnRWibjDXlq779X1/y5xwg==", + "engines": { + "node": ">=8" + } + }, + "node_modules/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==" + }, + "node_modules/inflight": { + "version": "1.0.6", + "resolved": "https://registry.npmjs.org/inflight/-/inflight-1.0.6.tgz", + "integrity": "sha512-k92I/b08q4wvFscXCLvqfsHCrjrF7yiXsQuIVvVE7N82W3+aqpzuUdBbfhWcy/FZR3/4IgflMgKLOsvPDrGCJA==", + "deprecated": "This module is not supported, and leaks memory. Do not use it. Check out lru-cache if you want a good and tested way to coalesce async requests by a key value, which is much more comprehensive and powerful.", + "dependencies": { + "once": "^1.3.0", + "wrappy": "1" + } + }, + "node_modules/inherits": { + "version": "2.0.4", + "resolved": "https://registry.npmjs.org/inherits/-/inherits-2.0.4.tgz", + "integrity": "sha512-k/vGaX4/Yla3WzyMCvTQOXYeIHvqOKtnqBduzTHpzpQZzAskKMhZ2K+EnBiSM9zGSoIFeMpXKxa4dYeZIQqewQ==" + }, + "node_modules/ini": { + "version": "1.3.8", + "resolved": "https://registry.npmjs.org/ini/-/ini-1.3.8.tgz", + "integrity": "sha512-JV/yugV2uzW5iMRSiZAyDtQd+nxtUnjeLt0acNdw98kKLrvuRVyB80tsREOE7yvGVgalhZ6RNXCmEHkUKBKxew==", + "dev": true + }, + "node_modules/inquirer": { + "version": "6.5.2", + "resolved": "https://registry.npmjs.org/inquirer/-/inquirer-6.5.2.tgz", + "integrity": "sha512-cntlB5ghuB0iuO65Ovoi8ogLHiWGs/5yNrtUcKjFhSSiVeAIVpD7koaSU9RM8mpXw5YDi9RdYXGQMaOURB7ycQ==", + "dev": true, + "dependencies": { + "ansi-escapes": "^3.2.0", + "chalk": "^2.4.2", + "cli-cursor": "^2.1.0", + "cli-width": "^2.0.0", + "external-editor": "^3.0.3", + "figures": "^2.0.0", + "lodash": "^4.17.12", + "mute-stream": "0.0.7", + "run-async": "^2.2.0", + "rxjs": "^6.4.0", + "string-width": "^2.1.0", + "strip-ansi": "^5.1.0", + "through": "^2.3.6" + }, + "engines": { + "node": ">=6.0.0" + } + }, + "node_modules/inquirer/node_modules/ansi-regex": { + "version": "4.1.1", + "resolved": "https://registry.npmjs.org/ansi-regex/-/ansi-regex-4.1.1.tgz", + "integrity": "sha512-ILlv4k/3f6vfQ4OoP2AGvirOktlQ98ZEL1k9FaQjxa3L1abBgbuTDAdPOpvbGncC0BTVQrl+OM8xZGK6tWXt7g==", + "dev": true, + "engines": { + "node": ">=6" + } + }, + "node_modules/inquirer/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/inquirer/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/inquirer/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/inquirer/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/inquirer/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/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/internal-slot": { + "version": "1.0.7", + "resolved": "https://registry.npmjs.org/internal-slot/-/internal-slot-1.0.7.tgz", + "integrity": "sha512-NGnrKwXzSms2qUUih/ILZ5JBqNTSa1+ZmP6flaIp6KmSElgE9qdndzS3cqjrDovwFdmwsGsLdeFgB6suw+1e9g==", + "dev": true, + "dependencies": { + "es-errors": "^1.3.0", + "hasown": "^2.0.0", + "side-channel": "^1.0.4" + }, + "engines": { + "node": ">= 0.4" + } + }, + "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/intl": { + "version": "1.2.5", + "resolved": "https://registry.npmjs.org/intl/-/intl-1.2.5.tgz", + "integrity": "sha512-rK0KcPHeBFBcqsErKSpvZnrOmWOj+EmDkyJ57e90YWaQNqbcivcqmKDlHEeNprDWOsKzPsh1BfSpPQdDvclHVw==" + }, + "node_modules/intl-format-cache": { + "version": "2.2.9", + "resolved": "https://registry.npmjs.org/intl-format-cache/-/intl-format-cache-2.2.9.tgz", + "integrity": "sha512-Zv/u8wRpekckv0cLkwpVdABYST4hZNTDaX7reFetrYTJwxExR2VyTqQm+l0WmL0Qo8Mjb9Tf33qnfj0T7pjxdQ==" + }, + "node_modules/intl-messageformat": { + "version": "2.2.0", + "resolved": "https://registry.npmjs.org/intl-messageformat/-/intl-messageformat-2.2.0.tgz", + "integrity": "sha512-I+tSvHnXqJYjDfNmY95tpFMj30yoakC6OXAo+wu/wTMy6tA/4Fd4mvV7Uzs4cqK/Ap29sHhwjcY+78a8eifcXw==", + "dependencies": { + "intl-messageformat-parser": "1.4.0" + } + }, + "node_modules/intl-messageformat-parser": { + "version": "1.8.1", + "resolved": "https://registry.npmjs.org/intl-messageformat-parser/-/intl-messageformat-parser-1.8.1.tgz", + "integrity": "sha512-IMSCKVf0USrM/959vj3xac7s8f87sc+80Y/ipBzdKy4ifBv5Gsj2tZ41EAaURVg01QU71fYr77uA8Meh6kELbg==", + "deprecated": "We've written a new parser that's 6x faster and is backwards compatible. Please use @formatjs/icu-messageformat-parser" + }, + "node_modules/intl-messageformat/node_modules/intl-messageformat-parser": { + "version": "1.4.0", + "resolved": "https://registry.npmjs.org/intl-messageformat-parser/-/intl-messageformat-parser-1.4.0.tgz", + "integrity": "sha512-/XkqFHKezO6UcF4Av2/Lzfrez18R0jyw7kRFhSeB/YRakdrgSc9QfFZUwNJI9swMwMoNPygK1ArC5wdFSjPw+A==", + "deprecated": "We've written a new parser that's 6x faster and is backwards compatible. Please use @formatjs/icu-messageformat-parser" + }, + "node_modules/intl-relativeformat": { + "version": "2.2.0", + "resolved": "https://registry.npmjs.org/intl-relativeformat/-/intl-relativeformat-2.2.0.tgz", + "integrity": "sha512-4bV/7kSKaPEmu6ArxXf9xjv1ny74Zkwuey8Pm01NH4zggPP7JHwg2STk8Y3JdspCKRDriwIyLRfEXnj2ZLr4Bw==", + "deprecated": "This package has been deprecated, please see migration guide at 'https://github.com/formatjs/formatjs/tree/master/packages/intl-relativeformat#migration-guide'", + "dependencies": { + "intl-messageformat": "^2.0.0" + } + }, + "node_modules/into-stream": { + "version": "3.1.0", + "resolved": "https://registry.npmjs.org/into-stream/-/into-stream-3.1.0.tgz", + "integrity": "sha512-TcdjPibTksa1NQximqep2r17ISRiNE9fwlfbg3F8ANdvP5/yrFTew86VcO//jk4QTaMlbjypPBq76HN2zaKfZQ==", + "dependencies": { + "from2": "^2.1.1", + "p-is-promise": "^1.1.0" + }, + "engines": { + "node": ">=4" + } + }, + "node_modules/invariant": { + "version": "2.2.4", + "resolved": "https://registry.npmjs.org/invariant/-/invariant-2.2.4.tgz", + "integrity": "sha512-phJfQVBuaJM5raOpJjSfkiD6BpbCE4Ns//LaXl6wGYtUBY83nWS6Rf9tXm2e8VaK60JEjYldbPif/A2B1C2gNA==", + "dependencies": { + "loose-envify": "^1.0.0" + } + }, + "node_modules/invert-kv": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/invert-kv/-/invert-kv-1.0.0.tgz", + "integrity": "sha512-xgs2NH9AE66ucSq4cNG1nhSFghr5l6tdL15Pk+jl46bmmBapgoaY/AacXyaDznAqmGL99TiLSQgO/XazFSKYeQ==", + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/ip": { + "version": "1.1.9", + "resolved": "https://registry.npmjs.org/ip/-/ip-1.1.9.tgz", + "integrity": "sha512-cyRxvOEpNHNtchU3Ln9KC/auJgup87llfQpQ+t5ghoC/UhL16SWzbueiCsdTnWmqAWl7LadfuwhlqmtOaqMHdQ==", + "dev": true + }, + "node_modules/ip-regex": { + "version": "4.3.0", + "resolved": "https://registry.npmjs.org/ip-regex/-/ip-regex-4.3.0.tgz", + "integrity": "sha512-B9ZWJxHHOHUhUjCPrMpLD4xEq35bUTClHM1S6CBU5ixQnkZmwipwgc96vAd7AAGM9TGHvJR+Uss+/Ak6UphK+Q==", + "dev": true, + "engines": { + "node": ">=8" + } + }, + "node_modules/ipaddr.js": { + "version": "1.9.1", + "resolved": "https://registry.npmjs.org/ipaddr.js/-/ipaddr.js-1.9.1.tgz", + "integrity": "sha512-0KI/607xoxSToH7GjN1FfSbLoU0+btTicjsQSWQlh/hZykN8KpmMf7uYwPW3R+akZ6R/w18ZlXSHBYXiYUPO3g==", + "dev": true, + "engines": { + "node": ">= 0.10" + } + }, + "node_modules/is-absolute-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/is-accessor-descriptor": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/is-accessor-descriptor/-/is-accessor-descriptor-1.0.1.tgz", + "integrity": "sha512-YBUanLI8Yoihw923YeFUS5fs0fF2f5TSFTNiYAAzhhDscDa3lEqYuz1pDOEP5KvX94I9ey3vsqjJcLVFVU+3QA==", + "dependencies": { + "hasown": "^2.0.0" + }, + "engines": { + "node": ">= 0.10" + } + }, + "node_modules/is-arguments": { + "version": "1.1.1", + "resolved": "https://registry.npmjs.org/is-arguments/-/is-arguments-1.1.1.tgz", + "integrity": "sha512-8Q7EARjzEnKpt/PCD7e1cgUS0a6X8u5tdSiMqXhojOdoV9TsMsiO+9VLC5vAmO8N7/GmXn7yjR8qnA6bVAEzfA==", + "dev": true, + "dependencies": { + "call-bind": "^1.0.2", + "has-tostringtag": "^1.0.0" + }, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/is-array-buffer": { + "version": "3.0.4", + "resolved": "https://registry.npmjs.org/is-array-buffer/-/is-array-buffer-3.0.4.tgz", + "integrity": "sha512-wcjaerHw0ydZwfhiKbXJWLDY8A7yV7KhjQOpb83hGgGfId/aQa4TOvwyzn2PuswW2gPCYEL/nEAiSVpdOj1lXw==", + "dev": true, + "dependencies": { + "call-bind": "^1.0.2", + "get-intrinsic": "^1.2.1" + }, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/is-arrayish": { + "version": "0.2.1", + "resolved": "https://registry.npmjs.org/is-arrayish/-/is-arrayish-0.2.1.tgz", + "integrity": "sha512-zz06S8t0ozoDXMG+ube26zeCTNXcKIPJZJi8hBrF4idCLms4CG9QtK7qBl1boi5ODzFpjswb5JPmHCbMpjaYzg==" + }, + "node_modules/is-bigint": { + "version": "1.0.4", + "resolved": "https://registry.npmjs.org/is-bigint/-/is-bigint-1.0.4.tgz", + "integrity": "sha512-zB9CruMamjym81i2JZ3UMn54PKGsQzsJeo6xvN3HJJ4CAsQNB6iRutp2To77OfCNuoxspsIhzaPoO1zyCEhFOg==", + "dev": true, + "dependencies": { + "has-bigints": "^1.0.1" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "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==", + "devOptional": true, + "dependencies": { + "binary-extensions": "^1.0.0" + }, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/is-boolean-object": { + "version": "1.1.2", + "resolved": "https://registry.npmjs.org/is-boolean-object/-/is-boolean-object-1.1.2.tgz", + "integrity": "sha512-gDYaKHJmnj4aWxyj6YHyXVpdQawtVLHU5cb+eztPGczf6cjuTdwve5ZIEfgXqH4e57An1D1AKf8CZ3kYrQRqYA==", + "dev": true, + "dependencies": { + "call-bind": "^1.0.2", + "has-tostringtag": "^1.0.0" + }, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/is-buffer": { + "version": "1.1.6", + "resolved": "https://registry.npmjs.org/is-buffer/-/is-buffer-1.1.6.tgz", + "integrity": "sha512-NcdALwpXkTm5Zvvbk7owOUSvVvBKDgKP5/ewfXEznmQFfs4ZRmanOeKBTjRVjka3QFoN6XJ+9F3USqfHqTaU5w==" + }, + "node_modules/is-builtin-module": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/is-builtin-module/-/is-builtin-module-1.0.0.tgz", + "integrity": "sha512-C2wz7Juo5pUZTFQVer9c+9b4qw3I5T/CHQxQyhVu7BJel6C22FmsLIWsdseYyOw6xz9Pqy9eJWSkQ7+3iN1HVw==", + "dev": true, + "dependencies": { + "builtin-modules": "^1.0.0" + }, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/is-callable": { + "version": "1.2.7", + "resolved": "https://registry.npmjs.org/is-callable/-/is-callable-1.2.7.tgz", + "integrity": "sha512-1BC0BVFhS/p0qtw6enp8e+8OD0UrK0oFLztSjNzhcKA3WDuJxxAPXzPuPtKkjEY9UUoEWlX/8fgKeu2S8i9JTA==", + "dev": true, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/is-ci": { + "version": "1.2.1", + "resolved": "https://registry.npmjs.org/is-ci/-/is-ci-1.2.1.tgz", + "integrity": "sha512-s6tfsaQaQi3JNciBH6shVqEDvhGut0SUXr31ag8Pd8BBbVVlcGfWhpPmEOoM6RJ5TFhbypvf5yyRw/VXW1IiWg==", + "dev": true, + "dependencies": { + "ci-info": "^1.5.0" + }, + "bin": { + "is-ci": "bin.js" + } + }, + "node_modules/is-core-module": { + "version": "2.15.1", + "resolved": "https://registry.npmjs.org/is-core-module/-/is-core-module-2.15.1.tgz", + "integrity": "sha512-z0vtXSwucUJtANQWldhbtbt7BnL0vxiFjIdDLAatwhDYty2bad6s+rijD6Ri4YuYJubLzIJLUidCh09e1djEVQ==", + "dependencies": { + "hasown": "^2.0.2" + }, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/is-data-descriptor": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/is-data-descriptor/-/is-data-descriptor-1.0.1.tgz", + "integrity": "sha512-bc4NlCDiCr28U4aEsQ3Qs2491gVq4V8G7MQyws968ImqjKuYtTJXrl7Vq7jsN7Ly/C3xj5KWFrY7sHNeDkAzXw==", + "dependencies": { + "hasown": "^2.0.0" + }, + "engines": { + "node": ">= 0.4" + } + }, + "node_modules/is-data-view": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/is-data-view/-/is-data-view-1.0.1.tgz", + "integrity": "sha512-AHkaJrsUVW6wq6JS8y3JnM/GJF/9cf+k20+iDzlSaJrinEo5+7vRiteOSwBhHRiAyQATN1AmY4hwzxJKPmYf+w==", + "dev": true, + "dependencies": { + "is-typed-array": "^1.1.13" + }, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/is-date-object": { + "version": "1.0.5", + "resolved": "https://registry.npmjs.org/is-date-object/-/is-date-object-1.0.5.tgz", + "integrity": "sha512-9YQaSxsAiSwcvS33MBk3wTCVnWK+HhF8VZR2jRxehM16QcVOdHqPn4VPHmRK4lSr38n9JriurInLcP90xsYNfQ==", + "dev": true, + "dependencies": { + "has-tostringtag": "^1.0.0" + }, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/is-descriptor": { + "version": "1.0.3", + "resolved": "https://registry.npmjs.org/is-descriptor/-/is-descriptor-1.0.3.tgz", + "integrity": "sha512-JCNNGbwWZEVaSPtS45mdtrneRWJFp07LLmykxeFV5F6oBvNF8vHSfJuJgoT472pSfk+Mf8VnlrspaFBHWM8JAw==", + "dependencies": { + "is-accessor-descriptor": "^1.0.1", + "is-data-descriptor": "^1.0.1" + }, + "engines": { + "node": ">= 0.4" + } + }, + "node_modules/is-directory": { + "version": "0.3.1", + "resolved": "https://registry.npmjs.org/is-directory/-/is-directory-0.3.1.tgz", + "integrity": "sha512-yVChGzahRFvbkscn2MlwGismPO12i9+znNruC5gVEntG3qu0xQMzsGg/JFbrsqDOHtHFPci+V5aP5T9I+yeKqw==", + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/is-dotfile": { + "version": "1.0.3", + "resolved": "https://registry.npmjs.org/is-dotfile/-/is-dotfile-1.0.3.tgz", + "integrity": "sha512-9YclgOGtN/f8zx0Pr4FQYMdibBiTaH3sn52vjYip4ZSf6C4/6RfTEZ+MR4GvKhCxdPh21Bg42/WL55f6KSnKpg==", + "dev": true, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/is-equal-shallow": { + "version": "0.1.3", + "resolved": "https://registry.npmjs.org/is-equal-shallow/-/is-equal-shallow-0.1.3.tgz", + "integrity": "sha512-0EygVC5qPvIyb+gSz7zdD5/AAoS6Qrx1e//6N4yv4oNm30kqvdmG66oZFWVlQHUWe5OjP08FuTw2IdT0EOTcYA==", + "dev": true, + "dependencies": { + "is-primitive": "^2.0.0" + }, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/is-extendable": { + "version": "0.1.1", + "resolved": "https://registry.npmjs.org/is-extendable/-/is-extendable-0.1.1.tgz", + "integrity": "sha512-5BMULNob1vgFX6EjQw5izWDxrecWK9AM72rugNr0TFldMOi0fj6Jk+zeKIt0xGj4cEfQIJth4w3OKWOJ4f+AFw==", + "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": "sha512-SbKbANkN603Vi4jEZv49LeVJMn4yGwsbzZworEoyEiutsN3nJYdbO36zfhGJ6QEDpOZIFkDtnq5JRxmvl3jsoQ==", + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/is-finite": { + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/is-finite/-/is-finite-1.1.0.tgz", + "integrity": "sha512-cdyMtqX/BOqqNBBiKlIVkytNHm49MtMlYyn1zxzvJKWmFMlGzm+ry5BBfYyeY9YmNKbRSo/o7OX9w9ale0wg3w==", + "dev": true, + "engines": { + "node": ">=0.10.0" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "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": "sha512-VHskAKYM8RfSFXwee5t5cbN5PZeq1Wrh6qd5bkyiXIf6UQcN6w/A0eXM9r6t8d+GYOh+o6ZhiEnb88LN/Y8m2w==", + "dev": true, + "engines": { + "node": ">=4" + } + }, + "node_modules/is-function": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/is-function/-/is-function-1.0.2.tgz", + "integrity": "sha512-lw7DUp0aWXYg+CBCN+JKkcE0Q2RayZnSvnZBlwgxHBQhqt5pZNVy4Ri7H9GmmXkdu7LUthszM+Tor1u/2iBcpQ==" + }, + "node_modules/is-glob": { + "version": "4.0.3", + "resolved": "https://registry.npmjs.org/is-glob/-/is-glob-4.0.3.tgz", + "integrity": "sha512-xelSayHH36ZgE7ZWhli7pW34hNbNl8Ojv5KVmkJD4hBdD3th8Tfk9vYasLM+mXWOZhFkgZfxhLSnrwRr4elSSg==", + "dependencies": { + "is-extglob": "^2.1.1" + }, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/is-in-browser": { + "version": "1.1.3", + "resolved": "https://registry.npmjs.org/is-in-browser/-/is-in-browser-1.1.3.tgz", + "integrity": "sha512-FeXIBgG/CPGd/WUxuEyvgGTEfwiG9Z4EKGxjNMRqviiIIfsmgrpnHLffEDdwUHqNva1VEW91o3xBT/m8Elgl9g==" + }, + "node_modules/is-natural-number": { + "version": "4.0.1", + "resolved": "https://registry.npmjs.org/is-natural-number/-/is-natural-number-4.0.1.tgz", + "integrity": "sha512-Y4LTamMe0DDQIIAlaer9eKebAlDSV6huy+TWhJVPlzZh2o4tRP5SQWFlLn5N0To4mDD22/qdOq+veo1cSISLgQ==" + }, + "node_modules/is-negative-zero": { + "version": "2.0.3", + "resolved": "https://registry.npmjs.org/is-negative-zero/-/is-negative-zero-2.0.3.tgz", + "integrity": "sha512-5KoIu2Ngpyek75jXodFvnafB6DJgr3u8uuK0LEZJjrU19DrMD3EVERaR8sjz8CCGgpZvxPl9SuE1GMVPFHx1mw==", + "dev": true, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "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==", + "dependencies": { + "kind-of": "^3.0.2" + }, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/is-number-object": { + "version": "1.0.7", + "resolved": "https://registry.npmjs.org/is-number-object/-/is-number-object-1.0.7.tgz", + "integrity": "sha512-k1U0IRzLMo7ZlYIfzRu23Oh6MiIFasgpb9X76eqfFZAqwH44UI4KTBvBYIZ1dSL9ZzChTB9ShHfLkR4pdW5krQ==", + "dev": true, + "dependencies": { + "has-tostringtag": "^1.0.0" + }, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/is-object": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/is-object/-/is-object-1.0.2.tgz", + "integrity": "sha512-2rRIahhZr2UWb45fIOuvZGpFtz0TyOZLf32KxBbSoUCeZR495zCKlWUKKUByk3geS2eAs7ZAABt0Y/Rx0GiQGA==", + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "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-in-cwd/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-path-inside": { + "version": "3.0.3", + "resolved": "https://registry.npmjs.org/is-path-inside/-/is-path-inside-3.0.3.tgz", + "integrity": "sha512-Fd4gABb+ycGAmKou8eMftCupSir5lRxqf4aD/vd0cD2qc4HL07OjCeuHMr8Ro4CoMaeCKDB0/ECBOVWjTwUvPQ==", + "dev": true, + "engines": { + "node": ">=8" + } + }, + "node_modules/is-plain-obj": { + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/is-plain-obj/-/is-plain-obj-1.1.0.tgz", + "integrity": "sha512-yvkRyxmFKEOQ4pNXCmJG5AEQNlXJS5LaONXo5/cLdTZdWvsZ1ioJEonLGAosKlMWE8lwUy/bJzMjcw8az73+Fg==", + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/is-plain-object": { + "version": "2.0.4", + "resolved": "https://registry.npmjs.org/is-plain-object/-/is-plain-object-2.0.4.tgz", + "integrity": "sha512-h5PpgXkWitc38BBMYawTYMWJHFZJVnBquFE57xFpjB8pJFiF6gZ+bU+WyI/yqXiFR5mdLsgYNaPe8uao6Uv9Og==", + "dependencies": { + "isobject": "^3.0.1" + }, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/is-posix-bracket": { + "version": "0.1.1", + "resolved": "https://registry.npmjs.org/is-posix-bracket/-/is-posix-bracket-0.1.1.tgz", + "integrity": "sha512-Yu68oeXJ7LeWNmZ3Zov/xg/oDBnBK2RNxwYY1ilNJX+tKKZqgPK+qOn/Gs9jEu66KDY9Netf5XLKNGzas/vPfQ==", + "dev": true, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/is-primitive": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/is-primitive/-/is-primitive-2.0.0.tgz", + "integrity": "sha512-N3w1tFaRfk3UrPfqeRyD+GYDASU3W5VinKhlORy8EWVf/sIdDL9GAcew85XmktCfH+ngG7SRXEVDoO18WMdB/Q==", + "dev": true, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/is-regex": { + "version": "1.1.4", + "resolved": "https://registry.npmjs.org/is-regex/-/is-regex-1.1.4.tgz", + "integrity": "sha512-kvRdxDsxZjhzUX07ZnLydzS1TU/TJlTUHHY4YLL87e37oUA49DfkLqgy+VjFocowy29cKvcSiu+kIv728jTTVg==", + "dev": true, + "dependencies": { + "call-bind": "^1.0.2", + "has-tostringtag": "^1.0.0" + }, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/is-retry-allowed": { + "version": "1.2.0", + "resolved": "https://registry.npmjs.org/is-retry-allowed/-/is-retry-allowed-1.2.0.tgz", + "integrity": "sha512-RUbUeKwvm3XG2VYamhJL1xFktgjvPzL0Hq8C+6yrWIswDy3BIXGqCxhxkc30N9jqK311gVU137K8Ei55/zVJRg==", + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/is-shared-array-buffer": { + "version": "1.0.3", + "resolved": "https://registry.npmjs.org/is-shared-array-buffer/-/is-shared-array-buffer-1.0.3.tgz", + "integrity": "sha512-nA2hv5XIhLR3uVzDDfCIknerhx8XUKnstuOERPNNIinXG7v9u+ohXF67vxm4TPTEPU6lm61ZkwP3c9PCB97rhg==", + "dev": true, + "dependencies": { + "call-bind": "^1.0.7" + }, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/is-stream": { + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/is-stream/-/is-stream-1.1.0.tgz", + "integrity": "sha512-uQPm8kcs47jx38atAcWTVxyltQYoPT68y9aWYdV6yWXSyW8mzSat0TL6CiWdZeCdF3KrAvpVtnHbTv4RN+rqdQ==", + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/is-string": { + "version": "1.0.7", + "resolved": "https://registry.npmjs.org/is-string/-/is-string-1.0.7.tgz", + "integrity": "sha512-tE2UXzivje6ofPW7l23cjDOMa09gb7xlAqG6jG5ej6uPV32TlWP3NKPigtaGeHNu9fohccRYvIiZMfOOnOYUtg==", + "dev": true, + "dependencies": { + "has-tostringtag": "^1.0.0" + }, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/is-subset": { + "version": "0.1.1", + "resolved": "https://registry.npmjs.org/is-subset/-/is-subset-0.1.1.tgz", + "integrity": "sha512-6Ybun0IkarhmEqxXCNw/C0bna6Zb/TkfUX9UbwJtK6ObwAVCxmAP308WWTHviM/zAqXk05cdhYsUsZeGQh99iw==", + "dev": true + }, + "node_modules/is-symbol": { + "version": "1.0.4", + "resolved": "https://registry.npmjs.org/is-symbol/-/is-symbol-1.0.4.tgz", + "integrity": "sha512-C/CPBqKWnvdcxqIARxyOh4v1UUEOCHpgDa0WYgpKDFMszcrPcffg5uhwSgPCLD2WWxmq6isisz87tzT01tuGhg==", + "dev": true, + "dependencies": { + "has-symbols": "^1.0.2" + }, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/is-typed-array": { + "version": "1.1.13", + "resolved": "https://registry.npmjs.org/is-typed-array/-/is-typed-array-1.1.13.tgz", + "integrity": "sha512-uZ25/bUAlUY5fR4OKT4rZQEBrzQWYV9ZJYGGsUmEJ6thodVJ1HX64ePQ6Z0qPWP+m+Uq6e9UugrE38jeYsDSMw==", + "dev": true, + "dependencies": { + "which-typed-array": "^1.1.14" + }, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/is-typedarray": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/is-typedarray/-/is-typedarray-1.0.0.tgz", + "integrity": "sha512-cyA56iCMHAh5CdzjJIa4aohJyeO1YbwLi3Jc35MmRU6poroFjIGZzUzupGiRPOjgHg9TLu43xbpwXk523fMxKA==" + }, + "node_modules/is-url": { + "version": "1.2.4", + "resolved": "https://registry.npmjs.org/is-url/-/is-url-1.2.4.tgz", + "integrity": "sha512-ITvGim8FhRiYe4IQ5uHSkj7pVaPDrCTkNd3yq3cV7iZAcJdHTUMPMEHcqSOy9xZ9qFenQCvi+2wjH9a1nXqHww==", + "dev": true + }, + "node_modules/is-utf8": { + "version": "0.2.1", + "resolved": "https://registry.npmjs.org/is-utf8/-/is-utf8-0.2.1.tgz", + "integrity": "sha512-rMYPYvCzsXywIsldgLaSoPlw5PfoB/ssr7hY4pLfcodrA5M/eArza1a9VmTiNIBNMjOGr1Ow9mTyU2o69U6U9Q==", + "dev": true + }, + "node_modules/is-weakref": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/is-weakref/-/is-weakref-1.0.2.tgz", + "integrity": "sha512-qctsuLZmIQ0+vSSMfoVvyFe2+GSEvnmZ2ezTup1SBse9+twCCeial6EEi3Nc2KFcf6+qz2FBPnjXsk8xhKSaPQ==", + "dev": true, + "dependencies": { + "call-bind": "^1.0.2" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "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==", + "engines": { + "node": ">=0.10.0" + } + }, + "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==", + "engines": { + "node": ">=4" + } + }, + "node_modules/is2": { + "version": "2.0.9", + "resolved": "https://registry.npmjs.org/is2/-/is2-2.0.9.tgz", + "integrity": "sha512-rZkHeBn9Zzq52sd9IUIV3a5mfwBY+o2HePMh0wkGBM4z4qjvy2GwVxQ6nNXSfw6MmVP6gf1QIlWjiOavhM3x5g==", + "dev": true, + "dependencies": { + "deep-is": "^0.1.3", + "ip-regex": "^4.1.0", + "is-url": "^1.2.4" + }, + "engines": { + "node": ">=v0.10.0" + } + }, + "node_modules/isarray": { + "version": "2.0.5", + "resolved": "https://registry.npmjs.org/isarray/-/isarray-2.0.5.tgz", + "integrity": "sha512-xHjhDr3cNBK0BzdUJSPXZntQUx/mwMS5Rw4A7lPJ90XGAO6ISP/ePDNuo0vhqOZU+UD5JoodwCAAoZQd3FeAKw==" + }, + "node_modules/isexe": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/isexe/-/isexe-2.0.0.tgz", + "integrity": "sha512-RHxMLp9lnKHGHRng9QFhRCMbYAcVpn69smSGcq3f36xjgVVWThj4qqLbTLlq7Ssj8B+fIQ1EuCEGI2lKsyQeIw==", + "dev": true + }, + "node_modules/isobject": { + "version": "3.0.1", + "resolved": "https://registry.npmjs.org/isobject/-/isobject-3.0.1.tgz", + "integrity": "sha512-WhB9zCku7EGTj/HQQRz5aUQEUeoQZH2bWcltRErOpymJ4boYE6wL9Tbr23krRPSZ+C5zqNSrSw+Cc7sZZ4b7vg==", + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/isomorphic-fetch": { + "version": "2.2.1", + "resolved": "https://registry.npmjs.org/isomorphic-fetch/-/isomorphic-fetch-2.2.1.tgz", + "integrity": "sha512-9c4TNAKYXM5PRyVcwUZrF3W09nQ+sO7+jydgs4ZGW9dhsLG2VOlISJABombdQqQRXCwuYG3sYV/puGf5rp0qmA==", + "dev": true, + "dependencies": { + "node-fetch": "^1.0.1", + "whatwg-fetch": ">=0.10.0" + } + }, + "node_modules/isstream": { + "version": "0.1.2", + "resolved": "https://registry.npmjs.org/isstream/-/isstream-0.1.2.tgz", + "integrity": "sha512-Yljz7ffyPbrLpLngrMtZ7NduUgVvi6wG9RJ9IUcyCd59YQ911PBJphODUcbOVbqYfxe1wuYf/LJ8PauMRwsM/g==" + }, + "node_modules/istanbul-api": { + "version": "1.3.7", + "resolved": "https://registry.npmjs.org/istanbul-api/-/istanbul-api-1.3.7.tgz", + "integrity": "sha512-4/ApBnMVeEPG3EkSzcw25wDe4N66wxwn+KKn6b47vyek8Xb3NBAcg4xfuQbS7BqcZuTX4wxfD5lVagdggR3gyA==", + "dev": true, + "dependencies": { + "async": "^2.1.4", + "fileset": "^2.0.2", + "istanbul-lib-coverage": "^1.2.1", + "istanbul-lib-hook": "^1.2.2", + "istanbul-lib-instrument": "^1.10.2", + "istanbul-lib-report": "^1.1.5", + "istanbul-lib-source-maps": "^1.2.6", + "istanbul-reports": "^1.5.1", + "js-yaml": "^3.7.0", + "mkdirp": "^0.5.1", + "once": "^1.4.0" + } + }, + "node_modules/istanbul-api/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==", + "dev": true, + "dependencies": { + "minimist": "^1.2.6" + }, + "bin": { + "mkdirp": "bin/cmd.js" + } + }, + "node_modules/istanbul-lib-coverage": { + "version": "1.2.1", + "resolved": "https://registry.npmjs.org/istanbul-lib-coverage/-/istanbul-lib-coverage-1.2.1.tgz", + "integrity": "sha512-PzITeunAgyGbtY1ibVIUiV679EFChHjoMNRibEIobvmrCRaIgwLxNucOSimtNWUhEib/oO7QY2imD75JVgCJWQ==", + "dev": true + }, + "node_modules/istanbul-lib-hook": { + "version": "1.2.2", + "resolved": "https://registry.npmjs.org/istanbul-lib-hook/-/istanbul-lib-hook-1.2.2.tgz", + "integrity": "sha512-/Jmq7Y1VeHnZEQ3TL10VHyb564mn6VrQXHchON9Jf/AEcmQ3ZIiyD1BVzNOKTZf/G3gE+kiGK6SmpF9y3qGPLw==", + "dev": true, + "dependencies": { + "append-transform": "^0.4.0" + } + }, + "node_modules/istanbul-lib-instrument": { + "version": "1.10.2", + "resolved": "https://registry.npmjs.org/istanbul-lib-instrument/-/istanbul-lib-instrument-1.10.2.tgz", + "integrity": "sha512-aWHxfxDqvh/ZlxR8BBaEPVSWDPUkGD63VjGQn3jcw8jCp7sHEMKcrj4xfJn/ABzdMEHiQNyvDQhqm5o8+SQg7A==", + "dev": true, + "dependencies": { + "babel-generator": "^6.18.0", + "babel-template": "^6.16.0", + "babel-traverse": "^6.18.0", + "babel-types": "^6.18.0", + "babylon": "^6.18.0", + "istanbul-lib-coverage": "^1.2.1", + "semver": "^5.3.0" + } + }, + "node_modules/istanbul-lib-instrument/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/istanbul-lib-report": { + "version": "1.1.5", + "resolved": "https://registry.npmjs.org/istanbul-lib-report/-/istanbul-lib-report-1.1.5.tgz", + "integrity": "sha512-UsYfRMoi6QO/doUshYNqcKJqVmFe9w51GZz8BS3WB0lYxAllQYklka2wP9+dGZeHYaWIdcXUx8JGdbqaoXRXzw==", + "dev": true, + "dependencies": { + "istanbul-lib-coverage": "^1.2.1", + "mkdirp": "^0.5.1", + "path-parse": "^1.0.5", + "supports-color": "^3.1.2" + } + }, + "node_modules/istanbul-lib-report/node_modules/has-flag": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/has-flag/-/has-flag-1.0.0.tgz", + "integrity": "sha512-DyYHfIYwAJmjAjSSPKANxI8bFY9YtFrgkAfinBojQ8YJTOuOuav64tMUJv584SES4xl74PmuaevIyaLESHdTAA==", + "dev": true, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/istanbul-lib-report/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==", + "dev": true, + "dependencies": { + "minimist": "^1.2.6" + }, + "bin": { + "mkdirp": "bin/cmd.js" + } + }, + "node_modules/istanbul-lib-report/node_modules/supports-color": { + "version": "3.2.3", + "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-3.2.3.tgz", + "integrity": "sha512-Jds2VIYDrlp5ui7t8abHN2bjAu4LV/q4N2KivFPpGH0lrka0BMq/33AmECUXlKPcHigkNaqfXRENFju+rlcy+A==", + "dev": true, + "dependencies": { + "has-flag": "^1.0.0" + }, + "engines": { + "node": ">=0.8.0" + } + }, + "node_modules/istanbul-lib-source-maps": { + "version": "1.2.6", + "resolved": "https://registry.npmjs.org/istanbul-lib-source-maps/-/istanbul-lib-source-maps-1.2.6.tgz", + "integrity": "sha512-TtbsY5GIHgbMsMiRw35YBHGpZ1DVFEO19vxxeiDMYaeOFOCzfnYVxvl6pOUIZR4dtPhAGpSMup8OyF8ubsaqEg==", + "dev": true, + "dependencies": { + "debug": "^3.1.0", + "istanbul-lib-coverage": "^1.2.1", + "mkdirp": "^0.5.1", + "rimraf": "^2.6.1", + "source-map": "^0.5.3" + } + }, + "node_modules/istanbul-lib-source-maps/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/istanbul-lib-source-maps/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==", + "dev": true, + "dependencies": { + "minimist": "^1.2.6" + }, + "bin": { + "mkdirp": "bin/cmd.js" + } + }, + "node_modules/istanbul-reports": { + "version": "1.5.1", + "resolved": "https://registry.npmjs.org/istanbul-reports/-/istanbul-reports-1.5.1.tgz", + "integrity": "sha512-+cfoZ0UXzWjhAdzosCPP3AN8vvef8XDkWtTfgaN+7L3YTpNYITnCaEkceo5SEYy644VkHka/P1FvkWvrG/rrJw==", + "dev": true, + "dependencies": { + "handlebars": "^4.0.3" + } + }, + "node_modules/isurl": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/isurl/-/isurl-1.0.0.tgz", + "integrity": "sha512-1P/yWsxPlDtn7QeRD+ULKQPaIaN6yF368GZ2vDfv0AL0NwpStafjWCDDdn0k8wgFMWpVAqG7oJhxHnlud42i9w==", + "dependencies": { + "has-to-string-tag-x": "^1.2.0", + "is-object": "^1.0.1" + }, + "engines": { + "node": ">= 4" + } + }, + "node_modules/javascript-natural-sort": { + "version": "0.7.1", + "resolved": "https://registry.npmjs.org/javascript-natural-sort/-/javascript-natural-sort-0.7.1.tgz", + "integrity": "sha512-nO6jcEfZWQXDhOiBtG2KvKyEptz7RVbpGP4vTD2hLBdmNQSsCiicO2Ioinv6UI4y9ukqnBpy+XZ9H6uLNgJTlw==" + }, + "node_modules/jest": { + "version": "21.2.1", + "resolved": "https://registry.npmjs.org/jest/-/jest-21.2.1.tgz", + "integrity": "sha512-mXN0ppPvWYoIcC+R+ctKxAJ28xkt/Z5Js875padm4GbgUn6baeR5N4Ng6LjatIRpUQDZVJABT7Y4gucFjPryfw==", + "dev": true, + "dependencies": { + "jest-cli": "^21.2.1" + }, + "bin": { + "jest": "bin/jest.js" + }, + "engines": { + "node": ">= 4" + } + }, + "node_modules/jest-changed-files": { + "version": "21.2.0", + "resolved": "https://registry.npmjs.org/jest-changed-files/-/jest-changed-files-21.2.0.tgz", + "integrity": "sha512-+lCNP1IZLwN1NOIvBcV5zEL6GENK6TXrDj4UxWIeLvIsIDa+gf6J7hkqsW2qVVt/wvH65rVvcPwqXdps5eclTQ==", + "dev": true, + "dependencies": { + "throat": "^4.0.0" + } + }, + "node_modules/jest-cli": { + "version": "21.2.1", + "resolved": "https://registry.npmjs.org/jest-cli/-/jest-cli-21.2.1.tgz", + "integrity": "sha512-T1BzrbFxDIW/LLYQqVfo94y/hhaj1NzVQkZgBumAC+sxbjMROI7VkihOdxNR758iYbQykL2ZOWUBurFgkQrzdg==", + "dev": true, + "dependencies": { + "ansi-escapes": "^3.0.0", + "chalk": "^2.0.1", + "glob": "^7.1.2", + "graceful-fs": "^4.1.11", + "is-ci": "^1.0.10", + "istanbul-api": "^1.1.1", + "istanbul-lib-coverage": "^1.0.1", + "istanbul-lib-instrument": "^1.4.2", + "istanbul-lib-source-maps": "^1.1.0", + "jest-changed-files": "^21.2.0", + "jest-config": "^21.2.1", + "jest-environment-jsdom": "^21.2.1", + "jest-haste-map": "^21.2.0", + "jest-message-util": "^21.2.1", + "jest-regex-util": "^21.2.0", + "jest-resolve-dependencies": "^21.2.0", + "jest-runner": "^21.2.1", + "jest-runtime": "^21.2.1", + "jest-snapshot": "^21.2.1", + "jest-util": "^21.2.1", + "micromatch": "^2.3.11", + "node-notifier": "^5.0.2", + "pify": "^3.0.0", + "slash": "^1.0.0", + "string-length": "^2.0.0", + "strip-ansi": "^4.0.0", + "which": "^1.2.12", + "worker-farm": "^1.3.1", + "yargs": "^9.0.0" + }, + "bin": { + "jest": "bin/jest.js" + }, + "engines": { + "node": ">= 4" + } + }, + "node_modules/jest-cli/node_modules/ansi-regex": { + "version": "3.0.1", + "resolved": "https://registry.npmjs.org/ansi-regex/-/ansi-regex-3.0.1.tgz", + "integrity": "sha512-+O9Jct8wf++lXxxFc4hc8LsjaSq0HFzzL7cVsw8pRDIPdjKD2mT4ytDZlLuSBZ4cLKZFXIrMGO7DbQCtMJJMKw==", + "dev": true, + "engines": { + "node": ">=4" + } + }, + "node_modules/jest-cli/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/jest-cli/node_modules/arr-diff": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/arr-diff/-/arr-diff-2.0.0.tgz", + "integrity": "sha512-dtXTVMkh6VkEEA7OhXnN1Ecb8aAGFdZ1LFxtOCoqj4qkyOJMt7+qs6Ahdy6p/NQCPYsRSXXivhSB/J5E9jmYKA==", + "dev": true, + "dependencies": { + "arr-flatten": "^1.0.1" + }, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/jest-cli/node_modules/array-unique": { + "version": "0.2.1", + "resolved": "https://registry.npmjs.org/array-unique/-/array-unique-0.2.1.tgz", + "integrity": "sha512-G2n5bG5fSUCpnsXz4+8FUkYsGPkNfLn9YvS66U5qbTIXI2Ynnlo4Bi42bWv+omKUCqz+ejzfClwne0alJWJPhg==", + "dev": true, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/jest-cli/node_modules/braces": { + "version": "1.8.5", + "resolved": "https://registry.npmjs.org/braces/-/braces-1.8.5.tgz", + "integrity": "sha512-xU7bpz2ytJl1bH9cgIurjpg/n8Gohy9GTw81heDYLJQ4RU60dlyJsa+atVF2pI0yMMvKxI9HkKwjePCj5XI1hw==", + "dev": true, + "dependencies": { + "expand-range": "^1.8.1", + "preserve": "^0.2.0", + "repeat-element": "^1.1.2" + }, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/jest-cli/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/jest-cli/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/jest-cli/node_modules/expand-brackets": { + "version": "0.1.5", + "resolved": "https://registry.npmjs.org/expand-brackets/-/expand-brackets-0.1.5.tgz", + "integrity": "sha512-hxx03P2dJxss6ceIeri9cmYOT4SRs3Zk3afZwWpOsRqLqprhTR8u++SlC+sFGsQr7WGFPdMF7Gjc1njDLDK6UA==", + "dev": true, + "dependencies": { + "is-posix-bracket": "^0.1.0" + }, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/jest-cli/node_modules/extglob": { + "version": "0.3.2", + "resolved": "https://registry.npmjs.org/extglob/-/extglob-0.3.2.tgz", + "integrity": "sha512-1FOj1LOwn42TMrruOHGt18HemVnbwAmAak7krWk+wa93KXxGbK+2jpezm+ytJYDaBX0/SPLZFHKM7m+tKobWGg==", + "dev": true, + "dependencies": { + "is-extglob": "^1.0.0" + }, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/jest-cli/node_modules/is-extglob": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/is-extglob/-/is-extglob-1.0.0.tgz", + "integrity": "sha512-7Q+VbVafe6x2T+Tu6NcOf6sRklazEPmBoB3IWk3WdGZM2iGUwU/Oe3Wtq5lSEkDTTlpp8yx+5t4pzO/i9Ty1ww==", + "dev": true, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/jest-cli/node_modules/is-glob": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/is-glob/-/is-glob-2.0.1.tgz", + "integrity": "sha512-a1dBeB19NXsf/E0+FHqkagizel/LQw2DjSQpvQrj3zT+jYPpaUCryPnrQajXKFLCMuf4I6FhRpaGtw4lPrG6Eg==", + "dev": true, + "dependencies": { + "is-extglob": "^1.0.0" + }, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/jest-cli/node_modules/micromatch": { + "version": "2.3.11", + "resolved": "https://registry.npmjs.org/micromatch/-/micromatch-2.3.11.tgz", + "integrity": "sha512-LnU2XFEk9xxSJ6rfgAry/ty5qwUTyHYOBU0g4R6tIw5ljwgGIBmiKhRWLw5NpMOnrgUNcDJ4WMp8rl3sYVHLNA==", + "dev": true, + "dependencies": { + "arr-diff": "^2.0.0", + "array-unique": "^0.2.1", + "braces": "^1.8.2", + "expand-brackets": "^0.1.4", + "extglob": "^0.3.1", + "filename-regex": "^2.0.0", + "is-extglob": "^1.0.0", + "is-glob": "^2.0.1", + "kind-of": "^3.0.2", + "normalize-path": "^2.0.1", + "object.omit": "^2.0.0", + "parse-glob": "^3.0.4", + "regex-cache": "^0.4.2" + }, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/jest-cli/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/jest-cli/node_modules/pify": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/pify/-/pify-3.0.0.tgz", + "integrity": "sha512-C3FsVNH1udSEX48gGX1xfvwTWfsYWj5U+8/uK15BGzIGrKoUpghX8hWZwa/OFnakBiiVNmBvemTJR5mcy7iPcg==", + "dev": true, + "engines": { + "node": ">=4" + } + }, + "node_modules/jest-cli/node_modules/slash": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/slash/-/slash-1.0.0.tgz", + "integrity": "sha512-3TYDR7xWt4dIqV2JauJr+EJeW356RXijHeUlO+8djJ+uBXPn8/2dpzBc8yQhh583sVvc9CvFAeQVgijsH+PNNg==", + "dev": true, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/jest-cli/node_modules/strip-ansi": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/strip-ansi/-/strip-ansi-4.0.0.tgz", + "integrity": "sha512-4XaJ2zQdCzROZDivEVIDPkcQn8LMFSa8kj8Gxb/Lnwzv9A8VctNZ+lfivC/sV3ivW8ElJTERXZoPBRrZKkNKow==", + "dev": true, + "dependencies": { + "ansi-regex": "^3.0.0" + }, + "engines": { + "node": ">=4" + } + }, + "node_modules/jest-cli/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/jest-config": { + "version": "21.2.1", + "resolved": "https://registry.npmjs.org/jest-config/-/jest-config-21.2.1.tgz", + "integrity": "sha512-fJru5HtlD/5l2o25eY9xT0doK3t2dlglrqoGpbktduyoI0T5CwuB++2YfoNZCrgZipTwPuAGonYv0q7+8yDc/A==", + "dev": true, + "dependencies": { + "chalk": "^2.0.1", + "glob": "^7.1.1", + "jest-environment-jsdom": "^21.2.1", + "jest-environment-node": "^21.2.1", + "jest-get-type": "^21.2.0", + "jest-jasmine2": "^21.2.1", + "jest-regex-util": "^21.2.0", + "jest-resolve": "^21.2.0", + "jest-util": "^21.2.1", + "jest-validate": "^21.2.1", + "pretty-format": "^21.2.1" + } + }, + "node_modules/jest-config/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/jest-config/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/jest-config/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/jest-config/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/jest-diff": { + "version": "21.2.1", + "resolved": "https://registry.npmjs.org/jest-diff/-/jest-diff-21.2.1.tgz", + "integrity": "sha512-E5fu6r7PvvPr5qAWE1RaUwIh/k6Zx/3OOkZ4rk5dBJkEWRrUuSgbMt2EO8IUTPTd6DOqU3LW6uTIwX5FRvXoFA==", + "dev": true, + "dependencies": { + "chalk": "^2.0.1", + "diff": "^3.2.0", + "jest-get-type": "^21.2.0", + "pretty-format": "^21.2.1" + } + }, + "node_modules/jest-diff/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/jest-diff/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/jest-diff/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/jest-diff/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/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-environment-jsdom": { + "version": "21.2.1", + "resolved": "https://registry.npmjs.org/jest-environment-jsdom/-/jest-environment-jsdom-21.2.1.tgz", + "integrity": "sha512-mecaeNh0eWmzNrUNMWARysc0E9R96UPBamNiOCYL28k7mksb1d0q6DD38WKP7ABffjnXyUWJPVaWRgUOivwXwg==", + "dev": true, + "dependencies": { + "jest-mock": "^21.2.0", + "jest-util": "^21.2.1", + "jsdom": "^9.12.0" + } + }, + "node_modules/jest-environment-node": { + "version": "21.2.1", + "resolved": "https://registry.npmjs.org/jest-environment-node/-/jest-environment-node-21.2.1.tgz", + "integrity": "sha512-R211867wx9mVBVHzrjGRGTy5cd05K7eqzQl/WyZixR/VkJ4FayS8qkKXZyYnwZi6Rxo6WEV81cDbiUx/GfuLNw==", + "dev": true, + "dependencies": { + "jest-mock": "^21.2.0", + "jest-util": "^21.2.1" + } + }, + "node_modules/jest-get-type": { + "version": "21.2.0", + "resolved": "https://registry.npmjs.org/jest-get-type/-/jest-get-type-21.2.0.tgz", + "integrity": "sha512-y2fFw3C+D0yjNSDp7ab1kcd6NUYfy3waPTlD8yWkAtiocJdBRQqNoRqVfMNxgj+IjT0V5cBIHJO0z9vuSSZ43Q==", + "dev": true + }, + "node_modules/jest-haste-map": { + "version": "21.2.0", + "resolved": "https://registry.npmjs.org/jest-haste-map/-/jest-haste-map-21.2.0.tgz", + "integrity": "sha512-5LhsY/loPH7wwOFRMs+PT4aIAORJ2qwgbpMFlbWbxfN0bk3ZCwxJ530vrbSiTstMkYLao6JwBkLhCJ5XbY7ZHw==", + "dev": true, + "dependencies": { + "fb-watchman": "^2.0.0", + "graceful-fs": "^4.1.11", + "jest-docblock": "^21.2.0", + "micromatch": "^2.3.11", + "sane": "^2.0.0", + "worker-farm": "^1.3.1" + } + }, + "node_modules/jest-haste-map/node_modules/arr-diff": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/arr-diff/-/arr-diff-2.0.0.tgz", + "integrity": "sha512-dtXTVMkh6VkEEA7OhXnN1Ecb8aAGFdZ1LFxtOCoqj4qkyOJMt7+qs6Ahdy6p/NQCPYsRSXXivhSB/J5E9jmYKA==", + "dev": true, + "dependencies": { + "arr-flatten": "^1.0.1" + }, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/jest-haste-map/node_modules/array-unique": { + "version": "0.2.1", + "resolved": "https://registry.npmjs.org/array-unique/-/array-unique-0.2.1.tgz", + "integrity": "sha512-G2n5bG5fSUCpnsXz4+8FUkYsGPkNfLn9YvS66U5qbTIXI2Ynnlo4Bi42bWv+omKUCqz+ejzfClwne0alJWJPhg==", + "dev": true, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/jest-haste-map/node_modules/braces": { + "version": "1.8.5", + "resolved": "https://registry.npmjs.org/braces/-/braces-1.8.5.tgz", + "integrity": "sha512-xU7bpz2ytJl1bH9cgIurjpg/n8Gohy9GTw81heDYLJQ4RU60dlyJsa+atVF2pI0yMMvKxI9HkKwjePCj5XI1hw==", + "dev": true, + "dependencies": { + "expand-range": "^1.8.1", + "preserve": "^0.2.0", + "repeat-element": "^1.1.2" + }, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/jest-haste-map/node_modules/expand-brackets": { + "version": "0.1.5", + "resolved": "https://registry.npmjs.org/expand-brackets/-/expand-brackets-0.1.5.tgz", + "integrity": "sha512-hxx03P2dJxss6ceIeri9cmYOT4SRs3Zk3afZwWpOsRqLqprhTR8u++SlC+sFGsQr7WGFPdMF7Gjc1njDLDK6UA==", + "dev": true, + "dependencies": { + "is-posix-bracket": "^0.1.0" + }, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/jest-haste-map/node_modules/extglob": { + "version": "0.3.2", + "resolved": "https://registry.npmjs.org/extglob/-/extglob-0.3.2.tgz", + "integrity": "sha512-1FOj1LOwn42TMrruOHGt18HemVnbwAmAak7krWk+wa93KXxGbK+2jpezm+ytJYDaBX0/SPLZFHKM7m+tKobWGg==", + "dev": true, + "dependencies": { + "is-extglob": "^1.0.0" + }, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/jest-haste-map/node_modules/is-extglob": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/is-extglob/-/is-extglob-1.0.0.tgz", + "integrity": "sha512-7Q+VbVafe6x2T+Tu6NcOf6sRklazEPmBoB3IWk3WdGZM2iGUwU/Oe3Wtq5lSEkDTTlpp8yx+5t4pzO/i9Ty1ww==", + "dev": true, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/jest-haste-map/node_modules/is-glob": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/is-glob/-/is-glob-2.0.1.tgz", + "integrity": "sha512-a1dBeB19NXsf/E0+FHqkagizel/LQw2DjSQpvQrj3zT+jYPpaUCryPnrQajXKFLCMuf4I6FhRpaGtw4lPrG6Eg==", + "dev": true, + "dependencies": { + "is-extglob": "^1.0.0" + }, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/jest-haste-map/node_modules/micromatch": { + "version": "2.3.11", + "resolved": "https://registry.npmjs.org/micromatch/-/micromatch-2.3.11.tgz", + "integrity": "sha512-LnU2XFEk9xxSJ6rfgAry/ty5qwUTyHYOBU0g4R6tIw5ljwgGIBmiKhRWLw5NpMOnrgUNcDJ4WMp8rl3sYVHLNA==", + "dev": true, + "dependencies": { + "arr-diff": "^2.0.0", + "array-unique": "^0.2.1", + "braces": "^1.8.2", + "expand-brackets": "^0.1.4", + "extglob": "^0.3.1", + "filename-regex": "^2.0.0", + "is-extglob": "^1.0.0", + "is-glob": "^2.0.1", + "kind-of": "^3.0.2", + "normalize-path": "^2.0.1", + "object.omit": "^2.0.0", + "parse-glob": "^3.0.4", + "regex-cache": "^0.4.2" + }, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/jest-haste-map/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/jest-jasmine2": { + "version": "21.2.1", + "resolved": "https://registry.npmjs.org/jest-jasmine2/-/jest-jasmine2-21.2.1.tgz", + "integrity": "sha512-lw8FXXIEekD+jYNlStfgNsUHpfMWhWWCgHV7n0B7mA/vendH7vBFs8xybjQsDzJSduptBZJHqQX9SMssya9+3A==", + "dev": true, + "dependencies": { + "chalk": "^2.0.1", + "expect": "^21.2.1", + "graceful-fs": "^4.1.11", + "jest-diff": "^21.2.1", + "jest-matcher-utils": "^21.2.1", + "jest-message-util": "^21.2.1", + "jest-snapshot": "^21.2.1", + "p-cancelable": "^0.3.0" + } + }, + "node_modules/jest-jasmine2/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/jest-jasmine2/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/jest-jasmine2/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/jest-jasmine2/node_modules/p-cancelable": { + "version": "0.3.0", + "resolved": "https://registry.npmjs.org/p-cancelable/-/p-cancelable-0.3.0.tgz", + "integrity": "sha512-RVbZPLso8+jFeq1MfNvgXtCRED2raz/dKpacfTNxsx6pLEpEomM7gah6VeHSYV3+vo0OAi4MkArtQcWWXuQoyw==", + "dev": true, + "engines": { + "node": ">=4" + } + }, + "node_modules/jest-jasmine2/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/jest-junit": { + "version": "7.0.0", + "resolved": "https://registry.npmjs.org/jest-junit/-/jest-junit-7.0.0.tgz", + "integrity": "sha512-ljUdO0hLyu0A92xk7R2Wet3kj99fmazTo+ZFYQP6b7AGOBxJUj8ZkJWzJ632ajpXko2Y5oNoGR2kvOwiDdu6hg==", + "dev": true, + "dependencies": { + "jest-validate": "^24.0.0", + "mkdirp": "^0.5.1", + "strip-ansi": "^4.0.0", + "xml": "^1.0.1" + }, + "engines": { + "node": ">=6.0.0" + } + }, + "node_modules/jest-junit/node_modules/ansi-regex": { + "version": "4.1.1", + "resolved": "https://registry.npmjs.org/ansi-regex/-/ansi-regex-4.1.1.tgz", + "integrity": "sha512-ILlv4k/3f6vfQ4OoP2AGvirOktlQ98ZEL1k9FaQjxa3L1abBgbuTDAdPOpvbGncC0BTVQrl+OM8xZGK6tWXt7g==", + "dev": true, + "engines": { + "node": ">=6" + } + }, + "node_modules/jest-junit/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/jest-junit/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/jest-junit/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/jest-junit/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/jest-junit/node_modules/jest-get-type": { + "version": "24.9.0", + "resolved": "https://registry.npmjs.org/jest-get-type/-/jest-get-type-24.9.0.tgz", + "integrity": "sha512-lUseMzAley4LhIcpSP9Jf+fTrQ4a1yHQwLNeeVa2cEmbCGeoZAtYPOIv8JaxLD/sUpKxetKGP+gsHl8f8TSj8Q==", + "dev": true, + "engines": { + "node": ">= 6" + } + }, + "node_modules/jest-junit/node_modules/jest-validate": { + "version": "24.9.0", + "resolved": "https://registry.npmjs.org/jest-validate/-/jest-validate-24.9.0.tgz", + "integrity": "sha512-HPIt6C5ACwiqSiwi+OfSSHbK8sG7akG8eATl+IPKaeIjtPOeBUd/g3J7DghugzxrGjI93qS/+RPKe1H6PqvhRQ==", + "dev": true, + "dependencies": { + "@jest/types": "^24.9.0", + "camelcase": "^5.3.1", + "chalk": "^2.0.1", + "jest-get-type": "^24.9.0", + "leven": "^3.1.0", + "pretty-format": "^24.9.0" + }, + "engines": { + "node": ">= 6" + } + }, + "node_modules/jest-junit/node_modules/leven": { + "version": "3.1.0", + "resolved": "https://registry.npmjs.org/leven/-/leven-3.1.0.tgz", + "integrity": "sha512-qsda+H8jTaUaN/x5vzW2rzc+8Rw4TAQ/4KjB46IwK5VH+IlVeeeje/EoZRpiXvIqjFgK84QffqPztGI3VBLG1A==", + "dev": true, + "engines": { + "node": ">=6" + } + }, + "node_modules/jest-junit/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==", + "dev": true, + "dependencies": { + "minimist": "^1.2.6" + }, + "bin": { + "mkdirp": "bin/cmd.js" + } + }, + "node_modules/jest-junit/node_modules/pretty-format": { + "version": "24.9.0", + "resolved": "https://registry.npmjs.org/pretty-format/-/pretty-format-24.9.0.tgz", + "integrity": "sha512-00ZMZUiHaJrNfk33guavqgvfJS30sLYf0f8+Srklv0AMPodGGHcoHgksZ3OThYnIvOd+8yMCn0YiEOogjlgsnA==", + "dev": true, + "dependencies": { + "@jest/types": "^24.9.0", + "ansi-regex": "^4.0.0", + "ansi-styles": "^3.2.0", + "react-is": "^16.8.4" + }, + "engines": { + "node": ">= 6" + } + }, + "node_modules/jest-junit/node_modules/strip-ansi": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/strip-ansi/-/strip-ansi-4.0.0.tgz", + "integrity": "sha512-4XaJ2zQdCzROZDivEVIDPkcQn8LMFSa8kj8Gxb/Lnwzv9A8VctNZ+lfivC/sV3ivW8ElJTERXZoPBRrZKkNKow==", + "dev": true, + "dependencies": { + "ansi-regex": "^3.0.0" + }, + "engines": { + "node": ">=4" + } + }, + "node_modules/jest-junit/node_modules/strip-ansi/node_modules/ansi-regex": { + "version": "3.0.1", + "resolved": "https://registry.npmjs.org/ansi-regex/-/ansi-regex-3.0.1.tgz", + "integrity": "sha512-+O9Jct8wf++lXxxFc4hc8LsjaSq0HFzzL7cVsw8pRDIPdjKD2mT4ytDZlLuSBZ4cLKZFXIrMGO7DbQCtMJJMKw==", + "dev": true, + "engines": { + "node": ">=4" + } + }, + "node_modules/jest-junit/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/jest-matcher-utils": { + "version": "21.2.1", + "resolved": "https://registry.npmjs.org/jest-matcher-utils/-/jest-matcher-utils-21.2.1.tgz", + "integrity": "sha512-kn56My+sekD43dwQPrXBl9Zn9tAqwoy25xxe7/iY4u+mG8P3ALj5IK7MLHZ4Mi3xW7uWVCjGY8cm4PqgbsqMCg==", + "dev": true, + "dependencies": { + "chalk": "^2.0.1", + "jest-get-type": "^21.2.0", + "pretty-format": "^21.2.1" + } + }, + "node_modules/jest-matcher-utils/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/jest-matcher-utils/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/jest-matcher-utils/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/jest-matcher-utils/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/jest-message-util": { + "version": "21.2.1", + "resolved": "https://registry.npmjs.org/jest-message-util/-/jest-message-util-21.2.1.tgz", + "integrity": "sha512-EbC1X2n0t9IdeMECJn2BOg7buOGivCvVNjqKMXTzQOu7uIfLml+keUfCALDh8o4rbtndIeyGU8/BKfoTr/LVDQ==", + "dev": true, + "dependencies": { + "chalk": "^2.0.1", + "micromatch": "^2.3.11", + "slash": "^1.0.0" + } + }, + "node_modules/jest-message-util/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/jest-message-util/node_modules/arr-diff": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/arr-diff/-/arr-diff-2.0.0.tgz", + "integrity": "sha512-dtXTVMkh6VkEEA7OhXnN1Ecb8aAGFdZ1LFxtOCoqj4qkyOJMt7+qs6Ahdy6p/NQCPYsRSXXivhSB/J5E9jmYKA==", + "dev": true, + "dependencies": { + "arr-flatten": "^1.0.1" + }, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/jest-message-util/node_modules/array-unique": { + "version": "0.2.1", + "resolved": "https://registry.npmjs.org/array-unique/-/array-unique-0.2.1.tgz", + "integrity": "sha512-G2n5bG5fSUCpnsXz4+8FUkYsGPkNfLn9YvS66U5qbTIXI2Ynnlo4Bi42bWv+omKUCqz+ejzfClwne0alJWJPhg==", + "dev": true, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/jest-message-util/node_modules/braces": { + "version": "1.8.5", + "resolved": "https://registry.npmjs.org/braces/-/braces-1.8.5.tgz", + "integrity": "sha512-xU7bpz2ytJl1bH9cgIurjpg/n8Gohy9GTw81heDYLJQ4RU60dlyJsa+atVF2pI0yMMvKxI9HkKwjePCj5XI1hw==", + "dev": true, + "dependencies": { + "expand-range": "^1.8.1", + "preserve": "^0.2.0", + "repeat-element": "^1.1.2" + }, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/jest-message-util/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/jest-message-util/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/jest-message-util/node_modules/expand-brackets": { + "version": "0.1.5", + "resolved": "https://registry.npmjs.org/expand-brackets/-/expand-brackets-0.1.5.tgz", + "integrity": "sha512-hxx03P2dJxss6ceIeri9cmYOT4SRs3Zk3afZwWpOsRqLqprhTR8u++SlC+sFGsQr7WGFPdMF7Gjc1njDLDK6UA==", + "dev": true, + "dependencies": { + "is-posix-bracket": "^0.1.0" + }, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/jest-message-util/node_modules/extglob": { + "version": "0.3.2", + "resolved": "https://registry.npmjs.org/extglob/-/extglob-0.3.2.tgz", + "integrity": "sha512-1FOj1LOwn42TMrruOHGt18HemVnbwAmAak7krWk+wa93KXxGbK+2jpezm+ytJYDaBX0/SPLZFHKM7m+tKobWGg==", + "dev": true, + "dependencies": { + "is-extglob": "^1.0.0" + }, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/jest-message-util/node_modules/is-extglob": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/is-extglob/-/is-extglob-1.0.0.tgz", + "integrity": "sha512-7Q+VbVafe6x2T+Tu6NcOf6sRklazEPmBoB3IWk3WdGZM2iGUwU/Oe3Wtq5lSEkDTTlpp8yx+5t4pzO/i9Ty1ww==", + "dev": true, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/jest-message-util/node_modules/is-glob": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/is-glob/-/is-glob-2.0.1.tgz", + "integrity": "sha512-a1dBeB19NXsf/E0+FHqkagizel/LQw2DjSQpvQrj3zT+jYPpaUCryPnrQajXKFLCMuf4I6FhRpaGtw4lPrG6Eg==", + "dev": true, + "dependencies": { + "is-extglob": "^1.0.0" + }, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/jest-message-util/node_modules/micromatch": { + "version": "2.3.11", + "resolved": "https://registry.npmjs.org/micromatch/-/micromatch-2.3.11.tgz", + "integrity": "sha512-LnU2XFEk9xxSJ6rfgAry/ty5qwUTyHYOBU0g4R6tIw5ljwgGIBmiKhRWLw5NpMOnrgUNcDJ4WMp8rl3sYVHLNA==", + "dev": true, + "dependencies": { + "arr-diff": "^2.0.0", + "array-unique": "^0.2.1", + "braces": "^1.8.2", + "expand-brackets": "^0.1.4", + "extglob": "^0.3.1", + "filename-regex": "^2.0.0", + "is-extglob": "^1.0.0", + "is-glob": "^2.0.1", + "kind-of": "^3.0.2", + "normalize-path": "^2.0.1", + "object.omit": "^2.0.0", + "parse-glob": "^3.0.4", + "regex-cache": "^0.4.2" + }, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/jest-message-util/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/jest-message-util/node_modules/slash": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/slash/-/slash-1.0.0.tgz", + "integrity": "sha512-3TYDR7xWt4dIqV2JauJr+EJeW356RXijHeUlO+8djJ+uBXPn8/2dpzBc8yQhh583sVvc9CvFAeQVgijsH+PNNg==", + "dev": true, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/jest-message-util/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/jest-mock": { + "version": "21.2.0", + "resolved": "https://registry.npmjs.org/jest-mock/-/jest-mock-21.2.0.tgz", + "integrity": "sha512-aZDfyVf0LEoABWiY6N0d+O963dUQSyUa4qgzurHR3TBDPen0YxKCJ6l2i7lQGh1tVdsuvdrCZ4qPj+A7PievCw==", + "dev": true + }, + "node_modules/jest-regex-util": { + "version": "21.2.0", + "resolved": "https://registry.npmjs.org/jest-regex-util/-/jest-regex-util-21.2.0.tgz", + "integrity": "sha512-BKQ1F83EQy0d9Jen/mcVX7D+lUt2tthhK/2gDWRgLDJRNOdRgSp1iVqFxP8EN1ARuypvDflRfPzYT8fQnoBQFQ==", + "dev": true + }, + "node_modules/jest-resolve": { + "version": "21.2.0", + "resolved": "https://registry.npmjs.org/jest-resolve/-/jest-resolve-21.2.0.tgz", + "integrity": "sha512-vefQ/Lr+VdNvHUZFQXWtOqHX3HEdOc2MtSahBO89qXywEbUxGPB9ZLP9+BHinkxb60UT2Q/tTDOS6rYc6Mwigw==", + "dev": true, + "dependencies": { + "browser-resolve": "^1.11.2", + "chalk": "^2.0.1", + "is-builtin-module": "^1.0.0" + } + }, + "node_modules/jest-resolve-dependencies": { + "version": "21.2.0", + "resolved": "https://registry.npmjs.org/jest-resolve-dependencies/-/jest-resolve-dependencies-21.2.0.tgz", + "integrity": "sha512-ok8ybRFU5ScaAcfufIQrCbdNJSRZ85mkxJ1EhUp8Bhav1W1/jv/rl1Q6QoVQHObNxmKnbHVKrfLZbCbOsXQ+bQ==", + "dev": true, + "dependencies": { + "jest-regex-util": "^21.2.0" + } + }, + "node_modules/jest-resolve/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/jest-resolve/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/jest-resolve/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/jest-resolve/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/jest-runner": { + "version": "21.2.1", + "resolved": "https://registry.npmjs.org/jest-runner/-/jest-runner-21.2.1.tgz", + "integrity": "sha512-Anb72BOQlHqF/zETqZ2K20dbYsnqW/nZO7jV8BYENl+3c44JhMrA8zd1lt52+N7ErnsQMd2HHKiVwN9GYSXmrg==", + "dev": true, + "dependencies": { + "jest-config": "^21.2.1", + "jest-docblock": "^21.2.0", + "jest-haste-map": "^21.2.0", + "jest-jasmine2": "^21.2.1", + "jest-message-util": "^21.2.1", + "jest-runtime": "^21.2.1", + "jest-util": "^21.2.1", + "pify": "^3.0.0", + "throat": "^4.0.0", + "worker-farm": "^1.3.1" + } + }, + "node_modules/jest-runner/node_modules/pify": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/pify/-/pify-3.0.0.tgz", + "integrity": "sha512-C3FsVNH1udSEX48gGX1xfvwTWfsYWj5U+8/uK15BGzIGrKoUpghX8hWZwa/OFnakBiiVNmBvemTJR5mcy7iPcg==", + "dev": true, + "engines": { + "node": ">=4" + } + }, + "node_modules/jest-runtime": { + "version": "21.2.1", + "resolved": "https://registry.npmjs.org/jest-runtime/-/jest-runtime-21.2.1.tgz", + "integrity": "sha512-6omlpA3+NSE+rHwD0PQjNEjZeb2z+oRmuehMfM1tWQVum+E0WV3pFt26Am0DUfQkkPyTABvxITRjCUclYgSOsA==", + "dev": true, + "dependencies": { + "babel-core": "^6.0.0", + "babel-jest": "^21.2.0", + "babel-plugin-istanbul": "^4.0.0", + "chalk": "^2.0.1", + "convert-source-map": "^1.4.0", + "graceful-fs": "^4.1.11", + "jest-config": "^21.2.1", + "jest-haste-map": "^21.2.0", + "jest-regex-util": "^21.2.0", + "jest-resolve": "^21.2.0", + "jest-util": "^21.2.1", + "json-stable-stringify": "^1.0.1", + "micromatch": "^2.3.11", + "slash": "^1.0.0", + "strip-bom": "3.0.0", + "write-file-atomic": "^2.1.0", + "yargs": "^9.0.0" + }, + "bin": { + "jest-runtime": "bin/jest-runtime.js" + } + }, + "node_modules/jest-runtime/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/jest-runtime/node_modules/arr-diff": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/arr-diff/-/arr-diff-2.0.0.tgz", + "integrity": "sha512-dtXTVMkh6VkEEA7OhXnN1Ecb8aAGFdZ1LFxtOCoqj4qkyOJMt7+qs6Ahdy6p/NQCPYsRSXXivhSB/J5E9jmYKA==", + "dev": true, + "dependencies": { + "arr-flatten": "^1.0.1" + }, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/jest-runtime/node_modules/array-unique": { + "version": "0.2.1", + "resolved": "https://registry.npmjs.org/array-unique/-/array-unique-0.2.1.tgz", + "integrity": "sha512-G2n5bG5fSUCpnsXz4+8FUkYsGPkNfLn9YvS66U5qbTIXI2Ynnlo4Bi42bWv+omKUCqz+ejzfClwne0alJWJPhg==", + "dev": true, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/jest-runtime/node_modules/babel-core": { + "version": "6.26.3", + "resolved": "https://registry.npmjs.org/babel-core/-/babel-core-6.26.3.tgz", + "integrity": "sha512-6jyFLuDmeidKmUEb3NM+/yawG0M2bDZ9Z1qbZP59cyHLz8kYGKYwpJP0UwUKKUiTRNvxfLesJnTedqczP7cTDA==", + "dev": true, + "dependencies": { + "babel-code-frame": "^6.26.0", + "babel-generator": "^6.26.0", + "babel-helpers": "^6.24.1", + "babel-messages": "^6.23.0", + "babel-register": "^6.26.0", + "babel-runtime": "^6.26.0", + "babel-template": "^6.26.0", + "babel-traverse": "^6.26.0", + "babel-types": "^6.26.0", + "babylon": "^6.18.0", + "convert-source-map": "^1.5.1", + "debug": "^2.6.9", + "json5": "^0.5.1", + "lodash": "^4.17.4", + "minimatch": "^3.0.4", + "path-is-absolute": "^1.0.1", + "private": "^0.1.8", + "slash": "^1.0.0", + "source-map": "^0.5.7" + } + }, + "node_modules/jest-runtime/node_modules/braces": { + "version": "1.8.5", + "resolved": "https://registry.npmjs.org/braces/-/braces-1.8.5.tgz", + "integrity": "sha512-xU7bpz2ytJl1bH9cgIurjpg/n8Gohy9GTw81heDYLJQ4RU60dlyJsa+atVF2pI0yMMvKxI9HkKwjePCj5XI1hw==", + "dev": true, + "dependencies": { + "expand-range": "^1.8.1", + "preserve": "^0.2.0", + "repeat-element": "^1.1.2" + }, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/jest-runtime/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/jest-runtime/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/jest-runtime/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/jest-runtime/node_modules/expand-brackets": { + "version": "0.1.5", + "resolved": "https://registry.npmjs.org/expand-brackets/-/expand-brackets-0.1.5.tgz", + "integrity": "sha512-hxx03P2dJxss6ceIeri9cmYOT4SRs3Zk3afZwWpOsRqLqprhTR8u++SlC+sFGsQr7WGFPdMF7Gjc1njDLDK6UA==", + "dev": true, + "dependencies": { + "is-posix-bracket": "^0.1.0" + }, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/jest-runtime/node_modules/extglob": { + "version": "0.3.2", + "resolved": "https://registry.npmjs.org/extglob/-/extglob-0.3.2.tgz", + "integrity": "sha512-1FOj1LOwn42TMrruOHGt18HemVnbwAmAak7krWk+wa93KXxGbK+2jpezm+ytJYDaBX0/SPLZFHKM7m+tKobWGg==", + "dev": true, + "dependencies": { + "is-extglob": "^1.0.0" + }, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/jest-runtime/node_modules/is-extglob": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/is-extglob/-/is-extglob-1.0.0.tgz", + "integrity": "sha512-7Q+VbVafe6x2T+Tu6NcOf6sRklazEPmBoB3IWk3WdGZM2iGUwU/Oe3Wtq5lSEkDTTlpp8yx+5t4pzO/i9Ty1ww==", + "dev": true, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/jest-runtime/node_modules/is-glob": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/is-glob/-/is-glob-2.0.1.tgz", + "integrity": "sha512-a1dBeB19NXsf/E0+FHqkagizel/LQw2DjSQpvQrj3zT+jYPpaUCryPnrQajXKFLCMuf4I6FhRpaGtw4lPrG6Eg==", + "dev": true, + "dependencies": { + "is-extglob": "^1.0.0" + }, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/jest-runtime/node_modules/json5": { + "version": "0.5.1", + "resolved": "https://registry.npmjs.org/json5/-/json5-0.5.1.tgz", + "integrity": "sha512-4xrs1aW+6N5DalkqSVA8fxh458CXvR99WU8WLKmq4v8eWAL86Xo3BVqyd3SkA9wEVjCMqyvvRRkshAdOnBp5rw==", + "dev": true, + "bin": { + "json5": "lib/cli.js" + } + }, + "node_modules/jest-runtime/node_modules/micromatch": { + "version": "2.3.11", + "resolved": "https://registry.npmjs.org/micromatch/-/micromatch-2.3.11.tgz", + "integrity": "sha512-LnU2XFEk9xxSJ6rfgAry/ty5qwUTyHYOBU0g4R6tIw5ljwgGIBmiKhRWLw5NpMOnrgUNcDJ4WMp8rl3sYVHLNA==", + "dev": true, + "dependencies": { + "arr-diff": "^2.0.0", + "array-unique": "^0.2.1", + "braces": "^1.8.2", + "expand-brackets": "^0.1.4", + "extglob": "^0.3.1", + "filename-regex": "^2.0.0", + "is-extglob": "^1.0.0", + "is-glob": "^2.0.1", + "kind-of": "^3.0.2", + "normalize-path": "^2.0.1", + "object.omit": "^2.0.0", + "parse-glob": "^3.0.4", + "regex-cache": "^0.4.2" + }, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/jest-runtime/node_modules/ms": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/ms/-/ms-2.0.0.tgz", + "integrity": "sha512-Tpp60P6IUJDTuOq/5Z8cdskzJujfwqfOTkrwIwj7IRISpnkJnT6SyJ4PCPnGMoFjC9ddhal5KVIYtAt97ix05A==", + "dev": true + }, + "node_modules/jest-runtime/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/jest-runtime/node_modules/slash": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/slash/-/slash-1.0.0.tgz", + "integrity": "sha512-3TYDR7xWt4dIqV2JauJr+EJeW356RXijHeUlO+8djJ+uBXPn8/2dpzBc8yQhh583sVvc9CvFAeQVgijsH+PNNg==", + "dev": true, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/jest-runtime/node_modules/strip-bom": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/strip-bom/-/strip-bom-3.0.0.tgz", + "integrity": "sha512-vavAMRXOgBVNF6nyEEmL3DBK19iRpDcoIwW+swQ+CbGiu7lju6t+JklA1MHweoWtadgt4ISVUsXLyDq34ddcwA==", + "dev": true, + "engines": { + "node": ">=4" + } + }, + "node_modules/jest-runtime/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/jest-snapshot": { + "version": "21.2.1", + "resolved": "https://registry.npmjs.org/jest-snapshot/-/jest-snapshot-21.2.1.tgz", + "integrity": "sha512-bpaeBnDpdqaRTzN8tWg0DqOTo2DvD3StOemxn67CUd1p1Po+BUpvePAp44jdJ7Pxcjfg+42o4NHw1SxdCA2rvg==", + "dev": true, + "dependencies": { + "chalk": "^2.0.1", + "jest-diff": "^21.2.1", + "jest-matcher-utils": "^21.2.1", + "mkdirp": "^0.5.1", + "natural-compare": "^1.4.0", + "pretty-format": "^21.2.1" + } + }, + "node_modules/jest-snapshot/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/jest-snapshot/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/jest-snapshot/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/jest-snapshot/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==", + "dev": true, + "dependencies": { + "minimist": "^1.2.6" + }, + "bin": { + "mkdirp": "bin/cmd.js" + } + }, + "node_modules/jest-snapshot/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/jest-util": { + "version": "21.2.1", + "resolved": "https://registry.npmjs.org/jest-util/-/jest-util-21.2.1.tgz", + "integrity": "sha512-r20W91rmHY3fnCoO7aOAlyfC51x2yeV3xF+prGsJAUsYhKeV670ZB8NO88Lwm7ASu8SdH0S+U+eFf498kjhA4g==", + "dev": true, + "dependencies": { + "callsites": "^2.0.0", + "chalk": "^2.0.1", + "graceful-fs": "^4.1.11", + "jest-message-util": "^21.2.1", + "jest-mock": "^21.2.0", + "jest-validate": "^21.2.1", + "mkdirp": "^0.5.1" + } + }, + "node_modules/jest-util/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/jest-util/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/jest-util/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/jest-util/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==", + "dev": true, + "dependencies": { + "minimist": "^1.2.6" + }, + "bin": { + "mkdirp": "bin/cmd.js" + } + }, + "node_modules/jest-util/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/jest-validate": { + "version": "21.2.1", + "resolved": "https://registry.npmjs.org/jest-validate/-/jest-validate-21.2.1.tgz", + "integrity": "sha512-k4HLI1rZQjlU+EC682RlQ6oZvLrE5SCh3brseQc24vbZTxzT/k/3urar5QMCVgjadmSO7lECeGdc6YxnM3yEGg==", + "dev": true, + "dependencies": { + "chalk": "^2.0.1", + "jest-get-type": "^21.2.0", + "leven": "^2.1.0", + "pretty-format": "^21.2.1" + } + }, + "node_modules/jest-validate/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/jest-validate/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/jest-validate/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/jest-validate/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/js-base64": { + "version": "2.4.9", + "resolved": "https://registry.npmjs.org/js-base64/-/js-base64-2.4.9.tgz", + "integrity": "sha512-xcinL3AuDJk7VSzsHgb9DvvIXayBbadtMZ4HFPx8rUszbW1MuNMlwYVC4zzCZ6e1sqZpnNS5ZFYOhXqA39T7LQ==" + }, + "node_modules/js-md5": { + "version": "0.7.3", + "resolved": "https://registry.npmjs.org/js-md5/-/js-md5-0.7.3.tgz", + "integrity": "sha512-ZC41vPSTLKGwIRjqDh8DfXoCrdQIyBgspJVPXHBGu4nZlAEvG3nf+jO9avM9RmLiGakg7vz974ms99nEV0tmTQ==" + }, + "node_modules/js-tokens": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/js-tokens/-/js-tokens-4.0.0.tgz", + "integrity": "sha512-RdJUflcE3cUzKiMqQgsCu06FPu9UdIJO0beYbPhHN4k6apgJtifcoCtT9bcxOpYBtpD2kCM6Sbzg4CausW/PKQ==" + }, + "node_modules/js-yaml": { + "version": "3.14.1", + "resolved": "https://registry.npmjs.org/js-yaml/-/js-yaml-3.14.1.tgz", + "integrity": "sha512-okMH7OXXJ7YrN9Ok3/SXrnu4iX9yOk+25nqX4imS2npuvTYDmo/QEZoqwZkYaIDk3jVvBOTOIEgEhaLOynBS9g==", + "dependencies": { + "argparse": "^1.0.7", + "esprima": "^4.0.0" + }, + "bin": { + "js-yaml": "bin/js-yaml.js" + } + }, + "node_modules/jsbn": { + "version": "0.1.1", + "resolved": "https://registry.npmjs.org/jsbn/-/jsbn-0.1.1.tgz", + "integrity": "sha512-UVU9dibq2JcFWxQPA6KCqj5O42VOmAY3zQUfEKxU0KpTGXwNoCjkX1e13eHNvw/xPynt6pU0rZ1htjWTNTSXsg==" + }, + "node_modules/jsdom": { + "version": "9.12.0", + "resolved": "https://registry.npmjs.org/jsdom/-/jsdom-9.12.0.tgz", + "integrity": "sha512-Qw4oqNxo4LyzkSqVIyCnEltTc4xV3g1GBaI88AvYTesWzmWHUSoMNmhBjUBa+6ldXIBJS9xoeLNJPfUAykTyxw==", + "dev": true, + "dependencies": { + "abab": "^1.0.3", + "acorn": "^4.0.4", + "acorn-globals": "^3.1.0", + "array-equal": "^1.0.0", + "content-type-parser": "^1.0.1", + "cssom": ">= 0.3.2 < 0.4.0", + "cssstyle": ">= 0.2.37 < 0.3.0", + "escodegen": "^1.6.1", + "html-encoding-sniffer": "^1.0.1", + "nwmatcher": ">= 1.3.9 < 2.0.0", + "parse5": "^1.5.1", + "request": "^2.79.0", + "sax": "^1.2.1", + "symbol-tree": "^3.2.1", + "tough-cookie": "^2.3.2", + "webidl-conversions": "^4.0.0", + "whatwg-encoding": "^1.0.1", + "whatwg-url": "^4.3.0", + "xml-name-validator": "^2.0.1" + } + }, + "node_modules/jsdom/node_modules/acorn": { + "version": "4.0.13", + "resolved": "https://registry.npmjs.org/acorn/-/acorn-4.0.13.tgz", + "integrity": "sha512-fu2ygVGuMmlzG8ZeRJ0bvR41nsAkxxhbyk8bZ1SS521Z7vmgJFTQQlfz/Mp/nJexGBz+v8sC9bM6+lNgskt4Ug==", + "dev": true, + "bin": { + "acorn": "bin/acorn" + }, + "engines": { + "node": ">=0.4.0" + } + }, + "node_modules/jsdom/node_modules/iconv-lite": { + "version": "0.4.24", + "resolved": "https://registry.npmjs.org/iconv-lite/-/iconv-lite-0.4.24.tgz", + "integrity": "sha512-v3MXnZAcvnywkTUEZomIActle7RXXeedOR31wwl7VlyoXO4Qi9arvSenNQWne1TcRwhCL1HwLI21bEqdpj8/rA==", + "dev": true, + "dependencies": { + "safer-buffer": ">= 2.1.2 < 3" + }, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/jsdom/node_modules/parse5": { + "version": "1.5.1", + "resolved": "https://registry.npmjs.org/parse5/-/parse5-1.5.1.tgz", + "integrity": "sha512-w2jx/0tJzvgKwZa58sj2vAYq/S/K1QJfIB3cWYea/Iu1scFPDQQ3IQiVZTHWtRBwAjv2Yd7S/xeZf3XqLDb3bA==", + "dev": true + }, + "node_modules/jsdom/node_modules/whatwg-encoding": { + "version": "1.0.5", + "resolved": "https://registry.npmjs.org/whatwg-encoding/-/whatwg-encoding-1.0.5.tgz", + "integrity": "sha512-b5lim54JOPN9HtzvK9HFXvBma/rnfFeqsic0hSpjtDbVxR3dJKLc+KB4V6GgiGOvl7CY/KNh8rxSo9DKQrnUEw==", + "dev": true, + "dependencies": { + "iconv-lite": "0.4.24" + } + }, + "node_modules/jsesc": { + "version": "3.0.2", + "resolved": "https://registry.npmjs.org/jsesc/-/jsesc-3.0.2.tgz", + "integrity": "sha512-xKqzzWXDttJuOcawBt4KnKHHIf5oQ/Cxax+0PWFG+DFDgHNAdi+TXECADI+RYiFUMmx8792xsMbbgXj4CwnP4g==", + "bin": { + "jsesc": "bin/jsesc" + }, + "engines": { + "node": ">=6" + } + }, + "node_modules/json-buffer": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/json-buffer/-/json-buffer-3.0.0.tgz", + "integrity": "sha512-CuUqjv0FUZIdXkHPI8MezCnFCdaTAacej1TZYulLoAg1h/PhwkdXFN4V/gzY4g+fMBCOV2xF+rp7t2XD2ns/NQ==" + }, + "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==" + }, + "node_modules/json-parse-even-better-errors": { + "version": "2.3.1", + "resolved": "https://registry.npmjs.org/json-parse-even-better-errors/-/json-parse-even-better-errors-2.3.1.tgz", + "integrity": "sha512-xyFwyhro/JEof6Ghe2iz2NcXoj2sloNsWr/XsERDK/oiPCfaNhl5ONfp+jQdAZRQQ0IJWNzH9zIZF7li91kh2w==" + }, + "node_modules/json-schema": { + "version": "0.4.0", + "resolved": "https://registry.npmjs.org/json-schema/-/json-schema-0.4.0.tgz", + "integrity": "sha512-es94M3nTIfsEPisRafak+HDLfHXnKBhV3vU5eqPcS3flIWqcxJWgXHXiey3YrpaNsanY5ei1VoYEbOzijuq9BA==" + }, + "node_modules/json-schema-traverse": { + "version": "0.4.1", + "resolved": "https://registry.npmjs.org/json-schema-traverse/-/json-schema-traverse-0.4.1.tgz", + "integrity": "sha512-xbbCH5dCYU5T8LcEhhuh7HJ88HXuW3qsI3Y0zOZFKfZEHcpWiHU/Jxzk629Brsab/mMiHQti9wMP+845RPe3Vg==" + }, + "node_modules/json-stable-stringify": { + "version": "1.1.1", + "resolved": "https://registry.npmjs.org/json-stable-stringify/-/json-stable-stringify-1.1.1.tgz", + "integrity": "sha512-SU/971Kt5qVQfJpyDveVhQ/vya+5hvrjClFOcr8c0Fq5aODJjMwutrOfCU+eCnVD5gpx1Q3fEqkyom77zH1iIg==", + "dev": true, + "dependencies": { + "call-bind": "^1.0.5", + "isarray": "^2.0.5", + "jsonify": "^0.0.1", + "object-keys": "^1.1.1" + }, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/json-stable-stringify-without-jsonify": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/json-stable-stringify-without-jsonify/-/json-stable-stringify-without-jsonify-1.0.1.tgz", + "integrity": "sha512-Bdboy+l7tA3OGW6FjyFHWkP5LuByj1Tk33Ljyq0axyzdk9//JSi2u3fP1QSmd1KNwq6VOKYGlAu87CisVir6Pw==", + "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": "sha512-ZClg6AaYvamvYEE82d3Iyd3vSSIjQ+odgjaTzRuO3s7toCdFKczob2i0zCh7JE8kWn17yvAWhUVxvqGwUalsRA==" + }, + "node_modules/json5": { + "version": "2.2.3", + "resolved": "https://registry.npmjs.org/json5/-/json5-2.2.3.tgz", + "integrity": "sha512-XmOWe7eyHYH14cLdVPoyg+GOH3rYX++KpzrylJwSW98t3Nk+U8XOl8FWKOgwtzdb8lXGf6zYwDUzeHMWfxasyg==", + "bin": { + "json5": "lib/cli.js" + }, + "engines": { + "node": ">=6" + } + }, + "node_modules/jsonfile": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/jsonfile/-/jsonfile-4.0.0.tgz", + "integrity": "sha512-m6F1R3z8jjlf2imQHS2Qez5sjKWQzbuuhuJ/FKYFRZvPE3PuHcSMVZzfsLhGVOkfd20obL5SWEBew5ShlquNxg==", + "optionalDependencies": { + "graceful-fs": "^4.1.6" + } + }, + "node_modules/jsonify": { + "version": "0.0.1", + "resolved": "https://registry.npmjs.org/jsonify/-/jsonify-0.0.1.tgz", + "integrity": "sha512-2/Ki0GcmuqSrgFyelQq9M05y7PS0mEwuIzrf3f1fPqkVDVRvZrPZtVSMHxdgo8Aq0sxAOb/cr2aqqA3LeWHVPg==", + "dev": true, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/jsprim": { + "version": "1.4.2", + "resolved": "https://registry.npmjs.org/jsprim/-/jsprim-1.4.2.tgz", + "integrity": "sha512-P2bSOMAc/ciLz6DzgjVlGJP9+BrJWu5UDGK70C2iweC5QBIeFf0ZXRvGjEj2uYgrY2MkAAhsSWHDWlFtEroZWw==", + "dependencies": { + "assert-plus": "1.0.0", + "extsprintf": "1.3.0", + "json-schema": "0.4.0", + "verror": "1.10.0" + }, + "engines": { + "node": ">=0.6.0" + } + }, + "node_modules/jsx-ast-utils": { + "version": "3.3.5", + "resolved": "https://registry.npmjs.org/jsx-ast-utils/-/jsx-ast-utils-3.3.5.tgz", + "integrity": "sha512-ZZow9HBI5O6EPgSJLUb8n2NKgmVWTwCvHGwFuJlMjvLFqlGG6pjirPhtdsseaLZjSibD8eegzmYpUZwoIlj2cQ==", + "dev": true, + "dependencies": { + "array-includes": "^3.1.6", + "array.prototype.flat": "^1.3.1", + "object.assign": "^4.1.4", + "object.values": "^1.1.6" + }, + "engines": { + "node": ">=4.0" + } + }, + "node_modules/jszip": { + "version": "3.10.1", + "resolved": "https://registry.npmjs.org/jszip/-/jszip-3.10.1.tgz", + "integrity": "sha512-xXDvecyTpGLrqFrvkrUSoxxfJI5AH7U8zxxtVclpsUtMCq4JQ290LY8AW5c7Ggnr/Y/oK+bQMbqK2qmtk3pN4g==", + "dependencies": { + "lie": "~3.3.0", + "pako": "~1.0.2", + "readable-stream": "~2.3.6", + "setimmediate": "^1.0.5" + } + }, + "node_modules/jszip/node_modules/lie": { + "version": "3.3.0", + "resolved": "https://registry.npmjs.org/lie/-/lie-3.3.0.tgz", + "integrity": "sha512-UaiMJzeWRlEujzAuw5LokY1L5ecNQYZKfmyZ9L7wDHb/p5etKaxXhohBcrw0EYby+G/NA52vRSN4N39dxHAIwQ==", + "dependencies": { + "immediate": "~3.0.5" + } + }, + "node_modules/keymirror": { + "version": "0.1.1", + "resolved": "https://registry.npmjs.org/keymirror/-/keymirror-0.1.1.tgz", + "integrity": "sha512-vIkZAFWoDijgQT/Nvl2AHCMmnegN2ehgTPYuyy2hWQkQSntI0S7ESYqdLkoSe1HyEBFHHkCgSIvVdSEiWwKvCg==" + }, + "node_modules/keyv": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/keyv/-/keyv-3.0.0.tgz", + "integrity": "sha512-eguHnq22OE3uVoSYG0LVWNP+4ppamWr9+zWBe1bsNcovIMy6huUJFPgy4mGwCd/rnl3vOLGW1MTlu4c57CT1xA==", + "dependencies": { + "json-buffer": "3.0.0" + } + }, + "node_modules/killable": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/killable/-/killable-1.0.1.tgz", + "integrity": "sha512-LzqtLKlUwirEUyl/nicirVmNiPvYs7l5n8wOPP7fyJVpUPkvCnW/vuiXGpylGUlnPDnB7311rARzAt3Mhswpjg==", + "dev": true + }, + "node_modules/kind-of": { + "version": "3.2.2", + "resolved": "https://registry.npmjs.org/kind-of/-/kind-of-3.2.2.tgz", + "integrity": "sha512-NOW9QQXMoZGg/oqnVNoNTTIFEIid1627WCffUBJEdMxYApq7mNE7CpzucIPc+ZQg25Phej7IJSmX3hO+oblOtQ==", + "dependencies": { + "is-buffer": "^1.1.5" + }, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/lcid": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/lcid/-/lcid-1.0.0.tgz", + "integrity": "sha512-YiGkH6EnGrDGqLMITnGjXtGmNtjoXw9SVUzcaos8RBi7Ps0VBylkq+vOcY9QE5poLasPCR849ucFUkl0UzUyOw==", + "dependencies": { + "invert-kv": "^1.0.0" + }, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/leven": { + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/leven/-/leven-2.1.0.tgz", + "integrity": "sha512-nvVPLpIHUxCUoRLrFqTgSxXJ614d8AgQoWl7zPe/2VadE8+1dpU3LBhowRuBAcuwruWtOdD8oYC9jDNJjXDPyA==", + "dev": true, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/levn": { + "version": "0.3.0", + "resolved": "https://registry.npmjs.org/levn/-/levn-0.3.0.tgz", + "integrity": "sha512-0OO4y2iOHix2W6ujICbKIaEQXvFQHue65vUG3pb5EUomzPI90z9hsA1VsO/dbIIpC53J8gxM9Q4Oho0jrCM/yA==", + "dependencies": { + "prelude-ls": "~1.1.2", + "type-check": "~0.3.2" + }, + "engines": { + "node": ">= 0.8.0" + } + }, + "node_modules/lie": { + "version": "3.1.1", + "resolved": "https://registry.npmjs.org/lie/-/lie-3.1.1.tgz", + "integrity": "sha512-RiNhHysUjhrDQntfYSfY4MU24coXXdEOgw9WGcKHNeEwffDYbF//u87M1EWaMGzuFoSbqW0C9C6lEEhDOAswfw==", + "dependencies": { + "immediate": "~3.0.5" + } + }, + "node_modules/linebreak": { + "version": "0.3.0", + "resolved": "https://registry.npmjs.org/linebreak/-/linebreak-0.3.0.tgz", + "integrity": "sha512-zt8pzlM3oq4moDN8U5mP1SbZ44yKV6dXCu44Ez6iTXmxUl8/jRFWeho2SDqL5YDBv0TBKPgU/XGovZwnXAKlOQ==", + "dependencies": { + "base64-js": "0.0.8", + "brfs": "^1.3.0", + "unicode-trie": "^0.3.0" + } + }, + "node_modules/linebreak/node_modules/base64-js": { + "version": "0.0.8", + "resolved": "https://registry.npmjs.org/base64-js/-/base64-js-0.0.8.tgz", + "integrity": "sha512-3XSA2cR/h/73EzlXXdU6YNycmYI7+kicTxks4eJg2g39biHR84slg2+des+p7iHYhbRg/udIS4TD53WabcOUkw==", + "engines": { + "node": ">= 0.4" + } + }, + "node_modules/load-json-file": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/load-json-file/-/load-json-file-4.0.0.tgz", + "integrity": "sha512-Kx8hMakjX03tiGTLAIdJ+lL0htKnXjEZN6hk/tozf/WOuYGdZBJrZ+rCJRbVCugsjB3jMLn9746NsQIf5VjBMw==", + "dev": true, + "dependencies": { + "graceful-fs": "^4.1.2", + "parse-json": "^4.0.0", + "pify": "^3.0.0", + "strip-bom": "^3.0.0" + }, + "engines": { + "node": ">=4" + } + }, + "node_modules/load-json-file/node_modules/pify": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/pify/-/pify-3.0.0.tgz", + "integrity": "sha512-C3FsVNH1udSEX48gGX1xfvwTWfsYWj5U+8/uK15BGzIGrKoUpghX8hWZwa/OFnakBiiVNmBvemTJR5mcy7iPcg==", + "dev": true, + "engines": { + "node": ">=4" + } + }, + "node_modules/load-json-file/node_modules/strip-bom": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/strip-bom/-/strip-bom-3.0.0.tgz", + "integrity": "sha512-vavAMRXOgBVNF6nyEEmL3DBK19iRpDcoIwW+swQ+CbGiu7lju6t+JklA1MHweoWtadgt4ISVUsXLyDq34ddcwA==", + "dev": true, + "engines": { + "node": ">=4" + } + }, + "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==", + "engines": { + "node": ">=4.3.0 <5.0.0 || >=5.10" + } + }, + "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==", + "dependencies": { + "big.js": "^5.2.2", + "emojis-list": "^3.0.0", + "json5": "^1.0.1" + }, + "engines": { + "node": ">=4.0.0" + } + }, + "node_modules/loader-utils/node_modules/json5": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/json5/-/json5-1.0.2.tgz", + "integrity": "sha512-g1MWMLBiz8FKi1e4w0UyVL3w+iJceWAFBAaBnnGKOpNa5f8TLktkbre1+s6oICydWAm+HRUGTmI+//xv2hvXYA==", + "dependencies": { + "minimist": "^1.2.0" + }, + "bin": { + "json5": "lib/cli.js" + } + }, + "node_modules/localforage": { + "version": "1.10.0", + "resolved": "https://registry.npmjs.org/localforage/-/localforage-1.10.0.tgz", + "integrity": "sha512-14/H1aX7hzBBmmh7sGPd+AOMkkIrHM3Z1PAyGgZigA1H1p5O5ANnMyWzvpAETtG68/dC4pC0ncy3+PPGzXZHPg==", + "dependencies": { + "lie": "3.1.1" + } + }, + "node_modules/locate-path": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/locate-path/-/locate-path-2.0.0.tgz", + "integrity": "sha512-NCI2kiDkyR7VeEKm27Kda/iQHyKJe1Bu0FlTbYp3CqJu+9IFe9bLyAjMxf5ZDDbEg+iMPzB5zYyUTSm8wVTKmA==", + "dev": true, + "dependencies": { + "p-locate": "^2.0.0", + "path-exists": "^3.0.0" + }, + "engines": { + "node": ">=4" + } + }, + "node_modules/lodash": { + "version": "4.17.21", + "resolved": "https://registry.npmjs.org/lodash/-/lodash-4.17.21.tgz", + "integrity": "sha512-v2kDEe57lecTulaDIuNTPy3Ry4gLGJ6Z1O3vE1krgXZNrsQ+LFTGHVxVjcXPs17LhbZVGedAJv8XZ1tvj5FvSg==" + }, + "node_modules/lodash-es": { + "version": "4.17.21", + "resolved": "https://registry.npmjs.org/lodash-es/-/lodash-es-4.17.21.tgz", + "integrity": "sha512-mKnC+QJ9pWVzv+C4/U3rRsHapFfHvQFoFB92e52xeyGMcX6/OlIl78je1u8vePzYZSkkogMPJ2yjxxsb89cxyw==" + }, + "node_modules/lodash._getnative": { + "version": "3.9.1", + "resolved": "https://registry.npmjs.org/lodash._getnative/-/lodash._getnative-3.9.1.tgz", + "integrity": "sha512-RrL9VxMEPyDMHOd9uFbvMe8X55X16/cGM5IgOKgRElQZutpX89iS6vwl64duTV1/16w5JY7tuFNXqoekmh1EmA==" + }, + "node_modules/lodash.bindall": { + "version": "4.4.0", + "resolved": "https://registry.npmjs.org/lodash.bindall/-/lodash.bindall-4.4.0.tgz", + "integrity": "sha512-NQ+QvFohS2gPbWpyLfyuiF0ZQA3TTaJ+n0XDID5jwtMZBKE32gN5vSyy7xBVsqvJkvT/UY9dvHXIk9tZmBVF3g==" + }, + "node_modules/lodash.debounce": { + "version": "4.0.8", + "resolved": "https://registry.npmjs.org/lodash.debounce/-/lodash.debounce-4.0.8.tgz", + "integrity": "sha512-FT1yDzDYEoYWhnSGnpE/4Kj1fLZkDFyqRb7fNt6FdYOSxlUWAtp42Eh6Wb0rGIv/m9Bgo7x4GhQbm5Ys4SG5ow==" + }, + "node_modules/lodash.defaultsdeep": { + "version": "4.6.1", + "resolved": "https://registry.npmjs.org/lodash.defaultsdeep/-/lodash.defaultsdeep-4.6.1.tgz", + "integrity": "sha512-3j8wdDzYuWO3lM3Reg03MuQR957t287Rpcxp1njpEa8oDrikb+FwGdW3n+FELh/A6qib6yPit0j/pv9G/yeAqA==", + "dev": true + }, + "node_modules/lodash.escape": { + "version": "4.0.1", + "resolved": "https://registry.npmjs.org/lodash.escape/-/lodash.escape-4.0.1.tgz", + "integrity": "sha512-nXEOnb/jK9g0DYMr1/Xvq6l5xMD7GDG55+GSYIYmS0G4tBk/hURD4JR9WCavs04t33WmJx9kCyp9vJ+mr4BOUw==", + "dev": true + }, + "node_modules/lodash.flattendeep": { + "version": "4.4.0", + "resolved": "https://registry.npmjs.org/lodash.flattendeep/-/lodash.flattendeep-4.4.0.tgz", + "integrity": "sha512-uHaJFihxmJcEX3kT4I23ABqKKalJ/zDrDg0lsFtc1h+3uw49SIJ5beyhx5ExVRti3AvKoOJngIj7xz3oylPdWQ==", + "dev": true + }, + "node_modules/lodash.isequal": { + "version": "4.5.0", + "resolved": "https://registry.npmjs.org/lodash.isequal/-/lodash.isequal-4.5.0.tgz", + "integrity": "sha512-pDo3lu8Jhfjqls6GkMgpahsF9kCyayhgykjyLMNFTKWrpVdAQtYyB4muAMWozBB4ig/dtWAmsMxLEI8wuz+DYQ==", + "dev": true + }, + "node_modules/lodash.isplainobject": { + "version": "4.0.6", + "resolved": "https://registry.npmjs.org/lodash.isplainobject/-/lodash.isplainobject-4.0.6.tgz", + "integrity": "sha512-oSXzaWypCMHkPC3NvBEaPHf0KsA5mvPrOPgQWDsbg8n7orZ290M0BmC/jgRZ4vcJ6DTAhjrsSYgdsW/F+MFOBA==", + "dev": true + }, + "node_modules/lodash.omit": { + "version": "4.5.0", + "resolved": "https://registry.npmjs.org/lodash.omit/-/lodash.omit-4.5.0.tgz", + "integrity": "sha512-XeqSp49hNGmlkj2EJlfrQFIzQ6lXdNro9sddtQzcJY8QaoC2GO0DT7xaIokHeyM+mIT0mPMlPvkYzg2xCuHdZg==" + }, + "node_modules/lodash.throttle": { + "version": "4.0.1", + "resolved": "https://registry.npmjs.org/lodash.throttle/-/lodash.throttle-4.0.1.tgz", + "integrity": "sha512-vEeVrketgBFJ268V478NKyLk142uvnlFHuRHUUcu5NhsMQQpTs5EIGZduGNqdJOOhnb+Rwkz0XvfQuwOYzRo1Q==", + "dependencies": { + "lodash.debounce": "^4.0.0" + } + }, + "node_modules/lodash.unescape": { + "version": "4.0.1", + "resolved": "https://registry.npmjs.org/lodash.unescape/-/lodash.unescape-4.0.1.tgz", + "integrity": "sha512-DhhGRshNS1aX6s5YdBE3njCCouPgnG29ebyHvImlZzXZf2SHgt+J08DHgytTPnpywNbO1Y8mNUFyQuIDBq2JZg==", + "dev": true + }, + "node_modules/loglevel": { + "version": "1.9.2", + "resolved": "https://registry.npmjs.org/loglevel/-/loglevel-1.9.2.tgz", + "integrity": "sha512-HgMmCqIJSAKqo68l0rS2AanEWfkxaZ5wNiEFb5ggm08lDs9Xl2KxBlX3PTcaD2chBM1gXAYf491/M2Rv8Jwayg==", + "dev": true, + "engines": { + "node": ">= 0.6.0" + }, + "funding": { + "type": "tidelift", + "url": "https://tidelift.com/funding/github/npm/loglevel" + } + }, + "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/lookup-closest-locale": { + "version": "6.2.0", + "resolved": "https://registry.npmjs.org/lookup-closest-locale/-/lookup-closest-locale-6.2.0.tgz", + "integrity": "sha512-/c2kL+Vnp1jnV6K6RpDTHK3dgg0Tu2VVp+elEiJpjfS1UyY7AjOYHohRug6wT0OpoX2qFgNORndE9RqesfVxWQ==" + }, + "node_modules/loose-envify": { + "version": "1.4.0", + "resolved": "https://registry.npmjs.org/loose-envify/-/loose-envify-1.4.0.tgz", + "integrity": "sha512-lyuxPGr/Wfhrlem2CL/UcnUc1zcqKAImBDzukY7Y5F/yQiNdko6+fRLevlw1HgMySw7f611UIY408EtxRSoK3Q==", + "dependencies": { + "js-tokens": "^3.0.0 || ^4.0.0" + }, + "bin": { + "loose-envify": "cli.js" + } + }, + "node_modules/lower-case": { + "version": "2.0.2", + "resolved": "https://registry.npmjs.org/lower-case/-/lower-case-2.0.2.tgz", + "integrity": "sha512-7fm3l3NAF9WfN6W3JOmf5drwpVqX78JtoGJ3A6W0a6ZnldM41w2fV5D490psKFTpMds8TJse/eHLFFsNHHjHgg==", + "dev": true, + "dependencies": { + "tslib": "^2.0.3" + } + }, + "node_modules/lowercase-keys": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/lowercase-keys/-/lowercase-keys-1.0.1.tgz", + "integrity": "sha512-G2Lj61tXDnVFFOi8VZds+SoQjtQC3dgokKdDG2mTm1tx4m50NUHBOZSBwQQHyy0V12A0JTG4icfZQH+xPyh8VA==", + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/lru-cache": { + "version": "5.1.1", + "resolved": "https://registry.npmjs.org/lru-cache/-/lru-cache-5.1.1.tgz", + "integrity": "sha512-KpNARQA3Iwv+jTA0utUVVbrh+Jlrr1Fv0e56GGzAFOXN7dk/FviaDW8LHmK52DlcH4WP2n6gI8vN1aesBFgo9w==", + "dependencies": { + "yallist": "^3.0.2" + } + }, + "node_modules/lz-string": { + "version": "1.5.0", + "resolved": "https://registry.npmjs.org/lz-string/-/lz-string-1.5.0.tgz", + "integrity": "sha512-h5bgJWpxJNswbU7qCrV0tIKQCaS3blPDrqKWx+QxzuzL1zGUzij9XCWLrSLsJPu5t+eWA/ycetzYAO5IOMcWAQ==", + "bin": { + "lz-string": "bin/bin.js" + } + }, + "node_modules/magic-string": { + "version": "0.22.5", + "resolved": "https://registry.npmjs.org/magic-string/-/magic-string-0.22.5.tgz", + "integrity": "sha512-oreip9rJZkzvA8Qzk9HFs8fZGF/u7H/gtrE8EN6RjKJ9kh2HlC+yQ2QezifqTZfGyiuAV0dRv5a+y/8gBb1m9w==", + "dependencies": { + "vlq": "^0.2.2" + } + }, + "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==", + "dependencies": { + "pify": "^4.0.1", + "semver": "^5.6.0" + }, + "engines": { + "node": ">=6" + } + }, + "node_modules/make-dir/node_modules/semver": { + "version": "5.7.2", + "resolved": "https://registry.npmjs.org/semver/-/semver-5.7.2.tgz", + "integrity": "sha512-cBznnQ9KjJqU67B52RMC65CMarK2600WFnbkcaiwWq3xy/5haFJlshgnpjovMVJ+Hff49d8GEn0b87C5pDQ10g==", + "bin": { + "semver": "bin/semver" + } + }, + "node_modules/makeerror": { + "version": "1.0.12", + "resolved": "https://registry.npmjs.org/makeerror/-/makeerror-1.0.12.tgz", + "integrity": "sha512-JmqCvUhmt43madlpFzG4BQzG2Z3m6tvQDNKdClZnO3VbIudJYmxsT0FNJMeiB2+JTSlTQTSbU8QdesVmwJcmLg==", + "dev": true, + "dependencies": { + "tmpl": "1.0.5" + } + }, + "node_modules/map-cache": { + "version": "0.2.2", + "resolved": "https://registry.npmjs.org/map-cache/-/map-cache-0.2.2.tgz", + "integrity": "sha512-8y/eV9QQZCiyn1SprXSrCmqJN0yNRATe+PO8ztwqrvrbdRLA3eYJF0yaR0YayLWkMbsQSKWS9N2gPcGEc4UsZg==", + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/map-limit": { + "version": "0.0.1", + "resolved": "https://registry.npmjs.org/map-limit/-/map-limit-0.0.1.tgz", + "integrity": "sha512-pJpcfLPnIF/Sk3taPW21G/RQsEEirGaFpCW3oXRwH9dnFHPHNGjNyvh++rdmC2fNqEaTw2MhYJraoJWAHx8kEg==", + "dependencies": { + "once": "~1.3.0" + } + }, + "node_modules/map-limit/node_modules/once": { + "version": "1.3.3", + "resolved": "https://registry.npmjs.org/once/-/once-1.3.3.tgz", + "integrity": "sha512-6vaNInhu+CHxtONf3zw3vq4SP2DOQhjBvIa3rNcG0+P7eKWlYH6Peu7rHizSloRU2EwMz6GraLieis9Ac9+p1w==", + "dependencies": { + "wrappy": "1" + } + }, + "node_modules/map-visit": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/map-visit/-/map-visit-1.0.0.tgz", + "integrity": "sha512-4y7uGv8bd2WdM9vpQsiQNo41Ln1NvhvDRuVt0k2JZQ+ezN2uaQes7lZeZ+QQUHOLQAtDaBJ+7wCbi+ab/KFs+w==", + "dependencies": { + "object-visit": "^1.0.0" + }, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/matchmediaquery": { + "version": "0.2.1", + "resolved": "https://registry.npmjs.org/matchmediaquery/-/matchmediaquery-0.2.1.tgz", + "integrity": "sha512-9Ssn6kNVoYU970FtX6jS74GAyKc2baQaoifG1X/i6tfqLQgf3aM4ovYYBVWVOk4G14odceUarbwgSjDTLL/Dhw==", + "dependencies": { + "css-mediaquery": "^0.1.2" + } + }, + "node_modules/math-random": { + "version": "1.0.4", + "resolved": "https://registry.npmjs.org/math-random/-/math-random-1.0.4.tgz", + "integrity": "sha512-rUxjysqif/BZQH2yhd5Aaq7vXMSx9NdEsQcyA07uEzIvxgI7zIr33gGsh+RU0/XjmQpCW7RsVof1vlkvQVCK5A==", + "dev": true + }, + "node_modules/mathjs": { + "version": "11.11.1", + "resolved": "https://registry.npmjs.org/mathjs/-/mathjs-11.11.1.tgz", + "integrity": "sha512-uWrwMrhU31TCqHKmm1yFz0C352njGUVr/I1UnpMOxI/VBTTbCktx/mREUXx5Vyg11xrFdg/F3wnMM7Ql/csVsQ==", + "dependencies": { + "@babel/runtime": "^7.22.15", + "complex.js": "^2.1.1", + "decimal.js": "^10.4.3", + "escape-latex": "^1.2.0", + "fraction.js": "4.3.4", + "javascript-natural-sort": "^0.7.1", + "seedrandom": "^3.0.5", + "tiny-emitter": "^2.1.0", + "typed-function": "^4.1.1" + }, + "bin": { + "mathjs": "bin/cli.js" + }, + "engines": { + "node": ">= 14" + } + }, + "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==", + "dependencies": { + "hash-base": "^3.0.0", + "inherits": "^2.0.1", + "safe-buffer": "^5.1.2" + } + }, + "node_modules/mdn-data": { + "version": "2.0.14", + "resolved": "https://registry.npmjs.org/mdn-data/-/mdn-data-2.0.14.tgz", + "integrity": "sha512-dn6wd0uw5GsdswPFfsgMp5NSB0/aDe6fK94YJV/AJDYXL6HVLWBsxeq7js7Ad+mU2K9LAlwpk6kN2D5mwCPVow==" + }, + "node_modules/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==", + "dev": true, + "engines": { + "node": ">= 0.6" + } + }, + "node_modules/mem": { + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/mem/-/mem-1.1.0.tgz", + "integrity": "sha512-nOBDrc/wgpkd3X/JOhMqYR+/eLqlfLP4oQfoBA6QExIxEl+GU01oyEkwWyueyO8110pUKijtiHGhEmYoOn88oQ==", + "dev": true, + "dependencies": { + "mimic-fn": "^1.0.0" + }, + "engines": { + "node": ">=4" + } + }, + "node_modules/memory-fs": { + "version": "0.2.0", + "resolved": "https://registry.npmjs.org/memory-fs/-/memory-fs-0.2.0.tgz", + "integrity": "sha512-+y4mDxU4rvXXu5UDSGCGNiesFmwCHuefGMoPCO1WYucNYj7DsLqrFaa2fXVI0H+NNiPTwwzKwspn9yTZqUGqng==", + "dev": true + }, + "node_modules/merge": { + "version": "1.2.1", + "resolved": "https://registry.npmjs.org/merge/-/merge-1.2.1.tgz", + "integrity": "sha512-VjFo4P5Whtj4vsLzsYBu5ayHhoHJ0UqNm7ibvShmbmoz7tGi0vXaoJbGdB+GmDMLUdg8DpQXEIeVDAe8MaABvQ==", + "dev": true + }, + "node_modules/merge-descriptors": { + "version": "1.0.3", + "resolved": "https://registry.npmjs.org/merge-descriptors/-/merge-descriptors-1.0.3.tgz", + "integrity": "sha512-gaNvAS7TZ897/rVaZ0nMtAyxNyi/pdbjbAwUpFQpN70GqnVfOiXpeUUMKRBmzXaSQ8DdTX4/0ms62r2K+hE6mQ==", + "dev": true, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/merge-source-map": { + "version": "1.0.4", + "resolved": "https://registry.npmjs.org/merge-source-map/-/merge-source-map-1.0.4.tgz", + "integrity": "sha512-PGSmS0kfnTnMJCzJ16BLLCEe6oeYCamKFFdQKshi4BmM6FUwipjVOcBFGxqtQtirtAG4iZvHlqST9CpZKqlRjA==", + "dependencies": { + "source-map": "^0.5.6" + } + }, + "node_modules/merge2": { + "version": "1.4.1", + "resolved": "https://registry.npmjs.org/merge2/-/merge2-1.4.1.tgz", + "integrity": "sha512-8q7VEgMJW4J8tcfVPy8g09NcQwZdbwFEqhe/WZkoIzjn/3TGDwtOCYtXGxA3O8tPzpczCCDgv+P2P5y00ZJOOg==", + "engines": { + "node": ">= 8" + } + }, + "node_modules/mersenne-twister": { + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/mersenne-twister/-/mersenne-twister-1.1.0.tgz", + "integrity": "sha512-mUYWsMKNrm4lfygPkL3OfGzOPTR2DBlTkBNHM//F6hGp8cLThY897crAlk3/Jo17LEOOjQUrNAx6DvgO77QJkA==" + }, + "node_modules/methods": { + "version": "1.1.2", + "resolved": "https://registry.npmjs.org/methods/-/methods-1.1.2.tgz", + "integrity": "sha512-iclAHeNqNm68zFtnZ0e+1L2yUIdvzNoauKU4WBA3VvH/vPFieF7qfRlwUZU+DA9P9bPXIS90ulxoUoCH23sV2w==", + "dev": true, + "engines": { + "node": ">= 0.6" + } + }, + "node_modules/microee": { + "version": "0.0.6", + "resolved": "https://registry.npmjs.org/microee/-/microee-0.0.6.tgz", + "integrity": "sha512-/LdL3jiBWDJ3oQIRLgRhfeCZNE3patM1LiwCC124+/HHn10sI/G2OAyiMfTNzH5oYWoZBk0tRZADAUOv+0Wt0A==" + }, + "node_modules/micromatch": { + "version": "3.1.10", + "resolved": "https://registry.npmjs.org/micromatch/-/micromatch-3.1.10.tgz", + "integrity": "sha512-MWikgl9n9M3w+bpsY3He8L+w9eF9338xRl8IAO5viDizwSzziFEyUzo2xrrloB64ADbTf8uA8vRqqttDTOmccg==", + "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/micromatch/node_modules/extend-shallow": { + "version": "3.0.2", + "resolved": "https://registry.npmjs.org/extend-shallow/-/extend-shallow-3.0.2.tgz", + "integrity": "sha512-BwY5b5Ql4+qZoefgMj2NUmx+tehVTH/Kf4k1ZEtOHNFcm2wSxMRo992l6X3TIgni2eZVTZ85xMOjF31fwZAj6Q==", + "dependencies": { + "assign-symbols": "^1.0.0", + "is-extendable": "^1.0.1" + }, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/micromatch/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==", + "dependencies": { + "is-plain-object": "^2.0.4" + }, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/micromatch/node_modules/kind-of": { + "version": "6.0.3", + "resolved": "https://registry.npmjs.org/kind-of/-/kind-of-6.0.3.tgz", + "integrity": "sha512-dcS1ul+9tmeD95T+x28/ehLgd9mENa3LsvDTtzm3vyBEO7RPptvAD+t44WVXaUjTBRcrpFeFlC8WCruUR456hw==", + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/miller-rabin": { + "version": "4.0.1", + "resolved": "https://registry.npmjs.org/miller-rabin/-/miller-rabin-4.0.1.tgz", + "integrity": "sha512-115fLhvZVqWwHPbClyntxEVfVDfl9DLLTuJvq3g2O/Oxi8AiNouAHvDSzHS0viUJc+V5vm3eq91Xwqn9dp4jRA==", + "dependencies": { + "bn.js": "^4.0.0", + "brorand": "^1.0.1" + }, + "bin": { + "miller-rabin": "bin/miller-rabin" + } + }, + "node_modules/miller-rabin/node_modules/bn.js": { + "version": "4.12.1", + "resolved": "https://registry.npmjs.org/bn.js/-/bn.js-4.12.1.tgz", + "integrity": "sha512-k8TVBiPkPJT9uHLdOKfFpqcfprwBFOAAXXozRubr7R7PfIuKvQlzcI4M0pALeqXN09vdaMbUdUj+pass+uULAg==" + }, + "node_modules/mime": { + "version": "1.6.0", + "resolved": "https://registry.npmjs.org/mime/-/mime-1.6.0.tgz", + "integrity": "sha512-x0Vn8spI+wuJ1O6S7gnbaQg8Pxh4NNHb7KSINmEWKiPE4RKOplvijn+NkmYmmRgP68mc70j2EbeTFRsrswaQeg==", + "dev": true, + "bin": { + "mime": "cli.js" + }, + "engines": { + "node": ">=4" + } + }, + "node_modules/mime-db": { + "version": "1.53.0", + "resolved": "https://registry.npmjs.org/mime-db/-/mime-db-1.53.0.tgz", + "integrity": "sha512-oHlN/w+3MQ3rba9rqFr6V/ypF10LSkdwUysQL7GkXoTgIWeV+tcXGA852TBxH+gsh8UWoyhR1hKcoMJTuWflpg==", + "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/mime-types/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/mimic-fn": { + "version": "1.2.0", + "resolved": "https://registry.npmjs.org/mimic-fn/-/mimic-fn-1.2.0.tgz", + "integrity": "sha512-jf84uxzwiuiIVKiOLpfYk7N46TSy8ubTonmneY9vrpHNAnp0QBt2BxWV9dO3/j+BoVAb+a5G6YDPW3M5HOdMWQ==", + "dev": true, + "engines": { + "node": ">=4" + } + }, + "node_modules/mimic-response": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/mimic-response/-/mimic-response-1.0.1.tgz", + "integrity": "sha512-j5EctnkH7amfV/q5Hgmoal1g2QHFJRraOtmx0JpIqkxhBhI/lJSl1nMpQ45hVarwNETOoWEimndZ4QK0RHxuxQ==", + "engines": { + "node": ">=4" + } + }, + "node_modules/min-document": { + "version": "2.19.0", + "resolved": "https://registry.npmjs.org/min-document/-/min-document-2.19.0.tgz", + "integrity": "sha512-9Wy1B3m3f66bPPmU5hdA4DR4PB2OfDU/+GS3yAB7IQozE3tqXaVv2zOjgla7MEGSRv95+ILmOuvhLkOK6wJtCQ==", + "dependencies": { + "dom-walk": "^0.1.0" + } + }, + "node_modules/minilog": { + "version": "3.1.0", + "resolved": "https://registry.npmjs.org/minilog/-/minilog-3.1.0.tgz", + "integrity": "sha512-Xfm4jWjWzSAduvEWtuZX/8TMkxfJlCfH7XvikCZe3ptojYTBq1eoEs3rh9/3LNLOckUP86m+8l8+Iw5NU/pBww==", + "dependencies": { + "microee": "0.0.6" + } + }, + "node_modules/minimalistic-assert": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/minimalistic-assert/-/minimalistic-assert-1.0.1.tgz", + "integrity": "sha512-UtJcAD4yEaGtjPezWuO9wC4nwUnVH/8/Im3yEHQP4b67cXlD/Qr9hdITCU1xDbSEXg2XKNaP8jsReV7vQd00/A==" + }, + "node_modules/minimalistic-crypto-utils": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/minimalistic-crypto-utils/-/minimalistic-crypto-utils-1.0.1.tgz", + "integrity": "sha512-JIYlbt6g8i5jKfJ3xz7rF0LXmv2TkDxBLUkiBeZ7bAx4GnnNMr8xFpGnOxn6GhTEHx3SjRrZEoU+j04prX1ktg==" + }, + "node_modules/minimatch": { + "version": "3.1.2", + "resolved": "https://registry.npmjs.org/minimatch/-/minimatch-3.1.2.tgz", + "integrity": "sha512-J7p63hRiAjw1NDEww1W7i37+ByIrOWO5XQQAzZ3VOcL0PNybwpfmV/N05zFAzwQ9USyEcX6t3UO+K5aqBQOIHw==", + "dependencies": { + "brace-expansion": "^1.1.7" + }, + "engines": { + "node": "*" + } + }, + "node_modules/minimist": { + "version": "1.2.8", + "resolved": "https://registry.npmjs.org/minimist/-/minimist-1.2.8.tgz", + "integrity": "sha512-2yyAR8qBkN3YuheJanUpWC5U3bb5osDywNB8RzDVlDwDHbocAJveqqj1u8+SVD7jkWT4yvsHCpWqqWqAxb0zCA==", + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/minipass": { + "version": "3.3.6", + "resolved": "https://registry.npmjs.org/minipass/-/minipass-3.3.6.tgz", + "integrity": "sha512-DxiNidxSEK+tHG6zOIklvNOwm3hvCrbUrdtzY74U6HKTJxvIDfOUL5W5P2Ghd3DTkhhKPYGqeNUIh5qcM4YBfw==", + "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==", + "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==", + "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==", + "dependencies": { + "minipass": "^3.0.0" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/minipass/node_modules/yallist": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/yallist/-/yallist-4.0.0.tgz", + "integrity": "sha512-3wdGidZyq5PB084XLES5TpOSRA3wjXAlIWMhum2kRcv/41Sn2emQ0dycQW4uZXLejwKvg6EsvbdlVL+FYEct7A==" + }, + "node_modules/minizlib": { + "version": "2.1.2", + "resolved": "https://registry.npmjs.org/minizlib/-/minizlib-2.1.2.tgz", + "integrity": "sha512-bAxsR8BVfj60DWXHE3u30oHzfl4G7khkSuPW+qvpd7jFRHm7dLxOjUk1EHACJ/hxLY8phGJ0YhYHZo7jil7Qdg==", + "dependencies": { + "minipass": "^3.0.0", + "yallist": "^4.0.0" + }, + "engines": { + "node": ">= 8" + } + }, + "node_modules/minizlib/node_modules/yallist": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/yallist/-/yallist-4.0.0.tgz", + "integrity": "sha512-3wdGidZyq5PB084XLES5TpOSRA3wjXAlIWMhum2kRcv/41Sn2emQ0dycQW4uZXLejwKvg6EsvbdlVL+FYEct7A==" + }, + "node_modules/mississippi": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/mississippi/-/mississippi-3.0.0.tgz", + "integrity": "sha512-x471SsVjUtBRtcvd4BzKE9kFC+/2TeWgKCgw0bZcw1b9l2X3QX5vCWgF+KaZaYm87Ss//rHnWryupDrgLvmSkA==", + "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==", + "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==", + "dependencies": { + "is-plain-object": "^2.0.4" + }, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/mkdirp": { + "version": "1.0.3", + "resolved": "https://registry.npmjs.org/mkdirp/-/mkdirp-1.0.3.tgz", + "integrity": "sha512-6uCP4Qc0sWsgMLy1EOqqS/3rjDHOEnsStVr/4vtAIK2Y5i2kA7lFFejYrpIyiN9w0pYf4ckeCYT9f1r1P9KX5g==", + "bin": { + "mkdirp": "bin/cmd.js" + }, + "engines": { + "node": ">=10" + } + }, + "node_modules/mkpath": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/mkpath/-/mkpath-1.0.0.tgz", + "integrity": "sha512-PbNHr7Y/9Y/2P5pKFv5XOGBfNQqZ+fdiHWcuf7swLACN5ZW5LU7J5tMU8LSBjpluAxAxKYGD9nnaIbdRy9+m1w==" + }, + "node_modules/mocha": { + "version": "4.1.0", + "resolved": "https://registry.npmjs.org/mocha/-/mocha-4.1.0.tgz", + "integrity": "sha512-0RVnjg1HJsXY2YFDoTNzcc1NKhYuXKRrBAG2gDygmJJA136Cs2QlRliZG1mA0ap7cuaT30mw16luAeln+4RiNA==", + "dependencies": { + "browser-stdout": "1.3.0", + "commander": "2.11.0", + "debug": "3.1.0", + "diff": "3.3.1", + "escape-string-regexp": "1.0.5", + "glob": "7.1.2", + "growl": "1.10.3", + "he": "1.1.1", + "mkdirp": "0.5.1", + "supports-color": "4.4.0" + }, + "bin": { + "_mocha": "bin/_mocha", + "mocha": "bin/mocha" + }, + "engines": { + "node": ">= 4.0.0" + } + }, + "node_modules/mocha/node_modules/commander": { + "version": "2.11.0", + "resolved": "https://registry.npmjs.org/commander/-/commander-2.11.0.tgz", + "integrity": "sha512-b0553uYA5YAEGgyYIGYROzKQ7X5RAqedkfjiZxwi0kL1g3bOaBNNZfYkzt/CL0umgD5wc9Jec2FbB98CjkMRvQ==" + }, + "node_modules/mocha/node_modules/debug": { + "version": "3.1.0", + "resolved": "https://registry.npmjs.org/debug/-/debug-3.1.0.tgz", + "integrity": "sha512-OX8XqP7/1a9cqkxYw2yXss15f26NKWBpDXQd0/uK/KPqdQhxbPa994hnzjcE2VqQpDslf55723cKPUOGSmMY3g==", + "dependencies": { + "ms": "2.0.0" + } + }, + "node_modules/mocha/node_modules/diff": { + "version": "3.3.1", + "resolved": "https://registry.npmjs.org/diff/-/diff-3.3.1.tgz", + "integrity": "sha512-MKPHZDMB0o6yHyDryUOScqZibp914ksXwAMYMTHj6KO8UeKsRYNJD3oNCKjTqZon+V488P7N/HzXF8t7ZR95ww==", + "engines": { + "node": ">=0.3.1" + } + }, + "node_modules/mocha/node_modules/glob": { + "version": "7.1.2", + "resolved": "https://registry.npmjs.org/glob/-/glob-7.1.2.tgz", + "integrity": "sha512-MJTUg1kjuLeQCJ+ccE4Vpa6kKVXkPYJ2mOCQyUuKLcLQsdrMCpBPUi8qVE6+YuaJkozeA9NusTAw3hLr8Xe5EQ==", + "deprecated": "Glob versions prior to v9 are no longer supported", + "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/mocha/node_modules/has-flag": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/has-flag/-/has-flag-2.0.0.tgz", + "integrity": "sha512-P+1n3MnwjR/Epg9BBo1KT8qbye2g2Ou4sFumihwt6I4tsUX7jnLcX4BTOSKg/B1ZrIYMN9FcEnG4x5a7NB8Eng==", + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/mocha/node_modules/he": { + "version": "1.1.1", + "resolved": "https://registry.npmjs.org/he/-/he-1.1.1.tgz", + "integrity": "sha512-z/GDPjlRMNOa2XJiB4em8wJpuuBfrFOlYKTZxtpkdr1uPdibHI8rYA3MY0KDObpVyaes0e/aunid/t88ZI2EKA==", + "bin": { + "he": "bin/he" + } + }, + "node_modules/mocha/node_modules/minimist": { + "version": "0.0.8", + "resolved": "https://registry.npmjs.org/minimist/-/minimist-0.0.8.tgz", + "integrity": "sha512-miQKw5Hv4NS1Psg2517mV4e4dYNaO3++hjAvLOAzKqZ61rH8NS1SK+vbfBWZ5PY/Me/bEWhUwqMghEW5Fb9T7Q==" + }, + "node_modules/mocha/node_modules/mkdirp": { + "version": "0.5.1", + "resolved": "https://registry.npmjs.org/mkdirp/-/mkdirp-0.5.1.tgz", + "integrity": "sha512-SknJC52obPfGQPnjIkXbmA6+5H15E+fR+E4iR2oQ3zzCLbd7/ONua69R/Gw7AgkTLsRG+r5fzksYwWe1AgTyWA==", + "deprecated": "Legacy versions of mkdirp are no longer supported. Please update to mkdirp 1.x. (Note that the API surface has changed to use Promises in 1.x.)", + "dependencies": { + "minimist": "0.0.8" + }, + "bin": { + "mkdirp": "bin/cmd.js" + } + }, + "node_modules/mocha/node_modules/ms": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/ms/-/ms-2.0.0.tgz", + "integrity": "sha512-Tpp60P6IUJDTuOq/5Z8cdskzJujfwqfOTkrwIwj7IRISpnkJnT6SyJ4PCPnGMoFjC9ddhal5KVIYtAt97ix05A==" + }, + "node_modules/mocha/node_modules/supports-color": { + "version": "4.4.0", + "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-4.4.0.tgz", + "integrity": "sha512-rKC3+DyXWgK0ZLKwmRsrkyHVZAjNkfzeehuFWdGGcqGDTZFH73+RH6S/RDAAxl9GusSjZSUWYLmT9N5pzXFOXQ==", + "dependencies": { + "has-flag": "^2.0.0" + }, + "engines": { + "node": ">=4" + } + }, + "node_modules/moo": { + "version": "0.5.2", + "resolved": "https://registry.npmjs.org/moo/-/moo-0.5.2.tgz", + "integrity": "sha512-iSAJLHYKnX41mKcJKjqvnAN9sf0LMDTXDEvFv+ffuRR9a1MIuXLjMNL6EsnDHSkKLTWNqQQ5uo61P4EbU4NU+Q==", + "dev": true + }, + "node_modules/move-concurrently": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/move-concurrently/-/move-concurrently-1.0.1.tgz", + "integrity": "sha512-hdrFxZOycD/g6A6SoI2bB5NA/5NEqD0569+S47WZhPvm46sD50ZHdYaFmnua5lndde9rCHGjmfK7Z8BuCt/PcQ==", + "deprecated": "This package is no longer supported.", + "dependencies": { + "aproba": "^1.1.1", + "copy-concurrently": "^1.0.0", + "fs-write-stream-atomic": "^1.0.8", + "mkdirp": "^0.5.1", + "rimraf": "^2.5.4", + "run-queue": "^1.0.3" + } + }, + "node_modules/move-concurrently/node_modules/mkdirp": { + "version": "0.5.6", + "resolved": "https://registry.npmjs.org/mkdirp/-/mkdirp-0.5.6.tgz", + "integrity": "sha512-FP+p8RB8OWpF3YZBCrP5gtADmtXApB5AMLn+vdyA+PyxCjrCs00mjyUozssO33cwDeT3wNGdLxJ5M//YqtHAJw==", + "dependencies": { + "minimist": "^1.2.6" + }, + "bin": { + "mkdirp": "bin/cmd.js" + } + }, + "node_modules/ms": { + "version": "2.1.3", + "resolved": "https://registry.npmjs.org/ms/-/ms-2.1.3.tgz", + "integrity": "sha512-6FlzubTLZG3J2a/NVCAleEhjzq5oxgHyaCU9yYXvcLsvoVaHJq/s5xXI6/XXP6tz7R9xAOtHnSO/tXtF3WRTlA==" + }, + "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": "sha512-cnAsSVxIDsYt0v7HmC0hWZFwwXSh+E6PgCrREDuN/EsjgLwA5XRmlMHhSiDPrt6HxY1gTivEa/Zh7GtODoLevQ==", + "dev": true + }, + "node_modules/multipipe": { + "version": "0.3.1", + "resolved": "https://registry.npmjs.org/multipipe/-/multipipe-0.3.1.tgz", + "integrity": "sha512-ZUcepNdMeKBRn/ksm2XTxFnhBaqnBJSZNqwajmiem6b7Rp3fNAAq+twYn3kqw9YMY7HJuc7I7OObX9cMgB1ANg==", + "dependencies": { + "duplexer2": "^0.1.2" + } + }, + "node_modules/mute-stream": { + "version": "0.0.7", + "resolved": "https://registry.npmjs.org/mute-stream/-/mute-stream-0.0.7.tgz", + "integrity": "sha512-r65nCZhrbXXb6dXOACihYApHw2Q6pV0M3V0PSxd74N0+D8nzAdEAITq2oAjA1jVnKI+tGvEBUpqiMh0+rW6zDQ==", + "dev": true + }, + "node_modules/nan": { + "version": "2.22.0", + "resolved": "https://registry.npmjs.org/nan/-/nan-2.22.0.tgz", + "integrity": "sha512-nbajikzWTMwsW+eSsNm3QwlOs7het9gGJU5dDZzRTQGk03vyBOauxgI4VakDzE0PtsGTmXPsXTbbjVhRwR5mpw==", + "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==", + "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/nanomatch/node_modules/extend-shallow": { + "version": "3.0.2", + "resolved": "https://registry.npmjs.org/extend-shallow/-/extend-shallow-3.0.2.tgz", + "integrity": "sha512-BwY5b5Ql4+qZoefgMj2NUmx+tehVTH/Kf4k1ZEtOHNFcm2wSxMRo992l6X3TIgni2eZVTZ85xMOjF31fwZAj6Q==", + "dependencies": { + "assign-symbols": "^1.0.0", + "is-extendable": "^1.0.1" + }, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/nanomatch/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==", + "dependencies": { + "is-plain-object": "^2.0.4" + }, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/nanomatch/node_modules/kind-of": { + "version": "6.0.3", + "resolved": "https://registry.npmjs.org/kind-of/-/kind-of-6.0.3.tgz", + "integrity": "sha512-dcS1ul+9tmeD95T+x28/ehLgd9mENa3LsvDTtzm3vyBEO7RPptvAD+t44WVXaUjTBRcrpFeFlC8WCruUR456hw==", + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/natural-compare": { + "version": "1.4.0", + "resolved": "https://registry.npmjs.org/natural-compare/-/natural-compare-1.4.0.tgz", + "integrity": "sha512-OWND8ei3VtNC9h7V60qff3SVobHr996CTwgxubgyQYEpg290h9J0buyECNNJexkFm5sOajh5G116RYA1c8ZMSw==", + "dev": true + }, + "node_modules/nearley": { + "version": "2.20.1", + "resolved": "https://registry.npmjs.org/nearley/-/nearley-2.20.1.tgz", + "integrity": "sha512-+Mc8UaAebFzgV+KpI5n7DasuuQCHA89dmwm7JXw3TV43ukfNQ9DnBH3Mdb2g/I4Fdxc26pwimBWvjIw0UAILSQ==", + "dev": true, + "dependencies": { + "commander": "^2.19.0", + "moo": "^0.5.0", + "railroad-diagrams": "^1.0.0", + "randexp": "0.4.6" + }, + "bin": { + "nearley-railroad": "bin/nearley-railroad.js", + "nearley-test": "bin/nearley-test.js", + "nearley-unparse": "bin/nearley-unparse.js", + "nearleyc": "bin/nearleyc.js" + }, + "funding": { + "type": "individual", + "url": "https://nearley.js.org/#give-to-nearley" + } + }, + "node_modules/nearley/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/negotiator": { + "version": "0.6.4", + "resolved": "https://registry.npmjs.org/negotiator/-/negotiator-0.6.4.tgz", + "integrity": "sha512-myRT3DiWPHqho5PrJaIRyaMv2kgYf0mUVgBNOYMuCH5Ki1yEiQaf/ZJuQ62nvpc44wL5WDbTX7yGJi1Neevw8w==", + "dev": true, + "engines": { + "node": ">= 0.6" + } + }, + "node_modules/neo-async": { + "version": "2.6.2", + "resolved": "https://registry.npmjs.org/neo-async/-/neo-async-2.6.2.tgz", + "integrity": "sha512-Yd3UES5mWCSqR+qNT93S3UoYUkqAZ9lLg8a7g9rimsWmYGK8cVToA4/sF3RrshdyV3sAGMXVUmpMYOw+dLpOuw==" + }, + "node_modules/nice-try": { + "version": "1.0.5", + "resolved": "https://registry.npmjs.org/nice-try/-/nice-try-1.0.5.tgz", + "integrity": "sha512-1nh45deeb5olNY7eX82BkPO7SSxR5SSYJiPTrTdFUVYwAl8CKMA5N9PjTYkHiRjisVcxcQ1HXdLhx2qxxJzLNQ==", + "dev": true + }, + "node_modules/no-case": { + "version": "3.0.4", + "resolved": "https://registry.npmjs.org/no-case/-/no-case-3.0.4.tgz", + "integrity": "sha512-fgAN3jGAh+RoxUGZHTSOLJIqUc2wmoBwGR4tbpNAKmmovFoWq0OdRkb0VkldReO2a2iBT/OEulG9XSUc10r3zg==", + "dev": true, + "dependencies": { + "lower-case": "^2.0.2", + "tslib": "^2.0.3" + } + }, + "node_modules/node-fetch": { + "version": "1.7.3", + "resolved": "https://registry.npmjs.org/node-fetch/-/node-fetch-1.7.3.tgz", + "integrity": "sha512-NhZ4CsKx7cYm2vSrBAr2PvFOe6sWDf0UYLRqA6svUYg7+/TSfVAu49jYC4BvQ4Sms9SZgdqGBgroqfDhJdTyKQ==", + "dev": true, + "dependencies": { + "encoding": "^0.1.11", + "is-stream": "^1.0.1" + } + }, + "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-int64": { + "version": "0.4.0", + "resolved": "https://registry.npmjs.org/node-int64/-/node-int64-0.4.0.tgz", + "integrity": "sha512-O5lz91xSOeoXP6DulyHfllpq+Eg00MWitZIbtPfoSEvqIHdl5gfcY6hYzDWnj0qD5tz52PI08u9qUvSVeUBeHw==", + "dev": true + }, + "node_modules/node-libs-browser": { + "version": "2.2.1", + "resolved": "https://registry.npmjs.org/node-libs-browser/-/node-libs-browser-2.2.1.tgz", + "integrity": "sha512-h/zcD8H9kaDZ9ALUWwlBUDo6TKF8a7qBSCSEGfjTVIYeqsioSKaAX+BN7NgiMGp6iSIXZ3PxgCu8KS3b71YK5Q==", + "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-notifier": { + "version": "5.4.5", + "resolved": "https://registry.npmjs.org/node-notifier/-/node-notifier-5.4.5.tgz", + "integrity": "sha512-tVbHs7DyTLtzOiN78izLA85zRqB9NvEXkAf014Vx3jtSvn/xBl6bR8ZYifj+dFcFrKI21huSQgJZ6ZtL3B4HfQ==", + "dev": true, + "dependencies": { + "growly": "^1.3.0", + "is-wsl": "^1.1.0", + "semver": "^5.5.0", + "shellwords": "^0.1.1", + "which": "^1.3.0" + } + }, + "node_modules/node-notifier/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/node-releases": { + "version": "2.0.18", + "resolved": "https://registry.npmjs.org/node-releases/-/node-releases-2.0.18.tgz", + "integrity": "sha512-d9VeXT4SJ7ZeOqGX6R5EM022wpL+eWPooLI+5UpWn2jCT1aosUQEhQP214x33Wkwx3JQMvIm+tIoVOdodFS40g==" + }, + "node_modules/normalize-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==", + "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/semver": { + "version": "5.7.2", + "resolved": "https://registry.npmjs.org/semver/-/semver-5.7.2.tgz", + "integrity": "sha512-cBznnQ9KjJqU67B52RMC65CMarK2600WFnbkcaiwWq3xy/5haFJlshgnpjovMVJ+Hff49d8GEn0b87C5pDQ10g==", + "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==", + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/normalize-range": { + "version": "0.1.2", + "resolved": "https://registry.npmjs.org/normalize-range/-/normalize-range-0.1.2.tgz", + "integrity": "sha512-bdok/XvKII3nUpklnV6P2hxtMNrCboOjAcyBuQnWEhO665FwrSNRxU+AqpsyvO6LgGYPspN+lu5CLtw4jPRKNA==", + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/normalize-url": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/normalize-url/-/normalize-url-2.0.1.tgz", + "integrity": "sha512-D6MUW4K/VzoJ4rJ01JFKxDrtY1v9wrgzCX5f2qj/lzH1m/lW6MhUZFKerVsnyjOhOsYzI9Kqqak+10l4LvLpMw==", + "dependencies": { + "prepend-http": "^2.0.0", + "query-string": "^5.0.1", + "sort-keys": "^2.0.0" + }, + "engines": { + "node": ">=4" + } + }, + "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==" + }, + "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": "sha512-lJxZYlT4DW/bRUtFh1MQIWqmLwQfAxnqWG4HhEdjMlkrJYnJn0Jrr2u3mgxqaWsdiBc76TYkTG/mhrnYTuzfHw==", + "dev": true, + "dependencies": { + "path-key": "^2.0.0" + }, + "engines": { + "node": ">=4" + } + }, + "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, + "dependencies": { + "boolbase": "^1.0.0" + }, + "funding": { + "url": "https://github.com/fb55/nth-check?sponsor=1" + } + }, + "node_modules/num2fraction": { + "version": "1.2.2", + "resolved": "https://registry.npmjs.org/num2fraction/-/num2fraction-1.2.2.tgz", + "integrity": "sha512-Y1wZESM7VUThYY+4W+X4ySH2maqcA+p7UR+w8VWNWVAd6lwuXXWz/w/Cz43J/dI2I+PS6wD5N+bJUF+gjWvIqg==" + }, + "node_modules/number-is-nan": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/number-is-nan/-/number-is-nan-1.0.1.tgz", + "integrity": "sha512-4jbtZXNAsfZbAHiiqjLPBiCl16dES1zI4Hpzzxw61Tk+loF+sBDBKx1ICKKKwIqQ7M0mFn1TmkN7euSncWgHiQ==", + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/nwmatcher": { + "version": "1.4.4", + "resolved": "https://registry.npmjs.org/nwmatcher/-/nwmatcher-1.4.4.tgz", + "integrity": "sha512-3iuY4N5dhgMpCUrOVnuAdGrgxVqV2cJpM+XNccjR2DKOB1RUP0aA+wGXEiNziG/UKboFyGBIoKOaNlJxx8bciQ==", + "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==", + "engines": { + "node": "*" + } + }, + "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-copy": { + "version": "0.1.0", + "resolved": "https://registry.npmjs.org/object-copy/-/object-copy-0.1.0.tgz", + "integrity": "sha512-79LYn6VAb63zgtmAteVOWo9Vdj71ZVBy3Pbse+VqxDpEP83XuujMrGqHIwAXJ5I/aM0zU7dIyIAhifVTPrNItQ==", + "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": "sha512-Rr7ADjQZenceVOAKop6ALkkRAmH1A4Gx9hV/7ZujPUN2rkATqFO0JZLZInbAjpZYoJ1gUx8MRMQVkYemcbMSTA==", + "dependencies": { + "is-descriptor": "^0.1.0" + }, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/object-copy/node_modules/is-descriptor": { + "version": "0.1.7", + "resolved": "https://registry.npmjs.org/is-descriptor/-/is-descriptor-0.1.7.tgz", + "integrity": "sha512-C3grZTvObeN1xud4cRWl366OMXZTj0+HGyk4hvfpx4ZHt1Pb60ANSXqCK7pdOTeUQpRzECBSTphqvD7U+l22Eg==", + "dependencies": { + "is-accessor-descriptor": "^1.0.1", + "is-data-descriptor": "^1.0.1" + }, + "engines": { + "node": ">= 0.4" + } + }, + "node_modules/object-inspect": { + "version": "1.13.3", + "resolved": "https://registry.npmjs.org/object-inspect/-/object-inspect-1.13.3.tgz", + "integrity": "sha512-kDCGIbxkDSXE3euJZZXzc6to7fCrKHNI/hSRQnRuQ+BWjFNzZwiFF8fj/6o2t2G9/jTj8PSIYTfCLelLZEeRpA==", + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/object-is": { + "version": "1.1.6", + "resolved": "https://registry.npmjs.org/object-is/-/object-is-1.1.6.tgz", + "integrity": "sha512-F8cZ+KfGlSGi09lJT7/Nd6KJZ9ygtvYC0/UYYLI9nmQKLMnydpB9yvbv9K1uSkEu7FU9vYPmVwLg328tX+ot3Q==", + "dev": true, + "dependencies": { + "call-bind": "^1.0.7", + "define-properties": "^1.2.1" + }, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/object-keys": { + "version": "1.1.1", + "resolved": "https://registry.npmjs.org/object-keys/-/object-keys-1.1.1.tgz", + "integrity": "sha512-NuAESUOUMrlIXOfHKzD6bpPu3tYt3xvjNdRIQ+FeT0lNb4K8WR70CaDxhuNguS2XG+GjkyMwOzsN5ZktImfhLA==", + "engines": { + "node": ">= 0.4" + } + }, + "node_modules/object-visit": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/object-visit/-/object-visit-1.0.1.tgz", + "integrity": "sha512-GBaMwwAVK9qbQN3Scdo0OyvgPW7l3lnaVMj84uTOZlswkX0KpF6fyDBJhtTthf7pymztoN36/KEr1DyhF96zEA==", + "dependencies": { + "isobject": "^3.0.0" + }, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/object.assign": { + "version": "4.1.5", + "resolved": "https://registry.npmjs.org/object.assign/-/object.assign-4.1.5.tgz", + "integrity": "sha512-byy+U7gp+FVwmyzKPYhW2h5l3crpmGsxl7X2s8y43IgxvG4g3QZ6CffDtsNQy1WsmZpQbO+ybo0AlW7TY6DcBQ==", + "dependencies": { + "call-bind": "^1.0.5", + "define-properties": "^1.2.1", + "has-symbols": "^1.0.3", + "object-keys": "^1.1.1" + }, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/object.entries": { + "version": "1.1.8", + "resolved": "https://registry.npmjs.org/object.entries/-/object.entries-1.1.8.tgz", + "integrity": "sha512-cmopxi8VwRIAw/fkijJohSfpef5PdN0pMQJN6VC/ZKvn0LIknWD8KtgY6KlQdEc4tIjcQ3HxSMmnvtzIscdaYQ==", + "dev": true, + "dependencies": { + "call-bind": "^1.0.7", + "define-properties": "^1.2.1", + "es-object-atoms": "^1.0.0" + }, + "engines": { + "node": ">= 0.4" + } + }, + "node_modules/object.fromentries": { + "version": "2.0.8", + "resolved": "https://registry.npmjs.org/object.fromentries/-/object.fromentries-2.0.8.tgz", + "integrity": "sha512-k6E21FzySsSK5a21KRADBd/NGneRegFO5pLHfdQLpRDETUNJueLXs3WCzyQ3tFRDYgbq3KHGXfTbi2bs8WQ6rQ==", + "dev": true, + "dependencies": { + "call-bind": "^1.0.7", + "define-properties": "^1.2.1", + "es-abstract": "^1.23.2", + "es-object-atoms": "^1.0.0" + }, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/object.getownpropertydescriptors": { + "version": "2.1.8", + "resolved": "https://registry.npmjs.org/object.getownpropertydescriptors/-/object.getownpropertydescriptors-2.1.8.tgz", + "integrity": "sha512-qkHIGe4q0lSYMv0XI4SsBTJz3WaURhLvd0lKSgtVuOsJ2krg4SgMw3PIRQFMp07yi++UR3se2mkcLqsBNpBb/A==", + "dev": true, + "dependencies": { + "array.prototype.reduce": "^1.0.6", + "call-bind": "^1.0.7", + "define-properties": "^1.2.1", + "es-abstract": "^1.23.2", + "es-object-atoms": "^1.0.0", + "gopd": "^1.0.1", + "safe-array-concat": "^1.1.2" + }, + "engines": { + "node": ">= 0.8" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/object.omit": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/object.omit/-/object.omit-2.0.1.tgz", + "integrity": "sha512-UiAM5mhmIuKLsOvrL+B0U2d1hXHF3bFYWIuH1LMpuV2EJEHG1Ntz06PgLEHjm6VFd87NpH8rastvPoyv6UW2fA==", + "dev": true, + "dependencies": { + "for-own": "^0.1.4", + "is-extendable": "^0.1.1" + }, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/object.pick": { + "version": "1.3.0", + "resolved": "https://registry.npmjs.org/object.pick/-/object.pick-1.3.0.tgz", + "integrity": "sha512-tqa/UMy/CCoYmj+H5qc07qvSL9dqcs/WZENZ1JbtWBlATP+iVOe778gE6MSijnyCnORzDuX6hU+LA4SZ09YjFQ==", + "dependencies": { + "isobject": "^3.0.1" + }, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/object.values": { + "version": "1.2.0", + "resolved": "https://registry.npmjs.org/object.values/-/object.values-1.2.0.tgz", + "integrity": "sha512-yBYjY9QX2hnRmZHAjG/f13MzmBzxzYgQhFrke06TTyKY5zSTEqkOeukBzIdVA3j3ulu8Qa3MbVFShV7T2RmGtQ==", + "dev": true, + "dependencies": { + "call-bind": "^1.0.7", + "define-properties": "^1.2.1", + "es-object-atoms": "^1.0.0" + }, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/obuf": { + "version": "1.1.2", + "resolved": "https://registry.npmjs.org/obuf/-/obuf-1.1.2.tgz", + "integrity": "sha512-PX1wu0AmAdPqOL1mWhqmlOd8kOIZQwGZw6rh7uby9fTc5lhaOWFLX3I6R1hrF9k3zUY40e6igsLGkDXK92LJNg==", + "dev": true + }, + "node_modules/omggif": { + "version": "1.0.9", + "resolved": "https://registry.npmjs.org/omggif/-/omggif-1.0.9.tgz", + "integrity": "sha512-VYAQRSZo7qoBcwB5G29YqVPLnxvDkWulE3x35kwH3bq4GdH/ZkHrcPPhxVfaOGYGZ5KV2/55UpcjcyNIO1qZoQ==" + }, + "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==", + "dev": true, + "dependencies": { + "ee-first": "1.1.1" + }, + "engines": { + "node": ">= 0.8" + } + }, + "node_modules/on-headers": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/on-headers/-/on-headers-1.0.2.tgz", + "integrity": "sha512-pZAE+FJLoyITytdqK0U5s+FIpjN0JP3OzFi/u8Rx+EV5/W+JTWGXG8xFzevE7AjBfDqHv/8vL8qQsIhHnqRkrA==", + "dev": true, + "engines": { + "node": ">= 0.8" + } + }, + "node_modules/once": { + "version": "1.4.0", + "resolved": "https://registry.npmjs.org/once/-/once-1.4.0.tgz", + "integrity": "sha512-lNaJgI+2Q5URQBkccEKHTQOPaXdUxnZZElQTZY0MFUAuaEqe1E+Nyvgdz/aIyNi6Z9MzO5dv1H8n58/GELp3+w==", + "dependencies": { + "wrappy": "1" + } + }, + "node_modules/onetime": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/onetime/-/onetime-2.0.1.tgz", + "integrity": "sha512-oyyPpiMaKARvvcgip+JV+7zci5L8D1W9RZIz2l1o08AM3pfspitVWnPt3mzHcBPp12oYMTy0pqrFs/C+m3EwsQ==", + "dev": true, + "dependencies": { + "mimic-fn": "^1.0.0" + }, + "engines": { + "node": ">=4" + } + }, + "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/optionator": { + "version": "0.8.3", + "resolved": "https://registry.npmjs.org/optionator/-/optionator-0.8.3.tgz", + "integrity": "sha512-+IW9pACdk3XWmmTXG8m3upGUJst5XRGzxMRjXzAuJ1XnIFNvfhjjIuYkDvysnPQ7qzqVzLt78BCruntqRhWQbA==", + "dependencies": { + "deep-is": "~0.1.3", + "fast-levenshtein": "~2.0.6", + "levn": "~0.3.0", + "prelude-ls": "~1.1.2", + "type-check": "~0.3.2", + "word-wrap": "~1.2.3" + }, + "engines": { + "node": ">= 0.8.0" + } + }, + "node_modules/os-browserify": { + "version": "0.3.0", + "resolved": "https://registry.npmjs.org/os-browserify/-/os-browserify-0.3.0.tgz", + "integrity": "sha512-gjcpUc3clBf9+210TRaDWbf+rZZZEshZ+DlXMRCeAjp0xhTrnQsKHypIy1J3d5hKdUzj69t708EHtU8P6bUn0A==" + }, + "node_modules/os-homedir": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/os-homedir/-/os-homedir-1.0.2.tgz", + "integrity": "sha512-B5JU3cabzk8c67mRRd3ECmROafjYMXbuzlwtqdM8IbS8ktlTix8aFGb2bAGKrSRIlnfKwovGUUr72JUPyOb6kQ==", + "dev": true, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/os-locale": { + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/os-locale/-/os-locale-2.1.0.tgz", + "integrity": "sha512-3sslG3zJbEYcaC4YVAvDorjGxc7tv6KVATnLPZONiljsUncvihe9BQoVCEs0RZ1kmf4Hk9OBqlZfJZWI4GanKA==", + "dev": true, + "dependencies": { + "execa": "^0.7.0", + "lcid": "^1.0.0", + "mem": "^1.1.0" + }, + "engines": { + "node": ">=4" + } + }, + "node_modules/os-locale/node_modules/cross-spawn": { + "version": "5.1.0", + "resolved": "https://registry.npmjs.org/cross-spawn/-/cross-spawn-5.1.0.tgz", + "integrity": "sha512-pTgQJ5KC0d2hcY8eyL1IzlBPYjTkyH72XRZPnLyKus2mBfNjQs3klqbJU2VILqZryAZUt9JOb3h/mWMy23/f5A==", + "dev": true, + "dependencies": { + "lru-cache": "^4.0.1", + "shebang-command": "^1.2.0", + "which": "^1.2.9" + } + }, + "node_modules/os-locale/node_modules/execa": { + "version": "0.7.0", + "resolved": "https://registry.npmjs.org/execa/-/execa-0.7.0.tgz", + "integrity": "sha512-RztN09XglpYI7aBBrJCPW95jEH7YF1UEPOoX9yDhUTPdp7mK+CQvnLTuD10BNXZ3byLTu2uehZ8EcKT/4CGiFw==", + "dev": true, + "dependencies": { + "cross-spawn": "^5.0.1", + "get-stream": "^3.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": ">=4" + } + }, + "node_modules/os-locale/node_modules/get-stream": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/get-stream/-/get-stream-3.0.0.tgz", + "integrity": "sha512-GlhdIUuVakc8SJ6kK0zAFbiGzRFzNnY4jUuEbV9UROo4Y+0Ny4fjvcZFVTeDA4odpFyOQzaw6hXukJSq/f28sQ==", + "dev": true, + "engines": { + "node": ">=4" + } + }, + "node_modules/os-locale/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==", + "dev": true, + "dependencies": { + "pseudomap": "^1.0.2", + "yallist": "^2.1.2" + } + }, + "node_modules/os-locale/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==", + "dev": true + }, + "node_modules/os-tmpdir": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/os-tmpdir/-/os-tmpdir-1.0.2.tgz", + "integrity": "sha512-D2FR03Vir7FIu45XBY20mTb+/ZSWB00sjU9jdQXt83gDrI4Ztz5Fs7/yy74g2N5SVQY4xY1qDr4rNddwYRVX0g==", + "dev": true, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/p-cancelable": { + "version": "0.4.1", + "resolved": "https://registry.npmjs.org/p-cancelable/-/p-cancelable-0.4.1.tgz", + "integrity": "sha512-HNa1A8LvB1kie7cERyy21VNeHb2CWJJYqyyC2o3klWFfMGlFmWv2Z7sFgZH8ZiaYL95ydToKTFVXgMV/Os0bBQ==", + "engines": { + "node": ">=4" + } + }, + "node_modules/p-event": { + "version": "2.3.1", + "resolved": "https://registry.npmjs.org/p-event/-/p-event-2.3.1.tgz", + "integrity": "sha512-NQCqOFhbpVTMX4qMe8PF8lbGtzZ+LCiN7pcNrb/413Na7+TRoe1xkKUzuWa/YEJdGQ0FvKtj35EEbDoVPO2kbA==", + "dependencies": { + "p-timeout": "^2.0.1" + }, + "engines": { + "node": ">=6" + } + }, + "node_modules/p-finally": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/p-finally/-/p-finally-1.0.0.tgz", + "integrity": "sha512-LICb2p9CB7FS+0eR1oqWnHhp0FljGLZCWBE9aix0Uye9W8LTQPwMTYVGWQWIw9RdQiDg4+epXQODwIYJtSJaow==", + "engines": { + "node": ">=4" + } + }, + "node_modules/p-is-promise": { + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/p-is-promise/-/p-is-promise-1.1.0.tgz", + "integrity": "sha512-zL7VE4JVS2IFSkR2GQKDSPEVxkoH43/p7oEnwpdCndKYJO0HVeRB7fA8TJwuLOTBREtK0ea8eHaxdwcpob5dmg==", + "engines": { + "node": ">=4" + } + }, + "node_modules/p-limit": { + "version": "3.1.0", + "resolved": "https://registry.npmjs.org/p-limit/-/p-limit-3.1.0.tgz", + "integrity": "sha512-TYOanM3wGwNGsZN2cVTYPArw454xnXj5qmWF1bEoAc4+cU/ol7GVh7odevjp1FNHduHc3KZMcFduxU5Xc6uJRQ==", + "dependencies": { + "yocto-queue": "^0.1.0" + }, + "engines": { + "node": ">=10" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/p-locate": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/p-locate/-/p-locate-2.0.0.tgz", + "integrity": "sha512-nQja7m7gSKuewoVRen45CtVfODR3crN3goVQ0DDZ9N3yHxgpkuBhZqsaiotSQRrADUrne346peY7kT3TSACykg==", + "dev": true, + "dependencies": { + "p-limit": "^1.1.0" + }, + "engines": { + "node": ">=4" + } + }, + "node_modules/p-locate/node_modules/p-limit": { + "version": "1.3.0", + "resolved": "https://registry.npmjs.org/p-limit/-/p-limit-1.3.0.tgz", + "integrity": "sha512-vvcXsLAJ9Dr5rQOPk7toZQZJApBl2K4J6dANSsEuh6QI41JYcsS/qhTGa9ErIUUgK3WNQoJYvylxvjqmiqEA9Q==", + "dev": true, + "dependencies": { + "p-try": "^1.0.0" + }, + "engines": { + "node": ">=4" + } + }, + "node_modules/p-locate/node_modules/p-try": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/p-try/-/p-try-1.0.0.tgz", + "integrity": "sha512-U1etNYuMJoIz3ZXSrrySFjsXQTWOx2/jdi86L+2pRvph/qMKL6sbcCYdH23fqsbm8TH2Gn0OybpT4eSFlCVHww==", + "dev": true, + "engines": { + "node": ">=4" + } + }, + "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==", + "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-timeout": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/p-timeout/-/p-timeout-2.0.1.tgz", + "integrity": "sha512-88em58dDVB/KzPEx1X0N3LwFfYZPyDc4B6eF38M1rk9VTZMbxXXgjugz8mmwpS9Ox4BDZ+t6t3QP5+/gazweIA==", + "dependencies": { + "p-finally": "^1.0.0" + }, + "engines": { + "node": ">=4" + } + }, + "node_modules/p-try": { + "version": "2.2.0", + "resolved": "https://registry.npmjs.org/p-try/-/p-try-2.2.0.tgz", + "integrity": "sha512-R4nPAVTAU0B9D35/Gk3uJf/7XYbQcyohSKdvAxIRSNghFl4e71hVoGnBNQz9cWaXxO2I10KTC+3jMdvvoKw6dQ==", + "engines": { + "node": ">=6" + } + }, + "node_modules/pako": { + "version": "1.0.11", + "resolved": "https://registry.npmjs.org/pako/-/pako-1.0.11.tgz", + "integrity": "sha512-4hLB8Py4zZce5s4yd9XzopqwVv/yGNhV1Bl8NTmCq1763HeK2+EwVTv+leGeL13Dnh2wfbqowVPXCIO0z4taYw==" + }, + "node_modules/papaparse": { + "version": "5.3.0", + "resolved": "https://registry.npmjs.org/papaparse/-/papaparse-5.3.0.tgz", + "integrity": "sha512-Lb7jN/4bTpiuGPrYy4tkKoUS8sTki8zacB5ke1p5zolhcSE4TlWgrlsxjrDTbG/dFVh07ck7X36hUf/b5V68pg==" + }, + "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==", + "dependencies": { + "cyclist": "^1.0.1", + "inherits": "^2.0.3", + "readable-stream": "^2.1.5" + } + }, + "node_modules/param-case": { + "version": "3.0.4", + "resolved": "https://registry.npmjs.org/param-case/-/param-case-3.0.4.tgz", + "integrity": "sha512-RXlj7zCYokReqWpOPH9oYivUzLYZ5vAPIfEmCTNViosC78F8F0H9y7T7gG2M39ymgutxF5gcFEsyZQSph9Bp3A==", + "dev": true, + "dependencies": { + "dot-case": "^3.0.4", + "tslib": "^2.0.3" + } + }, + "node_modules/parent-module": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/parent-module/-/parent-module-1.0.1.tgz", + "integrity": "sha512-GQ2EWRpQV8/o+Aw8YqtfZZPfNRWZYkbidE9k5rpl/hC3vtHHBfGm2Ifi6qWV+coDGkrUKZAxE3Lot5kcsRlh+g==", + "dev": true, + "dependencies": { + "callsites": "^3.0.0" + }, + "engines": { + "node": ">=6" + } + }, + "node_modules/parent-module/node_modules/callsites": { + "version": "3.1.0", + "resolved": "https://registry.npmjs.org/callsites/-/callsites-3.1.0.tgz", + "integrity": "sha512-P8BjAsXvZS+VIDUI11hHCQEv74YT67YUi5JJFNWIqL235sBmjX4+qx9Muvls5ivyNENctx46xQLQ3aTuE7ssaQ==", + "dev": true, + "engines": { + "node": ">=6" + } + }, + "node_modules/parse-asn1": { + "version": "5.1.7", + "resolved": "https://registry.npmjs.org/parse-asn1/-/parse-asn1-5.1.7.tgz", + "integrity": "sha512-CTM5kuWR3sx9IFamcl5ErfPl6ea/N8IYwiJ+vpeB2g+1iknv7zBl5uPwbMbRVznRVbrNY6lGuDoE5b30grmbqg==", + "dependencies": { + "asn1.js": "^4.10.1", + "browserify-aes": "^1.2.0", + "evp_bytestokey": "^1.0.3", + "hash-base": "~3.0", + "pbkdf2": "^3.1.2", + "safe-buffer": "^5.2.1" + }, + "engines": { + "node": ">= 0.10" + } + }, + "node_modules/parse-color": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/parse-color/-/parse-color-1.0.0.tgz", + "integrity": "sha512-fuDHYgFHJGbpGMgw9skY/bj3HL/Jrn4l/5rSspy00DoT4RyLnDcRvPxdZ+r6OFwIsgAuhDh4I09tAId4mI12bw==", + "dependencies": { + "color-convert": "~0.5.0" + } + }, + "node_modules/parse-glob": { + "version": "3.0.4", + "resolved": "https://registry.npmjs.org/parse-glob/-/parse-glob-3.0.4.tgz", + "integrity": "sha512-FC5TeK0AwXzq3tUBFtH74naWkPQCEWs4K+xMxWZBlKDWu0bVHXGZa+KKqxKidd7xwhdZ19ZNuF2uO1M/r196HA==", + "dev": true, + "dependencies": { + "glob-base": "^0.3.0", + "is-dotfile": "^1.0.0", + "is-extglob": "^1.0.0", + "is-glob": "^2.0.0" + }, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/parse-glob/node_modules/is-extglob": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/is-extglob/-/is-extglob-1.0.0.tgz", + "integrity": "sha512-7Q+VbVafe6x2T+Tu6NcOf6sRklazEPmBoB3IWk3WdGZM2iGUwU/Oe3Wtq5lSEkDTTlpp8yx+5t4pzO/i9Ty1ww==", + "dev": true, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/parse-glob/node_modules/is-glob": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/is-glob/-/is-glob-2.0.1.tgz", + "integrity": "sha512-a1dBeB19NXsf/E0+FHqkagizel/LQw2DjSQpvQrj3zT+jYPpaUCryPnrQajXKFLCMuf4I6FhRpaGtw4lPrG6Eg==", + "dev": true, + "dependencies": { + "is-extglob": "^1.0.0" + }, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/parse-headers": { + "version": "2.0.5", + "resolved": "https://registry.npmjs.org/parse-headers/-/parse-headers-2.0.5.tgz", + "integrity": "sha512-ft3iAoLOB/MlwbNXgzy43SWGP6sQki2jQvAyBg/zDFAgr9bfNWZIUj42Kw2eJIl8kEi4PbgE6U1Zau/HwI75HA==" + }, + "node_modules/parse-json": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/parse-json/-/parse-json-4.0.0.tgz", + "integrity": "sha512-aOIos8bujGN93/8Ox/jPLh7RwVnPEysynVFE+fQZyg6jKELEHwzgKdLRFHUgXJL6kylijVSBC4BvN9OmsB48Rw==", + "dependencies": { + "error-ex": "^1.3.1", + "json-parse-better-errors": "^1.0.1" + }, + "engines": { + "node": ">=4" + } + }, + "node_modules/parse-passwd": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/parse-passwd/-/parse-passwd-1.0.0.tgz", + "integrity": "sha512-1Y1A//QUXEZK7YKz+rD9WydcE1+EuPr6ZBgKecAB8tmoW6UFv0NREVJe1p+jRxtThkcbbKkfwIbWJe/IeE6m2Q==", + "dev": true, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/parse5": { + "version": "7.2.1", + "resolved": "https://registry.npmjs.org/parse5/-/parse5-7.2.1.tgz", + "integrity": "sha512-BuBYQYlv1ckiPdQi/ohiivi9Sagc9JG+Ozs0r7b/0iK3sKmrb0b9FdWdBbOdx6hBCM/F9Ir82ofnBhtZOjCRPQ==", + "dev": true, + "dependencies": { + "entities": "^4.5.0" + }, + "funding": { + "url": "https://github.com/inikulin/parse5?sponsor=1" + } + }, + "node_modules/parse5-htmlparser2-tree-adapter": { + "version": "7.1.0", + "resolved": "https://registry.npmjs.org/parse5-htmlparser2-tree-adapter/-/parse5-htmlparser2-tree-adapter-7.1.0.tgz", + "integrity": "sha512-ruw5xyKs6lrpo9x9rCZqZZnIUntICjQAd0Wsmp396Ul9lN/h+ifgVV1x1gZHi8euej6wTfpqX8j+BFQxF0NS/g==", + "dev": true, + "dependencies": { + "domhandler": "^5.0.3", + "parse5": "^7.0.0" + }, + "funding": { + "url": "https://github.com/inikulin/parse5?sponsor=1" + } + }, + "node_modules/parse5-parser-stream": { + "version": "7.1.2", + "resolved": "https://registry.npmjs.org/parse5-parser-stream/-/parse5-parser-stream-7.1.2.tgz", + "integrity": "sha512-JyeQc9iwFLn5TbvvqACIF/VXG6abODeB3Fwmv/TGdLk2LfbWkaySGY72at4+Ty7EkPZj854u4CrICqNk2qIbow==", + "dev": true, + "dependencies": { + "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==", + "dev": true, + "engines": { + "node": ">= 0.8" + } + }, + "node_modules/pascal-case": { + "version": "3.1.2", + "resolved": "https://registry.npmjs.org/pascal-case/-/pascal-case-3.1.2.tgz", + "integrity": "sha512-uWlGT3YSnK9x3BQJaOdcZwrnV6hPpd8jFH1/ucpiLRPh/2zCVJKS19E4GvYHvaCcACn3foXZ0cLB9Wrx1KGe5g==", + "dev": true, + "dependencies": { + "no-case": "^3.0.4", + "tslib": "^2.0.3" + } + }, + "node_modules/pascalcase": { + "version": "0.1.1", + "resolved": "https://registry.npmjs.org/pascalcase/-/pascalcase-0.1.1.tgz", + "integrity": "sha512-XHXfu/yOQRy9vYOtUDVMN60OEJjW013GoObG1o+xwQTpB9eYJX/BjXMsdW13ZDPruFhYYn0AG22w0xgQMwl3Nw==", + "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==" + }, + "node_modules/path-dirname": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/path-dirname/-/path-dirname-1.0.2.tgz", + "integrity": "sha512-ALzNPpyNq9AqXMBjeymIjFDAkAFH06mHJH/cSBHAgU0s4vfpBn6b2nf8tiRLvagKD8RbTpq2FKTBg7cl9l3c7Q==", + "devOptional": true + }, + "node_modules/path-exists": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/path-exists/-/path-exists-3.0.0.tgz", + "integrity": "sha512-bpC7GYwiDYQ4wYLe+FA8lhRjhQCMcQGuSgGGqDkg/QerRWw9CmGRT0iSOVRSZJ29NMLZgIzqaljJ63oaL4NIJQ==", + "engines": { + "node": ">=4" + } + }, + "node_modules/path-is-absolute": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/path-is-absolute/-/path-is-absolute-1.0.1.tgz", + "integrity": "sha512-AVbw3UJ2e9bq64vSaS9Am0fje1Pa8pbGqTTsmXfaIiMpnr5DlDhfJOuLj9Sf95ZPVDAUerDfEk88MPmPe7UCQg==", + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/path-is-inside": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/path-is-inside/-/path-is-inside-1.0.2.tgz", + "integrity": "sha512-DUWJr3+ULp4zXmol/SZkFf3JGsS9/SIv+Y3Rt93/UjPpDpklB5f1er4O3POIbUuUJ3FXgqte2Q7SrU6zAqwk8w==", + "dev": true + }, + "node_modules/path-key": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/path-key/-/path-key-2.0.1.tgz", + "integrity": "sha512-fEHGKCSmUSDPv4uoj8AlD+joPlq3peND+HRYyxFz4KPw4z926S/b8rIuFs2FYJg3BwsxJf6A9/3eIdLaYC+9Dw==", + "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==" + }, + "node_modules/path-to-regexp": { + "version": "0.1.10", + "resolved": "https://registry.npmjs.org/path-to-regexp/-/path-to-regexp-0.1.10.tgz", + "integrity": "sha512-7lf7qcQidTku0Gu3YDPc8DJ1q7OOucfa/BSsIwjuh56VU7katFvuM8hULfkwB3Fns/rsVF7PwPKVw1sl5KQS9w==", + "dev": true + }, + "node_modules/path-type": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/path-type/-/path-type-4.0.0.tgz", + "integrity": "sha512-gDKb8aZMDeD/tZWs9P6+q0J9Mwkdl6xMV8TjnGP3qJVJ06bdMgkbBlLU8IdfOsIsFz2BW1rNVT3XuNEl8zPAvw==", + "engines": { + "node": ">=8" + } + }, + "node_modules/pathfinding": { + "version": "0.4.18", + "resolved": "https://registry.npmjs.org/pathfinding/-/pathfinding-0.4.18.tgz", + "integrity": "sha512-R0TGEQ9GRcFCDvAWlJAWC+KGJ9SLbW4c0nuZRcioVlXVTlw+F5RvXQ8SQgSqI9KXWC1ew95vgmIiyaWTlCe9Ag==", + "dependencies": { + "heap": "0.2.5" + } + }, + "node_modules/pbkdf2": { + "version": "3.1.2", + "resolved": "https://registry.npmjs.org/pbkdf2/-/pbkdf2-3.1.2.tgz", + "integrity": "sha512-iuh7L6jA7JEGu2WxDwtQP1ddOpaJNC4KlDEFfdQajSGgGPNi4OyDc2R7QnbY2bR9QjBVGwgvTdNJZoE7RaxUMA==", + "dependencies": { + "create-hash": "^1.1.2", + "create-hmac": "^1.1.4", + "ripemd160": "^2.0.1", + "safe-buffer": "^5.0.1", + "sha.js": "^2.4.8" + }, + "engines": { + "node": ">=0.12" + } + }, + "node_modules/pend": { + "version": "1.2.0", + "resolved": "https://registry.npmjs.org/pend/-/pend-1.2.0.tgz", + "integrity": "sha512-F3asv42UuXchdzt+xXqfW1OGlVBe+mxa2mqI0pg5yAHZPvFmY3Y6drSf/GQ1A86WgWEN9Kzh/WrgKa6iGcHXLg==" + }, + "node_modules/PenguinMod-MarkDown": { + "name": "md", + "version": "0.6.0", + "resolved": "git+ssh://git@github.com/PenguinMod/PenguinMod-MarkDown.git#ae5971c234a9d13a8886bb3edcec3df5ceffab34", + "license": "MIT", + "dependencies": { + "slugo": "^0.2.1" + } + }, + "node_modules/performance-now": { + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/performance-now/-/performance-now-2.1.0.tgz", + "integrity": "sha512-7EAHlyLHI56VEIdK57uwHdHKIaAGbnXPiw0yWbarQZOKaKpvUIgW0jWRVLiatnM+XXlSwsanIBH/hzGMJulMow==" + }, + "node_modules/picocolors": { + "version": "1.1.1", + "resolved": "https://registry.npmjs.org/picocolors/-/picocolors-1.1.1.tgz", + "integrity": "sha512-xceH2snhtb5M9liqDsmEw56le376mTZkEX/jEb/RxNFyegNul7eNslCXP9FDj/Lcu0X8KEyMceP2ntpaHrDEVA==" + }, + "node_modules/picomatch": { + "version": "2.3.1", + "resolved": "https://registry.npmjs.org/picomatch/-/picomatch-2.3.1.tgz", + "integrity": "sha512-JU3teHTNjmE2VCGFzuY8EXzCDVwEqB2a8fsIvwaStHhAWJEeVd1o1QD80CU6+ZdEXXSLbSsuLwJjkCBWqRQUVA==", + "engines": { + "node": ">=8.6" + }, + "funding": { + "url": "https://github.com/sponsors/jonschlinkert" + } + }, + "node_modules/pify": { + "version": "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": "sha512-MnUuEycAemtSaeFSjXKW/aroV7akBbY+Sv+RkyqFjgAe73F+MR0TBWKBRDkmfWq/HiFmdavfZ1G7h4SPZXaCSg==", + "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": "sha512-0Gni6D4UcLTbv9c57DfxDGdr41XfgUjqWZu492f0cIGr16zDU06BWP/RAEvOuo7CQ0CNjHaLlM59YJJFm3NWlw==", + "dependencies": { + "pinkie": "^2.0.0" + }, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/pkg-dir": { + "version": "4.2.0", + "resolved": "https://registry.npmjs.org/pkg-dir/-/pkg-dir-4.2.0.tgz", + "integrity": "sha512-HRDzbaKjC+AOWVXxAU/x54COGeIv9eb+6CkDSQoNTt4XyWoIJvuPsXizxu/Fr23EiekbtZwmh1IcIG/l/a10GQ==", + "dependencies": { + "find-up": "^4.0.0" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/pkg-dir/node_modules/find-up": { + "version": "4.1.0", + "resolved": "https://registry.npmjs.org/find-up/-/find-up-4.1.0.tgz", + "integrity": "sha512-PpOwAdQ/YlXQ2vj8a3h8IipDuYRi3wceVQQGYWxNINccq40Anw7BlsEXCMbt1Zt+OLA6Fq9suIpIWD0OsnISlw==", + "dependencies": { + "locate-path": "^5.0.0", + "path-exists": "^4.0.0" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/pkg-dir/node_modules/locate-path": { + "version": "5.0.0", + "resolved": "https://registry.npmjs.org/locate-path/-/locate-path-5.0.0.tgz", + "integrity": "sha512-t7hw9pI+WvuwNJXwk5zVHpyhIqzg2qTlklJOf0mVxGSbe3Fp2VieZcduNYjaLDoy6p9uGpQEGWG87WpMKlNq8g==", + "dependencies": { + "p-locate": "^4.1.0" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/pkg-dir/node_modules/p-limit": { + "version": "2.3.0", + "resolved": "https://registry.npmjs.org/p-limit/-/p-limit-2.3.0.tgz", + "integrity": "sha512-//88mFWSJx8lxCzwdAABTJL2MyWB12+eIY7MDL2SqLmAkeKU9qxRvWuSyTjm3FUmpBEMuFfckAIqEaVGUDxb6w==", + "dependencies": { + "p-try": "^2.0.0" + }, + "engines": { + "node": ">=6" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/pkg-dir/node_modules/p-locate": { + "version": "4.1.0", + "resolved": "https://registry.npmjs.org/p-locate/-/p-locate-4.1.0.tgz", + "integrity": "sha512-R79ZZ/0wAxKGu3oYMlz8jy/kbhsNrS7SKZ7PxEHBgJ5+F2mtFW2fK2cOtBh1cHYkQsbzFV7I+EoRKe6Yt0oK7A==", + "dependencies": { + "p-limit": "^2.2.0" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/pkg-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==", + "engines": { + "node": ">=8" + } + }, + "node_modules/pkg-up": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/pkg-up/-/pkg-up-2.0.0.tgz", + "integrity": "sha512-fjAPuiws93rm7mPUu21RdBnkeZNrbfCFCwfAhPWY+rR3zG0ubpe5cEReHOw5fIbfmsxEV/g2kSxGTATY3Bpnwg==", + "dev": true, + "dependencies": { + "find-up": "^2.1.0" + }, + "engines": { + "node": ">=4" + } + }, + "node_modules/pnpm": { + "version": "7.33.7", + "resolved": "https://registry.npmjs.org/pnpm/-/pnpm-7.33.7.tgz", + "integrity": "sha512-ev4kEGQrOcaY30baTOXHIxpczjYGmNafjPj0IlfUCz5D8jEFOwe43oSf1P+/SnH/V7g1E3d3o1I4jz09p0cgDg==", + "bin": { + "pnpm": "bin/pnpm.cjs", + "pnpx": "bin/pnpx.cjs" + }, + "engines": { + "node": ">=14.6" + }, + "funding": { + "url": "https://opencollective.com/pnpm" + } + }, + "node_modules/portfinder": { + "version": "1.0.32", + "resolved": "https://registry.npmjs.org/portfinder/-/portfinder-1.0.32.tgz", + "integrity": "sha512-on2ZJVVDXRADWE6jnQaX0ioEylzgBpQk8r55NE4wjXW1ZxO+BgDlY6DXwj20i0V8eB4SenDQ00WEaxfiIQPcxg==", + "dev": true, + "dependencies": { + "async": "^2.6.4", + "debug": "^3.2.7", + "mkdirp": "^0.5.6" + }, + "engines": { + "node": ">= 0.12.0" + } + }, + "node_modules/portfinder/node_modules/debug": { + "version": "3.2.7", + "resolved": "https://registry.npmjs.org/debug/-/debug-3.2.7.tgz", + "integrity": "sha512-CFjzYYAi4ThfiQvizrFQevTTXHtnCqWfe7x1AhgEscTz6ZbLbfoLRLPugTQyBth6f8ZERVUSyWHFD/7Wu4t1XQ==", + "dev": true, + "dependencies": { + "ms": "^2.1.1" + } + }, + "node_modules/portfinder/node_modules/mkdirp": { + "version": "0.5.6", + "resolved": "https://registry.npmjs.org/mkdirp/-/mkdirp-0.5.6.tgz", + "integrity": "sha512-FP+p8RB8OWpF3YZBCrP5gtADmtXApB5AMLn+vdyA+PyxCjrCs00mjyUozssO33cwDeT3wNGdLxJ5M//YqtHAJw==", + "dev": true, + "dependencies": { + "minimist": "^1.2.6" + }, + "bin": { + "mkdirp": "bin/cmd.js" + } + }, + "node_modules/posix-character-classes": { + "version": "0.1.1", + "resolved": "https://registry.npmjs.org/posix-character-classes/-/posix-character-classes-0.1.1.tgz", + "integrity": "sha512-xTgYBc3fuo7Yt7JbiuFxSYGToMoz8fLoE6TC9Wx1P/u+LfeThMOAqmuyECnlBaaJb+u1m9hHiXUEtwW4OzfUJg==", + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/possible-typed-array-names": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/possible-typed-array-names/-/possible-typed-array-names-1.0.0.tgz", + "integrity": "sha512-d7Uw+eZoloe0EHDIYoe+bQ5WXnGMOpmiZFTuMWCwpjzzkL2nTjcKiAk4hh8TjnGye2TwWOk3UXucZ+3rbmBa8Q==", + "dev": true, + "engines": { + "node": ">= 0.4" + } + }, + "node_modules/postcss": { + "version": "7.0.39", + "resolved": "https://registry.npmjs.org/postcss/-/postcss-7.0.39.tgz", + "integrity": "sha512-yioayjNbHn6z1/Bywyb2Y4s3yvDAeXGOyxqD+LnVOinq6Mdmd++SW2wUNVzavyyHxd6+DxzWGIuosg6P1Rj8uA==", + "dependencies": { + "picocolors": "^0.2.1", + "source-map": "^0.6.1" + }, + "engines": { + "node": ">=6.0.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/postcss/" + } + }, + "node_modules/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==", + "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==" + }, + "node_modules/postcss-load-config": { + "version": "2.1.2", + "resolved": "https://registry.npmjs.org/postcss-load-config/-/postcss-load-config-2.1.2.tgz", + "integrity": "sha512-/rDeGV6vMUo3mwJZmeHfEDvwnTKKqQ0S7OHUi/kJvvtx3aWtyWG2/0ZWnzCt2keEclwN6Tf0DST2v9kITdOKYw==", + "dependencies": { + "cosmiconfig": "^5.0.0", + "import-cwd": "^2.0.0" + }, + "engines": { + "node": ">= 4" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/postcss/" + } + }, + "node_modules/postcss-loader": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/postcss-loader/-/postcss-loader-3.0.0.tgz", + "integrity": "sha512-cLWoDEY5OwHcAjDnkyRQzAXfs2jrKjXpO/HQFcc5b5u/r7aa471wdmChmwfnv7x2u840iat/wi0lQ5nbRgSkUA==", + "dependencies": { + "loader-utils": "^1.1.0", + "postcss": "^7.0.0", + "postcss-load-config": "^2.0.0", + "schema-utils": "^1.0.0" + }, + "engines": { + "node": ">= 6" + } + }, + "node_modules/postcss-loader/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==", + "dependencies": { + "ajv": "^6.1.0", + "ajv-errors": "^1.0.0", + "ajv-keywords": "^3.1.0" + }, + "engines": { + "node": ">= 4" + } + }, + "node_modules/postcss-modules-extract-imports": { + "version": "1.2.1", + "resolved": "https://registry.npmjs.org/postcss-modules-extract-imports/-/postcss-modules-extract-imports-1.2.1.tgz", + "integrity": "sha512-6jt9XZwUhwmRUhb/CkyJY020PYaPJsCyt3UjbaWo6XEbH/94Hmv6MP7fG2C5NDU/BcHzyGYxNtHvM+LTf9HrYw==", + "dependencies": { + "postcss": "^6.0.1" + } + }, + "node_modules/postcss-modules-extract-imports/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/postcss-modules-extract-imports/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/postcss-modules-extract-imports/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/postcss-modules-extract-imports/node_modules/postcss": { + "version": "6.0.23", + "resolved": "https://registry.npmjs.org/postcss/-/postcss-6.0.23.tgz", + "integrity": "sha512-soOk1h6J3VMTZtVeVpv15/Hpdl2cBLX3CAw4TAbkpTJiNPk9YP/zWcD1ND+xEtvyuuvKzbxliTOIyvkSeSJ6ag==", + "dependencies": { + "chalk": "^2.4.1", + "source-map": "^0.6.1", + "supports-color": "^5.4.0" + }, + "engines": { + "node": ">=4.0.0" + } + }, + "node_modules/postcss-modules-extract-imports/node_modules/source-map": { + "version": "0.6.1", + "resolved": "https://registry.npmjs.org/source-map/-/source-map-0.6.1.tgz", + "integrity": "sha512-UjgapumWlbMhkBgzT7Ykc5YXUT46F0iKu8SGXq0bcwP5dz/h0Plj6enJqjz1Zbq2l5WaqYnrVbwWOWMyF3F47g==", + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/postcss-modules-extract-imports/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/postcss-modules-local-by-default": { + "version": "1.2.0", + "resolved": "https://registry.npmjs.org/postcss-modules-local-by-default/-/postcss-modules-local-by-default-1.2.0.tgz", + "integrity": "sha512-X4cquUPIaAd86raVrBwO8fwRfkIdbwFu7CTfEOjiZQHVQwlHRSkTgH5NLDmMm5+1hQO8u6dZ+TOOJDbay1hYpA==", + "dependencies": { + "css-selector-tokenizer": "^0.7.0", + "postcss": "^6.0.1" + } + }, + "node_modules/postcss-modules-local-by-default/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/postcss-modules-local-by-default/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/postcss-modules-local-by-default/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/postcss-modules-local-by-default/node_modules/postcss": { + "version": "6.0.23", + "resolved": "https://registry.npmjs.org/postcss/-/postcss-6.0.23.tgz", + "integrity": "sha512-soOk1h6J3VMTZtVeVpv15/Hpdl2cBLX3CAw4TAbkpTJiNPk9YP/zWcD1ND+xEtvyuuvKzbxliTOIyvkSeSJ6ag==", + "dependencies": { + "chalk": "^2.4.1", + "source-map": "^0.6.1", + "supports-color": "^5.4.0" + }, + "engines": { + "node": ">=4.0.0" + } + }, + "node_modules/postcss-modules-local-by-default/node_modules/source-map": { + "version": "0.6.1", + "resolved": "https://registry.npmjs.org/source-map/-/source-map-0.6.1.tgz", + "integrity": "sha512-UjgapumWlbMhkBgzT7Ykc5YXUT46F0iKu8SGXq0bcwP5dz/h0Plj6enJqjz1Zbq2l5WaqYnrVbwWOWMyF3F47g==", + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/postcss-modules-local-by-default/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/postcss-modules-scope": { + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/postcss-modules-scope/-/postcss-modules-scope-1.1.0.tgz", + "integrity": "sha512-LTYwnA4C1He1BKZXIx1CYiHixdSe9LWYVKadq9lK5aCCMkoOkFyZ7aigt+srfjlRplJY3gIol6KUNefdMQJdlw==", + "dependencies": { + "css-selector-tokenizer": "^0.7.0", + "postcss": "^6.0.1" + } + }, + "node_modules/postcss-modules-scope/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/postcss-modules-scope/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/postcss-modules-scope/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/postcss-modules-scope/node_modules/postcss": { + "version": "6.0.23", + "resolved": "https://registry.npmjs.org/postcss/-/postcss-6.0.23.tgz", + "integrity": "sha512-soOk1h6J3VMTZtVeVpv15/Hpdl2cBLX3CAw4TAbkpTJiNPk9YP/zWcD1ND+xEtvyuuvKzbxliTOIyvkSeSJ6ag==", + "dependencies": { + "chalk": "^2.4.1", + "source-map": "^0.6.1", + "supports-color": "^5.4.0" + }, + "engines": { + "node": ">=4.0.0" + } + }, + "node_modules/postcss-modules-scope/node_modules/source-map": { + "version": "0.6.1", + "resolved": "https://registry.npmjs.org/source-map/-/source-map-0.6.1.tgz", + "integrity": "sha512-UjgapumWlbMhkBgzT7Ykc5YXUT46F0iKu8SGXq0bcwP5dz/h0Plj6enJqjz1Zbq2l5WaqYnrVbwWOWMyF3F47g==", + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/postcss-modules-scope/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/postcss-modules-values": { + "version": "1.3.0", + "resolved": "https://registry.npmjs.org/postcss-modules-values/-/postcss-modules-values-1.3.0.tgz", + "integrity": "sha512-i7IFaR9hlQ6/0UgFuqM6YWaCfA1Ej8WMg8A5DggnH1UGKJvTV/ugqq/KaULixzzOi3T/tF6ClBXcHGCzdd5unA==", + "dependencies": { + "icss-replace-symbols": "^1.1.0", + "postcss": "^6.0.1" + } + }, + "node_modules/postcss-modules-values/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/postcss-modules-values/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/postcss-modules-values/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/postcss-modules-values/node_modules/postcss": { + "version": "6.0.23", + "resolved": "https://registry.npmjs.org/postcss/-/postcss-6.0.23.tgz", + "integrity": "sha512-soOk1h6J3VMTZtVeVpv15/Hpdl2cBLX3CAw4TAbkpTJiNPk9YP/zWcD1ND+xEtvyuuvKzbxliTOIyvkSeSJ6ag==", + "dependencies": { + "chalk": "^2.4.1", + "source-map": "^0.6.1", + "supports-color": "^5.4.0" + }, + "engines": { + "node": ">=4.0.0" + } + }, + "node_modules/postcss-modules-values/node_modules/source-map": { + "version": "0.6.1", + "resolved": "https://registry.npmjs.org/source-map/-/source-map-0.6.1.tgz", + "integrity": "sha512-UjgapumWlbMhkBgzT7Ykc5YXUT46F0iKu8SGXq0bcwP5dz/h0Plj6enJqjz1Zbq2l5WaqYnrVbwWOWMyF3F47g==", + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/postcss-modules-values/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/postcss-simple-vars": { + "version": "5.0.2", + "resolved": "https://registry.npmjs.org/postcss-simple-vars/-/postcss-simple-vars-5.0.2.tgz", + "integrity": "sha512-xWIufxBoINJv6JiLb7jl5oElgp+6puJwvT5zZHliUSydoLz4DADRB3NDDsYgfKVwojn4TDLiseoC65MuS8oGGg==", + "dependencies": { + "postcss": "^7.0.14" + } + }, + "node_modules/postcss-value-parser": { + "version": "4.2.0", + "resolved": "https://registry.npmjs.org/postcss-value-parser/-/postcss-value-parser-4.2.0.tgz", + "integrity": "sha512-1NNCs6uurfkVbeXG4S8JFT9t19m45ICnif8zWLd5oPSZ50QnwMfK+H3jv408d4jw/7Bttv5axS5IiHoLaVNHeQ==" + }, + "node_modules/postcss/node_modules/picocolors": { + "version": "0.2.1", + "resolved": "https://registry.npmjs.org/picocolors/-/picocolors-0.2.1.tgz", + "integrity": "sha512-cMlDqaLEqfSaW8Z7N5Jw+lyIW869EzT73/F5lhtY9cLGoVxSXznfgfXMO0Z5K0o0Q2TkTXq+0KFsdnSe3jDViA==" + }, + "node_modules/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==", + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/prelude-ls": { + "version": "1.1.2", + "resolved": "https://registry.npmjs.org/prelude-ls/-/prelude-ls-1.1.2.tgz", + "integrity": "sha512-ESF23V4SKG6lVSGZgYNpbsiaAkdab6ZgOxe52p7+Kid3W3u3bxR4Vfd/o21dmN7jSt0IwgZ4v5MUd26FEtXE9w==", + "engines": { + "node": ">= 0.8.0" + } + }, + "node_modules/prepend-http": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/prepend-http/-/prepend-http-2.0.0.tgz", + "integrity": "sha512-ravE6m9Atw9Z/jjttRUZ+clIXogdghyZAuWJ3qEzjT+jI/dL1ifAqhZeC5VHzQp1MSt1+jxKkFNemj/iO7tVUA==", + "engines": { + "node": ">=4" + } + }, + "node_modules/preserve": { + "version": "0.2.0", + "resolved": "https://registry.npmjs.org/preserve/-/preserve-0.2.0.tgz", + "integrity": "sha512-s/46sYeylUfHNjI+sA/78FAHlmIuKqI9wNnzEOGehAlUUYeObv5C2mOinXBjyUyWmJ2SfcS2/ydApH4hTF4WXQ==", + "dev": true, + "engines": { + "node": ">=0.10.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, + "dependencies": { + "lodash": "^4.17.20", + "renderkid": "^2.0.4" + } + }, + "node_modules/pretty-format": { + "version": "21.2.1", + "resolved": "https://registry.npmjs.org/pretty-format/-/pretty-format-21.2.1.tgz", + "integrity": "sha512-ZdWPGYAnYfcVP8yKA3zFjCn8s4/17TeYH28MXuC8vTp0o21eXjbFGcOAXZEaDaOFJjc3h2qa7HQNHNshhvoh2A==", + "dev": true, + "dependencies": { + "ansi-regex": "^3.0.0", + "ansi-styles": "^3.2.0" + } + }, + "node_modules/pretty-format/node_modules/ansi-regex": { + "version": "3.0.1", + "resolved": "https://registry.npmjs.org/ansi-regex/-/ansi-regex-3.0.1.tgz", + "integrity": "sha512-+O9Jct8wf++lXxxFc4hc8LsjaSq0HFzzL7cVsw8pRDIPdjKD2mT4ytDZlLuSBZ4cLKZFXIrMGO7DbQCtMJJMKw==", + "dev": true, + "engines": { + "node": ">=4" + } + }, + "node_modules/pretty-format/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/pretty-format/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/private": { + "version": "0.1.8", + "resolved": "https://registry.npmjs.org/private/-/private-0.1.8.tgz", + "integrity": "sha512-VvivMrbvd2nKkiG38qjULzlc+4Vx4wm/whI9pQD35YrARNnhxeiRktSOhSukRLFNlzg6Br/cJPet5J/u19r/mg==", + "dev": true, + "engines": { + "node": ">= 0.6" + } + }, + "node_modules/process": { + "version": "0.11.10", + "resolved": "https://registry.npmjs.org/process/-/process-0.11.10.tgz", + "integrity": "sha512-cdGef/drWFoydD1JsMzuFf8100nZl+GT+yacc2bEced5f9Rjk4z+WtFUTBu9PhOi9j/jfmBPu0mMEY4wIdAF8A==", + "engines": { + "node": ">= 0.6.0" + } + }, + "node_modules/process-nextick-args": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/process-nextick-args/-/process-nextick-args-2.0.1.tgz", + "integrity": "sha512-3ouUOpQhtgrbOa17J7+uxOTpITYWaGP7/AhoR3+A+/1e9skrzelGi/dXzEYyvbxubEF6Wn2ypscTKiKJFFn1ag==" + }, + "node_modules/progress": { + "version": "2.0.3", + "resolved": "https://registry.npmjs.org/progress/-/progress-2.0.3.tgz", + "integrity": "sha512-7PiHtLll5LdnKIMw100I+8xJXR5gW2QwWYkT6iJva0bXitZKa/XMrSbdmg3r2Xnaidz9Qumd0VPaMrZlF9V9sA==", + "dev": true, + "engines": { + "node": ">=0.4.0" + } + }, + "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": "sha512-6zWPyEOFaQBJYcGMHBKTKJ3u6TBsnMFOIZSa6ce1e/ZrrsOlnHRHbabMjLiBYKp+n44X9eUI6VUPaukCXHuG4g==" + }, + "node_modules/prop-types": { + "version": "15.8.1", + "resolved": "https://registry.npmjs.org/prop-types/-/prop-types-15.8.1.tgz", + "integrity": "sha512-oj87CgZICdulUohogVAR7AjlC0327U4el4L6eAvOqCeudMDVU0NThNaV+b9Df4dXgSP1gXMTnPdhfe/2qDH5cg==", + "dependencies": { + "loose-envify": "^1.4.0", + "object-assign": "^4.1.1", + "react-is": "^16.13.1" + } + }, + "node_modules/prop-types-exact": { + "version": "1.2.5", + "resolved": "https://registry.npmjs.org/prop-types-exact/-/prop-types-exact-1.2.5.tgz", + "integrity": "sha512-wHDhA5TSSvU07gdzsdeT/FZg6zay94K4Y7swSK4YsRG3moWB0Qsp9g1Y5BBausP1HF8K4UeVe2Xt7ZFJByKp6A==", + "dev": true, + "dependencies": { + "call-bind": "^1.0.7", + "es-errors": "^1.3.0", + "hasown": "^2.0.2", + "isarray": "^2.0.5", + "object.assign": "^4.1.5", + "reflect.ownkeys": "^1.1.4" + }, + "engines": { + "node": ">= 0.8" + } + }, + "node_modules/protobufjs": { + "version": "7.4.0", + "resolved": "https://registry.npmjs.org/protobufjs/-/protobufjs-7.4.0.tgz", + "integrity": "sha512-mRUWCc3KUU4w1jU8sGxICXH/gNS94DvI1gxqDvBzhj1JpcsimQkYiOJfwsPUykUI5ZaspFbSgmBLER8IrQ3tqw==", + "hasInstallScript": true, + "dependencies": { + "@protobufjs/aspromise": "^1.1.2", + "@protobufjs/base64": "^1.1.2", + "@protobufjs/codegen": "^2.0.4", + "@protobufjs/eventemitter": "^1.1.0", + "@protobufjs/fetch": "^1.1.0", + "@protobufjs/float": "^1.0.2", + "@protobufjs/inquire": "^1.1.0", + "@protobufjs/path": "^1.1.2", + "@protobufjs/pool": "^1.1.0", + "@protobufjs/utf8": "^1.1.0", + "@types/node": ">=13.7.0", + "long": "^5.0.0" + }, + "engines": { + "node": ">=12.0.0" + } + }, + "node_modules/proxy-addr": { + "version": "2.0.7", + "resolved": "https://registry.npmjs.org/proxy-addr/-/proxy-addr-2.0.7.tgz", + "integrity": "sha512-llQsMLSUDUPT44jdrU/O37qlnifitDP+ZwrmmZcoSKyLKvtZxpyV0n2/bD/N4tBAAZ/gJEdZU7KMraoK1+XYAg==", + "dev": true, + "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==", + "dev": true + }, + "node_modules/prr": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/prr/-/prr-1.0.1.tgz", + "integrity": "sha512-yPw4Sng1gWghHQWj0B3ZggWUm4qVbPwPFcRG8KyxiU7J2OHFSoEHKS+EZ3fv5l1t9CyCiop6l/ZYeWbrgoQejw==" + }, + "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==", + "dev": true + }, + "node_modules/psl": { + "version": "1.10.0", + "resolved": "https://registry.npmjs.org/psl/-/psl-1.10.0.tgz", + "integrity": "sha512-KSKHEbjAnpUuAUserOq0FxGXCUrzC3WniuSJhvdbs102rL55266ZcHBqLWOsG30spQMlPdpy7icATiAQehg/iA==", + "dependencies": { + "punycode": "^2.3.1" + } + }, + "node_modules/psl/node_modules/punycode": { + "version": "2.3.1", + "resolved": "https://registry.npmjs.org/punycode/-/punycode-2.3.1.tgz", + "integrity": "sha512-vYt7UD1U9Wg6138shLtLOvdAu+8DsC/ilFtEVHcH+wydcSpNE20AfSOduf6MkRFahL5FY7X1oU7nKVZFtfq8Fg==", + "engines": { + "node": ">=6" + } + }, + "node_modules/public-encrypt": { + "version": "4.0.3", + "resolved": "https://registry.npmjs.org/public-encrypt/-/public-encrypt-4.0.3.tgz", + "integrity": "sha512-zVpa8oKZSz5bTMTFClc1fQOnyyEzpl5ozpi1B5YcvBrdohMjH2rfsBtyXcuNuwjsDIXmBYlF2N5FlJYhR29t8Q==", + "dependencies": { + "bn.js": "^4.1.0", + "browserify-rsa": "^4.0.0", + "create-hash": "^1.1.0", + "parse-asn1": "^5.0.0", + "randombytes": "^2.0.1", + "safe-buffer": "^5.1.2" + } + }, + "node_modules/public-encrypt/node_modules/bn.js": { + "version": "4.12.1", + "resolved": "https://registry.npmjs.org/bn.js/-/bn.js-4.12.1.tgz", + "integrity": "sha512-k8TVBiPkPJT9uHLdOKfFpqcfprwBFOAAXXozRubr7R7PfIuKvQlzcI4M0pALeqXN09vdaMbUdUj+pass+uULAg==" + }, + "node_modules/pump": { + "version": "3.0.2", + "resolved": "https://registry.npmjs.org/pump/-/pump-3.0.2.tgz", + "integrity": "sha512-tUPXtzlGM8FE3P0ZL6DVs/3P58k9nk8/jZeQCurTJylQA8qFYzHFfhBJkuqyE0FifOsQ0uKWekiZ5g8wtr28cw==", + "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==", + "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==", + "dependencies": { + "end-of-stream": "^1.1.0", + "once": "^1.3.1" + } + }, + "node_modules/punycode": { + "version": "1.4.1", + "resolved": "https://registry.npmjs.org/punycode/-/punycode-1.4.1.tgz", + "integrity": "sha512-jmYNElW7yvO7TV33CjSmvSiE2yco3bV2czu/OzDKdMNVZQWfxCblURLhf+47syQRBntjfLdd/H0egrzIG+oaFQ==" + }, + "node_modules/q": { + "version": "1.5.1", + "resolved": "https://registry.npmjs.org/q/-/q-1.5.1.tgz", + "integrity": "sha512-kV/CThkXo6xyFEZUugw/+pIOywXcDbFYgSct5cT3gqlbkBE1SJdwy6UQoZvodiWF/ckQLZyDE/Bu1M6gVu5lVw==", + "deprecated": "You or someone you depend on is using Q, the JavaScript Promise library that gave JavaScript developers strong feelings about promises. They can almost certainly migrate to the native JavaScript promise now. Thank you literally everyone for joining me in this bet against the odds. Be excellent to each other.\n\n(For a CapTP with native promises, see @endo/eventual-send and @endo/captp)", + "engines": { + "node": ">=0.6.0", + "teleport": ">=0.2.0" + } + }, + "node_modules/qs": { + "version": "6.5.3", + "resolved": "https://registry.npmjs.org/qs/-/qs-6.5.3.tgz", + "integrity": "sha512-qxXIEh4pCGfHICj1mAJQ2/2XVZkjCDTcEgfoSQxc/fYivUZxTkk7L3bDBJSoNrEzXI17oUO5Dp07ktqE5KzczA==", + "engines": { + "node": ">=0.6" + } + }, + "node_modules/query-string": { + "version": "5.1.1", + "resolved": "https://registry.npmjs.org/query-string/-/query-string-5.1.1.tgz", + "integrity": "sha512-gjWOsm2SoGlgLEdAGt7a6slVOk9mGiXmPFMqrEhLQ68rhQuBnpfs3+EmlvqKyxnCo9/PPlF+9MtY02S1aFg+Jw==", + "dependencies": { + "decode-uri-component": "^0.2.0", + "object-assign": "^4.1.0", + "strict-uri-encode": "^1.0.0" + }, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/querystring-es3": { + "version": "0.2.1", + "resolved": "https://registry.npmjs.org/querystring-es3/-/querystring-es3-0.2.1.tgz", + "integrity": "sha512-773xhDQnZBMFobEiztv8LIl70ch5MSF/jUQVlhwFyBILqq96anmoctVIYz+ZRp0qbCKATTn6ev02M3r7Ga5vqA==", + "engines": { + "node": ">=0.4.x" + } + }, + "node_modules/querystringify": { + "version": "2.2.0", + "resolved": "https://registry.npmjs.org/querystringify/-/querystringify-2.2.0.tgz", + "integrity": "sha512-FIqgj2EUvTa7R50u0rGsyTftzjYmv/a3hO345bZNrqabNqjtgiDMgmo4mkUjd+nzU5oF3dClKqFIPUKybUyqoQ==", + "dev": true + }, + "node_modules/queue-microtask": { + "version": "1.2.3", + "resolved": "https://registry.npmjs.org/queue-microtask/-/queue-microtask-1.2.3.tgz", + "integrity": "sha512-NuaNSa6flKT5JaSYQzJok04JzTL1CA6aGhv5rfLW3PgqA+M2ChpZQnAC8h8i4ZFkBS8X5RqkDBHA7r4hej3K9A==", + "funding": [ + { + "type": "github", + "url": "https://github.com/sponsors/feross" + }, + { + "type": "patreon", + "url": "https://www.patreon.com/feross" + }, + { + "type": "consulting", + "url": "https://feross.org/support" + } + ] + }, + "node_modules/quote-stream": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/quote-stream/-/quote-stream-1.0.2.tgz", + "integrity": "sha512-kKr2uQ2AokadPjvTyKJQad9xELbZwYzWlNfI3Uz2j/ib5u6H9lDP7fUUR//rMycd0gv4Z5P1qXMfXR8YpIxrjQ==", + "dependencies": { + "buffer-equal": "0.0.1", + "minimist": "^1.1.3", + "through2": "^2.0.0" + }, + "bin": { + "quote-stream": "bin/cmd.js" + } + }, + "node_modules/raf": { + "version": "3.4.1", + "resolved": "https://registry.npmjs.org/raf/-/raf-3.4.1.tgz", + "integrity": "sha512-Sq4CW4QhwOHE8ucn6J34MqtZCeWFP2aQSmrlroYgqAV1PjStIhJXxYuTgUIfkEk7zTLjmIjLmU5q+fbD1NnOJA==", + "dev": true, + "dependencies": { + "performance-now": "^2.1.0" + } + }, + "node_modules/railroad-diagrams": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/railroad-diagrams/-/railroad-diagrams-1.0.0.tgz", + "integrity": "sha512-cz93DjNeLY0idrCNOH6PviZGRN9GJhsdm9hpn1YCS879fj4W+x5IFJhhkRZcwVgMmFF7R82UA/7Oh+R8lLZg6A==", + "dev": true + }, + "node_modules/randexp": { + "version": "0.4.6", + "resolved": "https://registry.npmjs.org/randexp/-/randexp-0.4.6.tgz", + "integrity": "sha512-80WNmd9DA0tmZrw9qQa62GPPWfuXJknrmVmLcxvq4uZBdYqb1wYoKTmnlGUchvVWe0XiLupYkBoXVOxz3C8DYQ==", + "dev": true, + "dependencies": { + "discontinuous-range": "1.0.0", + "ret": "~0.1.10" + }, + "engines": { + "node": ">=0.12" + } + }, + "node_modules/randomatic": { + "version": "3.1.1", + "resolved": "https://registry.npmjs.org/randomatic/-/randomatic-3.1.1.tgz", + "integrity": "sha512-TuDE5KxZ0J461RVjrJZCJc+J+zCkTb1MbH9AQUq68sMhOMcy9jLcb3BrZKgp9q9Ncltdg4QVqWrH02W2EFFVYw==", + "dev": true, + "dependencies": { + "is-number": "^4.0.0", + "kind-of": "^6.0.0", + "math-random": "^1.0.1" + }, + "engines": { + "node": ">= 0.10.0" + } + }, + "node_modules/randomatic/node_modules/is-number": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/is-number/-/is-number-4.0.0.tgz", + "integrity": "sha512-rSklcAIlf1OmFdyAqbnWTLVelsQ58uvZ66S/ZyawjWqIviTWCjg2PzVGw8WUA+nNuPTqb4wgA+NszrJ+08LlgQ==", + "dev": true, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/randomatic/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/randombytes": { + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/randombytes/-/randombytes-2.1.0.tgz", + "integrity": "sha512-vYl3iOX+4CKUWuxGi9Ukhie6fsqXqS9FE2Zaic4tNFD2N2QQaXOMFbuKK4QmDHC0JO6B1Zp41J0LpT0oR68amQ==", + "dependencies": { + "safe-buffer": "^5.1.0" + } + }, + "node_modules/randomfill": { + "version": "1.0.4", + "resolved": "https://registry.npmjs.org/randomfill/-/randomfill-1.0.4.tgz", + "integrity": "sha512-87lcbR8+MhcWcUiQ+9e+Rwx8MyR2P7qnt15ynUlbm3TU/fjbgz4GsvfSUDTemtCCtVCqb4ZcEFlyPNTh9bBTLw==", + "dependencies": { + "randombytes": "^2.0.5", + "safe-buffer": "^5.1.0" + } + }, + "node_modules/range-parser": { + "version": "1.2.1", + "resolved": "https://registry.npmjs.org/range-parser/-/range-parser-1.2.1.tgz", + "integrity": "sha512-Hrgsx+orqoygnmhFbKaHE6c296J+HTAQXoxEF6gNupROmmGJRoyzfG3ccAveqCBrwr/2yxQ5BVd/GTl5agOwSg==", + "dev": true, + "engines": { + "node": ">= 0.6" + } + }, + "node_modules/raw-body": { + "version": "2.5.2", + "resolved": "https://registry.npmjs.org/raw-body/-/raw-body-2.5.2.tgz", + "integrity": "sha512-8zGqypfENjCIqGhgXToC8aB2r7YrBX+AQAfIPs/Mlk+BtPTztOvTS01NRW/3Eh60J+a48lt8qsCzirQ6loCVfA==", + "dev": true, + "dependencies": { + "bytes": "3.1.2", + "http-errors": "2.0.0", + "iconv-lite": "0.4.24", + "unpipe": "1.0.0" + }, + "engines": { + "node": ">= 0.8" + } + }, + "node_modules/raw-body/node_modules/iconv-lite": { + "version": "0.4.24", + "resolved": "https://registry.npmjs.org/iconv-lite/-/iconv-lite-0.4.24.tgz", + "integrity": "sha512-v3MXnZAcvnywkTUEZomIActle7RXXeedOR31wwl7VlyoXO4Qi9arvSenNQWne1TcRwhCL1HwLI21bEqdpj8/rA==", + "dev": true, + "dependencies": { + "safer-buffer": ">= 2.1.2 < 3" + }, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/raw-loader": { + "version": "0.5.1", + "resolved": "https://registry.npmjs.org/raw-loader/-/raw-loader-0.5.1.tgz", + "integrity": "sha512-sf7oGoLuaYAScB4VGr0tzetsYlS8EJH6qnTCfQ/WVEa89hALQ4RQfCKt5xCyPQKPDUbVUAIP1QsxAwfAjlDp7Q==" + }, + "node_modules/react": { + "version": "16.14.0", + "resolved": "https://registry.npmjs.org/react/-/react-16.14.0.tgz", + "integrity": "sha512-0X2CImDkJGApiAlcf0ODKIneSwBPhqJawOa5wCtKbu7ZECrmS26NvtSILynQ66cgkT/RJ4LidJOc3bUESwmU8g==", + "dependencies": { + "loose-envify": "^1.1.0", + "object-assign": "^4.1.1", + "prop-types": "^15.6.2" + }, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/react-contextmenu": { + "version": "2.9.4", + "resolved": "https://registry.npmjs.org/react-contextmenu/-/react-contextmenu-2.9.4.tgz", + "integrity": "sha512-ma4YQw4J7JNv8L8mMVd1NHHbvH3+gaK/rQ6FC5Tft7OCUweKi7PHqHEE0fDF2009FLSGoV5JnjPnTTEyThqaJg==", + "dependencies": { + "classnames": "^2.2.5", + "object-assign": "^4.1.0" + }, + "peerDependencies": { + "prop-types": "^15.0.0", + "react": "^0.14.0 || ^15.0.0 || ^16.0.0", + "react-dom": "^0.14.0 || ^15.0.0 || ^16.0.0" + } + }, + "node_modules/react-dom": { + "version": "16.14.0", + "resolved": "https://registry.npmjs.org/react-dom/-/react-dom-16.14.0.tgz", + "integrity": "sha512-1gCeQXDLoIqMgqD3IO2Ah9bnf0w9kzhwN5q4FGnHZ67hBm9yePzB5JJAIQCc8x3pFnNlwFq4RidZggNAAkzWWw==", + "dependencies": { + "loose-envify": "^1.1.0", + "object-assign": "^4.1.1", + "prop-types": "^15.6.2", + "scheduler": "^0.19.1" + }, + "peerDependencies": { + "react": "^16.14.0" + } + }, + "node_modules/react-draggable": { + "version": "3.0.5", + "resolved": "https://registry.npmjs.org/react-draggable/-/react-draggable-3.0.5.tgz", + "integrity": "sha512-qo76q6+pafyGllbmfc+CgWfOkwY9v3UoJa3jp6xG2vdsRY8uJTN1kqNievLj0uVNjEqCvZ0OFiEBxlAJNj3OTg==", + "dependencies": { + "classnames": "^2.2.5", + "prop-types": "^15.6.0" + } + }, + "node_modules/react-ga": { + "version": "2.5.3", + "resolved": "https://registry.npmjs.org/react-ga/-/react-ga-2.5.3.tgz", + "integrity": "sha512-25wvPv1PVLDLhw1gEYP33h0V2sJHahKMfUCAxhq8JPYmNQwx1fcjJAkJk+WmSqGN93lHLhExDkxy3SQizQnx3A==", + "optionalDependencies": { + "prop-types": "^15.6.0", + "react": "^15.6.2 || ^16.0" + } + }, + "node_modules/react-intl": { + "version": "2.9.0", + "resolved": "https://registry.npmjs.org/react-intl/-/react-intl-2.9.0.tgz", + "integrity": "sha512-27jnDlb/d2A7mSJwrbOBnUgD+rPep+abmoJE511Tf8BnoONIAUehy/U1zZCHGO17mnOwMWxqN4qC0nW11cD6rA==", + "dependencies": { + "hoist-non-react-statics": "^3.3.0", + "intl-format-cache": "^2.0.5", + "intl-messageformat": "^2.1.0", + "intl-relativeformat": "^2.1.0", + "invariant": "^2.1.1" + }, + "peerDependencies": { + "prop-types": "^15.5.4", + "react": "^0.14.9 || ^15.0.0 || ^16.0.0" + } + }, + "node_modules/react-intl-redux": { + "version": "0.7.0", + "resolved": "https://registry.npmjs.org/react-intl-redux/-/react-intl-redux-0.7.0.tgz", + "integrity": "sha512-T7I7Yy1UkvD8rOB1B+SCG63LYJBtBcvGJ8FVJ8g8Yjhm4+rEhKzJuh1MaQBhwKZNlVcHlx4SlKdtkw8urdZdrA==", + "dependencies": { + "prop-types": "^15.6.0" + }, + "peerDependencies": { + "react-intl": "^2.2.2", + "react-redux": "^5.0.1" + } + }, + "node_modules/react-is": { + "version": "16.13.1", + "resolved": "https://registry.npmjs.org/react-is/-/react-is-16.13.1.tgz", + "integrity": "sha512-24e6ynE2H+OKt4kqsOvNd8kBpV65zoxbA4BVsEOB3ARVWQki/DHzaUoC5KuON/BiccDaCCTZBuOcfZs70kR8bQ==" + }, + "node_modules/react-lifecycles-compat": { + "version": "3.0.4", + "resolved": "https://registry.npmjs.org/react-lifecycles-compat/-/react-lifecycles-compat-3.0.4.tgz", + "integrity": "sha512-fBASbA6LnOU9dOU2eW7aQ8xmYBSXUIWr+UmF9b1efZBazGNO+rcXT/icdKnYm2pTwcRylVUYwW7H1PHfLekVzA==" + }, + "node_modules/react-modal": { + "version": "3.9.1", + "resolved": "https://registry.npmjs.org/react-modal/-/react-modal-3.9.1.tgz", + "integrity": "sha512-k+TUkhGWpIVHLsEyjNmlyOYL0Uz03fNZvlkhCImd1h+6fhNgTi6H6jexVXPVhD2LMMDzJyfugxMN+APN/em+eQ==", + "dependencies": { + "exenv": "^1.2.0", + "prop-types": "^15.5.10", + "react-lifecycles-compat": "^3.0.0", + "warning": "^4.0.3" + }, + "peerDependencies": { + "react": "^0.14.0 || ^15.0.0 || ^16", + "react-dom": "^0.14.0 || ^15.0.0 || ^16" + } + }, + "node_modules/react-popover": { + "version": "0.5.10", + "resolved": "https://registry.npmjs.org/react-popover/-/react-popover-0.5.10.tgz", + "integrity": "sha512-5SYDTfncywSH00I70oHd4gFRUR8V0rJ4sRADSI/P6G0RVXp9jUgaWloJ0Bk+SFnjpLPuipTKuzQNNd2CTs5Hrw==", + "dependencies": { + "css-vendor": "^0.3.1", + "debug": "^2.6.8", + "lodash.throttle": "^3.0.3", + "prop-types": "^15.5.10" + } + }, + "node_modules/react-popover/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/react-popover/node_modules/lodash.debounce": { + "version": "3.1.1", + "resolved": "https://registry.npmjs.org/lodash.debounce/-/lodash.debounce-3.1.1.tgz", + "integrity": "sha512-lcmJwMpdPAtChA4hfiwxTtgFeNAaow701wWUgVUqeD0XJF7vMXIN+bu/2FJSGxT0NUbZy9g9VFrlOFfPjl+0Ew==", + "dependencies": { + "lodash._getnative": "^3.0.0" + } + }, + "node_modules/react-popover/node_modules/lodash.throttle": { + "version": "3.0.4", + "resolved": "https://registry.npmjs.org/lodash.throttle/-/lodash.throttle-3.0.4.tgz", + "integrity": "sha512-dRU/xiF4W8a521NYnQosG5drDqv4+hp3ND6yWNJUMnwO1E87Q/A7oc9M/g6pk29K9U3j/ZWhM3BAQZyr/P6TTQ==", + "dependencies": { + "lodash.debounce": "^3.0.0" + } + }, + "node_modules/react-popover/node_modules/ms": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/ms/-/ms-2.0.0.tgz", + "integrity": "sha512-Tpp60P6IUJDTuOq/5Z8cdskzJujfwqfOTkrwIwj7IRISpnkJnT6SyJ4PCPnGMoFjC9ddhal5KVIYtAt97ix05A==" + }, + "node_modules/react-redux": { + "version": "5.0.7", + "resolved": "https://registry.npmjs.org/react-redux/-/react-redux-5.0.7.tgz", + "integrity": "sha512-5VI8EV5hdgNgyjfmWzBbdrqUkrVRKlyTKk1sGH3jzM2M2Mhj/seQgPXaz6gVAj2lz/nz688AdTqMO18Lr24Zhg==", + "dependencies": { + "hoist-non-react-statics": "^2.5.0", + "invariant": "^2.0.0", + "lodash": "^4.17.5", + "lodash-es": "^4.17.5", + "loose-envify": "^1.1.0", + "prop-types": "^15.6.0" + }, + "peerDependencies": { + "react": "^0.14.0 || ^15.0.0-0 || ^16.0.0-0", + "redux": "^2.0.0 || ^3.0.0 || ^4.0.0-0" + } + }, + "node_modules/react-redux/node_modules/hoist-non-react-statics": { + "version": "2.5.5", + "resolved": "https://registry.npmjs.org/hoist-non-react-statics/-/hoist-non-react-statics-2.5.5.tgz", + "integrity": "sha512-rqcy4pJo55FTTLWt+bU8ukscqHeE/e9KWvsOW2b/a3afxQZhwkQdT1rPPCJ0rYXdj4vNcasY8zHTH+jF/qStxw==" + }, + "node_modules/react-responsive": { + "version": "4.1.0", + "resolved": "https://registry.npmjs.org/react-responsive/-/react-responsive-4.1.0.tgz", + "integrity": "sha512-ZuDraf0qsJlyiTwzeva+foHx83IP6SIhru9o7BvMwQ4ZHjRIL5WjdgVNNrKSRbmeWO9rEJoMpabei/5lJn8KaA==", + "dependencies": { + "hyphenate-style-name": "^1.0.0", + "matchmediaquery": "^0.2.1", + "prop-types": "^15.6.1" + }, + "engines": { + "node": ">= 0.10" + }, + "peerDependencies": { + "react": "^16.0.0" + } + }, + "node_modules/react-string-replace": { + "version": "0.4.4", + "resolved": "https://registry.npmjs.org/react-string-replace/-/react-string-replace-0.4.4.tgz", + "integrity": "sha512-FAMkhxmDpCsGTwTZg7p/2v+/GTmxAp73so3fbSvlAcBBX36ujiGRNEaM/1u+jiYQrArhns+7eE92g2pi5E5FUA==", + "dependencies": { + "lodash": "^4.17.4" + }, + "engines": { + "node": ">=0.12.0" + } + }, + "node_modules/react-style-proptype": { + "version": "3.2.2", + "resolved": "https://registry.npmjs.org/react-style-proptype/-/react-style-proptype-3.2.2.tgz", + "integrity": "sha512-ywYLSjNkxKHiZOqNlso9PZByNEY+FTyh3C+7uuziK0xFXu9xzdyfHwg4S9iyiRRoPCR4k2LqaBBsWVmSBwCWYQ==", + "dependencies": { + "prop-types": "^15.5.4" + } + }, + "node_modules/react-tabs": { + "version": "2.3.0", + "resolved": "https://registry.npmjs.org/react-tabs/-/react-tabs-2.3.0.tgz", + "integrity": "sha512-pYaefgVy76/36AMEP+B8YuVVzDHa3C5UFZ3REU78zolk0qMxEhKvUFofvDCXyLZwf0RZjxIfiwok1BEb18nHyA==", + "dependencies": { + "classnames": "^2.2.0", + "prop-types": "^15.5.0" + }, + "peerDependencies": { + "react": "^0.14.9 || ^15.3.0 || ^16.0.0" + } + }, + "node_modules/react-test-renderer": { + "version": "16.2.0", + "resolved": "https://registry.npmjs.org/react-test-renderer/-/react-test-renderer-16.2.0.tgz", + "integrity": "sha512-Kd4gJFtpNziR9ElOE/C23LeflKLZPRpNQYWP3nQBY43SJ5a+xyEGSeMrm2zxNKXcnCbBS/q1UpD9gqd5Dv+rew==", + "dev": true, + "dependencies": { + "fbjs": "^0.8.16", + "object-assign": "^4.1.1", + "prop-types": "^15.6.0" + }, + "peerDependencies": { + "react": "^16.0.0" + } + }, + "node_modules/react-tooltip": { + "version": "3.8.0", + "resolved": "https://registry.npmjs.org/react-tooltip/-/react-tooltip-3.8.0.tgz", + "integrity": "sha512-Uj/vVd0uGuqwTkWeRjKS56T2iwOSvsSMbjqTK7AseHZEMND+WCXXUajaF7+ZsJWTZgnpeT9kBnaBFhchzeDTbw==", + "dependencies": { + "classnames": "^2.2.5", + "prop-types": "^15.6.0" + }, + "engines": { + "node": ">=4.2.1" + }, + "peerDependencies": { + "react": ">=0.14", + "react-dom": ">=0.14" + } + }, + "node_modules/react-virtualized": { + "version": "9.20.1", + "resolved": "https://registry.npmjs.org/react-virtualized/-/react-virtualized-9.20.1.tgz", + "integrity": "sha512-xIWxBsyNAjceqD3hsE0nw5TcDVxKbIepsHhvS2XneHmNz0KlKxdLdGBmGZBM9ZesEmbZ5EO0Sw70TB1MeCmpbQ==", + "dependencies": { + "babel-runtime": "^6.26.0", + "classnames": "^2.2.3", + "dom-helpers": "^2.4.0 || ^3.0.0", + "loose-envify": "^1.3.0", + "prop-types": "^15.6.0", + "react-lifecycles-compat": "^3.0.4" + }, + "peerDependencies": { + "react": "^15.3.0 || ^16.0.0-alpha", + "react-dom": "^15.3.0 || ^16.0.0-alpha" + } + }, + "node_modules/read-cache": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/read-cache/-/read-cache-1.0.0.tgz", + "integrity": "sha512-Owdv/Ft7IjOgm/i0xvNDZ1LrRANRfew4b2prF3OWMQLxLfu3bS8FVhCsrSCMK4lR56Y9ya+AThoTpDCTxCmpRA==", + "dependencies": { + "pify": "^2.3.0" + } + }, + "node_modules/read-cache/node_modules/pify": { + "version": "2.3.0", + "resolved": "https://registry.npmjs.org/pify/-/pify-2.3.0.tgz", + "integrity": "sha512-udgsAY+fTnvv7kI7aaxbqwWNb0AHiB0qBO89PZKPkoTmGOgdbrHDKD+0B2X4uTfJ/FT1R09r9gTsjUjNJotuog==", + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/read-package-json": { + "version": "2.1.2", + "resolved": "https://registry.npmjs.org/read-package-json/-/read-package-json-2.1.2.tgz", + "integrity": "sha512-D1KmuLQr6ZSJS0tW8hf3WGpRlwszJOXZ3E8Yd/DNRaM5d+1wVRZdHlpGBLAuovjr28LbWvjpWkBHMxpRGGjzNA==", + "deprecated": "This package is no longer supported. Please use @npmcli/package-json instead.", + "dependencies": { + "glob": "^7.1.1", + "json-parse-even-better-errors": "^2.3.0", + "normalize-package-data": "^2.0.0", + "npm-normalize-package-bin": "^1.0.0" + } + }, + "node_modules/read-pkg": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/read-pkg/-/read-pkg-3.0.0.tgz", + "integrity": "sha512-BLq/cCO9two+lBgiTYNqD6GdtK8s4NpaWrl6/rCO9w0TUS8oJl7cmToOZfRYllKTISY6nt1U7jQ53brmKqY6BA==", + "dev": true, + "dependencies": { + "load-json-file": "^4.0.0", + "normalize-package-data": "^2.3.2", + "path-type": "^3.0.0" + }, + "engines": { + "node": ">=4" + } + }, + "node_modules/read-pkg-up": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/read-pkg-up/-/read-pkg-up-3.0.0.tgz", + "integrity": "sha512-YFzFrVvpC6frF1sz8psoHDBGF7fLPc+llq/8NB43oagqWkx8ar5zYtsTORtOjw9W2RHLpWP+zTWwBvf1bCmcSw==", + "dev": true, + "dependencies": { + "find-up": "^2.0.0", + "read-pkg": "^3.0.0" + }, + "engines": { + "node": ">=4" + } + }, + "node_modules/read-pkg/node_modules/path-type": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/path-type/-/path-type-3.0.0.tgz", + "integrity": "sha512-T2ZUsdZFHgA3u4e5PfPbjd7HDDpxPnQb5jN0SrDsjNSuVXHJqtwTnWqG0B1jZrgmJ/7lj1EmVIByWt1gxGkWvg==", + "dev": true, + "dependencies": { + "pify": "^3.0.0" + }, + "engines": { + "node": ">=4" + } + }, + "node_modules/read-pkg/node_modules/pify": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/pify/-/pify-3.0.0.tgz", + "integrity": "sha512-C3FsVNH1udSEX48gGX1xfvwTWfsYWj5U+8/uK15BGzIGrKoUpghX8hWZwa/OFnakBiiVNmBvemTJR5mcy7iPcg==", + "dev": true, + "engines": { + "node": ">=4" + } + }, + "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/isarray": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/isarray/-/isarray-1.0.0.tgz", + "integrity": "sha512-VLghIWNM6ELQzo7zwmcg0NmTVyWKYjvIeM83yjp0wRDTmUnrM678fQbcKBo6n2CJEF0szoG//ytg+TKla89ALQ==" + }, + "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/readable-stream/node_modules/string_decoder": { + "version": "1.1.1", + "resolved": "https://registry.npmjs.org/string_decoder/-/string_decoder-1.1.1.tgz", + "integrity": "sha512-n/ShnvDi6FHbbVfviro+WojiFzv+s8MPMHBczVePfUpDJLwoLT0ht1l4YwBCbi8pJAveEEdnkHyPyTP/mzRfwg==", + "dependencies": { + "safe-buffer": "~5.1.0" + } + }, + "node_modules/readdirp": { + "version": "2.2.1", + "resolved": "https://registry.npmjs.org/readdirp/-/readdirp-2.2.1.tgz", + "integrity": "sha512-1JU/8q+VgFZyxwrJ+SVIOsh+KywWGpds3NTqikiKpDMZWScmAYyKIgqkO+ARvNWJfXeXR1zxz7aHF4u4CyH6vQ==", + "devOptional": true, + "dependencies": { + "graceful-fs": "^4.1.11", + "micromatch": "^3.1.10", + "readable-stream": "^2.0.2" + }, + "engines": { + "node": ">=0.10" + } + }, + "node_modules/readline2": { + "version": "0.1.1", + "resolved": "https://registry.npmjs.org/readline2/-/readline2-0.1.1.tgz", + "integrity": "sha512-qs8GGG+hLGMaDOGjd+mDglDoYcHDkjIY7z5RU0/ApsGT0qypyrWskNeemUqD+UxIXiZoMYT5aLwGp4ehoyZhIg==", + "dependencies": { + "mute-stream": "0.0.4", + "strip-ansi": "^2.0.1" + } + }, + "node_modules/readline2/node_modules/ansi-regex": { + "version": "1.1.1", + "resolved": "https://registry.npmjs.org/ansi-regex/-/ansi-regex-1.1.1.tgz", + "integrity": "sha512-q5i8bFLg2wDfsuR56c1NzlJFPzVD+9mxhDrhqOGigEFa87OZHlF+9dWeGWzVTP/0ECiA/JUGzfzRr2t3eYORRw==", + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/readline2/node_modules/mute-stream": { + "version": "0.0.4", + "resolved": "https://registry.npmjs.org/mute-stream/-/mute-stream-0.0.4.tgz", + "integrity": "sha512-amvrY4m/7oZamehMoFi1tbwU/kXbVvRTGM2S7F+PZi3n51Jx+9AcSQ3EQsag3tR+hS2higfgOP/Kl8kri/X52A==" + }, + "node_modules/readline2/node_modules/strip-ansi": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/strip-ansi/-/strip-ansi-2.0.1.tgz", + "integrity": "sha512-2h8q2CP3EeOhDJ+jd932PRMpa3/pOJFGoF22J1U/DNbEK2gSW2DqeF46VjCXsSQXhC+k/l8/gaaRBQKL6hUPfQ==", + "dependencies": { + "ansi-regex": "^1.0.0" + }, + "bin": { + "strip-ansi": "cli.js" + }, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/redux": { + "version": "3.7.2", + "resolved": "https://registry.npmjs.org/redux/-/redux-3.7.2.tgz", + "integrity": "sha512-pNqnf9q1hI5HHZRBkj3bAngGZW/JMCmexDlOxw4XagXY2o1327nHH54LoTjiPJ0gizoqPDRqWyX/00g0hD6w+A==", + "dependencies": { + "lodash": "^4.2.1", + "lodash-es": "^4.2.1", + "loose-envify": "^1.1.0", + "symbol-observable": "^1.0.3" + } + }, + "node_modules/redux-mock-store": { + "version": "1.5.3", + "resolved": "https://registry.npmjs.org/redux-mock-store/-/redux-mock-store-1.5.3.tgz", + "integrity": "sha512-ryhkkb/4D4CUGpAV2ln1GOY/uh51aczjcRz9k2L2bPx/Xja3c5pSGJJPyR25GNVRXtKIExScdAgFdiXp68GmJA==", + "dev": true, + "dependencies": { + "lodash.isplainobject": "^4.0.6" + } + }, + "node_modules/redux-throttle": { + "version": "0.1.1", + "resolved": "https://registry.npmjs.org/redux-throttle/-/redux-throttle-0.1.1.tgz", + "integrity": "sha512-24stzg4+1xtlO8ubP4HKudpBdPsG4qvbn0Z9hv8tz6fM6ZcQJe2dKEwYIqTl8+yPMGgjNKHp1lzTwRqjWCxj/Q==", + "dependencies": { + "lodash.throttle": "4.0.1" + } + }, + "node_modules/reflect.ownkeys": { + "version": "1.1.4", + "resolved": "https://registry.npmjs.org/reflect.ownkeys/-/reflect.ownkeys-1.1.4.tgz", + "integrity": "sha512-iUNmtLgzudssL+qnTUosCmnq3eczlrVd1wXrgx/GhiI/8FvwrTYWtCJ9PNvWIRX+4ftupj2WUfB5mu5s9t6LnA==", + "dev": true, + "dependencies": { + "call-bind": "^1.0.2", + "define-properties": "^1.2.0", + "es-abstract": "^1.22.1", + "es-set-tostringtag": "^2.0.1", + "globalthis": "^1.0.3" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/regenerate": { + "version": "1.4.2", + "resolved": "https://registry.npmjs.org/regenerate/-/regenerate-1.4.2.tgz", + "integrity": "sha512-zrceR/XhGYU/d/opr2EKO7aRHUeiBI8qjtfHqADTwZd6Szfy16la6kqD0MIUs5z5hx6AaKa+PixpPrR289+I0A==", + "dev": true + }, + "node_modules/regenerate-unicode-properties": { + "version": "10.2.0", + "resolved": "https://registry.npmjs.org/regenerate-unicode-properties/-/regenerate-unicode-properties-10.2.0.tgz", + "integrity": "sha512-DqHn3DwbmmPVzeKj9woBadqmXxLvQoQIwu7nopMc72ztvxVmVk2SBhSnx67zuye5TP+lJsb/TBQsjLKhnDf3MA==", + "dev": true, + "dependencies": { + "regenerate": "^1.4.2" + }, + "engines": { + "node": ">=4" + } + }, + "node_modules/regenerator-runtime": { + "version": "0.11.1", + "resolved": "https://registry.npmjs.org/regenerator-runtime/-/regenerator-runtime-0.11.1.tgz", + "integrity": "sha512-MguG95oij0fC3QV3URf4V2SDYGJhJnJGqvIIgdECeODCT98wSWDAJ94SSuVpYQUoTcGUIL6L4yNB7j1DFFHSBg==" + }, + "node_modules/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-cache": { + "version": "0.4.4", + "resolved": "https://registry.npmjs.org/regex-cache/-/regex-cache-0.4.4.tgz", + "integrity": "sha512-nVIZwtCjkC9YgvWkpM55B5rBhBYRZhAaJbgcFYXXsHnbZ9UZI9nnVWYZpBlCqv9ho2eZryPnWrZGsOdPwVWXWQ==", + "dev": true, + "dependencies": { + "is-equal-shallow": "^0.1.3" + }, + "engines": { + "node": ">=0.10.0" + } + }, + "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==", + "dependencies": { + "extend-shallow": "^3.0.2", + "safe-regex": "^1.1.0" + }, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/regex-not/node_modules/extend-shallow": { + "version": "3.0.2", + "resolved": "https://registry.npmjs.org/extend-shallow/-/extend-shallow-3.0.2.tgz", + "integrity": "sha512-BwY5b5Ql4+qZoefgMj2NUmx+tehVTH/Kf4k1ZEtOHNFcm2wSxMRo992l6X3TIgni2eZVTZ85xMOjF31fwZAj6Q==", + "dependencies": { + "assign-symbols": "^1.0.0", + "is-extendable": "^1.0.1" + }, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/regex-not/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==", + "dependencies": { + "is-plain-object": "^2.0.4" + }, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/regexp.prototype.flags": { + "version": "1.5.3", + "resolved": "https://registry.npmjs.org/regexp.prototype.flags/-/regexp.prototype.flags-1.5.3.tgz", + "integrity": "sha512-vqlC04+RQoFalODCbCumG2xIOvapzVMHwsyIGM/SIE8fRhFFsXeH8/QQ+s0T0kDAhKc4k30s73/0ydkHQz6HlQ==", + "dev": true, + "dependencies": { + "call-bind": "^1.0.7", + "define-properties": "^1.2.1", + "es-errors": "^1.3.0", + "set-function-name": "^2.0.2" + }, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/regexpp": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/regexpp/-/regexpp-2.0.1.tgz", + "integrity": "sha512-lv0M6+TkDVniA3aD1Eg0DVpfU/booSu7Eev3TDO/mZKHBfVjgCGTV4t4buppESEYDtkArYFOxTJWv6S5C+iaNw==", + "dev": true, + "engines": { + "node": ">=6.5.0" + } + }, + "node_modules/regexpu-core": { + "version": "6.1.1", + "resolved": "https://registry.npmjs.org/regexpu-core/-/regexpu-core-6.1.1.tgz", + "integrity": "sha512-k67Nb9jvwJcJmVpw0jPttR1/zVfnKf8Km0IPatrU/zJ5XeG3+Slx0xLXs9HByJSzXzrlz5EDvN6yLNMDc2qdnw==", + "dev": true, + "dependencies": { + "regenerate": "^1.4.2", + "regenerate-unicode-properties": "^10.2.0", + "regjsgen": "^0.8.0", + "regjsparser": "^0.11.0", + "unicode-match-property-ecmascript": "^2.0.0", + "unicode-match-property-value-ecmascript": "^2.1.0" + }, + "engines": { + "node": ">=4" + } + }, + "node_modules/regjsgen": { + "version": "0.8.0", + "resolved": "https://registry.npmjs.org/regjsgen/-/regjsgen-0.8.0.tgz", + "integrity": "sha512-RvwtGe3d7LvWiDQXeQw8p5asZUmfU1G/l6WbUXeHta7Y2PEIvBTwH6E2EfmYUK8pxcxEdEmaomqyp0vZZ7C+3Q==", + "dev": true + }, + "node_modules/regjsparser": { + "version": "0.11.2", + "resolved": "https://registry.npmjs.org/regjsparser/-/regjsparser-0.11.2.tgz", + "integrity": "sha512-3OGZZ4HoLJkkAZx/48mTXJNlmqTGOzc0o9OWQPuWpkOlXXPbyN6OafCcoXUnBqE2D3f/T5L+pWc1kdEmnfnRsA==", + "dev": true, + "dependencies": { + "jsesc": "~3.0.2" + }, + "bin": { + "regjsparser": "bin/parser" + } + }, + "node_modules/relateurl": { + "version": "0.2.7", + "resolved": "https://registry.npmjs.org/relateurl/-/relateurl-0.2.7.tgz", + "integrity": "sha512-G08Dxvm4iDN3MLM0EsP62EDV9IuhXPR6blNz6Utcp7zyV3tr4HVNINt6MpaRWbxoOHT3Q7YN2P+jaHX8vUbgog==", + "dev": 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": "sha512-/hS+Y0u3aOfIETiaiirUFwDBDzmXPvO+jAfKTitUngIPzdKc6Z0LoFjM/CK5PL4C+eKwHohlHAb6H0VFfmmUsw==", + "devOptional": true + }, + "node_modules/renderkid": { + "version": "2.0.7", + "resolved": "https://registry.npmjs.org/renderkid/-/renderkid-2.0.7.tgz", + "integrity": "sha512-oCcFyxaMrKsKcTY59qnCAtmDVSLfPbrv6A3tVbPdFMMrv5jaK10V6m40cKsoPNhAqN6rmHW9sswW4o3ruSrwUQ==", + "dev": 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, + "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/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, + "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/domhandler": { + "version": "4.3.1", + "resolved": "https://registry.npmjs.org/domhandler/-/domhandler-4.3.1.tgz", + "integrity": "sha512-GrwoxYN+uWlzO8uhUXRl0P+kHE4GtVPfYzVLcUxPL7KNdHKj66vvlhiweIHqYYXWlw+T8iLMp42Lm67ghw4WMQ==", + "dev": true, + "dependencies": { + "domelementtype": "^2.2.0" + }, + "engines": { + "node": ">= 4" + }, + "funding": { + "url": "https://github.com/fb55/domhandler?sponsor=1" + } + }, + "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, + "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/entities": { + "version": "2.2.0", + "resolved": "https://registry.npmjs.org/entities/-/entities-2.2.0.tgz", + "integrity": "sha512-p92if5Nz619I0w+akJrLZH0MX0Pb5DX39XOwQTtXSdQQOaYH03S1uIQp4mhOZtAXrxq4ViO67YTiLBo2638o9A==", + "dev": true, + "funding": { + "url": "https://github.com/fb55/entities?sponsor=1" + } + }, + "node_modules/renderkid/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" + } + ], + "dependencies": { + "domelementtype": "^2.0.1", + "domhandler": "^4.0.0", + "domutils": "^2.5.2", + "entities": "^2.0.0" + } + }, + "node_modules/repeat-element": { + "version": "1.1.4", + "resolved": "https://registry.npmjs.org/repeat-element/-/repeat-element-1.1.4.tgz", + "integrity": "sha512-LFiNfRcSu7KK3evMyYOuCzv3L10TW7yC1G2/+StMjK8Y6Vqd2MG7r/Qjw4ghtuCOjFvlnms/iMmLqpvW/ES/WQ==", + "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": "sha512-PV0dzCYDNfRi1jCDbJzpW7jNNDRuCOG/jI5ctQcGKt/clZD+YcPS3yIlWuTJMmESC8aevCFmWJy5wjAFgNqN6w==", + "engines": { + "node": ">=0.10" + } + }, + "node_modules/repeating": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/repeating/-/repeating-2.0.1.tgz", + "integrity": "sha512-ZqtSMuVybkISo2OWvqvm7iHSWngvdaW3IpsT9/uP8v4gMi591LY6h35wdOfvQdWCKFWZWm2Y1Opp4kV7vQKT6A==", + "dev": true, + "dependencies": { + "is-finite": "^1.0.0" + }, + "engines": { + "node": ">=0.10.0" + } + }, + "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", + "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/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==", + "dependencies": { + "asynckit": "^0.4.0", + "combined-stream": "^1.0.6", + "mime-types": "^2.1.12" + }, + "engines": { + "node": ">= 0.12" + } + }, + "node_modules/require-directory": { + "version": "2.1.1", + "resolved": "https://registry.npmjs.org/require-directory/-/require-directory-2.1.1.tgz", + "integrity": "sha512-fGxEI7+wsG9xrvdjsrlmL22OMTTiHRwAMroiEeMgq8gzoLC/PQr7RsRDSTLUg/bZAZtF+TVIkHc6/4RIKrui+Q==", + "dev": true, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/require-main-filename": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/require-main-filename/-/require-main-filename-1.0.1.tgz", + "integrity": "sha512-IqSUtOVP4ksd1C/ej5zeEh/BIP2ajqpn8c5x+q99gvcIG/Qf0cud5raVnE/Dwd0ua9TXYDoDc0RE5hBSdz22Ug==", + "dev": true + }, + "node_modules/requires-port": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/requires-port/-/requires-port-1.0.0.tgz", + "integrity": "sha512-KigOCHcocU3XODJxsu8i/j8T9tzT4adHiecwORRQ0ZZFcp7ahwXuRU1m+yuO90C5ZUyGeGfocHDI14M3L3yDAQ==", + "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==", + "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": "sha512-ccu8zQTrzVr954472aUVPLEcB3YpKSYR3cg/3lo1okzobPBM+1INXBbBZlDbnI/hbEocnf8j0QVo43hQKrbchg==", + "dev": true, + "dependencies": { + "resolve-from": "^3.0.0" + }, + "engines": { + "node": ">=4" + } + }, + "node_modules/resolve-cwd/node_modules/resolve-from": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/resolve-from/-/resolve-from-3.0.0.tgz", + "integrity": "sha512-GnlH6vxLymXJNMBo7XP1fJIzBFbdYt49CuTwmB/6N53t+kMPRMFKz783LlQ4tv28XoQfMWinAJX6WCGf2IlaIw==", + "dev": true, + "engines": { + "node": ">=4" + } + }, + "node_modules/resolve-dir": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/resolve-dir/-/resolve-dir-1.0.1.tgz", + "integrity": "sha512-R7uiTjECzvOsWSfdM0QKFNBVFcK27aHOUwdvK53BcW8zqnGdYp0Fbj82cy54+2A4P2tFM22J5kRfe1R+lM/1yg==", + "dev": true, + "dependencies": { + "expand-tilde": "^2.0.0", + "global-modules": "^1.0.0" + }, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/resolve-dir/node_modules/global-modules": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/global-modules/-/global-modules-1.0.0.tgz", + "integrity": "sha512-sKzpEkf11GpOFuw0Zzjzmt4B4UZwjOcG757PPvrfhxcLFbq0wpsgpOqxpxtxFiCG4DtG93M6XRVbF2oGdev7bg==", + "dev": true, + "dependencies": { + "global-prefix": "^1.0.1", + "is-windows": "^1.0.1", + "resolve-dir": "^1.0.0" + }, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/resolve-dir/node_modules/global-prefix": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/global-prefix/-/global-prefix-1.0.2.tgz", + "integrity": "sha512-5lsx1NUDHtSjfg0eHlmYvZKv8/nVqX4ckFbM+FrGcQ+04KWcWFo9P5MxPZYSzUvyzmdTbI7Eix8Q4IbELDqzKg==", + "dev": true, + "dependencies": { + "expand-tilde": "^2.0.2", + "homedir-polyfill": "^1.0.1", + "ini": "^1.3.4", + "is-windows": "^1.0.1", + "which": "^1.2.14" + }, + "engines": { + "node": ">=0.10.0" + } + }, + "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/resolve-url": { + "version": "0.2.1", + "resolved": "https://registry.npmjs.org/resolve-url/-/resolve-url-0.2.1.tgz", + "integrity": "sha512-ZuF55hVUQaaczgOIwqWzkEcEidmlD/xl44x1UZnhOXcYuFN2S6+rcxpG+C1N3So0wvNI3DmJICUFfu2SxhBmvg==", + "deprecated": "https://github.com/lydell/resolve-url#deprecated" + }, + "node_modules/responselike": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/responselike/-/responselike-1.0.2.tgz", + "integrity": "sha512-/Fpe5guzJk1gPqdJLJR5u7eG/gNY4nImjbRDaVWVMRhne55TCmj2i9Q+54PBRfatRC8v/rIiv9BN0pMd9OV5EQ==", + "dependencies": { + "lowercase-keys": "^1.0.0" + } + }, + "node_modules/restore-cursor": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/restore-cursor/-/restore-cursor-2.0.0.tgz", + "integrity": "sha512-6IzJLuGi4+R14vwagDHX+JrXmPVtPpn4mffDJ1UdR7/Edm87fl6yi8mMBIVvFtJaNTUvjughmW4hwLhRG7gC1Q==", + "dev": true, + "dependencies": { + "onetime": "^2.0.0", + "signal-exit": "^3.0.2" + }, + "engines": { + "node": ">=4" + } + }, + "node_modules/ret": { + "version": "0.1.15", + "resolved": "https://registry.npmjs.org/ret/-/ret-0.1.15.tgz", + "integrity": "sha512-TTlYpa+OL+vMMNG24xSlQGEJ3B/RzEfUlLct7b5G/ytav+wPrplCpVMFuwzXbkecJrb6IYo1iFb0S9v37754mg==", + "engines": { + "node": ">=0.12" + } + }, + "node_modules/retry": { + "version": "0.12.0", + "resolved": "https://registry.npmjs.org/retry/-/retry-0.12.0.tgz", + "integrity": "sha512-9LkiTwjUh6rT555DtE9rTX+BKByPfrMzEAtnlEtdEwr3Nkffwiihqe2bWADg+OQRjt9gl6ICdmB/ZFDCGAtSow==", + "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==", + "engines": { + "iojs": ">=1.0.0", + "node": ">=0.10.0" + } + }, + "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", + "dependencies": { + "glob": "^7.1.3" + }, + "bin": { + "rimraf": "bin.js" + } + }, + "node_modules/ripemd160": { + "version": "2.0.2", + "resolved": "https://registry.npmjs.org/ripemd160/-/ripemd160-2.0.2.tgz", + "integrity": "sha512-ii4iagi25WusVoiC4B4lq7pbXfAp3D9v5CwfkY33vffw2+pkDjY1D8GaN7spsxvCSx8dkPqOZCEZyfxcmJG2IA==", + "dependencies": { + "hash-base": "^3.0.0", + "inherits": "^2.0.1" + } + }, + "node_modules/rst-selector-parser": { + "version": "2.2.3", + "resolved": "https://registry.npmjs.org/rst-selector-parser/-/rst-selector-parser-2.2.3.tgz", + "integrity": "sha512-nDG1rZeP6oFTLN6yNDV/uiAvs1+FS/KlrEwh7+y7dpuApDBy6bI2HTBcc0/V8lv9OTqfyD34eF7au2pm8aBbhA==", + "dev": true, + "dependencies": { + "lodash.flattendeep": "^4.4.0", + "nearley": "^2.7.10" + } + }, + "node_modules/rsvp": { + "version": "3.6.2", + "resolved": "https://registry.npmjs.org/rsvp/-/rsvp-3.6.2.tgz", + "integrity": "sha512-OfWGQTb9vnwRjwtA2QwpG2ICclHC3pgXZO5xt8H2EfgDquO0qVdSb5T88L4qJVAEugbS56pAuV4XZM58UX8ulw==", + "dev": true, + "engines": { + "node": "0.12.* || 4.* || 6.* || >= 7.*" + } + }, + "node_modules/run-async": { + "version": "2.4.1", + "resolved": "https://registry.npmjs.org/run-async/-/run-async-2.4.1.tgz", + "integrity": "sha512-tvVnVv01b8c1RrA6Ep7JkStj85Guv/YrMcwqYQnwjsAS2cTmmPGBBjAjpCW7RrSodNSoE2/qg9O4bceNvUuDgQ==", + "dev": true, + "engines": { + "node": ">=0.12.0" + } + }, + "node_modules/run-parallel": { + "version": "1.2.0", + "resolved": "https://registry.npmjs.org/run-parallel/-/run-parallel-1.2.0.tgz", + "integrity": "sha512-5l4VyZR86LZ/lDxZTR6jqL8AFE2S0IFLMP26AbjsLVADxHdhB/c0GUsH+y39UfCi3dzz8OlQuPmnaJOMoDHQBA==", + "funding": [ + { + "type": "github", + "url": "https://github.com/sponsors/feross" + }, + { + "type": "patreon", + "url": "https://www.patreon.com/feross" + }, + { + "type": "consulting", + "url": "https://feross.org/support" + } + ], + "dependencies": { + "queue-microtask": "^1.2.2" + } + }, + "node_modules/run-queue": { + "version": "1.0.3", + "resolved": "https://registry.npmjs.org/run-queue/-/run-queue-1.0.3.tgz", + "integrity": "sha512-ntymy489o0/QQplUDnpYAYUsO50K9SBrIVaKCWDOJzYJts0f9WH9RFJkyagebkw5+y1oi00R7ynNW/d12GBumg==", + "dependencies": { + "aproba": "^1.1.1" + } + }, + "node_modules/rx": { + "version": "2.5.3", + "resolved": "https://registry.npmjs.org/rx/-/rx-2.5.3.tgz", + "integrity": "sha512-u5qvfulb7NXoY/+OE28920WEgFi6aiDjf5iF9rA2f9tBXejLgTLd0WxkclvIQWjFFHfNJlb7pSTsrjgiDh+Uug==" + }, + "node_modules/rxjs": { + "version": "6.6.7", + "resolved": "https://registry.npmjs.org/rxjs/-/rxjs-6.6.7.tgz", + "integrity": "sha512-hTdwr+7yYNIT5n4AMYp85KA6yw2Va0FLa3Rguvbpa4W3I5xynaBZo41cM3XM+4Q6fRMj3sBYIR1VAmZMXYJvRQ==", + "dev": true, + "dependencies": { + "tslib": "^1.9.0" + }, + "engines": { + "npm": ">=2.0.0" + } + }, + "node_modules/rxjs/node_modules/tslib": { + "version": "1.14.1", + "resolved": "https://registry.npmjs.org/tslib/-/tslib-1.14.1.tgz", + "integrity": "sha512-Xni35NKzjgMrwevysHTCArtLDpPvye8zV/0E4EyYn43P7/7qvQwPh9BGkHewbMulVntbigmcT7rdX3BNo9wRJg==", + "dev": true + }, + "node_modules/safe-array-concat": { + "version": "1.1.2", + "resolved": "https://registry.npmjs.org/safe-array-concat/-/safe-array-concat-1.1.2.tgz", + "integrity": "sha512-vj6RsCsWBCf19jIeHEfkRMw8DPiBb+DMXklQ/1SGDHOMlHdPUkZXFQ2YdplS23zESTijAcurb1aSgJA3AgMu1Q==", + "dev": true, + "dependencies": { + "call-bind": "^1.0.7", + "get-intrinsic": "^1.2.4", + "has-symbols": "^1.0.3", + "isarray": "^2.0.5" + }, + "engines": { + "node": ">=0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/safe-buffer": { + "version": "5.2.1", + "resolved": "https://registry.npmjs.org/safe-buffer/-/safe-buffer-5.2.1.tgz", + "integrity": "sha512-rp3So07KcdmmKbGvgaNxQSJr7bGVSVk5S9Eq1F+ppbRo70+YeaDxkw5Dd8NPN+GD6bjnYm2VuPuCXmpuYvmCXQ==", + "funding": [ + { + "type": "github", + "url": "https://github.com/sponsors/feross" + }, + { + "type": "patreon", + "url": "https://www.patreon.com/feross" + }, + { + "type": "consulting", + "url": "https://feross.org/support" + } + ] + }, + "node_modules/safe-regex": { + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/safe-regex/-/safe-regex-1.1.0.tgz", + "integrity": "sha512-aJXcif4xnaNUzvUuC5gcb46oTS7zvg4jpMTnuqtrEPlR3vFr4pxtdTwaF1Qs3Enjn9HK+ZlwQui+a7z0SywIzg==", + "dependencies": { + "ret": "~0.1.10" + } + }, + "node_modules/safe-regex-test": { + "version": "1.0.3", + "resolved": "https://registry.npmjs.org/safe-regex-test/-/safe-regex-test-1.0.3.tgz", + "integrity": "sha512-CdASjNJPvRa7roO6Ra/gLYBTzYzzPyyBXxIMdGW3USQLyjWEls2RgW5UBTXaQVp+OrpeCK3bLem8smtmheoRuw==", + "dev": true, + "dependencies": { + "call-bind": "^1.0.6", + "es-errors": "^1.3.0", + "is-regex": "^1.1.4" + }, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/safer-buffer": { + "version": "2.1.2", + "resolved": "https://registry.npmjs.org/safer-buffer/-/safer-buffer-2.1.2.tgz", + "integrity": "sha512-YZo3K82SD7Riyi0E1EQPojLz7kpepnSQI9IyPbHHg1XXXevb5dJI7tpyN2ADxGcQbHG7vcyRHk0cbwqcQriUtg==" + }, + "node_modules/sane": { + "version": "2.5.2", + "resolved": "https://registry.npmjs.org/sane/-/sane-2.5.2.tgz", + "integrity": "sha512-OuZwD1QJ2R9Dbnhd7Ur8zzD8l+oADp9npyxK63Q9nZ4AjhB2QwDQcQlD8iuUsGm5AZZqtEuCaJvK1rxGRxyQ1Q==", + "deprecated": "some dependency vulnerabilities fixed, support for node < 10 dropped, and newer ECMAScript syntax/features added", + "dev": true, + "dependencies": { + "anymatch": "^2.0.0", + "capture-exit": "^1.2.0", + "exec-sh": "^0.2.0", + "fb-watchman": "^2.0.0", + "micromatch": "^3.1.4", + "minimist": "^1.1.1", + "walker": "~1.0.5", + "watch": "~0.18.0" + }, + "bin": { + "sane": "src/cli.js" + }, + "engines": { + "node": ">=0.6.0" + }, + "optionalDependencies": { + "fsevents": "^1.2.3" + } + }, + "node_modules/sane/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": "Upgrade to fsevents v2 to mitigate potential security issues", + "dev": true, + "hasInstallScript": true, + "optional": true, + "os": [ + "darwin" + ], + "dependencies": { + "bindings": "^1.5.0", + "nan": "^2.12.1" + }, + "engines": { + "node": ">= 4.0" + } + }, + "node_modules/sax": { + "version": "1.4.1", + "resolved": "https://registry.npmjs.org/sax/-/sax-1.4.1.tgz", + "integrity": "sha512-+aWOz7yVScEGoKNd4PA10LZ8sk0A/z5+nXQG5giUO5rprX9jgYsTdov9qCchZiPIZezbZH+jRut8nPodFAX4Jg==", + "dev": true + }, + "node_modules/scheduler": { + "version": "0.19.1", + "resolved": "https://registry.npmjs.org/scheduler/-/scheduler-0.19.1.tgz", + "integrity": "sha512-n/zwRWRYSUj0/3g/otKDRPMh6qv2SYMWNq85IEa8iZyAv8od9zDYpGSnpBEjNgcMNq6Scbu5KfIPxNF72R/2EA==", + "dependencies": { + "loose-envify": "^1.1.0", + "object-assign": "^4.1.1" + } + }, + "node_modules/schema-utils": { + "version": "2.7.1", + "resolved": "https://registry.npmjs.org/schema-utils/-/schema-utils-2.7.1.tgz", + "integrity": "sha512-SHiNtMOUGWBQJwzISiVYKu82GiV4QYGePp3odlY1tuKO7gPtphAT5R/py0fA6xtbgLL/RvtJZnU9b8s0F1q0Xg==", + "dependencies": { + "@types/json-schema": "^7.0.5", + "ajv": "^6.12.4", + "ajv-keywords": "^3.5.2" + }, + "engines": { + "node": ">= 8.9.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/webpack" + } + }, + "node_modules/scratch-audio": { + "version": "0.1.0", + "resolved": "git+ssh://git@github.com/PenguinMod/PenguinMod-Audio.git#0a3f4d98866e5d92fd459d94e5d5c8490de0e66f", + "license": "BSD-3-Clause", + "dependencies": { + "audio-context": "1.0.1", + "minilog": "^3.0.1", + "startaudiocontext": "1.2.1" + } + }, + "node_modules/scratch-blocks": { + "version": "0.1.0", + "resolved": "git+ssh://git@github.com/PenguinMod/PenguinMod-Blocks.git#71a154c4f297e477b92c37de36a0e8f20a105b52", + "license": "GPL-3.0" + }, + "node_modules/scratch-paint": { + "version": "0.2.0", + "resolved": "git+ssh://git@github.com/PenguinMod/PenguinMod-Paint.git#c111ab372e9ce1ac41dd75f237f9b68107009743", + "license": "GPL-3.0", + "dependencies": { + "@turbowarp/paper": "^0.12.202407262155", + "classnames": "2.2.5", + "keymirror": "0.1.1", + "lodash.bindall": "4.4.0", + "lodash.omit": "4.5.0", + "minilog": "3.1.0", + "parse-color": "1.0.0", + "prop-types": "^15.5.10" + }, + "peerDependencies": { + "react": "^16", + "react-dom": "^16", + "react-intl": "^2", + "react-intl-redux": "^0.7", + "react-popover": "^0.5", + "react-redux": "^5", + "react-responsive": "^4", + "react-style-proptype": "^3", + "react-tooltip": "^3", + "redux": "^3", + "scratch-render-fonts": "https://github.com/PenguinMod/penguinmod-render-fonts.git" + } + }, + "node_modules/scratch-paint/node_modules/classnames": { + "version": "2.2.5", + "resolved": "https://registry.npmjs.org/classnames/-/classnames-2.2.5.tgz", + "integrity": "sha512-DTt3GhOUDKhh4ONwIJW4lmhyotQmV2LjNlGK/J2hkwUcqcbKkCLAdJPtxQnxnlc7SR3f1CEXCyMmc7WLUsWbNA==" + }, + "node_modules/scratch-parser": { + "version": "0.0.0-development", + "resolved": "git+ssh://git@github.com/PenguinMod/PenguinMod-Parser.git#ee95974b0810ed84a80b3db6163b83098352d721", + "license": "BSD-3-Clause", + "dependencies": { + "@turbowarp/json": "^0.1.1", + "ajv": "6.3.0", + "jszip": "3.1.5", + "pify": "4.0.1" + }, + "engines": { + "node": ">=8.0" + } + }, + "node_modules/scratch-parser/node_modules/ajv": { + "version": "6.3.0", + "resolved": "https://registry.npmjs.org/ajv/-/ajv-6.3.0.tgz", + "integrity": "sha512-6TQywaGYtRub2fqHkSXfVANlhfja2nbF33wCCHnt3aQstOrtd9jsQGiRUTIOlkEqcxpzRd2akfnqvBBPmLxs8g==", + "dependencies": { + "fast-deep-equal": "^1.0.0", + "fast-json-stable-stringify": "^2.0.0", + "json-schema-traverse": "^0.3.0" + } + }, + "node_modules/scratch-parser/node_modules/core-js": { + "version": "2.3.0", + "resolved": "https://registry.npmjs.org/core-js/-/core-js-2.3.0.tgz", + "integrity": "sha512-N41UFUZNqoTSGUSyL7kiStAkH31Hxq197A4Gp9MxTZfAd52pXod7VM7kWiRP0J0YpQDeaE4SLsb+2OGgtgvUEw==", + "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." + }, + "node_modules/scratch-parser/node_modules/fast-deep-equal": { + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/fast-deep-equal/-/fast-deep-equal-1.1.0.tgz", + "integrity": "sha512-fueX787WZKCV0Is4/T2cyAdM4+x1S3MXXOAhavE1ys/W42SHAPacLTQhucja22QBYrfGw50M2sRiXPtTGv9Ymw==" + }, + "node_modules/scratch-parser/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/scratch-parser/node_modules/json-schema-traverse": { + "version": "0.3.1", + "resolved": "https://registry.npmjs.org/json-schema-traverse/-/json-schema-traverse-0.3.1.tgz", + "integrity": "sha512-4JD/Ivzg7PoW8NzdrBSr3UFwC9mHgvI7Z6z3QGBsSHgKaRTUDmyZAAKJo2UbG1kUVfS9WS8bi36N49U1xw43DA==" + }, + "node_modules/scratch-parser/node_modules/jszip": { + "version": "3.1.5", + "resolved": "https://registry.npmjs.org/jszip/-/jszip-3.1.5.tgz", + "integrity": "sha512-5W8NUaFRFRqTOL7ZDDrx5qWHJyBXy6velVudIzQUSoqAAYqzSh2Z7/m0Rf1QbmQJccegD0r+YZxBjzqoBiEeJQ==", + "dependencies": { + "core-js": "~2.3.0", + "es6-promise": "~3.0.2", + "lie": "~3.1.0", + "pako": "~1.0.2", + "readable-stream": "~2.0.6" + } + }, + "node_modules/scratch-parser/node_modules/process-nextick-args": { + "version": "1.0.7", + "resolved": "https://registry.npmjs.org/process-nextick-args/-/process-nextick-args-1.0.7.tgz", + "integrity": "sha512-yN0WQmuCX63LP/TMvAg31nvT6m4vDqJEiiv2CAZqWOGNWutc9DfDk1NPYYmKUFmaVM2UwDowH4u5AHWYP/jxKw==" + }, + "node_modules/scratch-parser/node_modules/readable-stream": { + "version": "2.0.6", + "resolved": "https://registry.npmjs.org/readable-stream/-/readable-stream-2.0.6.tgz", + "integrity": "sha512-TXcFfb63BQe1+ySzsHZI/5v1aJPCShfqvWJ64ayNImXMsN1Cd0YGk/wm8KB7/OeessgPc9QvS9Zou8QTkFzsLw==", + "dependencies": { + "core-util-is": "~1.0.0", + "inherits": "~2.0.1", + "isarray": "~1.0.0", + "process-nextick-args": "~1.0.6", + "string_decoder": "~0.10.x", + "util-deprecate": "~1.0.1" + } + }, + "node_modules/scratch-parser/node_modules/string_decoder": { + "version": "0.10.31", + "resolved": "https://registry.npmjs.org/string_decoder/-/string_decoder-0.10.31.tgz", + "integrity": "sha512-ev2QzSzWPYmy9GuqfIVildA4OdcGLeFZQrq5ys6RtiuF+RQQiZWr8TZNyAcuVXyQRYfEO+MsoB/1BuQVhOJuoQ==" + }, + "node_modules/scratch-render": { + "version": "0.1.0", + "resolved": "git+ssh://git@github.com/PenguinMod/PenguinMod-Render.git#74c271afe22de5a03ce30de47acdfa9966365f1e", + "license": "BSD-3-Clause", + "dependencies": { + "grapheme-breaker": "0.3.2", + "hull.js": "0.2.10", + "ify-loader": "1.0.4", + "linebreak": "0.3.0", + "minilog": "3.1.0", + "raw-loader": "^0.5.1", + "scratch-svg-renderer": "git+https://github.com/TurboWarp/scratch-svg-renderer.git", + "twgl.js": "4.4.0" + }, + "peerDependencies": { + "scratch-render-fonts": "github:PenguinMod/penguinmod-render-fonts#master" + } + }, + "node_modules/scratch-render-fonts": { + "version": "1.0.0", + "resolved": "git+ssh://git@github.com/PenguinMod/penguinmod-render-fonts.git#615e0cd0fad735c407a8c61566c900946cf2bfb9", + "dependencies": { + "base64-loader": "1.0.0" + } + }, + "node_modules/scratch-sb1-converter": { + "version": "0.2.7", + "resolved": "https://registry.npmjs.org/scratch-sb1-converter/-/scratch-sb1-converter-0.2.7.tgz", + "integrity": "sha512-MF1NzmRLbgCiq7wiSTuk2C9rQC8uM5Wj7SaYsn1SEMWNK9rtK0uc3LSm8FnEt14QS/1Icx2YgMsUPKR0HaPDdQ==", + "dependencies": { + "js-md5": "0.7.3", + "minilog": "3.1.0", + "text-encoding": "^0.7.0" + } + }, + "node_modules/scratch-storage": { + "version": "0.0.0-development", + "resolved": "git+ssh://git@github.com/PenguinMod/PenguinMod-Storage.git#96f45f701dc11648bc88fcc5307193d591afea84", + "license": "BSD-3-Clause", + "dependencies": { + "arraybuffer-loader": "^1.0.3", + "base64-js": "1.3.0", + "fastestsmallesttextencoderdecoder": "^1.0.7", + "js-md5": "0.7.3", + "minilog": "3.1.0", + "worker-loader": "^2.0.0" + } + }, + "node_modules/scratch-storage/node_modules/base64-js": { + "version": "1.3.0", + "resolved": "https://registry.npmjs.org/base64-js/-/base64-js-1.3.0.tgz", + "integrity": "sha512-ccav/yGvoa80BQDljCxsmmQ3Xvx60/UpBIij5QN21W3wBi/hhIC9OoO+KLpu9IJTS9j4DRVJ3aDDF9cMSoa2lw==" + }, + "node_modules/scratch-svg-renderer": { + "name": "@turbowarp/scratch-svg-renderer", + "version": "1.0.0", + "resolved": "git+ssh://git@github.com/TurboWarp/scratch-svg-renderer.git#c6fbe0206ea0705aabbd0315426c952024492fac", + "license": "MPL-2.0", + "dependencies": { + "@turbowarp/nanolog": "^0.2.0", + "base64-js": "1.2.1", + "base64-loader": "1.0.0", + "css-tree": "1.1.3", + "dompurify": "^2.5.6", + "fastestsmallesttextencoderdecoder": "^1.0.22", + "transformation-matrix": "1.15.0" + }, + "peerDependencies": { + "scratch-render-fonts": "github:TurboWarp/scratch-render-fonts#master" + } + }, + "node_modules/scratch-svg-renderer/node_modules/base64-js": { + "version": "1.2.1", + "resolved": "https://registry.npmjs.org/base64-js/-/base64-js-1.2.1.tgz", + "integrity": "sha512-dwVUVIXsBZXwTuwnXI9RK8sBmgq09NDHzyR9SAph9eqk76gKK2JSQmZARC2zRC81JC2QTtxD0ARU5qTS25gIGw==" + }, + "node_modules/scratch-translate-extension-languages": { + "version": "0.0.20191118205314", + "resolved": "https://registry.npmjs.org/scratch-translate-extension-languages/-/scratch-translate-extension-languages-0.0.20191118205314.tgz", + "integrity": "sha512-r0lvpgQjPMjbhI2wROrgoXzBhCvWJdkbAqJMfl2CdNqrwBpUXqLvNNtI3VtNLPJAcp9VfxEylkU9lVZ0gvU46Q==" + }, + "node_modules/scratch-vm": { + "version": "0.2.0", + "resolved": "git+ssh://git@github.com/PenguinMod/PenguinMod-Vm.git#17b9952376cf2b4e4924a5604517ee40ea0875ec", + "license": "BSD-3-Clause", + "dependencies": { + "@turbowarp/json": "^0.1.2", + "@vernier/godirect": "1.5.0", + "arraybuffer-loader": "^1.0.6", + "atob": "2.1.2", + "btoa": "1.2.1", + "cannon-es": "0.20.0", + "canvas-toBlob": "1.0.0", + "decode-html": "2.0.0", + "diff-match-patch": "1.0.4", + "dompurify": "^3.0.9", + "format-message": "6.2.1", + "htmlparser2": "^3.10.0", + "immutable": "3.8.2", + "jszip": "^3.1.5", + "lz-string": "^1.5.0", + "mathjs": "11.11.1", + "mersenne-twister": "^1.1.0", + "minilog": "3.1.0", + "pathfinding": "^0.4.18", + "schema-utils": "^2.7.1", + "scratch-parser": "git+https://github.com/PenguinMod/PenguinMod-Parser.git#master", + "scratch-sb1-converter": "0.2.7", + "scratch-translate-extension-languages": "0.0.20191118205314", + "simplex-noise": "^4.0.1", + "text-encoding": "0.7.0", + "three": "0.153.0", + "three-mesh-bvh": "0.6.0", + "tone": "^14.7.77", + "worker-loader": "^1.1.1" + }, + "peerDependencies": { + "scratch-svg-renderer": "^0.2.0-prerelease" + } + }, + "node_modules/scratch-vm/node_modules/dom-serializer": { + "version": "0.2.2", + "resolved": "https://registry.npmjs.org/dom-serializer/-/dom-serializer-0.2.2.tgz", + "integrity": "sha512-2/xPb3ORsQ42nHYiSunXkDjPLBaEj/xTwUO4B7XCZQTRk7EBtTOPaygh10YAAh2OI1Qrp6NWfpAhzswj0ydt9g==", + "dependencies": { + "domelementtype": "^2.0.1", + "entities": "^2.0.0" + } + }, + "node_modules/scratch-vm/node_modules/dom-serializer/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/scratch-vm/node_modules/dom-serializer/node_modules/entities": { + "version": "2.2.0", + "resolved": "https://registry.npmjs.org/entities/-/entities-2.2.0.tgz", + "integrity": "sha512-p92if5Nz619I0w+akJrLZH0MX0Pb5DX39XOwQTtXSdQQOaYH03S1uIQp4mhOZtAXrxq4ViO67YTiLBo2638o9A==", + "funding": { + "url": "https://github.com/fb55/entities?sponsor=1" + } + }, + "node_modules/scratch-vm/node_modules/domelementtype": { + "version": "1.3.1", + "resolved": "https://registry.npmjs.org/domelementtype/-/domelementtype-1.3.1.tgz", + "integrity": "sha512-BSKB+TSpMpFI/HOxCNr1O8aMOTZ8hT3pM3GQ0w/mWRmkhEDSFJkkyzz4XQsBV44BChwGkrDfMyjVD0eA2aFV3w==" + }, + "node_modules/scratch-vm/node_modules/domhandler": { + "version": "2.4.2", + "resolved": "https://registry.npmjs.org/domhandler/-/domhandler-2.4.2.tgz", + "integrity": "sha512-JiK04h0Ht5u/80fdLMCEmV4zkNh2BcoMFBmZ/91WtYZ8qVXSKjiw7fXMgFPnHcSZgOo3XdinHvmnDUeMf5R4wA==", + "dependencies": { + "domelementtype": "1" + } + }, + "node_modules/scratch-vm/node_modules/dompurify": { + "version": "3.2.0", + "resolved": "https://registry.npmjs.org/dompurify/-/dompurify-3.2.0.tgz", + "integrity": "sha512-AMdOzK44oFWqHEi0wpOqix/fUNY707OmoeFDnbi3Q5I8uOpy21ufUA5cDJPr0bosxrflOVD/H2DMSvuGKJGfmQ==" + }, + "node_modules/scratch-vm/node_modules/domutils": { + "version": "1.7.0", + "resolved": "https://registry.npmjs.org/domutils/-/domutils-1.7.0.tgz", + "integrity": "sha512-Lgd2XcJ/NjEw+7tFvfKxOzCYKZsdct5lczQ2ZaQY8Djz7pfAD3Gbp8ySJWtreII/vDlMVmxwa6pHmdxIYgttDg==", + "dependencies": { + "dom-serializer": "0", + "domelementtype": "1" + } + }, + "node_modules/scratch-vm/node_modules/entities": { + "version": "1.1.2", + "resolved": "https://registry.npmjs.org/entities/-/entities-1.1.2.tgz", + "integrity": "sha512-f2LZMYl1Fzu7YSBKg+RoROelpOaNrcGmE9AZubeDfrCEia483oW4MI4VyFd5VNHIgQ/7qm1I0wUHK1eJnn2y2w==" + }, + "node_modules/scratch-vm/node_modules/htmlparser2": { + "version": "3.10.1", + "resolved": "https://registry.npmjs.org/htmlparser2/-/htmlparser2-3.10.1.tgz", + "integrity": "sha512-IgieNijUMbkDovyoKObU1DUhm1iwNYE/fuifEoEHfd1oZKZDaONBSkal7Y01shxsM49R4XaMdGez3WnF9UfiCQ==", + "dependencies": { + "domelementtype": "^1.3.1", + "domhandler": "^2.3.0", + "domutils": "^1.5.1", + "entities": "^1.1.1", + "inherits": "^2.0.1", + "readable-stream": "^3.1.1" + } + }, + "node_modules/scratch-vm/node_modules/readable-stream": { + "version": "3.6.2", + "resolved": "https://registry.npmjs.org/readable-stream/-/readable-stream-3.6.2.tgz", + "integrity": "sha512-9u/sniCrY3D5WdsERHzHE4G2YCXqoG5FTHUiCC4SIbr6XcLZBY05ya9EKjYek9O5xOAwjGq+1JdGBAS7Q9ScoA==", + "dependencies": { + "inherits": "^2.0.3", + "string_decoder": "^1.1.1", + "util-deprecate": "^1.0.1" + }, + "engines": { + "node": ">= 6" + } + }, + "node_modules/scratch-vm/node_modules/worker-loader": { + "version": "1.1.1", + "resolved": "https://registry.npmjs.org/worker-loader/-/worker-loader-1.1.1.tgz", + "integrity": "sha512-qJZLVS/jMCBITDzPo/RuweYSIG8VJP5P67mP/71alGyTZRe1LYJFdwLjLalY3T5ifx0bMDRD3OB6P2p1escvlg==", + "dependencies": { + "loader-utils": "^1.0.0", + "schema-utils": "^0.4.0" + }, + "engines": { + "node": ">= 4.8 < 5.0.0 || >= 5.10" + }, + "peerDependencies": { + "webpack": "^2.0.0 || ^3.0.0 || ^4.0.0" + } + }, + "node_modules/scratch-vm/node_modules/worker-loader/node_modules/schema-utils": { + "version": "0.4.7", + "resolved": "https://registry.npmjs.org/schema-utils/-/schema-utils-0.4.7.tgz", + "integrity": "sha512-v/iwU6wvwGK8HbU9yi3/nhGzP0yGSuhQMzL6ySiec1FSrZZDkhm4noOSWzrNFo/jEc+SJY6jRTwuwbSXJPDUnQ==", + "dependencies": { + "ajv": "^6.1.0", + "ajv-keywords": "^3.1.0" + }, + "engines": { + "node": ">= 4" + } + }, + "node_modules/seedrandom": { + "version": "3.0.5", + "resolved": "https://registry.npmjs.org/seedrandom/-/seedrandom-3.0.5.tgz", + "integrity": "sha512-8OwmbklUNzwezjGInmZ+2clQmExQPvomqjL7LFqOYqtmuxRgQYqOD3mHaU+MvZn5FLUeVxVfQjwLZW/n/JFuqg==" + }, + "node_modules/seek-bzip": { + "version": "1.0.6", + "resolved": "https://registry.npmjs.org/seek-bzip/-/seek-bzip-1.0.6.tgz", + "integrity": "sha512-e1QtP3YL5tWww8uKaOCQ18UxIT2laNBXHjV/S2WYCiK4udiv8lkG89KRIoCjUagnAmCBurjF4zEVX2ByBbnCjQ==", + "dependencies": { + "commander": "^2.8.1" + }, + "bin": { + "seek-bunzip": "bin/seek-bunzip", + "seek-table": "bin/seek-bzip-table" + } + }, + "node_modules/seek-bzip/node_modules/commander": { + "version": "2.20.3", + "resolved": "https://registry.npmjs.org/commander/-/commander-2.20.3.tgz", + "integrity": "sha512-GpVkmM8vF2vQUkj2LvZmD35JxeJOLCwJ9cUkugyk2nuhbv3+mJvpLYYt+0+USMxE+oj+ey/lJEnhZw75x/OMcQ==" + }, + "node_modules/select-hose": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/select-hose/-/select-hose-2.0.0.tgz", + "integrity": "sha512-mEugaLK+YfkijB4fx0e6kImuJdCIt2LxCRcbEYPqRGCs4F2ogyfZU5IAZRdjCP8JPq2AtdNoC/Dux63d9Kiryg==", + "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/tmp": { + "version": "0.0.30", + "resolved": "https://registry.npmjs.org/tmp/-/tmp-0.0.30.tgz", + "integrity": "sha512-HXdTB7lvMwcb55XFfrTM8CPr/IYREk4hVBFaQ4b/6nInrluSL86hfHm7vu0luYKCfyBZp2trCjpc8caC3vVM3w==", + "dev": true, + "dependencies": { + "os-tmpdir": "~1.0.1" + }, + "engines": { + "node": ">=0.4.0" + } + }, + "node_modules/selfsigned": { + "version": "1.10.14", + "resolved": "https://registry.npmjs.org/selfsigned/-/selfsigned-1.10.14.tgz", + "integrity": "sha512-lkjaiAye+wBZDCBsu5BGi0XiLRxeUlsGod5ZP924CRSEoGuZAw/f7y9RKu28rwTfiHVhdavhB0qH0INV6P1lEA==", + "dev": true, + "dependencies": { + "node-forge": "^0.10.0" + } + }, + "node_modules/semver": { + "version": "6.3.1", + "resolved": "https://registry.npmjs.org/semver/-/semver-6.3.1.tgz", + "integrity": "sha512-BR7VvDCVHO+q2xBEWskxS6DJE1qRnb7DxzUrogb71CWoSficBxYsiAGd+Kl0mmq/MprG9yArRkyrQxTO6XjMzA==", + "bin": { + "semver": "bin/semver.js" + } + }, + "node_modules/send": { + "version": "0.19.0", + "resolved": "https://registry.npmjs.org/send/-/send-0.19.0.tgz", + "integrity": "sha512-dW41u5VfLXu8SJh5bwRmyYUbAoSB3c9uQh6L8h/KtsFREPWpbX1lrljJo186Jc4nmci/sGUZ9a0a0J2zgfq2hw==", + "dev": true, + "dependencies": { + "debug": "2.6.9", + "depd": "2.0.0", + "destroy": "1.2.0", + "encodeurl": "~1.0.2", + "escape-html": "~1.0.3", + "etag": "~1.8.1", + "fresh": "0.5.2", + "http-errors": "2.0.0", + "mime": "1.6.0", + "ms": "2.1.3", + "on-finished": "2.4.1", + "range-parser": "~1.2.1", + "statuses": "2.0.1" + }, + "engines": { + "node": ">= 0.8.0" + } + }, + "node_modules/send/node_modules/debug": { + "version": "2.6.9", + "resolved": "https://registry.npmjs.org/debug/-/debug-2.6.9.tgz", + "integrity": "sha512-bC7ElrdJaJnPbAP+1EotYvqZsb3ecl5wi6Bfi6BJTUcNowp6cvspg0jXznRTKDjm/E7AdgFBVeAPVMNcKGsHMA==", + "dev": true, + "dependencies": { + "ms": "2.0.0" + } + }, + "node_modules/send/node_modules/debug/node_modules/ms": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/ms/-/ms-2.0.0.tgz", + "integrity": "sha512-Tpp60P6IUJDTuOq/5Z8cdskzJujfwqfOTkrwIwj7IRISpnkJnT6SyJ4PCPnGMoFjC9ddhal5KVIYtAt97ix05A==", + "dev": true + }, + "node_modules/send/node_modules/encodeurl": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/encodeurl/-/encodeurl-1.0.2.tgz", + "integrity": "sha512-TPJXq8JqFaVYm2CWmPvnP2Iyo4ZSM7/QKcSmuMLDObfpH5fi7RUGmd/rTDf+rut/saiDiQEeVTNgAmJEdAOx0w==", + "dev": true, + "engines": { + "node": ">= 0.8" + } + }, + "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==", + "dependencies": { + "randombytes": "^2.1.0" + } + }, + "node_modules/serve-index": { + "version": "1.9.1", + "resolved": "https://registry.npmjs.org/serve-index/-/serve-index-1.9.1.tgz", + "integrity": "sha512-pXHfKNP4qujrtteMrSBb0rc8HJ9Ms/GrXwcUtUtD5s4ewDJI8bT3Cz2zTVRMKtri49pLx2e0Ya8ziP5Ya2pZZw==", + "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/depd": { + "version": "1.1.2", + "resolved": "https://registry.npmjs.org/depd/-/depd-1.1.2.tgz", + "integrity": "sha512-7emPTl6Dpo6JRXOXjLRxck+FlLRX5847cLKEn00PLAgc3g2hTZZgr+e4c2v6QpSmLeFP3n5yUo7ft6avBK/5jQ==", + "dev": true, + "engines": { + "node": ">= 0.6" + } + }, + "node_modules/serve-index/node_modules/http-errors": { + "version": "1.6.3", + "resolved": "https://registry.npmjs.org/http-errors/-/http-errors-1.6.3.tgz", + "integrity": "sha512-lks+lVC8dgGyh97jxvxeYTWQFvh4uw4yC12gVl63Cg30sjPX4wuGcdkICVXDAESr6OJGjqGA8Iz5mkeN6zlD7A==", + "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": "sha512-x00IRNXNy63jwGkJmzPigoySHbaqpNuzKbBOmzK+g2OdZpQ9w+sxCN+VSB3ja7IAge2OP2qpfxTjeNcyjmW1uw==", + "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": "sha512-Tpp60P6IUJDTuOq/5Z8cdskzJujfwqfOTkrwIwj7IRISpnkJnT6SyJ4PCPnGMoFjC9ddhal5KVIYtAt97ix05A==", + "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-index/node_modules/statuses": { + "version": "1.5.0", + "resolved": "https://registry.npmjs.org/statuses/-/statuses-1.5.0.tgz", + "integrity": "sha512-OpZ3zP+jT1PI7I8nemJX4AKmAX070ZkYPVWV/AaKTJl+tXCTGyVdC1a4SL8RUQYEwk/f34ZX8UTykN68FwrqAA==", + "dev": true, + "engines": { + "node": ">= 0.6" + } + }, + "node_modules/serve-static": { + "version": "1.16.2", + "resolved": "https://registry.npmjs.org/serve-static/-/serve-static-1.16.2.tgz", + "integrity": "sha512-VqpjJZKadQB/PEbEwvFdO43Ax5dFBZ2UECszz8bQ7pi7wt//PWe1P6MN7eCnjsatYtBT6EuiClbjSWP2WrIoTw==", + "dev": true, + "dependencies": { + "encodeurl": "~2.0.0", + "escape-html": "~1.0.3", + "parseurl": "~1.3.3", + "send": "0.19.0" + }, + "engines": { + "node": ">= 0.8.0" + } + }, + "node_modules/set-blocking": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/set-blocking/-/set-blocking-2.0.0.tgz", + "integrity": "sha512-KiKBS8AnWGEyLzofFfmvKwpdPzqiy16LvQfK3yv/fVH7Bj13/wl3JSR1J+rfgRE9q7xUJK4qvgS8raSOeLUehw==", + "dev": true + }, + "node_modules/set-function-length": { + "version": "1.2.2", + "resolved": "https://registry.npmjs.org/set-function-length/-/set-function-length-1.2.2.tgz", + "integrity": "sha512-pgRc4hJ4/sNjWCSS9AmnS40x3bNMDTknHgL5UaMBTMyJnU90EgWh1Rz+MC9eFu4BuN/UwZjKQuY/1v3rM7HMfg==", + "dependencies": { + "define-data-property": "^1.1.4", + "es-errors": "^1.3.0", + "function-bind": "^1.1.2", + "get-intrinsic": "^1.2.4", + "gopd": "^1.0.1", + "has-property-descriptors": "^1.0.2" + }, + "engines": { + "node": ">= 0.4" + } + }, + "node_modules/set-function-name": { + "version": "2.0.2", + "resolved": "https://registry.npmjs.org/set-function-name/-/set-function-name-2.0.2.tgz", + "integrity": "sha512-7PGFlmtwsEADb0WYyvCMa1t+yke6daIG4Wirafur5kcf+MhUnPms1UeR0CKQdTZD81yESwMHbtn+TR+dMviakQ==", + "dev": true, + "dependencies": { + "define-data-property": "^1.1.4", + "es-errors": "^1.3.0", + "functions-have-names": "^1.2.3", + "has-property-descriptors": "^1.0.2" + }, + "engines": { + "node": ">= 0.4" + } + }, + "node_modules/set-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==", + "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/setimmediate": { + "version": "1.0.5", + "resolved": "https://registry.npmjs.org/setimmediate/-/setimmediate-1.0.5.tgz", + "integrity": "sha512-MATJdZp8sLqDl/68LfQmbP8zKPLQNV6BIZoIgrscFDQ+RsvK/BxeDQOgyxKKoh0y/8h3BqVFnCqQ/gd+reiIXA==" + }, + "node_modules/setprototypeof": { + "version": "1.2.0", + "resolved": "https://registry.npmjs.org/setprototypeof/-/setprototypeof-1.2.0.tgz", + "integrity": "sha512-E5LDX7Wrp85Kil5bhZv46j8jOeboKq5JMmYM3gVGdGH8xFpPWXUMsNrlODCrkoxMEeNi/XZIwuRvY4XNwYMJpw==", + "dev": true + }, + "node_modules/sha.js": { + "version": "2.4.11", + "resolved": "https://registry.npmjs.org/sha.js/-/sha.js-2.4.11.tgz", + "integrity": "sha512-QMEp5B7cftE7APOjk5Y6xgrbWu+WkLVQwk8JNjZ8nKRciZaByEW6MubieAiToS7+dwvrjGhH8jRXz3MVd0AYqQ==", + "dependencies": { + "inherits": "^2.0.1", + "safe-buffer": "^5.0.1" + }, + "bin": { + "sha.js": "bin.js" + } + }, + "node_modules/shallow-copy": { + "version": "0.0.1", + "resolved": "https://registry.npmjs.org/shallow-copy/-/shallow-copy-0.0.1.tgz", + "integrity": "sha512-b6i4ZpVuUxB9h5gfCxPiusKYkqTMOjEbBs4wMaFbkfia4yFv92UKZ6Df8WXcKbn08JNL/abvg3FnMAOfakDvUw==" + }, + "node_modules/shebang-command": { + "version": "1.2.0", + "resolved": "https://registry.npmjs.org/shebang-command/-/shebang-command-1.2.0.tgz", + "integrity": "sha512-EV3L1+UQWGor21OmnvojK36mhg+TyIKDh3iFBKBohr5xeXIhNBcx8oWdgkTEEQ+BEFFYdLRuqMfd5L84N1V5Vg==", + "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": "sha512-wpoSFAxys6b2a2wHZ1XpDSgD7N9iVjg29Ph9uV/uaP9Ex/KXlkTZTeddxDPSYQpgvzKLGJke2UU0AzoGCjNIvQ==", + "dev": true, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/shellwords": { + "version": "0.1.1", + "resolved": "https://registry.npmjs.org/shellwords/-/shellwords-0.1.1.tgz", + "integrity": "sha512-vFwSUfQvqybiICwZY5+DAWIPLKsWO31Q91JSKl3UYv+K5c2QRPzn0qzec6QPu1Qc9eHYItiP3NdJqNVqetYAww==", + "dev": true + }, + "node_modules/should": { + "version": "13.2.3", + "resolved": "https://registry.npmjs.org/should/-/should-13.2.3.tgz", + "integrity": "sha512-ggLesLtu2xp+ZxI+ysJTmNjh2U0TsC+rQ/pfED9bUZZ4DKefP27D+7YJVVTvKsmjLpIi9jAa7itwDGkDDmt1GQ==", + "dependencies": { + "should-equal": "^2.0.0", + "should-format": "^3.0.3", + "should-type": "^1.4.0", + "should-type-adaptors": "^1.0.1", + "should-util": "^1.0.0" + } + }, + "node_modules/should-equal": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/should-equal/-/should-equal-2.0.0.tgz", + "integrity": "sha512-ZP36TMrK9euEuWQYBig9W55WPC7uo37qzAEmbjHz4gfyuXrEUgF8cUvQVO+w+d3OMfPvSRQJ22lSm8MQJ43LTA==", + "dependencies": { + "should-type": "^1.4.0" + } + }, + "node_modules/should-format": { + "version": "3.0.3", + "resolved": "https://registry.npmjs.org/should-format/-/should-format-3.0.3.tgz", + "integrity": "sha512-hZ58adtulAk0gKtua7QxevgUaXTTXxIi8t41L3zo9AHvjXO1/7sdLECuHeIN2SRtYXpNkmhoUP2pdeWgricQ+Q==", + "dependencies": { + "should-type": "^1.3.0", + "should-type-adaptors": "^1.0.1" + } + }, + "node_modules/should-type": { + "version": "1.4.0", + "resolved": "https://registry.npmjs.org/should-type/-/should-type-1.4.0.tgz", + "integrity": "sha512-MdAsTu3n25yDbIe1NeN69G4n6mUnJGtSJHygX3+oN0ZbO3DTiATnf7XnYJdGT42JCXurTb1JI0qOBR65shvhPQ==" + }, + "node_modules/should-type-adaptors": { + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/should-type-adaptors/-/should-type-adaptors-1.1.0.tgz", + "integrity": "sha512-JA4hdoLnN+kebEp2Vs8eBe9g7uy0zbRo+RMcU0EsNy+R+k049Ki+N5tT5Jagst2g7EAja+euFuoXFCa8vIklfA==", + "dependencies": { + "should-type": "^1.3.0", + "should-util": "^1.0.0" + } + }, + "node_modules/should-util": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/should-util/-/should-util-1.0.1.tgz", + "integrity": "sha512-oXF8tfxx5cDk8r2kYqlkUJzZpDBqVY/II2WhvU0n9Y3XYvAYRmeaf1PvvIvTgPnv4KJ+ES5M0PyDq5Jp+Ygy2g==" + }, + "node_modules/side-channel": { + "version": "1.0.6", + "resolved": "https://registry.npmjs.org/side-channel/-/side-channel-1.0.6.tgz", + "integrity": "sha512-fDW/EZ6Q9RiO8eFG8Hj+7u/oW+XrPTIChwCOM2+th2A6OblDtYYIpve9m+KvI9Z4C9qSEXlaGR6bTEYHReuglA==", + "dependencies": { + "call-bind": "^1.0.7", + "es-errors": "^1.3.0", + "get-intrinsic": "^1.2.4", + "object-inspect": "^1.13.1" + }, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/signal-exit": { + "version": "3.0.7", + "resolved": "https://registry.npmjs.org/signal-exit/-/signal-exit-3.0.7.tgz", + "integrity": "sha512-wnD2ZE+l+SPC/uoS0vXeE9L1+0wuaMqKlfz9AMUo38JsyLSBWSFcHR1Rri62LZc12vLr1gb3jl7iwQhgwpAbGQ==", + "dev": true + }, + "node_modules/simplex-noise": { + "version": "4.0.3", + "resolved": "https://registry.npmjs.org/simplex-noise/-/simplex-noise-4.0.3.tgz", + "integrity": "sha512-qSE2I4AngLQG7BXqoZj51jokT4WUXe8mOBrvfOXpci8+6Yu44+/dD5zqDpOx3Ux792eamTd2lLcI8jqFntk/lg==" + }, + "node_modules/slash": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/slash/-/slash-2.0.0.tgz", + "integrity": "sha512-ZYKh3Wh2z1PpEXWr0MpSBZ0V6mZHAQfYevttO11c51CaWjGTaadiKZ+wVt1PbMlDV5qhMFslpZCemhwOK7C89A==", + "engines": { + "node": ">=6" + } + }, + "node_modules/slice-ansi": { + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/slice-ansi/-/slice-ansi-2.1.0.tgz", + "integrity": "sha512-Qu+VC3EwYLldKa1fCxuuvULvSJOKEgk9pi8dZeCVK7TqBfUNTH4sFkk4joj8afVSfAYgJoSOetjx9QWOJ5mYoQ==", + "dev": true, + "dependencies": { + "ansi-styles": "^3.2.0", + "astral-regex": "^1.0.0", + "is-fullwidth-code-point": "^2.0.0" + }, + "engines": { + "node": ">=6" + } + }, + "node_modules/slice-ansi/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/slice-ansi/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/slugo": { + "version": "0.2.3", + "resolved": "https://registry.npmjs.org/slugo/-/slugo-0.2.3.tgz", + "integrity": "sha512-4nav6mk321IWKaWxgvygjp2JB0d5sNGgkPUJ+EGQZmmcvuXS+4DwdhhPa9L8WBg6fVQDID3PO+t6wYM1NqVbkA==" + }, + "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==", + "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==", + "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": "sha512-cZTYKFWspt9jZsMscWo8sc/5lbPC9Q0N5nBLgb+Yd915iL3udB1uFgS3B8YCx66UVHq018DAVFoee7x+gxggeA==", + "dependencies": { + "is-descriptor": "^1.0.0" + }, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/snapdragon-util": { + "version": "3.0.1", + "resolved": "https://registry.npmjs.org/snapdragon-util/-/snapdragon-util-3.0.1.tgz", + "integrity": "sha512-mbKkMdQKsjX4BAL4bRYTj21edOf8cN7XHdYUJEe+Zn99hVEYcMvKPct1IqNe7+AZPirn8BCDOQBHQZknqmKlZQ==", + "dependencies": { + "kind-of": "^3.2.0" + }, + "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==", + "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": "sha512-Rr7ADjQZenceVOAKop6ALkkRAmH1A4Gx9hV/7ZujPUN2rkATqFO0JZLZInbAjpZYoJ1gUx8MRMQVkYemcbMSTA==", + "dependencies": { + "is-descriptor": "^0.1.0" + }, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/snapdragon/node_modules/is-descriptor": { + "version": "0.1.7", + "resolved": "https://registry.npmjs.org/is-descriptor/-/is-descriptor-0.1.7.tgz", + "integrity": "sha512-C3grZTvObeN1xud4cRWl366OMXZTj0+HGyk4hvfpx4ZHt1Pb60ANSXqCK7pdOTeUQpRzECBSTphqvD7U+l22Eg==", + "dependencies": { + "is-accessor-descriptor": "^1.0.1", + "is-data-descriptor": "^1.0.1" + }, + "engines": { + "node": ">= 0.4" + } + }, + "node_modules/snapdragon/node_modules/ms": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/ms/-/ms-2.0.0.tgz", + "integrity": "sha512-Tpp60P6IUJDTuOq/5Z8cdskzJujfwqfOTkrwIwj7IRISpnkJnT6SyJ4PCPnGMoFjC9ddhal5KVIYtAt97ix05A==" + }, + "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, + "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, + "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, + "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, + "bin": { + "uuid": "dist/bin/uuid" + } + }, + "node_modules/sort-keys": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/sort-keys/-/sort-keys-2.0.0.tgz", + "integrity": "sha512-/dPCrG1s3ePpWm6yBbxZq5Be1dXGLyLn9Z791chDC3NFrpkVbWGzkBwPN1knaciexFXgRJ7hzdnwZ4stHSDmjg==", + "dependencies": { + "is-plain-obj": "^1.0.0" + }, + "engines": { + "node": ">=4" + } + }, + "node_modules/sort-keys-length": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/sort-keys-length/-/sort-keys-length-1.0.1.tgz", + "integrity": "sha512-GRbEOUqCxemTAk/b32F2xa8wDTs+Z1QHOkbhJDQTvv/6G3ZkbJ+frYWsTcc7cBB3Fu4wy4XlLCuNtJuMn7Gsvw==", + "dependencies": { + "sort-keys": "^1.0.0" + }, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/sort-keys-length/node_modules/sort-keys": { + "version": "1.1.2", + "resolved": "https://registry.npmjs.org/sort-keys/-/sort-keys-1.1.2.tgz", + "integrity": "sha512-vzn8aSqKgytVik0iwdBEi+zevbTYZogewTUM6dtpmGwEcdzbub/TX4bCzRhebDCRC3QzXgJsLRKB2V/Oof7HXg==", + "dependencies": { + "is-plain-obj": "^1.0.0" + }, + "engines": { + "node": ">=0.10.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==" + }, + "node_modules/source-map": { + "version": "0.5.7", + "resolved": "https://registry.npmjs.org/source-map/-/source-map-0.5.7.tgz", + "integrity": "sha512-LbrmJOMUSdEVxIKvdcJzQC+nQhe8FUZQTXQy6+I75skNgn3OoQ0DZA8YnFa7gp8tqtL3KPf1kmo0R5DoApeSGQ==", + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/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", + "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.21", + "resolved": "https://registry.npmjs.org/source-map-support/-/source-map-support-0.5.21.tgz", + "integrity": "sha512-uBHU3L3czsIyYXKX88fdrGovxdSCoTGDRZ6SYXtSRxLZUzHg5P/66Ht6uoUlHu9EZod+inXhKo3qQgwXUT/y1w==", + "dependencies": { + "buffer-from": "^1.0.0", + "source-map": "^0.6.0" + } + }, + "node_modules/source-map-support/node_modules/source-map": { + "version": "0.6.1", + "resolved": "https://registry.npmjs.org/source-map/-/source-map-0.6.1.tgz", + "integrity": "sha512-UjgapumWlbMhkBgzT7Ykc5YXUT46F0iKu8SGXq0bcwP5dz/h0Plj6enJqjz1Zbq2l5WaqYnrVbwWOWMyF3F47g==", + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/source-map-url": { + "version": "0.4.1", + "resolved": "https://registry.npmjs.org/source-map-url/-/source-map-url-0.4.1.tgz", + "integrity": "sha512-cPiFOTLUKvJFIg4SKVScy4ilPPW6rFgMgfuZJPNoDuMs3nC1HbMUycBoJw77xFIp6z1UJQJOfx6C9GMH80DiTw==", + "deprecated": "See https://github.com/lydell/source-map-url#deprecated" + }, + "node_modules/spdx-correct": { + "version": "3.2.0", + "resolved": "https://registry.npmjs.org/spdx-correct/-/spdx-correct-3.2.0.tgz", + "integrity": "sha512-kN9dJbvnySHULIluDHy32WHRUu3Og7B9sbY7tsFLctQkIqnMh3hErYgdMjTYuqmcXX+lK5T1lnUt3G7zNswmZA==", + "dependencies": { + "spdx-expression-parse": "^3.0.0", + "spdx-license-ids": "^3.0.0" + } + }, + "node_modules/spdx-exceptions": { + "version": "2.5.0", + "resolved": "https://registry.npmjs.org/spdx-exceptions/-/spdx-exceptions-2.5.0.tgz", + "integrity": "sha512-PiU42r+xO4UbUS1buo3LPJkjlO7430Xn5SVAhdpzzsPHsjbYVflnnFdATgabnLude+Cqu25p6N+g2lw/PFsa4w==" + }, + "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==", + "dependencies": { + "spdx-exceptions": "^2.1.0", + "spdx-license-ids": "^3.0.0" + } + }, + "node_modules/spdx-license-ids": { + "version": "3.0.20", + "resolved": "https://registry.npmjs.org/spdx-license-ids/-/spdx-license-ids-3.0.20.tgz", + "integrity": "sha512-jg25NiDV/1fLtSgEgyvVyDunvaNHbuwF9lfNV17gSmPFAlYzdfNBlLtLzXTevwkPj7DhGbmN9VnmJIgLnhvaBw==" + }, + "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.2", + "resolved": "https://registry.npmjs.org/readable-stream/-/readable-stream-3.6.2.tgz", + "integrity": "sha512-9u/sniCrY3D5WdsERHzHE4G2YCXqoG5FTHUiCC4SIbr6XcLZBY05ya9EKjYek9O5xOAwjGq+1JdGBAS7Q9ScoA==", + "dev": true, + "dependencies": { + "inherits": "^2.0.3", + "string_decoder": "^1.1.1", + "util-deprecate": "^1.0.1" + }, + "engines": { + "node": ">= 6" + } + }, + "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==", + "dependencies": { + "extend-shallow": "^3.0.0" + }, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/split-string/node_modules/extend-shallow": { + "version": "3.0.2", + "resolved": "https://registry.npmjs.org/extend-shallow/-/extend-shallow-3.0.2.tgz", + "integrity": "sha512-BwY5b5Ql4+qZoefgMj2NUmx+tehVTH/Kf4k1ZEtOHNFcm2wSxMRo992l6X3TIgni2eZVTZ85xMOjF31fwZAj6Q==", + "dependencies": { + "assign-symbols": "^1.0.0", + "is-extendable": "^1.0.1" + }, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/split-string/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==", + "dependencies": { + "is-plain-object": "^2.0.4" + }, + "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": "sha512-D9cPgkvLlV3t3IzL0D0YLvGA9Ahk4PcvVwUbN0dSGr1aP0Nrt4AEnTUbuGvquEC0mA64Gqt1fzirlRs5ibXx8g==" + }, + "node_modules/sshpk": { + "version": "1.18.0", + "resolved": "https://registry.npmjs.org/sshpk/-/sshpk-1.18.0.tgz", + "integrity": "sha512-2p2KJZTSqQ/I3+HX42EpYOa2l3f8Erv8MWKsy2I9uf4wA7yFIkXRffYdsx86y6z4vHtV8u7g+pPlr8/4ouAxsQ==", + "dependencies": { + "asn1": "~0.2.3", + "assert-plus": "^1.0.0", + "bcrypt-pbkdf": "^1.0.0", + "dashdash": "^1.12.0", + "ecc-jsbn": "~0.1.1", + "getpass": "^0.1.1", + "jsbn": "~0.1.0", + "safer-buffer": "^2.0.2", + "tweetnacl": "~0.14.0" + }, + "bin": { + "sshpk-conv": "bin/sshpk-conv", + "sshpk-sign": "bin/sshpk-sign", + "sshpk-verify": "bin/sshpk-verify" + }, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/ssri": { + "version": "8.0.1", + "resolved": "https://registry.npmjs.org/ssri/-/ssri-8.0.1.tgz", + "integrity": "sha512-97qShzy1AiyxvPNIkLWoGua7xoQzzPjQ0HAH4B0rWKo7SZ6USuPcrUiAFrws0UH8RrbWmgq3LMTObhPIHbbBeQ==", + "dependencies": { + "minipass": "^3.1.1" + }, + "engines": { + "node": ">= 8" + } + }, + "node_modules/standardized-audio-context": { + "version": "25.3.77", + "resolved": "https://registry.npmjs.org/standardized-audio-context/-/standardized-audio-context-25.3.77.tgz", + "integrity": "sha512-Ki9zNz6pKcC5Pi+QPjPyVsD9GwJIJWgryji0XL9cAJXMGyn+dPOf6Qik1AHei0+UNVcc4BOCa0hWLBzlwqsW/A==", + "dependencies": { + "@babel/runtime": "^7.25.6", + "automation-events": "^7.0.9", + "tslib": "^2.7.0" + } + }, + "node_modules/startaudiocontext": { + "version": "1.2.1", + "resolved": "https://registry.npmjs.org/startaudiocontext/-/startaudiocontext-1.2.1.tgz", + "integrity": "sha512-ooOQhOAoCwzMIRwWd9j7xF8kAMo1Wv7Zfw+q6dWDW5gxJUKx15HJXWDg89GMDqfdle9xsqPv+uioneX+bI643g==" + }, + "node_modules/static-eval": { + "version": "2.1.1", + "resolved": "https://registry.npmjs.org/static-eval/-/static-eval-2.1.1.tgz", + "integrity": "sha512-MgWpQ/ZjGieSVB3eOJVs4OA2LT/q1vx98KPCTTQPzq/aLr0YUXTsgryTXr4SLfR0ZfUUCiedM9n/ABeDIyy4mA==", + "dependencies": { + "escodegen": "^2.1.0" + } + }, + "node_modules/static-eval/node_modules/escodegen": { + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/escodegen/-/escodegen-2.1.0.tgz", + "integrity": "sha512-2NlIDTwUWJN0mRPQOdtQBzbUHvdGY2P1VXSyU83Q3xKxM7WHX2Ql8dKq782Q9TgQUNOLEzEYu9bzLNj1q88I5w==", + "dependencies": { + "esprima": "^4.0.1", + "estraverse": "^5.2.0", + "esutils": "^2.0.2" + }, + "bin": { + "escodegen": "bin/escodegen.js", + "esgenerate": "bin/esgenerate.js" + }, + "engines": { + "node": ">=6.0" + }, + "optionalDependencies": { + "source-map": "~0.6.1" + } + }, + "node_modules/static-eval/node_modules/estraverse": { + "version": "5.3.0", + "resolved": "https://registry.npmjs.org/estraverse/-/estraverse-5.3.0.tgz", + "integrity": "sha512-MMdARuVEQziNTeJD8DgMqmhwR11BRQ/cBP+pLtYdSTnf3MIO8fFeiINEbX36ZdNlfU/7A9f3gUw49B3oQsvwBA==", + "engines": { + "node": ">=4.0" + } + }, + "node_modules/static-eval/node_modules/source-map": { + "version": "0.6.1", + "resolved": "https://registry.npmjs.org/source-map/-/source-map-0.6.1.tgz", + "integrity": "sha512-UjgapumWlbMhkBgzT7Ykc5YXUT46F0iKu8SGXq0bcwP5dz/h0Plj6enJqjz1Zbq2l5WaqYnrVbwWOWMyF3F47g==", + "optional": true, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/static-extend": { + "version": "0.1.2", + "resolved": "https://registry.npmjs.org/static-extend/-/static-extend-0.1.2.tgz", + "integrity": "sha512-72E9+uLc27Mt718pMHt9VMNiAL4LMsmDbBva8mxWUCkT07fSzEGMYUCk0XWY6lp0j6RBAG4cJ3mWuZv2OE3s0g==", + "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": "sha512-Rr7ADjQZenceVOAKop6ALkkRAmH1A4Gx9hV/7ZujPUN2rkATqFO0JZLZInbAjpZYoJ1gUx8MRMQVkYemcbMSTA==", + "dependencies": { + "is-descriptor": "^0.1.0" + }, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/static-extend/node_modules/is-descriptor": { + "version": "0.1.7", + "resolved": "https://registry.npmjs.org/is-descriptor/-/is-descriptor-0.1.7.tgz", + "integrity": "sha512-C3grZTvObeN1xud4cRWl366OMXZTj0+HGyk4hvfpx4ZHt1Pb60ANSXqCK7pdOTeUQpRzECBSTphqvD7U+l22Eg==", + "dependencies": { + "is-accessor-descriptor": "^1.0.1", + "is-data-descriptor": "^1.0.1" + }, + "engines": { + "node": ">= 0.4" + } + }, + "node_modules/static-module": { + "version": "2.2.5", + "resolved": "https://registry.npmjs.org/static-module/-/static-module-2.2.5.tgz", + "integrity": "sha512-D8vv82E/Kpmz3TXHKG8PPsCPg+RAX6cbCOyvjM6x04qZtQ47EtJFVwRsdov3n5d6/6ynrOY9XB4JkaZwB2xoRQ==", + "dependencies": { + "concat-stream": "~1.6.0", + "convert-source-map": "^1.5.1", + "duplexer2": "~0.1.4", + "escodegen": "~1.9.0", + "falafel": "^2.1.0", + "has": "^1.0.1", + "magic-string": "^0.22.4", + "merge-source-map": "1.0.4", + "object-inspect": "~1.4.0", + "quote-stream": "~1.0.2", + "readable-stream": "~2.3.3", + "shallow-copy": "~0.0.1", + "static-eval": "^2.0.0", + "through2": "~2.0.3" + } + }, + "node_modules/static-module/node_modules/escodegen": { + "version": "1.9.1", + "resolved": "https://registry.npmjs.org/escodegen/-/escodegen-1.9.1.tgz", + "integrity": "sha512-6hTjO1NAWkHnDk3OqQ4YrCuwwmGHL9S3nPlzBOUG/R44rda3wLNrfvQ5fkSGjyhHFKM7ALPKcKGrwvCLe0lC7Q==", + "dependencies": { + "esprima": "^3.1.3", + "estraverse": "^4.2.0", + "esutils": "^2.0.2", + "optionator": "^0.8.1" + }, + "bin": { + "escodegen": "bin/escodegen.js", + "esgenerate": "bin/esgenerate.js" + }, + "engines": { + "node": ">=4.0" + }, + "optionalDependencies": { + "source-map": "~0.6.1" + } + }, + "node_modules/static-module/node_modules/esprima": { + "version": "3.1.3", + "resolved": "https://registry.npmjs.org/esprima/-/esprima-3.1.3.tgz", + "integrity": "sha512-AWwVMNxwhN8+NIPQzAQZCm7RkLC4RbM3B1OobMuyp3i+w73X57KCKaVIxaRZb+DYCojq7rspo+fmuQfAboyhFg==", + "bin": { + "esparse": "bin/esparse.js", + "esvalidate": "bin/esvalidate.js" + }, + "engines": { + "node": ">=4" + } + }, + "node_modules/static-module/node_modules/object-inspect": { + "version": "1.4.1", + "resolved": "https://registry.npmjs.org/object-inspect/-/object-inspect-1.4.1.tgz", + "integrity": "sha512-wqdhLpfCUbEsoEwl3FXwGyv8ief1k/1aUdIPCqVnupM6e8l63BEJdiF/0swtn04/8p05tG/T0FrpTlfwvljOdw==" + }, + "node_modules/static-module/node_modules/source-map": { + "version": "0.6.1", + "resolved": "https://registry.npmjs.org/source-map/-/source-map-0.6.1.tgz", + "integrity": "sha512-UjgapumWlbMhkBgzT7Ykc5YXUT46F0iKu8SGXq0bcwP5dz/h0Plj6enJqjz1Zbq2l5WaqYnrVbwWOWMyF3F47g==", + "optional": true, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/statuses": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/statuses/-/statuses-2.0.1.tgz", + "integrity": "sha512-RwNA9Z/7PrK06rYLIzFMlaF+l73iwpzsqRIFgbMLbTcLD6cOao82TaWefPXQvB2fOC4AjuYSEndS7N/mTCbkdQ==", + "dev": true, + "engines": { + "node": ">= 0.8" + } + }, + "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==", + "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==", + "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==", + "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.3", + "resolved": "https://registry.npmjs.org/stream-shift/-/stream-shift-1.0.3.tgz", + "integrity": "sha512-76ORR0DO1o1hlKwTbi/DM3EXWGf3ZJYO8cXX5RJwnul2DEg2oyoZyjLNoQM8WsvZiFKCRfC1O0J7iCvie3RZmQ==" + }, + "node_modules/strict-uri-encode": { + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/strict-uri-encode/-/strict-uri-encode-1.1.0.tgz", + "integrity": "sha512-R3f198pcvnB+5IpnBlRkphuE9n46WyVl8I39W/ZUTZLz4nqSP/oLYUrcnJrw462Ds8he4YKMov2efsTIw1BDGQ==", + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/string_decoder": { + "version": "1.3.0", + "resolved": "https://registry.npmjs.org/string_decoder/-/string_decoder-1.3.0.tgz", + "integrity": "sha512-hkRX8U1WjJFd8LsDJ2yQ/wWWxaopEsABU1XfkM8A+j0+85JAGppt16cr1Whg6KIbb4okU6Mql6BOj+uup/wKeA==", + "dependencies": { + "safe-buffer": "~5.2.0" + } + }, + "node_modules/string-length": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/string-length/-/string-length-2.0.0.tgz", + "integrity": "sha512-Qka42GGrS8Mm3SZ+7cH8UXiIWI867/b/Z/feQSpQx/rbfB8UGknGEZVaUQMOUVj+soY6NpWAxily63HI1OckVQ==", + "dev": true, + "dependencies": { + "astral-regex": "^1.0.0", + "strip-ansi": "^4.0.0" + }, + "engines": { + "node": ">=4" + } + }, + "node_modules/string-length/node_modules/ansi-regex": { + "version": "3.0.1", + "resolved": "https://registry.npmjs.org/ansi-regex/-/ansi-regex-3.0.1.tgz", + "integrity": "sha512-+O9Jct8wf++lXxxFc4hc8LsjaSq0HFzzL7cVsw8pRDIPdjKD2mT4ytDZlLuSBZ4cLKZFXIrMGO7DbQCtMJJMKw==", + "dev": true, + "engines": { + "node": ">=4" + } + }, + "node_modules/string-length/node_modules/strip-ansi": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/strip-ansi/-/strip-ansi-4.0.0.tgz", + "integrity": "sha512-4XaJ2zQdCzROZDivEVIDPkcQn8LMFSa8kj8Gxb/Lnwzv9A8VctNZ+lfivC/sV3ivW8ElJTERXZoPBRrZKkNKow==", + "dev": true, + "dependencies": { + "ansi-regex": "^3.0.0" + }, + "engines": { + "node": ">=4" + } + }, + "node_modules/string-width": { + "version": "2.1.1", + "resolved": "https://registry.npmjs.org/string-width/-/string-width-2.1.1.tgz", + "integrity": "sha512-nOqH59deCq9SRHlxq1Aw85Jnt4w6KvLKqWVik6oA9ZklXLNIOlqg4F2yrT1MVaTjAqvVwdfeZ7w7aCvJD7ugkw==", + "dev": true, + "dependencies": { + "is-fullwidth-code-point": "^2.0.0", + "strip-ansi": "^4.0.0" + }, + "engines": { + "node": ">=4" + } + }, + "node_modules/string-width/node_modules/ansi-regex": { + "version": "3.0.1", + "resolved": "https://registry.npmjs.org/ansi-regex/-/ansi-regex-3.0.1.tgz", + "integrity": "sha512-+O9Jct8wf++lXxxFc4hc8LsjaSq0HFzzL7cVsw8pRDIPdjKD2mT4ytDZlLuSBZ4cLKZFXIrMGO7DbQCtMJJMKw==", + "dev": true, + "engines": { + "node": ">=4" + } + }, + "node_modules/string-width/node_modules/strip-ansi": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/strip-ansi/-/strip-ansi-4.0.0.tgz", + "integrity": "sha512-4XaJ2zQdCzROZDivEVIDPkcQn8LMFSa8kj8Gxb/Lnwzv9A8VctNZ+lfivC/sV3ivW8ElJTERXZoPBRrZKkNKow==", + "dev": true, + "dependencies": { + "ansi-regex": "^3.0.0" + }, + "engines": { + "node": ">=4" + } + }, + "node_modules/string.prototype.matchall": { + "version": "4.0.11", + "resolved": "https://registry.npmjs.org/string.prototype.matchall/-/string.prototype.matchall-4.0.11.tgz", + "integrity": "sha512-NUdh0aDavY2og7IbBPenWqR9exH+E26Sv8e0/eTe1tltDGZL+GtBkDAnnyBtmekfK6/Dq3MkcGtzXFEd1LQrtg==", + "dev": true, + "dependencies": { + "call-bind": "^1.0.7", + "define-properties": "^1.2.1", + "es-abstract": "^1.23.2", + "es-errors": "^1.3.0", + "es-object-atoms": "^1.0.0", + "get-intrinsic": "^1.2.4", + "gopd": "^1.0.1", + "has-symbols": "^1.0.3", + "internal-slot": "^1.0.7", + "regexp.prototype.flags": "^1.5.2", + "set-function-name": "^2.0.2", + "side-channel": "^1.0.6" + }, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/string.prototype.trim": { + "version": "1.2.9", + "resolved": "https://registry.npmjs.org/string.prototype.trim/-/string.prototype.trim-1.2.9.tgz", + "integrity": "sha512-klHuCNxiMZ8MlsOihJhJEBJAiMVqU3Z2nEXWfWnIqjN0gEFS9J9+IxKozWWtQGcgoa1WUZzLjKPTr4ZHNFTFxw==", + "dev": true, + "dependencies": { + "call-bind": "^1.0.7", + "define-properties": "^1.2.1", + "es-abstract": "^1.23.0", + "es-object-atoms": "^1.0.0" + }, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/string.prototype.trimend": { + "version": "1.0.8", + "resolved": "https://registry.npmjs.org/string.prototype.trimend/-/string.prototype.trimend-1.0.8.tgz", + "integrity": "sha512-p73uL5VCHCO2BZZ6krwwQE3kCzM7NKmis8S//xEC6fQonchbum4eP6kR4DLEjQFO3Wnj3Fuo8NM0kOSjVdHjZQ==", + "dev": true, + "dependencies": { + "call-bind": "^1.0.7", + "define-properties": "^1.2.1", + "es-object-atoms": "^1.0.0" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/string.prototype.trimstart": { + "version": "1.0.8", + "resolved": "https://registry.npmjs.org/string.prototype.trimstart/-/string.prototype.trimstart-1.0.8.tgz", + "integrity": "sha512-UXSH262CSZY1tfu3G3Secr6uGLCFVPMhIqHjlgCUtCCcgihYc/xKs9djMTMUOb2j1mVSeU8EU6NWc/iQKU6Gfg==", + "dev": true, + "dependencies": { + "call-bind": "^1.0.7", + "define-properties": "^1.2.1", + "es-object-atoms": "^1.0.0" + }, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/strip-ansi": { + "version": "3.0.1", + "resolved": "https://registry.npmjs.org/strip-ansi/-/strip-ansi-3.0.1.tgz", + "integrity": "sha512-VhumSSbBqDTP8p2ZLKj40UjBCV4+v8bUSEpUb4KjRgWk9pbqGF4REFj6KEagidb2f/M6AzC0EmFyDNGaw9OCzg==", + "dependencies": { + "ansi-regex": "^2.0.0" + }, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/strip-bom": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/strip-bom/-/strip-bom-2.0.0.tgz", + "integrity": "sha512-kwrX1y7czp1E69n2ajbG65mIo9dqvJ+8aBQXOGVxqwvNbsXdFM6Lq37dLAY3mknUwru8CfcCbfOLL/gMo+fi3g==", + "dev": true, + "dependencies": { + "is-utf8": "^0.2.0" + }, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/strip-dirs": { + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/strip-dirs/-/strip-dirs-2.1.0.tgz", + "integrity": "sha512-JOCxOeKLm2CAS73y/U4ZeZPTkE+gNVCzKt7Eox84Iej1LT/2pTWYpZKJuxwQpvX1LiZb1xokNR7RLfuBAa7T3g==", + "dependencies": { + "is-natural-number": "^4.0.1" + } + }, + "node_modules/strip-eof": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/strip-eof/-/strip-eof-1.0.0.tgz", + "integrity": "sha512-7FCwGGmx8mD5xQd3RPUvnSpUXHM3BWuzjtpD4TXsfcZ9EL4azvVVUscFYwD9nx8Kh+uCBC00XBtAykoMHwTh8Q==", + "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": "sha512-4gB8na07fecVVkOI6Rs4e7T6NOTki5EmL7TUduTs6bu3EdnSycntVJ4re8kgZA+wx9IueI2Y11bfbgwtzuE0KQ==", + "dev": true, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/strip-outer": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/strip-outer/-/strip-outer-1.0.1.tgz", + "integrity": "sha512-k55yxKHwaXnpYGsOzg4Vl8+tDrWylxDEpknGjhTiZB8dFRU5rTo9CAzeycivxV3s+zlTKwrs6WxMxR95n26kwg==", + "dependencies": { + "escape-string-regexp": "^1.0.2" + }, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/style-loader": { + "version": "0.23.1", + "resolved": "https://registry.npmjs.org/style-loader/-/style-loader-0.23.1.tgz", + "integrity": "sha512-XK+uv9kWwhZMZ1y7mysB+zoihsEj4wneFWAS5qoiLwzW0WzSqMrrsIy+a3zkQJq0ipFtBpX5W3MqyRIBF/WFGg==", + "dependencies": { + "loader-utils": "^1.1.0", + "schema-utils": "^1.0.0" + }, + "engines": { + "node": ">= 0.12.0" + } + }, + "node_modules/style-loader/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==", + "dependencies": { + "ajv": "^6.1.0", + "ajv-errors": "^1.0.0", + "ajv-keywords": "^3.1.0" + }, + "engines": { + "node": ">= 4" + } + }, + "node_modules/supports-color": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-2.0.0.tgz", + "integrity": "sha512-KKNVtd6pCYgPIKU4cp2733HWYCpplQhddZLBUryaAHou723x+FRzQ5Df824Fj+IyyuiQTRoub4SnIFfIcrp70g==", + "engines": { + "node": ">=0.8.0" + } + }, + "node_modules/supports-preserve-symlinks-flag": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/supports-preserve-symlinks-flag/-/supports-preserve-symlinks-flag-1.0.0.tgz", + "integrity": "sha512-ot0WnXS9fgdkgIcePe6RHNk1WA8+muPa6cSjeR3V8K27q9BB1rTE3R1p7Hv0z1ZyAc8s6Vvv8DIyWf681MAt0w==", + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/symbol-observable": { + "version": "1.2.0", + "resolved": "https://registry.npmjs.org/symbol-observable/-/symbol-observable-1.2.0.tgz", + "integrity": "sha512-e900nM8RRtGhlV36KGEU9k65K3mPb1WV70OdjfxlG2EAuM1noi/E/BaW/uMhL7bPEssK8QV57vN3esixjUvcXQ==", + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/symbol-tree": { + "version": "3.2.4", + "resolved": "https://registry.npmjs.org/symbol-tree/-/symbol-tree-3.2.4.tgz", + "integrity": "sha512-9QNk5KwDF+Bvz+PyObkmSYjI5ksVUYtjW7AU22r2NKcfLJcXp96hkDWU3+XndOsUb+AQ9QhfzfCT2O+CNWT5Tw==", + "dev": true + }, + "node_modules/table": { + "version": "5.4.6", + "resolved": "https://registry.npmjs.org/table/-/table-5.4.6.tgz", + "integrity": "sha512-wmEc8m4fjnob4gt5riFRtTu/6+4rSe12TpAELNSqHMfF3IqnA+CH37USM6/YR3qRZv7e56kAEAtd6nKZaxe0Ug==", + "dev": true, + "dependencies": { + "ajv": "^6.10.2", + "lodash": "^4.17.14", + "slice-ansi": "^2.1.0", + "string-width": "^3.0.0" + }, + "engines": { + "node": ">=6.0.0" + } + }, + "node_modules/table/node_modules/ansi-regex": { + "version": "4.1.1", + "resolved": "https://registry.npmjs.org/ansi-regex/-/ansi-regex-4.1.1.tgz", + "integrity": "sha512-ILlv4k/3f6vfQ4OoP2AGvirOktlQ98ZEL1k9FaQjxa3L1abBgbuTDAdPOpvbGncC0BTVQrl+OM8xZGK6tWXt7g==", + "dev": true, + "engines": { + "node": ">=6" + } + }, + "node_modules/table/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/table/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/tapable": { + "version": "0.1.10", + "resolved": "https://registry.npmjs.org/tapable/-/tapable-0.1.10.tgz", + "integrity": "sha512-jX8Et4hHg57mug1/079yitEKWGB3LCwoxByLsNim89LABq8NqgiX+6iYVOsq0vX8uJHkU+DZ5fnq95f800bEsQ==", + "dev": true, + "engines": { + "node": ">=0.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==", + "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-stream": { + "version": "1.6.2", + "resolved": "https://registry.npmjs.org/tar-stream/-/tar-stream-1.6.2.tgz", + "integrity": "sha512-rzS0heiNf8Xn7/mpdSVVSMAWAoy9bfb1WOTYC78Z0UQKeKa/CWS8FOq0lKGNa8DWKAn9gxjCvMLYc5PGXYlK2A==", + "dependencies": { + "bl": "^1.0.0", + "buffer-alloc": "^1.2.0", + "end-of-stream": "^1.0.0", + "fs-constants": "^1.0.0", + "readable-stream": "^2.3.0", + "to-buffer": "^1.1.1", + "xtend": "^4.0.0" + }, + "engines": { + "node": ">= 0.8.0" + } + }, + "node_modules/tar/node_modules/minipass": { + "version": "5.0.0", + "resolved": "https://registry.npmjs.org/minipass/-/minipass-5.0.0.tgz", + "integrity": "sha512-3FnjYuehv9k6ovOEbyOswadCDPX1piCfhV8ncmYtHOjuPwylVWsghTLo7rabjC3Rx5xD4HDx8Wm1xnMF7S5qFQ==", + "engines": { + "node": ">=8" + } + }, + "node_modules/tar/node_modules/yallist": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/yallist/-/yallist-4.0.0.tgz", + "integrity": "sha512-3wdGidZyq5PB084XLES5TpOSRA3wjXAlIWMhum2kRcv/41Sn2emQ0dycQW4uZXLejwKvg6EsvbdlVL+FYEct7A==" + }, + "node_modules/tcp-port-used": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/tcp-port-used/-/tcp-port-used-1.0.2.tgz", + "integrity": "sha512-l7ar8lLUD3XS1V2lfoJlCBaeoaWo/2xfYt81hM7VlvR4RrMVFqfmzfhLVk40hAb368uitje5gPtBRL1m/DGvLA==", + "dev": true, + "dependencies": { + "debug": "4.3.1", + "is2": "^2.0.6" + } + }, + "node_modules/tcp-port-used/node_modules/debug": { + "version": "4.3.1", + "resolved": "https://registry.npmjs.org/debug/-/debug-4.3.1.tgz", + "integrity": "sha512-doEwdvm4PCeK4K3RQN2ZC2BYUBaxwLARCqZmMjtF8a51J2Rb0xpVloFRnCODwqjpwnAoao4pelN8l3RJdv3gRQ==", + "dev": true, + "dependencies": { + "ms": "2.1.2" + }, + "engines": { + "node": ">=6.0" + }, + "peerDependenciesMeta": { + "supports-color": { + "optional": true + } + } + }, + "node_modules/tcp-port-used/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/terser": { + "version": "4.8.1", + "resolved": "https://registry.npmjs.org/terser/-/terser-4.8.1.tgz", + "integrity": "sha512-4GnLC0x667eJG0ewJTa6z/yXrbLGv80D9Ru6HIpCQmO+Q4PfEtBFi0ObSckqwL6VyQv/7ENJieXHo2ANmdQwgw==", + "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/terser-webpack-plugin": { + "version": "1.4.6", + "resolved": "https://registry.npmjs.org/terser-webpack-plugin/-/terser-webpack-plugin-1.4.6.tgz", + "integrity": "sha512-2lBVf/VMVIddjSn3GqbT90GvIJ/eYXJkt8cTzU7NbjKqK8fwv18Ftr4PlbF46b/e88743iZFL5Dtr/rC4hjIeA==", + "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/terser-webpack-plugin/node_modules/cacache": { + "version": "12.0.4", + "resolved": "https://registry.npmjs.org/cacache/-/cacache-12.0.4.tgz", + "integrity": "sha512-a0tMB40oefvuInr4Cwb3GerbL9xTj1D5yg0T5xrjGCGyfvbxseIXX7BAO/u/hIXdafzOI5JC3wDwHyf24buOAQ==", + "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/terser-webpack-plugin/node_modules/chownr": { + "version": "1.1.4", + "resolved": "https://registry.npmjs.org/chownr/-/chownr-1.1.4.tgz", + "integrity": "sha512-jJ0bqzaylmJtVnNgzTeSOs8DPavpbYgEr/b0YL8/2GO3xJEhInFmhKMUnEJQjZumK7KXGFhUy89PrsJWlakBVg==" + }, + "node_modules/terser-webpack-plugin/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==", + "dependencies": { + "commondir": "^1.0.1", + "make-dir": "^2.0.0", + "pkg-dir": "^3.0.0" + }, + "engines": { + "node": ">=6" + } + }, + "node_modules/terser-webpack-plugin/node_modules/find-up": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/find-up/-/find-up-3.0.0.tgz", + "integrity": "sha512-1yD6RmLI1XBfxugvORwlck6f75tYL+iR0jqwsOrOxMZyGYqUuDhJ0l4AXdO1iX/FTs9cBAMEk1gWSEx1kSbylg==", + "dependencies": { + "locate-path": "^3.0.0" + }, + "engines": { + "node": ">=6" + } + }, + "node_modules/terser-webpack-plugin/node_modules/locate-path": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/locate-path/-/locate-path-3.0.0.tgz", + "integrity": "sha512-7AO748wWnIhNqAuaty2ZWHkQHRSNfPVIsPIfwEOWO22AmaoVrWavlOcMR5nzTLNYvp36X220/maaRsrec1G65A==", + "dependencies": { + "p-locate": "^3.0.0", + "path-exists": "^3.0.0" + }, + "engines": { + "node": ">=6" + } + }, + "node_modules/terser-webpack-plugin/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/terser-webpack-plugin/node_modules/p-limit": { + "version": "2.3.0", + "resolved": "https://registry.npmjs.org/p-limit/-/p-limit-2.3.0.tgz", + "integrity": "sha512-//88mFWSJx8lxCzwdAABTJL2MyWB12+eIY7MDL2SqLmAkeKU9qxRvWuSyTjm3FUmpBEMuFfckAIqEaVGUDxb6w==", + "dependencies": { + "p-try": "^2.0.0" + }, + "engines": { + "node": ">=6" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/terser-webpack-plugin/node_modules/p-locate": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/p-locate/-/p-locate-3.0.0.tgz", + "integrity": "sha512-x+12w/To+4GFfgJhBEpiDcLozRJGegY+Ei7/z0tSLkMmxGZNybVMSfWj9aJn8Z5Fc7dBUNJOOVgPv2H7IwulSQ==", + "dependencies": { + "p-limit": "^2.0.0" + }, + "engines": { + "node": ">=6" + } + }, + "node_modules/terser-webpack-plugin/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==", + "dependencies": { + "find-up": "^3.0.0" + }, + "engines": { + "node": ">=6" + } + }, + "node_modules/terser-webpack-plugin/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==", + "dependencies": { + "ajv": "^6.1.0", + "ajv-errors": "^1.0.0", + "ajv-keywords": "^3.1.0" + }, + "engines": { + "node": ">= 4" + } + }, + "node_modules/terser-webpack-plugin/node_modules/serialize-javascript": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/serialize-javascript/-/serialize-javascript-4.0.0.tgz", + "integrity": "sha512-GaNA54380uFefWghODBWEGisLZFj00nS5ACs6yHa9nLqlLpVLO8ChDGeKRjZnV4Nh4n0Qi7nhYZD/9fCPzEqkw==", + "dependencies": { + "randombytes": "^2.1.0" + } + }, + "node_modules/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==", + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/terser-webpack-plugin/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==", + "dependencies": { + "figgy-pudding": "^3.5.1" + } + }, + "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==", + "dependencies": { + "source-list-map": "^2.0.0", + "source-map": "~0.6.1" + } + }, + "node_modules/terser-webpack-plugin/node_modules/y18n": { + "version": "4.0.3", + "resolved": "https://registry.npmjs.org/y18n/-/y18n-4.0.3.tgz", + "integrity": "sha512-JKhqTOwSrqNA1NY5lSztJ1GrBiUodLMmIZuLiDaMRJ+itFd+ABVE8XBjOvIWL+rSqNDC74LCSFmlb/U4UZ4hJQ==" + }, + "node_modules/terser/node_modules/commander": { + "version": "2.20.3", + "resolved": "https://registry.npmjs.org/commander/-/commander-2.20.3.tgz", + "integrity": "sha512-GpVkmM8vF2vQUkj2LvZmD35JxeJOLCwJ9cUkugyk2nuhbv3+mJvpLYYt+0+USMxE+oj+ey/lJEnhZw75x/OMcQ==" + }, + "node_modules/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==", + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/test-exclude": { + "version": "4.2.3", + "resolved": "https://registry.npmjs.org/test-exclude/-/test-exclude-4.2.3.tgz", + "integrity": "sha512-SYbXgY64PT+4GAL2ocI3HwPa4Q4TBKm0cwAVeKOt/Aoc0gSpNRjJX8w0pA1LMKZ3LBmd8pYBqApFNQLII9kavA==", + "dev": true, + "dependencies": { + "arrify": "^1.0.1", + "micromatch": "^2.3.11", + "object-assign": "^4.1.0", + "read-pkg-up": "^1.0.1", + "require-main-filename": "^1.0.1" + } + }, + "node_modules/test-exclude/node_modules/arr-diff": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/arr-diff/-/arr-diff-2.0.0.tgz", + "integrity": "sha512-dtXTVMkh6VkEEA7OhXnN1Ecb8aAGFdZ1LFxtOCoqj4qkyOJMt7+qs6Ahdy6p/NQCPYsRSXXivhSB/J5E9jmYKA==", + "dev": true, + "dependencies": { + "arr-flatten": "^1.0.1" + }, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/test-exclude/node_modules/array-unique": { + "version": "0.2.1", + "resolved": "https://registry.npmjs.org/array-unique/-/array-unique-0.2.1.tgz", + "integrity": "sha512-G2n5bG5fSUCpnsXz4+8FUkYsGPkNfLn9YvS66U5qbTIXI2Ynnlo4Bi42bWv+omKUCqz+ejzfClwne0alJWJPhg==", + "dev": true, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/test-exclude/node_modules/braces": { + "version": "1.8.5", + "resolved": "https://registry.npmjs.org/braces/-/braces-1.8.5.tgz", + "integrity": "sha512-xU7bpz2ytJl1bH9cgIurjpg/n8Gohy9GTw81heDYLJQ4RU60dlyJsa+atVF2pI0yMMvKxI9HkKwjePCj5XI1hw==", + "dev": true, + "dependencies": { + "expand-range": "^1.8.1", + "preserve": "^0.2.0", + "repeat-element": "^1.1.2" + }, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/test-exclude/node_modules/expand-brackets": { + "version": "0.1.5", + "resolved": "https://registry.npmjs.org/expand-brackets/-/expand-brackets-0.1.5.tgz", + "integrity": "sha512-hxx03P2dJxss6ceIeri9cmYOT4SRs3Zk3afZwWpOsRqLqprhTR8u++SlC+sFGsQr7WGFPdMF7Gjc1njDLDK6UA==", + "dev": true, + "dependencies": { + "is-posix-bracket": "^0.1.0" + }, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/test-exclude/node_modules/extglob": { + "version": "0.3.2", + "resolved": "https://registry.npmjs.org/extglob/-/extglob-0.3.2.tgz", + "integrity": "sha512-1FOj1LOwn42TMrruOHGt18HemVnbwAmAak7krWk+wa93KXxGbK+2jpezm+ytJYDaBX0/SPLZFHKM7m+tKobWGg==", + "dev": true, + "dependencies": { + "is-extglob": "^1.0.0" + }, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/test-exclude/node_modules/find-up": { + "version": "1.1.2", + "resolved": "https://registry.npmjs.org/find-up/-/find-up-1.1.2.tgz", + "integrity": "sha512-jvElSjyuo4EMQGoTwo1uJU5pQMwTW5lS1x05zzfJuTIyLR3zwO27LYrxNg+dlvKpGOuGy/MzBdXh80g0ve5+HA==", + "dev": true, + "dependencies": { + "path-exists": "^2.0.0", + "pinkie-promise": "^2.0.0" + }, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/test-exclude/node_modules/is-extglob": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/is-extglob/-/is-extglob-1.0.0.tgz", + "integrity": "sha512-7Q+VbVafe6x2T+Tu6NcOf6sRklazEPmBoB3IWk3WdGZM2iGUwU/Oe3Wtq5lSEkDTTlpp8yx+5t4pzO/i9Ty1ww==", + "dev": true, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/test-exclude/node_modules/is-glob": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/is-glob/-/is-glob-2.0.1.tgz", + "integrity": "sha512-a1dBeB19NXsf/E0+FHqkagizel/LQw2DjSQpvQrj3zT+jYPpaUCryPnrQajXKFLCMuf4I6FhRpaGtw4lPrG6Eg==", + "dev": true, + "dependencies": { + "is-extglob": "^1.0.0" + }, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/test-exclude/node_modules/load-json-file": { + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/load-json-file/-/load-json-file-1.1.0.tgz", + "integrity": "sha512-cy7ZdNRXdablkXYNI049pthVeXFurRyb9+hA/dZzerZ0pGTx42z+y+ssxBaVV2l70t1muq5IdKhn4UtcoGUY9A==", + "dev": true, + "dependencies": { + "graceful-fs": "^4.1.2", + "parse-json": "^2.2.0", + "pify": "^2.0.0", + "pinkie-promise": "^2.0.0", + "strip-bom": "^2.0.0" + }, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/test-exclude/node_modules/micromatch": { + "version": "2.3.11", + "resolved": "https://registry.npmjs.org/micromatch/-/micromatch-2.3.11.tgz", + "integrity": "sha512-LnU2XFEk9xxSJ6rfgAry/ty5qwUTyHYOBU0g4R6tIw5ljwgGIBmiKhRWLw5NpMOnrgUNcDJ4WMp8rl3sYVHLNA==", + "dev": true, + "dependencies": { + "arr-diff": "^2.0.0", + "array-unique": "^0.2.1", + "braces": "^1.8.2", + "expand-brackets": "^0.1.4", + "extglob": "^0.3.1", + "filename-regex": "^2.0.0", + "is-extglob": "^1.0.0", + "is-glob": "^2.0.1", + "kind-of": "^3.0.2", + "normalize-path": "^2.0.1", + "object.omit": "^2.0.0", + "parse-glob": "^3.0.4", + "regex-cache": "^0.4.2" + }, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/test-exclude/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/test-exclude/node_modules/parse-json": { + "version": "2.2.0", + "resolved": "https://registry.npmjs.org/parse-json/-/parse-json-2.2.0.tgz", + "integrity": "sha512-QR/GGaKCkhwk1ePQNYDRKYZ3mwU9ypsKhB0XyFnLQdomyEqk3e8wpW3V5Jp88zbxK4n5ST1nqo+g9juTpownhQ==", + "dev": true, + "dependencies": { + "error-ex": "^1.2.0" + }, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/test-exclude/node_modules/path-exists": { + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/path-exists/-/path-exists-2.1.0.tgz", + "integrity": "sha512-yTltuKuhtNeFJKa1PiRzfLAU5182q1y4Eb4XCJ3PBqyzEDkAZRzBrKKBct682ls9reBVHf9udYLN5Nd+K1B9BQ==", + "dev": true, + "dependencies": { + "pinkie-promise": "^2.0.0" + }, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/test-exclude/node_modules/path-type": { + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/path-type/-/path-type-1.1.0.tgz", + "integrity": "sha512-S4eENJz1pkiQn9Znv33Q+deTOKmbl+jj1Fl+qiP/vYezj+S8x+J3Uo0ISrx/QoEvIlOaDWJhPaRd1flJ9HXZqg==", + "dev": true, + "dependencies": { + "graceful-fs": "^4.1.2", + "pify": "^2.0.0", + "pinkie-promise": "^2.0.0" + }, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/test-exclude/node_modules/pify": { + "version": "2.3.0", + "resolved": "https://registry.npmjs.org/pify/-/pify-2.3.0.tgz", + "integrity": "sha512-udgsAY+fTnvv7kI7aaxbqwWNb0AHiB0qBO89PZKPkoTmGOgdbrHDKD+0B2X4uTfJ/FT1R09r9gTsjUjNJotuog==", + "dev": true, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/test-exclude/node_modules/read-pkg": { + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/read-pkg/-/read-pkg-1.1.0.tgz", + "integrity": "sha512-7BGwRHqt4s/uVbuyoeejRn4YmFnYZiFl4AuaeXHlgZf3sONF0SOGlxs2Pw8g6hCKupo08RafIO5YXFNOKTfwsQ==", + "dev": true, + "dependencies": { + "load-json-file": "^1.0.0", + "normalize-package-data": "^2.3.2", + "path-type": "^1.0.0" + }, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/test-exclude/node_modules/read-pkg-up": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/read-pkg-up/-/read-pkg-up-1.0.1.tgz", + "integrity": "sha512-WD9MTlNtI55IwYUS27iHh9tK3YoIVhxis8yKhLpTqWtml739uXc9NWTpxoHkfZf3+DkCCsXox94/VWZniuZm6A==", + "dev": true, + "dependencies": { + "find-up": "^1.0.0", + "read-pkg": "^1.0.0" + }, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/text-encoding": { + "version": "0.7.0", + "resolved": "https://registry.npmjs.org/text-encoding/-/text-encoding-0.7.0.tgz", + "integrity": "sha512-oJQ3f1hrOnbRLOcwKz0Liq2IcrvDeZRHXhd9RgLrsT+DjWY/nty1Hi7v3dtkaEYbPYe0mUoOfzRrMwfXXwgPUA==", + "deprecated": "no longer maintained" + }, + "node_modules/text-table": { + "version": "0.2.0", + "resolved": "https://registry.npmjs.org/text-table/-/text-table-0.2.0.tgz", + "integrity": "sha512-N+8UisAXDGk8PFXP4HAzVR9nbfmVJ3zYLAWiTIoqC5v5isinhr+r5uaO8+7r3BMfuNIufIsA7RdpVgacC2cSpw==", + "dev": true + }, + "node_modules/theia": { + "version": "2.1.2", + "resolved": "git+ssh://git@github.com/FreshPenguin112/theia-pnpm.git#13571e769ea006f4061f0eaf316cf3c7d214bad6", + "license": "MIT", + "dependencies": { + "chalk": "^1.0.0", + "inquirer": "^0.8.2", + "pnpm": "^7.18.2", + "q": "^1.2.0", + "yargs": "^3.7.0" + }, + "bin": { + "theia": "index.js" + } + }, + "node_modules/theia/node_modules/ansi-regex": { + "version": "1.1.1", + "resolved": "https://registry.npmjs.org/ansi-regex/-/ansi-regex-1.1.1.tgz", + "integrity": "sha512-q5i8bFLg2wDfsuR56c1NzlJFPzVD+9mxhDrhqOGigEFa87OZHlF+9dWeGWzVTP/0ECiA/JUGzfzRr2t3eYORRw==", + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/theia/node_modules/camelcase": { + "version": "2.1.1", + "resolved": "https://registry.npmjs.org/camelcase/-/camelcase-2.1.1.tgz", + "integrity": "sha512-DLIsRzJVBQu72meAKPkWQOLcujdXT32hwdfnkI1frSiSRMK1MofjKHf+MEx0SB6fjEFXL8fBDv1dKymBlOp4Qw==", + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/theia/node_modules/cli-width": { + "version": "1.1.1", + "resolved": "https://registry.npmjs.org/cli-width/-/cli-width-1.1.1.tgz", + "integrity": "sha512-eMU2akIeEIkCxGXUNmDnJq1KzOIiPnJ+rKqRe6hcxE3vIOPvpMrBYOn/Bl7zNlYJj/zQxXquAnozHUCf9Whnsg==" + }, + "node_modules/theia/node_modules/figures": { + "version": "1.7.0", + "resolved": "https://registry.npmjs.org/figures/-/figures-1.7.0.tgz", + "integrity": "sha512-UxKlfCRuCBxSXU4C6t9scbDyWZ4VlaFFdojKtzJuSkuOBQ5CNFum+zZXFwHjo+CxBC1t6zlYPgHIgFjL8ggoEQ==", + "dependencies": { + "escape-string-regexp": "^1.0.5", + "object-assign": "^4.1.0" + }, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/theia/node_modules/inquirer": { + "version": "0.8.5", + "resolved": "https://registry.npmjs.org/inquirer/-/inquirer-0.8.5.tgz", + "integrity": "sha512-+rksrtdqQ8do7yOsmP5YIgbSdbZYuCIrnfH5vjFYGAr1XgJpMksb3rFZMJ3jiKuUyDVEA4MVDYbkA3ribJn3Tg==", + "dependencies": { + "ansi-regex": "^1.1.1", + "chalk": "^1.0.0", + "cli-width": "^1.0.1", + "figures": "^1.3.5", + "lodash": "^3.3.1", + "readline2": "^0.1.1", + "rx": "^2.4.3", + "through": "^2.3.6" + } + }, + "node_modules/theia/node_modules/is-fullwidth-code-point": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/is-fullwidth-code-point/-/is-fullwidth-code-point-1.0.0.tgz", + "integrity": "sha512-1pqUqRjkhPJ9miNq9SwMfdvi6lBJcd6eFxvfaivQhaH3SgisfiuudvFntdKOmxuee/77l+FPjKrQjWvmPjWrRw==", + "dependencies": { + "number-is-nan": "^1.0.0" + }, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/theia/node_modules/lodash": { + "version": "3.10.1", + "resolved": "https://registry.npmjs.org/lodash/-/lodash-3.10.1.tgz", + "integrity": "sha512-9mDDwqVIma6OZX79ZlDACZl8sBm0TEnkf99zV3iMA4GzkIT/9hiqP5mY0HoT1iNLCrKc/R1HByV+yJfRWVJryQ==" + }, + "node_modules/theia/node_modules/os-locale": { + "version": "1.4.0", + "resolved": "https://registry.npmjs.org/os-locale/-/os-locale-1.4.0.tgz", + "integrity": "sha512-PRT7ZORmwu2MEFt4/fv3Q+mEfN4zetKxufQrkShY2oGvUms9r8otu5HfdyIFHkYXjO7laNsoVGmM2MANfuTA8g==", + "dependencies": { + "lcid": "^1.0.0" + }, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/theia/node_modules/string-width": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/string-width/-/string-width-1.0.2.tgz", + "integrity": "sha512-0XsVpQLnVCXHJfyEs8tC0zpTVIr5PKKsQtkT29IwupnPTjtPmQ3xT/4yCREF9hYkV/3M3kzcUTSAZT6a6h81tw==", + "dependencies": { + "code-point-at": "^1.0.0", + "is-fullwidth-code-point": "^1.0.0", + "strip-ansi": "^3.0.0" + }, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/theia/node_modules/yargs": { + "version": "3.32.0", + "resolved": "https://registry.npmjs.org/yargs/-/yargs-3.32.0.tgz", + "integrity": "sha512-ONJZiimStfZzhKamYvR/xvmgW3uEkAUFSP91y2caTEPhzF6uP2JfPiVZcq66b/YR0C3uitxSV7+T1x8p5bkmMg==", + "dependencies": { + "camelcase": "^2.0.1", + "cliui": "^3.0.3", + "decamelize": "^1.1.1", + "os-locale": "^1.4.0", + "string-width": "^1.0.1", + "window-size": "^0.1.4", + "y18n": "^3.2.0" + } + }, + "node_modules/three": { + "version": "0.153.0", + "resolved": "https://registry.npmjs.org/three/-/three-0.153.0.tgz", + "integrity": "sha512-OCP2/uQR6GcDpSLnJt/3a4mdS0kNWcbfUXIwLoEMgLzEUIVIYsSDwskpmOii/AkDM+BBwrl6+CKgrjX9+E2aWg==" + }, + "node_modules/three-mesh-bvh": { + "version": "0.6.0", + "resolved": "https://registry.npmjs.org/three-mesh-bvh/-/three-mesh-bvh-0.6.0.tgz", + "integrity": "sha512-4/oXeqVMLuN9/P0M3L5ezIVrFiXQXKvjVTErkiSYMjSaPoWfNPAwqulSgLf4bIUPn8/Lq3rmIJwxbCuD8qDobA==", + "peerDependencies": { + "three": ">= 0.151.0" + } + }, + "node_modules/throat": { + "version": "4.1.0", + "resolved": "https://registry.npmjs.org/throat/-/throat-4.1.0.tgz", + "integrity": "sha512-wCVxLDcFxw7ujDxaeJC6nfl2XfHJNYs8yUYJnvMgtPEFlttP9tHSfRUv2vBe6C4hkVFPWoP1P6ZccbYjmSEkKA==", + "dev": true + }, + "node_modules/through": { + "version": "2.3.8", + "resolved": "https://registry.npmjs.org/through/-/through-2.3.8.tgz", + "integrity": "sha512-w89qg7PI8wAdvX60bMDP+bFoD5Dvhm9oLheFp5O4a2QF0cSBGsBX4qZmadPMvVqlLJBBci+WqGGOAPvcDeNSVg==" + }, + "node_modules/through2": { + "version": "2.0.5", + "resolved": "https://registry.npmjs.org/through2/-/through2-2.0.5.tgz", + "integrity": "sha512-/mrRod8xqpA+IHSLyGCQ2s8SPHiCDEeQJSep1jqLYeEUClOFG2Qsh+4FU6G9VeqpZnGW/Su8LQGc4YKni5rYSQ==", + "dependencies": { + "readable-stream": "~2.3.6", + "xtend": "~4.0.1" + } + }, + "node_modules/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/timed-out": { + "version": "4.0.1", + "resolved": "https://registry.npmjs.org/timed-out/-/timed-out-4.0.1.tgz", + "integrity": "sha512-G7r3AhovYtr5YKOWQkta8RKAPb+J9IsO4uVmzjl8AZwfhs8UcUwTiD6gcJYSgOtzyjvQKrKYn41syHbUWMkafA==", + "engines": { + "node": ">=0.10.0" + } + }, + "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==", + "dependencies": { + "setimmediate": "^1.0.4" + }, + "engines": { + "node": ">=0.6.0" + } + }, + "node_modules/tiny-emitter": { + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/tiny-emitter/-/tiny-emitter-2.1.0.tgz", + "integrity": "sha512-NB6Dk1A9xgQPMoGqC5CVXn123gWyte215ONT5Pp5a0yt4nlEoO1ZWeCwpncaekPHXO60i47ihFnZPiRPjRMq4Q==" + }, + "node_modules/tiny-inflate": { + "version": "1.0.3", + "resolved": "https://registry.npmjs.org/tiny-inflate/-/tiny-inflate-1.0.3.tgz", + "integrity": "sha512-pkY1fj1cKHb2seWDy0B16HeWyczlJA9/WW3u3c4z/NiWDsO3DOU5D7nhTLE9CF0yXv/QZFY7sEJmj24dK+Rrqw==" + }, + "node_modules/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/tmpl": { + "version": "1.0.5", + "resolved": "https://registry.npmjs.org/tmpl/-/tmpl-1.0.5.tgz", + "integrity": "sha512-3f0uOEAQwIqGuWW2MVzYg8fV/QNnc/IpuJNG837rLuczAaLVHslWHZQj4IGiEl5Hs3kkbhwL9Ab7Hrsmuj+Smw==", + "dev": true + }, + "node_modules/to-arraybuffer": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/to-arraybuffer/-/to-arraybuffer-1.0.1.tgz", + "integrity": "sha512-okFlQcoGTi4LQBG/PgSYblw9VOyptsz2KJZqc6qtgGdes8VktzUQkj4BI2blit072iS8VODNcMA+tvnS9dnuMA==" + }, + "node_modules/to-buffer": { + "version": "1.1.1", + "resolved": "https://registry.npmjs.org/to-buffer/-/to-buffer-1.1.1.tgz", + "integrity": "sha512-lx9B5iv7msuFYE3dytT+KE5tap+rNYw+K4jVkb9R/asAb+pbBSM17jtunHplhBe6RRJdZx3Pn2Jph24O32mOVg==" + }, + "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": "sha512-lxrWP8ejsq+7E3nNjwYmUBMAgjMTZoTI+sdBOpvNyijeDLa29LUn9QaoXAHv4+Z578hbmHHJKZknzxVtvo77og==", + "dev": true, + "engines": { + "node": ">=0.10.0" + } + }, + "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": "sha512-9mWHdnGRuh3onocaHzukyvCZhzvr6tiflAy/JRFXcJX0TjgfWA9pk9t8CMbzmBE4Jfw58pXbkngtBtqYxzNEyg==", + "dependencies": { + "kind-of": "^3.0.2" + }, + "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==", + "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": "2.1.1", + "resolved": "https://registry.npmjs.org/to-regex-range/-/to-regex-range-2.1.1.tgz", + "integrity": "sha512-ZZWNfCjUokXXDGXFpZehJIkZqq91BcULFq/Pi7M5i4JnxXdhMKAK682z8bCW3o8Hj1wuuzoKcW3DfVzaP6VuNg==", + "dependencies": { + "is-number": "^3.0.0", + "repeat-string": "^1.6.1" + }, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/to-regex/node_modules/extend-shallow": { + "version": "3.0.2", + "resolved": "https://registry.npmjs.org/extend-shallow/-/extend-shallow-3.0.2.tgz", + "integrity": "sha512-BwY5b5Ql4+qZoefgMj2NUmx+tehVTH/Kf4k1ZEtOHNFcm2wSxMRo992l6X3TIgni2eZVTZ85xMOjF31fwZAj6Q==", + "dependencies": { + "assign-symbols": "^1.0.0", + "is-extendable": "^1.0.1" + }, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/to-regex/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==", + "dependencies": { + "is-plain-object": "^2.0.4" + }, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/to-style": { + "version": "1.3.3", + "resolved": "https://registry.npmjs.org/to-style/-/to-style-1.3.3.tgz", + "integrity": "sha512-9K8KYegr9hrdm8yPpu5iZjJp5t6RPAp4gFDU5hD9zR8hwqgF4fsoSitMtkRKQG2qkP5j/uG3wajbgV09rjmIqg==" + }, + "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==", + "dev": true, + "engines": { + "node": ">=0.6" + } + }, + "node_modules/tone": { + "version": "14.9.17", + "resolved": "https://registry.npmjs.org/tone/-/tone-14.9.17.tgz", + "integrity": "sha512-+Qb7M4NMua+tb5Z52+MEVmjye0fjJuIFBePx423pqr9E6/lHDqZAG+fUAvo+Ujm48q0s9bVLRAyT1ETJJglNtg==", + "dependencies": { + "standardized-audio-context": "^25.3.70", + "tslib": "^2.3.1" + } + }, + "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==", + "dependencies": { + "psl": "^1.1.28", + "punycode": "^2.1.1" + }, + "engines": { + "node": ">=0.8" + } + }, + "node_modules/tough-cookie/node_modules/punycode": { + "version": "2.3.1", + "resolved": "https://registry.npmjs.org/punycode/-/punycode-2.3.1.tgz", + "integrity": "sha512-vYt7UD1U9Wg6138shLtLOvdAu+8DsC/ilFtEVHcH+wydcSpNE20AfSOduf6MkRFahL5FY7X1oU7nKVZFtfq8Fg==", + "engines": { + "node": ">=6" + } + }, + "node_modules/tr46": { + "version": "0.0.3", + "resolved": "https://registry.npmjs.org/tr46/-/tr46-0.0.3.tgz", + "integrity": "sha512-N3WMsuqV66lT30CrXNbEjx4GEwlow3v6rr4mCcv6prnfwhS01rkgyFdjPNBYd9br7LpXV1+Emh01fHnq2Gdgrw==", + "dev": true + }, + "node_modules/transformation-matrix": { + "version": "1.15.0", + "resolved": "https://registry.npmjs.org/transformation-matrix/-/transformation-matrix-1.15.0.tgz", + "integrity": "sha512-808EqPQbmUD6/IMpWUXLOZcblCHf9xaiB+un0RYNNE9+6VRjoiw6Be8R32tZ0ips1PX/15tlnA2Ev4UUgg827Q==" + }, + "node_modules/transifex": { + "version": "1.6.6", + "resolved": "https://registry.npmjs.org/transifex/-/transifex-1.6.6.tgz", + "integrity": "sha512-uHeRvhfLfZN+JdH+X0zR1jkQAbMGkgExZgcXm31CzaVVd4kq98YaPr4MCgCU0LwA7cgOuB97d2HZQ/WikOAxlg==", + "dependencies": { + "commander": "^2.9.0", + "lodash": "^4.17.1", + "mkpath": "^1.0.0", + "mocha": "^4.0.0", + "request": "^2.34.0", + "should": "^13.0.0" + }, + "bin": { + "transifex": "bin/index.js" + }, + "engines": { + "node": ">=8.9.0" + } + }, + "node_modules/transifex/node_modules/commander": { + "version": "2.20.3", + "resolved": "https://registry.npmjs.org/commander/-/commander-2.20.3.tgz", + "integrity": "sha512-GpVkmM8vF2vQUkj2LvZmD35JxeJOLCwJ9cUkugyk2nuhbv3+mJvpLYYt+0+USMxE+oj+ey/lJEnhZw75x/OMcQ==" + }, + "node_modules/trim-repeated": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/trim-repeated/-/trim-repeated-1.0.0.tgz", + "integrity": "sha512-pkonvlKk8/ZuR0D5tLW8ljt5I8kmxp2XKymhepUeOdCEfKpZaktSArkLHZt76OB1ZvO9bssUsDty4SWhLvZpLg==", + "dependencies": { + "escape-string-regexp": "^1.0.2" + }, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/trim-right": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/trim-right/-/trim-right-1.0.1.tgz", + "integrity": "sha512-WZGXGstmCWgeevgTL54hrCuw1dyMQIzWy7ZfqRJfSmJZBwklI15egmQytFP6bPidmw3M8d5yEowl1niq4vmqZw==", + "dev": true, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/tsconfig-paths": { + "version": "3.15.0", + "resolved": "https://registry.npmjs.org/tsconfig-paths/-/tsconfig-paths-3.15.0.tgz", + "integrity": "sha512-2Ac2RgzDe/cn48GvOe3M+o82pEFewD3UPbyoUHHdKasHwJKjds4fLXWf/Ux5kATBKN20oaFGu+jbElp1pos0mg==", + "dev": true, + "dependencies": { + "@types/json5": "^0.0.29", + "json5": "^1.0.2", + "minimist": "^1.2.6", + "strip-bom": "^3.0.0" + } + }, + "node_modules/tsconfig-paths/node_modules/json5": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/json5/-/json5-1.0.2.tgz", + "integrity": "sha512-g1MWMLBiz8FKi1e4w0UyVL3w+iJceWAFBAaBnnGKOpNa5f8TLktkbre1+s6oICydWAm+HRUGTmI+//xv2hvXYA==", + "dev": true, + "dependencies": { + "minimist": "^1.2.0" + }, + "bin": { + "json5": "lib/cli.js" + } + }, + "node_modules/tsconfig-paths/node_modules/strip-bom": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/strip-bom/-/strip-bom-3.0.0.tgz", + "integrity": "sha512-vavAMRXOgBVNF6nyEEmL3DBK19iRpDcoIwW+swQ+CbGiu7lju6t+JklA1MHweoWtadgt4ISVUsXLyDq34ddcwA==", + "dev": true, + "engines": { + "node": ">=4" + } + }, + "node_modules/tslib": { + "version": "2.8.1", + "resolved": "https://registry.npmjs.org/tslib/-/tslib-2.8.1.tgz", + "integrity": "sha512-oJFu94HQb+KVduSUQL7wnpmqnfmLsOA/nAh6b6EH0wCEoK0/mPeXU6c3wKDV83MkOuHPRHtSXKKU99IBazS/2w==" + }, + "node_modules/tty-browserify": { + "version": "0.0.0", + "resolved": "https://registry.npmjs.org/tty-browserify/-/tty-browserify-0.0.0.tgz", + "integrity": "sha512-JVa5ijo+j/sOoHGjw0sxw734b1LhBkQ3bvUGNdxnVXDCX81Yx7TFgnZygxrIIWn23hbfTaMYLwRmAxFyDuFmIw==" + }, + "node_modules/tunnel-agent": { + "version": "0.6.0", + "resolved": "https://registry.npmjs.org/tunnel-agent/-/tunnel-agent-0.6.0.tgz", + "integrity": "sha512-McnNiV1l8RYeY8tBgEpuodCC1mLUdbSN+CYBL7kJsJNInOP8UjDDEwdk6Mw60vdLLrr5NHKZhMAOSrR2NZuQ+w==", + "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": "sha512-KXXFFdAbFXY4geFIwoyNK+f5Z1b7swfXABfL7HXCmoIWMKU3dmS26672A4EeQtDzLKy7SXmfBu51JolvEKwtGA==" + }, + "node_modules/twgl.js": { + "version": "4.4.0", + "resolved": "https://registry.npmjs.org/twgl.js/-/twgl.js-4.4.0.tgz", + "integrity": "sha512-W+uFP2DyK2dNhE38PcpituNi8CBm+YO5gY6o/IWEILT7NNDTT1wo3YcMmydwiCfUbnT7tz+EcjV7KlZLgE1PlQ==" + }, + "node_modules/type-check": { + "version": "0.3.2", + "resolved": "https://registry.npmjs.org/type-check/-/type-check-0.3.2.tgz", + "integrity": "sha512-ZCmOJdvOWDBYJlzAoFkC+Q0+bUyEOS1ltgp1MGU03fqHG+dbi9tBFU2Rd9QKiDZFAYrhPh2JUf7rZRIuHRKtOg==", + "dependencies": { + "prelude-ls": "~1.1.2" + }, + "engines": { + "node": ">= 0.8.0" + } + }, + "node_modules/type-is": { + "version": "1.6.18", + "resolved": "https://registry.npmjs.org/type-is/-/type-is-1.6.18.tgz", + "integrity": "sha512-TkRKr9sUTxEH8MdfuCSP7VizJyzRNMjj2J2do2Jr3Kym598JVdEksuzPQCnlFPW4ky9Q+iA+ma9BGm06XQBy8g==", + "dev": true, + "dependencies": { + "media-typer": "0.3.0", + "mime-types": "~2.1.24" + }, + "engines": { + "node": ">= 0.6" + } + }, + "node_modules/typed-array-buffer": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/typed-array-buffer/-/typed-array-buffer-1.0.2.tgz", + "integrity": "sha512-gEymJYKZtKXzzBzM4jqa9w6Q1Jjm7x2d+sh19AdsD4wqnMPDYyvwpsIc2Q/835kHuo3BEQ7CjelGhfTsoBb2MQ==", + "dev": true, + "dependencies": { + "call-bind": "^1.0.7", + "es-errors": "^1.3.0", + "is-typed-array": "^1.1.13" + }, + "engines": { + "node": ">= 0.4" + } + }, + "node_modules/typed-array-byte-length": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/typed-array-byte-length/-/typed-array-byte-length-1.0.1.tgz", + "integrity": "sha512-3iMJ9q0ao7WE9tWcaYKIptkNBuOIcZCCT0d4MRvuuH88fEoEH62IuQe0OtraD3ebQEoTRk8XCBoknUNc1Y67pw==", + "dev": true, + "dependencies": { + "call-bind": "^1.0.7", + "for-each": "^0.3.3", + "gopd": "^1.0.1", + "has-proto": "^1.0.3", + "is-typed-array": "^1.1.13" + }, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/typed-array-byte-offset": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/typed-array-byte-offset/-/typed-array-byte-offset-1.0.2.tgz", + "integrity": "sha512-Ous0vodHa56FviZucS2E63zkgtgrACj7omjwd/8lTEMEPFFyjfixMZ1ZXenpgCFBBt4EC1J2XsyVS2gkG0eTFA==", + "dev": true, + "dependencies": { + "available-typed-arrays": "^1.0.7", + "call-bind": "^1.0.7", + "for-each": "^0.3.3", + "gopd": "^1.0.1", + "has-proto": "^1.0.3", + "is-typed-array": "^1.1.13" + }, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/typed-array-length": { + "version": "1.0.6", + "resolved": "https://registry.npmjs.org/typed-array-length/-/typed-array-length-1.0.6.tgz", + "integrity": "sha512-/OxDN6OtAk5KBpGb28T+HZc2M+ADtvRxXrKKbUwtsLgdoxgX13hyy7ek6bFRl5+aBs2yZzB0c4CnQfAtVypW/g==", + "dev": true, + "dependencies": { + "call-bind": "^1.0.7", + "for-each": "^0.3.3", + "gopd": "^1.0.1", + "has-proto": "^1.0.3", + "is-typed-array": "^1.1.13", + "possible-typed-array-names": "^1.0.0" + }, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/typed-function": { + "version": "4.2.1", + "resolved": "https://registry.npmjs.org/typed-function/-/typed-function-4.2.1.tgz", + "integrity": "sha512-EGjWssW7Tsk4DGfE+5yluuljS1OGYWiI1J6e8puZz9nTMM51Oug8CD5Zo4gWMsOhq5BI+1bF+rWTm4Vbj3ivRA==", + "engines": { + "node": ">= 18" + } + }, + "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/ua-parser-js": { + "version": "0.7.39", + "resolved": "https://registry.npmjs.org/ua-parser-js/-/ua-parser-js-0.7.39.tgz", + "integrity": "sha512-IZ6acm6RhQHNibSt7+c09hhvsKy9WUr4DVbeq9U8o71qxyYtJpQeDxQnMrVqnIFMLcQjHO0I9wgfO2vIahht4w==", + "dev": true, + "funding": [ + { + "type": "opencollective", + "url": "https://opencollective.com/ua-parser-js" + }, + { + "type": "paypal", + "url": "https://paypal.me/faisalman" + }, + { + "type": "github", + "url": "https://github.com/sponsors/faisalman" + } + ], + "bin": { + "ua-parser-js": "script/cli.js" + }, + "engines": { + "node": "*" + } + }, + "node_modules/uglify-es": { + "version": "3.3.9", + "resolved": "https://registry.npmjs.org/uglify-es/-/uglify-es-3.3.9.tgz", + "integrity": "sha512-r+MU0rfv4L/0eeW3xZrd16t4NZfK8Ld4SWVglYBb7ez5uXFWHuVRs6xCTrf1yirs9a4j4Y27nn7SRfO6v67XsQ==", + "deprecated": "support for ECMAScript is superseded by `uglify-js` as of v3.13.0", + "dev": true, + "dependencies": { + "commander": "~2.13.0", + "source-map": "~0.6.1" + }, + "bin": { + "uglifyjs": "bin/uglifyjs" + }, + "engines": { + "node": ">=0.8.0" + } + }, + "node_modules/uglify-es/node_modules/commander": { + "version": "2.13.0", + "resolved": "https://registry.npmjs.org/commander/-/commander-2.13.0.tgz", + "integrity": "sha512-MVuS359B+YzaWqjCL/c+22gfryv+mCBPHAv3zyVI2GN8EY6IRP8VwtasXn8jyyhvvq84R4ImN1OKRtcbIasjYA==", + "dev": true + }, + "node_modules/uglify-es/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/uglify-js": { + "version": "3.19.3", + "resolved": "https://registry.npmjs.org/uglify-js/-/uglify-js-3.19.3.tgz", + "integrity": "sha512-v3Xu+yuwBXisp6QYTcH4UbH+xYJXqnq2m/LtQVWKWzYc1iehYnLixoQDN9FH6/j9/oybfd6W9Ghwkl8+UMKTKQ==", + "dev": true, + "optional": true, + "bin": { + "uglifyjs": "bin/uglifyjs" + }, + "engines": { + "node": ">=0.8.0" + } + }, + "node_modules/uglifyjs-webpack-plugin": { + "version": "1.3.0", + "resolved": "https://registry.npmjs.org/uglifyjs-webpack-plugin/-/uglifyjs-webpack-plugin-1.3.0.tgz", + "integrity": "sha512-ovHIch0AMlxjD/97j9AYovZxG5wnHOPkL7T1GKochBADp/Zwc44pEWNqpKl1Loupp1WhFg7SlYmHZRUfdAacgw==", + "dev": true, + "dependencies": { + "cacache": "^10.0.4", + "find-cache-dir": "^1.0.0", + "schema-utils": "^0.4.5", + "serialize-javascript": "^1.4.0", + "source-map": "^0.6.1", + "uglify-es": "^3.3.4", + "webpack-sources": "^1.1.0", + "worker-farm": "^1.5.2" + }, + "engines": { + "node": ">= 4.8 < 5.0.0 || >= 5.10" + }, + "peerDependencies": { + "webpack": "^2.0.0 || ^3.0.0 || ^4.0.0" + } + }, + "node_modules/uglifyjs-webpack-plugin/node_modules/cacache": { + "version": "10.0.4", + "resolved": "https://registry.npmjs.org/cacache/-/cacache-10.0.4.tgz", + "integrity": "sha512-Dph0MzuH+rTQzGPNT9fAnrPmMmjKfST6trxJeK7NQuHRaVw24VzPRWTmg9MpcwOVQZO0E1FBICUlFeNaKPIfHA==", + "dev": true, + "dependencies": { + "bluebird": "^3.5.1", + "chownr": "^1.0.1", + "glob": "^7.1.2", + "graceful-fs": "^4.1.11", + "lru-cache": "^4.1.1", + "mississippi": "^2.0.0", + "mkdirp": "^0.5.1", + "move-concurrently": "^1.0.1", + "promise-inflight": "^1.0.1", + "rimraf": "^2.6.2", + "ssri": "^5.2.4", + "unique-filename": "^1.1.0", + "y18n": "^4.0.0" + } + }, + "node_modules/uglifyjs-webpack-plugin/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/uglifyjs-webpack-plugin/node_modules/find-cache-dir": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/find-cache-dir/-/find-cache-dir-1.0.0.tgz", + "integrity": "sha512-46TFiBOzX7xq/PcSWfFwkyjpemdRnMe31UQF+os0y+1W3k95f6R4SEt02Hj4p3X0Mir9gfrkmOtshFidS0VPUg==", + "dev": true, + "dependencies": { + "commondir": "^1.0.1", + "make-dir": "^1.0.0", + "pkg-dir": "^2.0.0" + }, + "engines": { + "node": ">=4" + } + }, + "node_modules/uglifyjs-webpack-plugin/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==", + "dev": true, + "dependencies": { + "pseudomap": "^1.0.2", + "yallist": "^2.1.2" + } + }, + "node_modules/uglifyjs-webpack-plugin/node_modules/make-dir": { + "version": "1.3.0", + "resolved": "https://registry.npmjs.org/make-dir/-/make-dir-1.3.0.tgz", + "integrity": "sha512-2w31R7SJtieJJnQtGc7RVL2StM2vGYVfqUOvUDxH6bC6aJTxPxTF0GnIgCyu7tjockiUWAYQRbxa7vKn34s5sQ==", + "dev": true, + "dependencies": { + "pify": "^3.0.0" + }, + "engines": { + "node": ">=4" + } + }, + "node_modules/uglifyjs-webpack-plugin/node_modules/mississippi": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/mississippi/-/mississippi-2.0.0.tgz", + "integrity": "sha512-zHo8v+otD1J10j/tC+VNoGK9keCuByhKovAvdn74dmxJl9+mWHnx6EMsDN4lgRoMI/eYo2nchAxniIbUPb5onw==", + "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": "^2.0.1", + "pumpify": "^1.3.3", + "stream-each": "^1.1.0", + "through2": "^2.0.0" + }, + "engines": { + "node": ">=4.0.0" + } + }, + "node_modules/uglifyjs-webpack-plugin/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==", + "dev": true, + "dependencies": { + "minimist": "^1.2.6" + }, + "bin": { + "mkdirp": "bin/cmd.js" + } + }, + "node_modules/uglifyjs-webpack-plugin/node_modules/pify": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/pify/-/pify-3.0.0.tgz", + "integrity": "sha512-C3FsVNH1udSEX48gGX1xfvwTWfsYWj5U+8/uK15BGzIGrKoUpghX8hWZwa/OFnakBiiVNmBvemTJR5mcy7iPcg==", + "dev": true, + "engines": { + "node": ">=4" + } + }, + "node_modules/uglifyjs-webpack-plugin/node_modules/pkg-dir": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/pkg-dir/-/pkg-dir-2.0.0.tgz", + "integrity": "sha512-ojakdnUgL5pzJYWw2AIDEupaQCX5OPbM688ZevubICjdIX01PRSYKqm33fJoCOJBRseYCTUlQRnBNX+Pchaejw==", + "dev": true, + "dependencies": { + "find-up": "^2.1.0" + }, + "engines": { + "node": ">=4" + } + }, + "node_modules/uglifyjs-webpack-plugin/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/uglifyjs-webpack-plugin/node_modules/schema-utils": { + "version": "0.4.7", + "resolved": "https://registry.npmjs.org/schema-utils/-/schema-utils-0.4.7.tgz", + "integrity": "sha512-v/iwU6wvwGK8HbU9yi3/nhGzP0yGSuhQMzL6ySiec1FSrZZDkhm4noOSWzrNFo/jEc+SJY6jRTwuwbSXJPDUnQ==", + "dev": true, + "dependencies": { + "ajv": "^6.1.0", + "ajv-keywords": "^3.1.0" + }, + "engines": { + "node": ">= 4" + } + }, + "node_modules/uglifyjs-webpack-plugin/node_modules/serialize-javascript": { + "version": "1.9.1", + "resolved": "https://registry.npmjs.org/serialize-javascript/-/serialize-javascript-1.9.1.tgz", + "integrity": "sha512-0Vb/54WJ6k5v8sSWN09S0ora+Hnr+cX40r9F170nT+mSkaxltoE/7R3OrIdBSUv1OoiobH1QoWQbCnAO+e8J1A==", + "dev": true + }, + "node_modules/uglifyjs-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/uglifyjs-webpack-plugin/node_modules/ssri": { + "version": "5.3.0", + "resolved": "https://registry.npmjs.org/ssri/-/ssri-5.3.0.tgz", + "integrity": "sha512-XRSIPqLij52MtgoQavH/x/dU1qVKtWUAAZeOHsR9c2Ddi4XerFy3mc1alf+dLJKl9EUIm/Ht+EowFkTUOA6GAQ==", + "dev": true, + "dependencies": { + "safe-buffer": "^5.1.1" + } + }, + "node_modules/uglifyjs-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/uglifyjs-webpack-plugin/node_modules/y18n": { + "version": "4.0.3", + "resolved": "https://registry.npmjs.org/y18n/-/y18n-4.0.3.tgz", + "integrity": "sha512-JKhqTOwSrqNA1NY5lSztJ1GrBiUodLMmIZuLiDaMRJ+itFd+ABVE8XBjOvIWL+rSqNDC74LCSFmlb/U4UZ4hJQ==", + "dev": true + }, + "node_modules/uglifyjs-webpack-plugin/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==", + "dev": true + }, + "node_modules/unbox-primitive": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/unbox-primitive/-/unbox-primitive-1.0.2.tgz", + "integrity": "sha512-61pPlCD9h51VoreyJ0BReideM3MDKMKnh6+V9L08331ipq6Q8OFXZYiqP6n/tbHx4s5I9uRhcye6BrbkizkBDw==", + "dev": true, + "dependencies": { + "call-bind": "^1.0.2", + "has-bigints": "^1.0.2", + "has-symbols": "^1.0.3", + "which-boxed-primitive": "^1.0.2" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/unbzip2-stream": { + "version": "1.4.3", + "resolved": "https://registry.npmjs.org/unbzip2-stream/-/unbzip2-stream-1.4.3.tgz", + "integrity": "sha512-mlExGW4w71ebDJviH16lQLtZS32VKqsSfk80GCfUlwT/4/hNRFsoscrF/c++9xinkMzECL1uL9DDwXqFWkruPg==", + "dependencies": { + "buffer": "^5.2.1", + "through": "^2.3.8" + } + }, + "node_modules/unbzip2-stream/node_modules/buffer": { + "version": "5.7.1", + "resolved": "https://registry.npmjs.org/buffer/-/buffer-5.7.1.tgz", + "integrity": "sha512-EHcyIPBQ4BSGlvjB16k5KgAJ27CIsHY/2JBmCRReo48y9rQ3MaUzWX3KVlBa4U7MyX02HdVj0K7C3WaB3ju7FQ==", + "funding": [ + { + "type": "github", + "url": "https://github.com/sponsors/feross" + }, + { + "type": "patreon", + "url": "https://www.patreon.com/feross" + }, + { + "type": "consulting", + "url": "https://feross.org/support" + } + ], + "dependencies": { + "base64-js": "^1.3.1", + "ieee754": "^1.1.13" + } + }, + "node_modules/undici": { + "version": "6.21.0", + "resolved": "https://registry.npmjs.org/undici/-/undici-6.21.0.tgz", + "integrity": "sha512-BUgJXc752Kou3oOIuU1i+yZZypyZRqNPW0vqoMPl8VaoalSfeR0D8/t4iAS3yirs79SSMTxTag+ZC86uswv+Cw==", + "dev": true, + "engines": { + "node": ">=18.17" + } + }, + "node_modules/undici-types": { + "version": "6.19.8", + "resolved": "https://registry.npmjs.org/undici-types/-/undici-types-6.19.8.tgz", + "integrity": "sha512-ve2KP6f/JnbPBFyobGHuerC9g1FYGn/F8n1LWTwNxCEzd6IfqTwUQcNXgEtmmQ6DlRrC1hrSrBnCZPokRrDHjw==" + }, + "node_modules/unicode-canonical-property-names-ecmascript": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/unicode-canonical-property-names-ecmascript/-/unicode-canonical-property-names-ecmascript-2.0.1.tgz", + "integrity": "sha512-dA8WbNeb2a6oQzAQ55YlT5vQAWGV9WXOsi3SskE3bcCdM0P4SDd+24zS/OCacdRq5BkdsRj9q3Pg6YyQoxIGqg==", + "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.2.0", + "resolved": "https://registry.npmjs.org/unicode-match-property-value-ecmascript/-/unicode-match-property-value-ecmascript-2.2.0.tgz", + "integrity": "sha512-4IehN3V/+kkr5YeSSDDQG8QLqO26XpL2XP3GQtqwlT/QYSECAwFztxVHjlbh0+gjJ3XmNLS0zDsbgs9jWKExLg==", + "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/unicode-trie": { + "version": "0.3.1", + "resolved": "https://registry.npmjs.org/unicode-trie/-/unicode-trie-0.3.1.tgz", + "integrity": "sha512-WgVuO0M2jDl7hVfbPgXv2LUrD81HM0bQj/bvLGiw6fJ4Zo8nNFnDrA0/hU2Te/wz6pjxCm5cxJwtLjo2eyV51Q==", + "dependencies": { + "pako": "^0.2.5", + "tiny-inflate": "^1.0.0" + } + }, + "node_modules/unicode-trie/node_modules/pako": { + "version": "0.2.9", + "resolved": "https://registry.npmjs.org/pako/-/pako-0.2.9.tgz", + "integrity": "sha512-NUcwaKxUxWrZLpDG+z/xZaCgQITkA/Dv4V/T6bw7VON6l1Xz/VnrBqrYjZQ12TamKHzITTfOEIYUj48y2KXImA==" + }, + "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==", + "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/unique-filename": { + "version": "1.1.1", + "resolved": "https://registry.npmjs.org/unique-filename/-/unique-filename-1.1.1.tgz", + "integrity": "sha512-Vmp0jIp2ln35UTXuryvjzkjGdRyf9b2lTXuSYUiPmzRcl3FDtYqAwOnTJkAngD9SWhnoJzDbTKwaOrZ+STtxNQ==", + "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==", + "dependencies": { + "imurmurhash": "^0.1.4" + } + }, + "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==", + "engines": { + "node": ">= 4.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==", + "dev": true, + "engines": { + "node": ">= 0.8" + } + }, + "node_modules/unset-value": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/unset-value/-/unset-value-1.0.0.tgz", + "integrity": "sha512-PcA2tsuGSF9cnySLHTLSh2qrQiJ70mn+r+Glzxv2TWZblxsxCC52BDlZoPCsz7STd9pN7EZetkWZBAvk4cgZdQ==", + "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": "sha512-gpG936j8/MzaeID5Yif+577c17TxaDmhuyVgSwtnL/q8UUTySg8Mecb+8Cf1otgLoD7DDH75axp86ER7LFsf3Q==", + "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": "sha512-+OUdGJlgjOBZDfxnDjYYG6zp487z0JGNQq3cYQYg5f5hKR+syHMsaztzGeml/4kGG55CSpKSpWTY+jYGgsHLgA==", + "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": "sha512-J8S0cEdWuQbqD9//tlZxiMuMNmxB8PlEwvYwuxsTmR1G5RXUePEX/SJn7aD0GMLieuZYSwNH0cQuJGwnYunXRQ==", + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/unset-value/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/upath": { + "version": "1.2.0", + "resolved": "https://registry.npmjs.org/upath/-/upath-1.2.0.tgz", + "integrity": "sha512-aZwGpamFO61g3OlfT7OQCHqhGnW43ieH9WZeP7QxN/G/jS4jfqUkZxoryvJgVPEcrl5NL/ggHsSmLMHuH64Lhg==", + "devOptional": true, + "engines": { + "node": ">=4", + "yarn": "*" + } + }, + "node_modules/update-browserslist-db": { + "version": "1.1.1", + "resolved": "https://registry.npmjs.org/update-browserslist-db/-/update-browserslist-db-1.1.1.tgz", + "integrity": "sha512-R8UzCaa9Az+38REPiJ1tXlImTJXlVfgHZsglwBD/k6nj76ctsH1E3q4doGrukiLQd3sGQYu56r5+lo5r94l29A==", + "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.2.0", + "picocolors": "^1.1.0" + }, + "bin": { + "update-browserslist-db": "cli.js" + }, + "peerDependencies": { + "browserslist": ">= 4.21.0" + } + }, + "node_modules/uri-js": { + "version": "4.4.1", + "resolved": "https://registry.npmjs.org/uri-js/-/uri-js-4.4.1.tgz", + "integrity": "sha512-7rKUyy33Q1yc98pQ1DAmLtwX109F7TIfWlW1Ydo8Wl1ii1SeHieeh0HHfPeL2fMXK6z0s8ecKs9frCuLJvndBg==", + "dependencies": { + "punycode": "^2.1.0" + } + }, + "node_modules/uri-js/node_modules/punycode": { + "version": "2.3.1", + "resolved": "https://registry.npmjs.org/punycode/-/punycode-2.3.1.tgz", + "integrity": "sha512-vYt7UD1U9Wg6138shLtLOvdAu+8DsC/ilFtEVHcH+wydcSpNE20AfSOduf6MkRFahL5FY7X1oU7nKVZFtfq8Fg==", + "engines": { + "node": ">=6" + } + }, + "node_modules/urix": { + "version": "0.1.0", + "resolved": "https://registry.npmjs.org/urix/-/urix-0.1.0.tgz", + "integrity": "sha512-Am1ousAhSLBeB9cG/7k7r2R0zj50uDRlZHPGbazid5s9rlF1F/QKYObEKSIunSjIOkJZqwRRLpvewjEkM7pSqg==", + "deprecated": "Please see https://github.com/lydell/urix#deprecated" + }, + "node_modules/url": { + "version": "0.11.4", + "resolved": "https://registry.npmjs.org/url/-/url-0.11.4.tgz", + "integrity": "sha512-oCwdVC7mTuWiPyjLUz/COz5TLk6wgp0RCsN+wHZ2Ekneac9w8uuV0njcbbie2ME+Vs+d6duwmYuR3HgQXs1fOg==", + "dependencies": { + "punycode": "^1.4.1", + "qs": "^6.12.3" + }, + "engines": { + "node": ">= 0.4" + } + }, + "node_modules/url-loader": { + "version": "4.1.1", + "resolved": "https://registry.npmjs.org/url-loader/-/url-loader-4.1.1.tgz", + "integrity": "sha512-3BTV812+AVHHOJQO8O5MkWgZ5aosP7GnROJwvzLS9hWDj00lZ6Z0wNak423Lp9PBZN05N+Jk/N5Si8jRAlGyWA==", + "dev": true, + "dependencies": { + "loader-utils": "^2.0.0", + "mime-types": "^2.1.27", + "schema-utils": "^3.0.0" + }, + "engines": { + "node": ">= 10.13.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/webpack" + }, + "peerDependencies": { + "file-loader": "*", + "webpack": "^4.0.0 || ^5.0.0" + }, + "peerDependenciesMeta": { + "file-loader": { + "optional": true + } + } + }, + "node_modules/url-loader/node_modules/loader-utils": { + "version": "2.0.4", + "resolved": "https://registry.npmjs.org/loader-utils/-/loader-utils-2.0.4.tgz", + "integrity": "sha512-xXqpXoINfFhgua9xiqD8fPFHgkoq1mmmpE92WlDbm9rNRd/EbRb+Gqf908T2DMfuHjjJlksiK2RbHVOdD/MqSw==", + "dev": true, + "dependencies": { + "big.js": "^5.2.2", + "emojis-list": "^3.0.0", + "json5": "^2.1.2" + }, + "engines": { + "node": ">=8.9.0" + } + }, + "node_modules/url-loader/node_modules/schema-utils": { + "version": "3.3.0", + "resolved": "https://registry.npmjs.org/schema-utils/-/schema-utils-3.3.0.tgz", + "integrity": "sha512-pN/yOAvcC+5rQ5nERGuwrjLlYvLTbCibnZ1I7B1LaiAz9BRBlE9GMgE/eqV30P7aJQUf7Ddimy/RsbYO/GrVGg==", + "dev": true, + "dependencies": { + "@types/json-schema": "^7.0.8", + "ajv": "^6.12.5", + "ajv-keywords": "^3.5.2" + }, + "engines": { + "node": ">= 10.13.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/webpack" + } + }, + "node_modules/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-parse-lax": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/url-parse-lax/-/url-parse-lax-3.0.0.tgz", + "integrity": "sha512-NjFKA0DidqPa5ciFcSrXnAltTtzz84ogy+NebPvfEgAck0+TNg4UJ4IN+fB7zRZfbgUf0syOo9MDxFkDSMuFaQ==", + "dependencies": { + "prepend-http": "^2.0.0" + }, + "engines": { + "node": ">=4" + } + }, + "node_modules/url-to-options": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/url-to-options/-/url-to-options-1.0.1.tgz", + "integrity": "sha512-0kQLIzG4fdk/G5NONku64rSH/x32NOA39LVQqlK8Le6lvTF6GGRJpqaQFGgU+CLwySIqBSMdwYM0sYcW9f6P4A==", + "engines": { + "node": ">= 4" + } + }, + "node_modules/url/node_modules/qs": { + "version": "6.13.0", + "resolved": "https://registry.npmjs.org/qs/-/qs-6.13.0.tgz", + "integrity": "sha512-+38qI9SOr8tfZ4QmJNplMUxqjbe7LKvvZgWdExBOmd+egZTtjLB67Gu0HRX3u/XOq7UU2Nx6nsjvS16Z9uwfpg==", + "dependencies": { + "side-channel": "^1.0.6" + }, + "engines": { + "node": ">=0.6" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "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==", + "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==", + "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": "sha512-EPD5q1uXyFxJpCrLnCc1nHnq3gOa6DZBocAIiI2TaSCA7VCJ1UJDMagCzIkXNsUYfD1daK//LTEQ8xiIbrHtcw==" + }, + "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, + "dependencies": { + "define-properties": "^1.1.2", + "object.getownpropertydescriptors": "^2.0.3" + } + }, + "node_modules/util/node_modules/inherits": { + "version": "2.0.3", + "resolved": "https://registry.npmjs.org/inherits/-/inherits-2.0.3.tgz", + "integrity": "sha512-x00IRNXNy63jwGkJmzPigoySHbaqpNuzKbBOmzK+g2OdZpQ9w+sxCN+VSB3ja7IAge2OP2qpfxTjeNcyjmW1uw==" + }, + "node_modules/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 + }, + "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==", + "dev": true, + "engines": { + "node": ">= 0.4.0" + } + }, + "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.", + "bin": { + "uuid": "bin/uuid" + } + }, + "node_modules/v8-compile-cache": { + "version": "2.4.0", + "resolved": "https://registry.npmjs.org/v8-compile-cache/-/v8-compile-cache-2.4.0.tgz", + "integrity": "sha512-ocyWc3bAHBB/guyqJQVI5o4BZkPhznPYUG2ea80Gond/BgNWpap8TOmLSeeQG7bnh2KMISxskdADG59j7zruhw==", + "dev": true + }, + "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==", + "dependencies": { + "spdx-correct": "^3.0.0", + "spdx-expression-parse": "^3.0.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==", + "dev": true, + "engines": { + "node": ">= 0.8" + } + }, + "node_modules/verror": { + "version": "1.10.0", + "resolved": "https://registry.npmjs.org/verror/-/verror-1.10.0.tgz", + "integrity": "sha512-ZZKSmDAEFOijERBLkmYfJ+vmk3w+7hOLYDNkRCuRuMJGEmqYNCNLyBBFwWKVMhfwaEF3WOd0Zlw86U/WC/+nYw==", + "engines": [ + "node >=0.6.0" + ], + "dependencies": { + "assert-plus": "^1.0.0", + "core-util-is": "1.0.2", + "extsprintf": "^1.2.0" + } + }, + "node_modules/verror/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": "sha512-3lqz5YjWTYnW6dlDa5TLaTCcShfar1e40rmcJVwCBJC6mWlFuj0eCHIElmG1g5kyuJ/GD+8Wn4FFCcz4gJPfaQ==" + }, + "node_modules/vlq": { + "version": "0.2.3", + "resolved": "https://registry.npmjs.org/vlq/-/vlq-0.2.3.tgz", + "integrity": "sha512-DRibZL6DsNhIgYQ+wNdWDL2SL3bKPlVrRiBqV5yuMm++op8W4kGFtaQfCs4KEJn0wBZcHVHJ3eoywX8983k1ow==" + }, + "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==" + }, + "node_modules/walker": { + "version": "1.0.8", + "resolved": "https://registry.npmjs.org/walker/-/walker-1.0.8.tgz", + "integrity": "sha512-ts/8E8l5b7kY0vlWLewOkDXMmPdLcVV4GmOQLyxuSswIJsweeFZtAsMF7k1Nszz+TYBQrlYRmzOnr398y1JemQ==", + "dev": true, + "dependencies": { + "makeerror": "1.0.12" + } + }, + "node_modules/warning": { + "version": "4.0.3", + "resolved": "https://registry.npmjs.org/warning/-/warning-4.0.3.tgz", + "integrity": "sha512-rpJyN222KWIvHJ/F53XSZv0Zl/accqHR8et1kpaMTD/fLCRxtV8iX8czMzY7sVZupTI3zcUTg8eycS2kNF9l6w==", + "dependencies": { + "loose-envify": "^1.0.0" + } + }, + "node_modules/watch": { + "version": "0.18.0", + "resolved": "https://registry.npmjs.org/watch/-/watch-0.18.0.tgz", + "integrity": "sha512-oUcoHFG3UF2pBlHcMORAojsN09BfqSfWYWlR3eSSjUFR7eBEx53WT2HX/vZeVTTIVCGShcazb+t6IcBRCNXqvA==", + "dev": true, + "dependencies": { + "exec-sh": "^0.2.0", + "minimist": "^1.2.0" + }, + "bin": { + "watch": "cli.js" + }, + "engines": { + "node": ">=0.1.95" + } + }, + "node_modules/watchpack": { + "version": "1.7.5", + "resolved": "https://registry.npmjs.org/watchpack/-/watchpack-1.7.5.tgz", + "integrity": "sha512-9P3MWk6SrKjHsGkLT2KHXdQ/9SNkyoJbabxnKOoJepsvJjJG8uYTR3yTPxPQvNDI3w4Nz1xnE0TLHK4RIVe/MQ==", + "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==", + "optional": true, + "dependencies": { + "chokidar": "^2.1.8" + } + }, + "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==", + "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/fsevents": { + "version": "1.2.13", + "resolved": "https://registry.npmjs.org/fsevents/-/fsevents-1.2.13.tgz", + "integrity": "sha512-oWb1Z6mkHIskLzEJ/XWX0srkpkTQ7vaopMQkyaEIoq0fmtFVxOthb8cCxeT+p3ynTdkk/RZwbgG4brR5BeWECw==", + "deprecated": "Upgrade to fsevents v2 to mitigate potential security issues", + "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": "sha512-E8Ak/2+dZY6fnzlR7+ueWvhsH1SjHr4jjss4YS/h4py44jY9MhK/VFdaZJAWDz6BbL21KeteKxFSFpq8OS5gVA==", + "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": "sha512-UFpDDrPgM6qpnFNI+rh/p3bUaq9hKLZN8bMUWzxmcnZVS3omf4IPK+BrewlnWjO1WmUsMYuSjKh4UJuV4+Lqmw==", + "optional": true, + "dependencies": { + "is-extglob": "^2.1.0" + }, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/wav-encoder": { + "version": "1.3.0", + "resolved": "https://registry.npmjs.org/wav-encoder/-/wav-encoder-1.3.0.tgz", + "integrity": "sha512-FXJdEu2qDOI+wbVYZpu21CS1vPEg5NaxNskBr4SaULpOJMrLE6xkH8dECa7PiS+ZoeyvP7GllWUAxPN3AvFSEw==" + }, + "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/web-audio-test-api": { + "version": "0.5.2", + "resolved": "https://registry.npmjs.org/web-audio-test-api/-/web-audio-test-api-0.5.2.tgz", + "integrity": "sha512-RevLfVjp+wwe/dBPe361IpmNpeXXW6JVmlp8dk0YIxLwAh7evn6JpEQQalVgX4PH/jA8tpLpjD/8tFNUYTf88w==", + "dev": true + }, + "node_modules/webidl-conversions": { + "version": "4.0.2", + "resolved": "https://registry.npmjs.org/webidl-conversions/-/webidl-conversions-4.0.2.tgz", + "integrity": "sha512-YQ+BmxuTgd6UXZW3+ICGfyqRyHXVlD5GtQr5+qjiNW7bF0cqrzX500HVXPBOvgXb5YnzDd+h0zqyv61KUD7+Sg==", + "dev": true + }, + "node_modules/webpack": { + "version": "4.46.0", + "resolved": "https://registry.npmjs.org/webpack/-/webpack-4.46.0.tgz", + "integrity": "sha512-6jJuJjg8znb/xRItk7bkT0+Q7AHCYjjFnvKIWQPkNIOyRqoCGvkOs0ipeQzrqz4l5FtN5ZI/ukEHroeX/o1/5Q==", + "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-cli": { + "version": "3.3.12", + "resolved": "https://registry.npmjs.org/webpack-cli/-/webpack-cli-3.3.12.tgz", + "integrity": "sha512-NVWBaz9k839ZH/sinurM+HcDvJOTXwSjYp1ku+5XKeOC03z8v5QitnK/x+lAxGXFyhdayoIf/GOpv85z3/xPag==", + "dev": true, + "dependencies": { + "chalk": "^2.4.2", + "cross-spawn": "^6.0.5", + "enhanced-resolve": "^4.1.1", + "findup-sync": "^3.0.0", + "global-modules": "^2.0.0", + "import-local": "^2.0.0", + "interpret": "^1.4.0", + "loader-utils": "^1.4.0", + "supports-color": "^6.1.0", + "v8-compile-cache": "^2.1.1", + "yargs": "^13.3.2" + }, + "bin": { + "webpack-cli": "bin/cli.js" + }, + "engines": { + "node": ">=6.11.5" + }, + "peerDependencies": { + "webpack": "4.x.x" + } + }, + "node_modules/webpack-cli/node_modules/ansi-regex": { + "version": "4.1.1", + "resolved": "https://registry.npmjs.org/ansi-regex/-/ansi-regex-4.1.1.tgz", + "integrity": "sha512-ILlv4k/3f6vfQ4OoP2AGvirOktlQ98ZEL1k9FaQjxa3L1abBgbuTDAdPOpvbGncC0BTVQrl+OM8xZGK6tWXt7g==", + "dev": true, + "engines": { + "node": ">=6" + } + }, + "node_modules/webpack-cli/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/webpack-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/webpack-cli/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/webpack-cli/node_modules/chalk/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/webpack-cli/node_modules/cliui": { + "version": "5.0.0", + "resolved": "https://registry.npmjs.org/cliui/-/cliui-5.0.0.tgz", + "integrity": "sha512-PYeGSEmmHM6zvoef2w8TPzlrnNpXIjTipYK780YswmIP9vjxmd6Y2a3CB2Ks6/AU8NHjZugXvo8w3oWM2qnwXA==", + "dev": true, + "dependencies": { + "string-width": "^3.1.0", + "strip-ansi": "^5.2.0", + "wrap-ansi": "^5.1.0" + } + }, + "node_modules/webpack-cli/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/webpack-cli/node_modules/enhanced-resolve": { + "version": "4.5.0", + "resolved": "https://registry.npmjs.org/enhanced-resolve/-/enhanced-resolve-4.5.0.tgz", + "integrity": "sha512-Nv9m36S/vxpsI+Hc4/ZGRs0n9mXqSWGGq49zxb/cJfPAQMbUtttJAlNPS4AQzaBdw/pKskw5bMbekT/Y7W/Wlg==", + "dev": true, + "dependencies": { + "graceful-fs": "^4.1.2", + "memory-fs": "^0.5.0", + "tapable": "^1.0.0" + }, + "engines": { + "node": ">=6.9.0" + } + }, + "node_modules/webpack-cli/node_modules/find-up": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/find-up/-/find-up-3.0.0.tgz", + "integrity": "sha512-1yD6RmLI1XBfxugvORwlck6f75tYL+iR0jqwsOrOxMZyGYqUuDhJ0l4AXdO1iX/FTs9cBAMEk1gWSEx1kSbylg==", + "dev": true, + "dependencies": { + "locate-path": "^3.0.0" + }, + "engines": { + "node": ">=6" + } + }, + "node_modules/webpack-cli/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/webpack-cli/node_modules/locate-path": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/locate-path/-/locate-path-3.0.0.tgz", + "integrity": "sha512-7AO748wWnIhNqAuaty2ZWHkQHRSNfPVIsPIfwEOWO22AmaoVrWavlOcMR5nzTLNYvp36X220/maaRsrec1G65A==", + "dev": true, + "dependencies": { + "p-locate": "^3.0.0", + "path-exists": "^3.0.0" + }, + "engines": { + "node": ">=6" + } + }, + "node_modules/webpack-cli/node_modules/memory-fs": { + "version": "0.5.0", + "resolved": "https://registry.npmjs.org/memory-fs/-/memory-fs-0.5.0.tgz", + "integrity": "sha512-jA0rdU5KoQMC0e6ppoNRtpp6vjFq6+NY7r8hywnC7V+1Xj/MtHwGIbB1QaK/dunyjWteJzmkpd7ooeWg10T7GA==", + "dev": true, + "dependencies": { + "errno": "^0.1.3", + "readable-stream": "^2.0.1" + }, + "engines": { + "node": ">=4.3.0 <5.0.0 || >=5.10" + } + }, + "node_modules/webpack-cli/node_modules/p-limit": { + "version": "2.3.0", + "resolved": "https://registry.npmjs.org/p-limit/-/p-limit-2.3.0.tgz", + "integrity": "sha512-//88mFWSJx8lxCzwdAABTJL2MyWB12+eIY7MDL2SqLmAkeKU9qxRvWuSyTjm3FUmpBEMuFfckAIqEaVGUDxb6w==", + "dev": true, + "dependencies": { + "p-try": "^2.0.0" + }, + "engines": { + "node": ">=6" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/webpack-cli/node_modules/p-locate": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/p-locate/-/p-locate-3.0.0.tgz", + "integrity": "sha512-x+12w/To+4GFfgJhBEpiDcLozRJGegY+Ei7/z0tSLkMmxGZNybVMSfWj9aJn8Z5Fc7dBUNJOOVgPv2H7IwulSQ==", + "dev": true, + "dependencies": { + "p-limit": "^2.0.0" + }, + "engines": { + "node": ">=6" + } + }, + "node_modules/webpack-cli/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/webpack-cli/node_modules/string-width": { + "version": "3.1.0", + "resolved": "https://registry.npmjs.org/string-width/-/string-width-3.1.0.tgz", + "integrity": "sha512-vafcv6KjVZKSgz06oM/H6GDBrAtz8vdhQakGjFIvNrHA6y3HCF1CInLy+QLq8dTJPQ1b+KDUqDFctkdRW44e1w==", + "dev": true, + "dependencies": { + "emoji-regex": "^7.0.1", + "is-fullwidth-code-point": "^2.0.0", + "strip-ansi": "^5.1.0" + }, + "engines": { + "node": ">=6" + } + }, + "node_modules/webpack-cli/node_modules/strip-ansi": { + "version": "5.2.0", + "resolved": "https://registry.npmjs.org/strip-ansi/-/strip-ansi-5.2.0.tgz", + "integrity": "sha512-DuRs1gKbBqsMKIZlrffwlug8MHkcnpjs5VPmL1PAh+mA30U0DTotfDZ0d2UUsXpPmPmMMJ6W773MaA3J+lbiWA==", + "dev": true, + "dependencies": { + "ansi-regex": "^4.1.0" + }, + "engines": { + "node": ">=6" + } + }, + "node_modules/webpack-cli/node_modules/supports-color": { + "version": "6.1.0", + "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-6.1.0.tgz", + "integrity": "sha512-qe1jfm1Mg7Nq/NSh6XE24gPXROEVsWHxC1LIx//XNlD9iw7YZQGjZNjYN7xGaEG6iKdA8EtNFW6R0gjnVXp+wQ==", + "dev": true, + "dependencies": { + "has-flag": "^3.0.0" + }, + "engines": { + "node": ">=6" + } + }, + "node_modules/webpack-cli/node_modules/tapable": { + "version": "1.1.3", + "resolved": "https://registry.npmjs.org/tapable/-/tapable-1.1.3.tgz", + "integrity": "sha512-4WK/bYZmj8xLr+HUCODHGF1ZFzsYffasLUgEiMBY4fgtltdO6B4WJtlSbPaDTLpYTcGVwM2qLnFTICEcNxs3kA==", + "dev": true, + "engines": { + "node": ">=6" + } + }, + "node_modules/webpack-cli/node_modules/wrap-ansi": { + "version": "5.1.0", + "resolved": "https://registry.npmjs.org/wrap-ansi/-/wrap-ansi-5.1.0.tgz", + "integrity": "sha512-QC1/iN/2/RPVJ5jYK8BGttj5z83LmSKmvbvrXPNCLZSEb32KKVDJDl/MOt2N01qU2H/FkzEa9PKto1BqDjtd7Q==", + "dev": true, + "dependencies": { + "ansi-styles": "^3.2.0", + "string-width": "^3.0.0", + "strip-ansi": "^5.0.0" + }, + "engines": { + "node": ">=6" + } + }, + "node_modules/webpack-cli/node_modules/y18n": { + "version": "4.0.3", + "resolved": "https://registry.npmjs.org/y18n/-/y18n-4.0.3.tgz", + "integrity": "sha512-JKhqTOwSrqNA1NY5lSztJ1GrBiUodLMmIZuLiDaMRJ+itFd+ABVE8XBjOvIWL+rSqNDC74LCSFmlb/U4UZ4hJQ==", + "dev": true + }, + "node_modules/webpack-cli/node_modules/yargs": { + "version": "13.3.2", + "resolved": "https://registry.npmjs.org/yargs/-/yargs-13.3.2.tgz", + "integrity": "sha512-AX3Zw5iPruN5ie6xGRIDgqkT+ZhnRlZMLMHAs8tg7nRruy2Nb+i5o9bwghAogtM08q1dpr2LVoS8KSTMYpWXUw==", + "dev": true, + "dependencies": { + "cliui": "^5.0.0", + "find-up": "^3.0.0", + "get-caller-file": "^2.0.1", + "require-directory": "^2.1.1", + "require-main-filename": "^2.0.0", + "set-blocking": "^2.0.0", + "string-width": "^3.0.0", + "which-module": "^2.0.0", + "y18n": "^4.0.0", + "yargs-parser": "^13.1.2" + } + }, + "node_modules/webpack-cli/node_modules/yargs-parser": { + "version": "13.1.2", + "resolved": "https://registry.npmjs.org/yargs-parser/-/yargs-parser-13.1.2.tgz", + "integrity": "sha512-3lbsNRf/j+A4QuSZfDRA7HRSfWrzO0YjqTJd5kjAq37Zep1CEgaYmrH9Q3GwPiB9cHyd1Y1UwggGhJGoxipbzg==", + "dev": true, + "dependencies": { + "camelcase": "^5.0.0", + "decamelize": "^1.2.0" + } + }, + "node_modules/webpack-dev-middleware": { + "version": "3.7.3", + "resolved": "https://registry.npmjs.org/webpack-dev-middleware/-/webpack-dev-middleware-3.7.3.tgz", + "integrity": "sha512-djelc/zGiz9nZj/U7PTBi2ViorGJXEWo/3ltkPbDyxCXhhEXkW0ce99falaok4TPj+AsxLiXJR0EBOb0zh9fKQ==", + "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 || ^5.0.0" + } + }, + "node_modules/webpack-dev-middleware/node_modules/memory-fs": { + "version": "0.4.1", + "resolved": "https://registry.npmjs.org/memory-fs/-/memory-fs-0.4.1.tgz", + "integrity": "sha512-cda4JKCxReDXFXRqOHPQscuIYg1PvxbE2S2GP45rnwfEK+vZaXC8C1OFvdHIbgw0DLzowXGVoxLaAmlgRy14GQ==", + "dev": true, + "dependencies": { + "errno": "^0.1.3", + "readable-stream": "^2.0.1" + } + }, + "node_modules/webpack-dev-middleware/node_modules/mime": { + "version": "2.6.0", + "resolved": "https://registry.npmjs.org/mime/-/mime-2.6.0.tgz", + "integrity": "sha512-USPkMeET31rOMiarsBNIHZKLGgvKc/LrjofAnBlOttf5ajRvqiRA8QsenbcooctK6d6Ts6aqZXBA+XbkKthiQg==", + "dev": true, + "bin": { + "mime": "cli.js" + }, + "engines": { + "node": ">=4.0.0" + } + }, + "node_modules/webpack-dev-middleware/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==", + "dev": true, + "dependencies": { + "minimist": "^1.2.6" + }, + "bin": { + "mkdirp": "bin/cmd.js" + } + }, + "node_modules/webpack-dev-server": { + "version": "3.11.2", + "resolved": "https://registry.npmjs.org/webpack-dev-server/-/webpack-dev-server-3.11.2.tgz", + "integrity": "sha512-A80BkuHRQfCiNtGBS1EMf2ChTUs0x+B3wGDFmOeT4rmJOHhHTCH2naNxIHhmkr0/UillP4U3yeIyv1pNp+QDLQ==", + "dev": true, + "dependencies": { + "ansi-html": "0.0.7", + "bonjour": "^3.5.0", + "chokidar": "^2.1.8", + "compression": "^1.7.4", + "connect-history-api-fallback": "^1.6.0", + "debug": "^4.1.1", + "del": "^4.1.1", + "express": "^4.17.1", + "html-entities": "^1.3.1", + "http-proxy-middleware": "0.19.1", + "import-local": "^2.0.0", + "internal-ip": "^4.3.0", + "ip": "^1.1.5", + "is-absolute-url": "^3.0.3", + "killable": "^1.0.1", + "loglevel": "^1.6.8", + "opn": "^5.5.0", + "p-retry": "^3.0.1", + "portfinder": "^1.0.26", + "schema-utils": "^1.0.0", + "selfsigned": "^1.10.8", + "semver": "^6.3.0", + "serve-index": "^1.9.1", + "sockjs": "^0.3.21", + "sockjs-client": "^1.5.0", + "spdy": "^4.0.2", + "strip-ansi": "^3.0.1", + "supports-color": "^6.1.0", + "url": "^0.11.0", + "webpack-dev-middleware": "^3.7.2", + "webpack-log": "^2.0.0", + "ws": "^6.2.1", + "yargs": "^13.3.2" + }, + "bin": { + "webpack-dev-server": "bin/webpack-dev-server.js" + }, + "engines": { + "node": ">= 6.11.5" + }, + "peerDependencies": { + "webpack": "^4.0.0 || ^5.0.0" + }, + "peerDependenciesMeta": { + "webpack-cli": { + "optional": true + } + } + }, + "node_modules/webpack-dev-server/node_modules/ansi-regex": { + "version": "4.1.1", + "resolved": "https://registry.npmjs.org/ansi-regex/-/ansi-regex-4.1.1.tgz", + "integrity": "sha512-ILlv4k/3f6vfQ4OoP2AGvirOktlQ98ZEL1k9FaQjxa3L1abBgbuTDAdPOpvbGncC0BTVQrl+OM8xZGK6tWXt7g==", + "dev": true, + "engines": { + "node": ">=6" + } + }, + "node_modules/webpack-dev-server/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/webpack-dev-server/node_modules/array-union": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/array-union/-/array-union-1.0.2.tgz", + "integrity": "sha512-Dxr6QJj/RdU/hCaBjOfxW+q6lyuVE6JFWIrAUpuOOhoJJoQ99cUn3igRaHVB5P9WrgFVN0FfArM3x0cueOU8ng==", + "dev": true, + "dependencies": { + "array-uniq": "^1.0.1" + }, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/webpack-dev-server/node_modules/camelcase": { + "version": "5.3.1", + "resolved": "https://registry.npmjs.org/camelcase/-/camelcase-5.3.1.tgz", + "integrity": "sha512-L28STB170nwWS63UjtlEOE3dldQApaJXZkOI1uMFfzf3rRuPegHaHesyee+YxQ+W6SvRDQV6UrdOdRiR153wJg==", + "dev": true, + "engines": { + "node": ">=6" + } + }, + "node_modules/webpack-dev-server/node_modules/chokidar": { + "version": "2.1.8", + "resolved": "https://registry.npmjs.org/chokidar/-/chokidar-2.1.8.tgz", + "integrity": "sha512-ZmZUazfOzf0Nve7duiCKD23PFSCs4JPoYyccjUFF3aQkQadqBhfzhjkwBH2mNOG9cTBwhamM37EIsIkZw3nRgg==", + "dev": true, + "dependencies": { + "anymatch": "^2.0.0", + "async-each": "^1.0.1", + "braces": "^2.3.2", + "glob-parent": "^3.1.0", + "inherits": "^2.0.3", + "is-binary-path": "^1.0.0", + "is-glob": "^4.0.0", + "normalize-path": "^3.0.0", + "path-is-absolute": "^1.0.0", + "readdirp": "^2.2.1", + "upath": "^1.1.1" + }, + "optionalDependencies": { + "fsevents": "^1.2.7" + } + }, + "node_modules/webpack-dev-server/node_modules/cliui": { + "version": "5.0.0", + "resolved": "https://registry.npmjs.org/cliui/-/cliui-5.0.0.tgz", + "integrity": "sha512-PYeGSEmmHM6zvoef2w8TPzlrnNpXIjTipYK780YswmIP9vjxmd6Y2a3CB2Ks6/AU8NHjZugXvo8w3oWM2qnwXA==", + "dev": true, + "dependencies": { + "string-width": "^3.1.0", + "strip-ansi": "^5.2.0", + "wrap-ansi": "^5.1.0" + } + }, + "node_modules/webpack-dev-server/node_modules/cliui/node_modules/strip-ansi": { + "version": "5.2.0", + "resolved": "https://registry.npmjs.org/strip-ansi/-/strip-ansi-5.2.0.tgz", + "integrity": "sha512-DuRs1gKbBqsMKIZlrffwlug8MHkcnpjs5VPmL1PAh+mA30U0DTotfDZ0d2UUsXpPmPmMMJ6W773MaA3J+lbiWA==", + "dev": true, + "dependencies": { + "ansi-regex": "^4.1.0" + }, + "engines": { + "node": ">=6" + } + }, + "node_modules/webpack-dev-server/node_modules/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/webpack-dev-server/node_modules/del": { + "version": "4.1.1", + "resolved": "https://registry.npmjs.org/del/-/del-4.1.1.tgz", + "integrity": "sha512-QwGuEUouP2kVwQenAsOof5Fv8K9t3D8Ca8NxcXKrIpEHjTXK5J2nXLdP+ALI1cgv8wj7KuwBhTwBkOZSJKM5XQ==", + "dev": true, + "dependencies": { + "@types/glob": "^7.1.1", + "globby": "^6.1.0", + "is-path-cwd": "^2.0.0", + "is-path-in-cwd": "^2.0.0", + "p-map": "^2.0.0", + "pify": "^4.0.1", + "rimraf": "^2.6.3" + }, + "engines": { + "node": ">=6" + } + }, + "node_modules/webpack-dev-server/node_modules/find-up": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/find-up/-/find-up-3.0.0.tgz", + "integrity": "sha512-1yD6RmLI1XBfxugvORwlck6f75tYL+iR0jqwsOrOxMZyGYqUuDhJ0l4AXdO1iX/FTs9cBAMEk1gWSEx1kSbylg==", + "dev": true, + "dependencies": { + "locate-path": "^3.0.0" + }, + "engines": { + "node": ">=6" + } + }, + "node_modules/webpack-dev-server/node_modules/fsevents": { + "version": "1.2.13", + "resolved": "https://registry.npmjs.org/fsevents/-/fsevents-1.2.13.tgz", + "integrity": "sha512-oWb1Z6mkHIskLzEJ/XWX0srkpkTQ7vaopMQkyaEIoq0fmtFVxOthb8cCxeT+p3ynTdkk/RZwbgG4brR5BeWECw==", + "deprecated": "Upgrade to fsevents v2 to mitigate potential security issues", + "dev": true, + "hasInstallScript": true, + "optional": true, + "os": [ + "darwin" + ], + "dependencies": { + "bindings": "^1.5.0", + "nan": "^2.12.1" + }, + "engines": { + "node": ">= 4.0" + } + }, + "node_modules/webpack-dev-server/node_modules/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/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": "sha512-E8Ak/2+dZY6fnzlR7+ueWvhsH1SjHr4jjss4YS/h4py44jY9MhK/VFdaZJAWDz6BbL21KeteKxFSFpq8OS5gVA==", + "dev": true, + "dependencies": { + "is-glob": "^3.1.0", + "path-dirname": "^1.0.0" + } + }, + "node_modules/webpack-dev-server/node_modules/glob-parent/node_modules/is-glob": { + "version": "3.1.0", + "resolved": "https://registry.npmjs.org/is-glob/-/is-glob-3.1.0.tgz", + "integrity": "sha512-UFpDDrPgM6qpnFNI+rh/p3bUaq9hKLZN8bMUWzxmcnZVS3omf4IPK+BrewlnWjO1WmUsMYuSjKh4UJuV4+Lqmw==", + "dev": true, + "dependencies": { + "is-extglob": "^2.1.0" + }, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/webpack-dev-server/node_modules/globby": { + "version": "6.1.0", + "resolved": "https://registry.npmjs.org/globby/-/globby-6.1.0.tgz", + "integrity": "sha512-KVbFv2TQtbzCoxAnfD6JcHZTYCzyliEaaeM/gH8qQdkKr5s0OP9scEgvdcngyk7AVdY6YVW/TJHd+lQ/Df3Daw==", + "dev": true, + "dependencies": { + "array-union": "^1.0.1", + "glob": "^7.0.3", + "object-assign": "^4.0.1", + "pify": "^2.0.0", + "pinkie-promise": "^2.0.0" + }, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/webpack-dev-server/node_modules/globby/node_modules/pify": { + "version": "2.3.0", + "resolved": "https://registry.npmjs.org/pify/-/pify-2.3.0.tgz", + "integrity": "sha512-udgsAY+fTnvv7kI7aaxbqwWNb0AHiB0qBO89PZKPkoTmGOgdbrHDKD+0B2X4uTfJ/FT1R09r9gTsjUjNJotuog==", + "dev": true, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/webpack-dev-server/node_modules/locate-path": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/locate-path/-/locate-path-3.0.0.tgz", + "integrity": "sha512-7AO748wWnIhNqAuaty2ZWHkQHRSNfPVIsPIfwEOWO22AmaoVrWavlOcMR5nzTLNYvp36X220/maaRsrec1G65A==", + "dev": true, + "dependencies": { + "p-locate": "^3.0.0", + "path-exists": "^3.0.0" + }, + "engines": { + "node": ">=6" + } + }, + "node_modules/webpack-dev-server/node_modules/p-limit": { + "version": "2.3.0", + "resolved": "https://registry.npmjs.org/p-limit/-/p-limit-2.3.0.tgz", + "integrity": "sha512-//88mFWSJx8lxCzwdAABTJL2MyWB12+eIY7MDL2SqLmAkeKU9qxRvWuSyTjm3FUmpBEMuFfckAIqEaVGUDxb6w==", + "dev": true, + "dependencies": { + "p-try": "^2.0.0" + }, + "engines": { + "node": ">=6" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/webpack-dev-server/node_modules/p-locate": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/p-locate/-/p-locate-3.0.0.tgz", + "integrity": "sha512-x+12w/To+4GFfgJhBEpiDcLozRJGegY+Ei7/z0tSLkMmxGZNybVMSfWj9aJn8Z5Fc7dBUNJOOVgPv2H7IwulSQ==", + "dev": true, + "dependencies": { + "p-limit": "^2.0.0" + }, + "engines": { + "node": ">=6" + } + }, + "node_modules/webpack-dev-server/node_modules/p-map": { + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/p-map/-/p-map-2.1.0.tgz", + "integrity": "sha512-y3b8Kpd8OAN444hxfBbFfj1FY/RjtTd8tzYwhUqNYXx0fXx2iX4maP4Qr6qhIKbQXI02wTLAda4fYUbDagTUFw==", + "dev": true, + "engines": { + "node": ">=6" + } + }, + "node_modules/webpack-dev-server/node_modules/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/webpack-dev-server/node_modules/schema-utils": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/schema-utils/-/schema-utils-1.0.0.tgz", + "integrity": "sha512-i27Mic4KovM/lnGsy8whRCHhc7VicJajAjTrYg11K9zfZXnYIt4k5F+kZkwjnrhKzLic/HLU4j11mjsz2G/75g==", + "dev": true, + "dependencies": { + "ajv": "^6.1.0", + "ajv-errors": "^1.0.0", + "ajv-keywords": "^3.1.0" + }, + "engines": { + "node": ">= 4" + } + }, + "node_modules/webpack-dev-server/node_modules/string-width": { + "version": "3.1.0", + "resolved": "https://registry.npmjs.org/string-width/-/string-width-3.1.0.tgz", + "integrity": "sha512-vafcv6KjVZKSgz06oM/H6GDBrAtz8vdhQakGjFIvNrHA6y3HCF1CInLy+QLq8dTJPQ1b+KDUqDFctkdRW44e1w==", + "dev": true, + "dependencies": { + "emoji-regex": "^7.0.1", + "is-fullwidth-code-point": "^2.0.0", + "strip-ansi": "^5.1.0" + }, + "engines": { + "node": ">=6" + } + }, + "node_modules/webpack-dev-server/node_modules/string-width/node_modules/strip-ansi": { + "version": "5.2.0", + "resolved": "https://registry.npmjs.org/strip-ansi/-/strip-ansi-5.2.0.tgz", + "integrity": "sha512-DuRs1gKbBqsMKIZlrffwlug8MHkcnpjs5VPmL1PAh+mA30U0DTotfDZ0d2UUsXpPmPmMMJ6W773MaA3J+lbiWA==", + "dev": true, + "dependencies": { + "ansi-regex": "^4.1.0" + }, + "engines": { + "node": ">=6" + } + }, + "node_modules/webpack-dev-server/node_modules/supports-color": { + "version": "6.1.0", + "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-6.1.0.tgz", + "integrity": "sha512-qe1jfm1Mg7Nq/NSh6XE24gPXROEVsWHxC1LIx//XNlD9iw7YZQGjZNjYN7xGaEG6iKdA8EtNFW6R0gjnVXp+wQ==", + "dev": true, + "dependencies": { + "has-flag": "^3.0.0" + }, + "engines": { + "node": ">=6" + } + }, + "node_modules/webpack-dev-server/node_modules/wrap-ansi": { + "version": "5.1.0", + "resolved": "https://registry.npmjs.org/wrap-ansi/-/wrap-ansi-5.1.0.tgz", + "integrity": "sha512-QC1/iN/2/RPVJ5jYK8BGttj5z83LmSKmvbvrXPNCLZSEb32KKVDJDl/MOt2N01qU2H/FkzEa9PKto1BqDjtd7Q==", + "dev": true, + "dependencies": { + "ansi-styles": "^3.2.0", + "string-width": "^3.0.0", + "strip-ansi": "^5.0.0" + }, + "engines": { + "node": ">=6" + } + }, + "node_modules/webpack-dev-server/node_modules/wrap-ansi/node_modules/strip-ansi": { + "version": "5.2.0", + "resolved": "https://registry.npmjs.org/strip-ansi/-/strip-ansi-5.2.0.tgz", + "integrity": "sha512-DuRs1gKbBqsMKIZlrffwlug8MHkcnpjs5VPmL1PAh+mA30U0DTotfDZ0d2UUsXpPmPmMMJ6W773MaA3J+lbiWA==", + "dev": true, + "dependencies": { + "ansi-regex": "^4.1.0" + }, + "engines": { + "node": ">=6" + } + }, + "node_modules/webpack-dev-server/node_modules/y18n": { + "version": "4.0.3", + "resolved": "https://registry.npmjs.org/y18n/-/y18n-4.0.3.tgz", + "integrity": "sha512-JKhqTOwSrqNA1NY5lSztJ1GrBiUodLMmIZuLiDaMRJ+itFd+ABVE8XBjOvIWL+rSqNDC74LCSFmlb/U4UZ4hJQ==", + "dev": true + }, + "node_modules/webpack-dev-server/node_modules/yargs": { + "version": "13.3.2", + "resolved": "https://registry.npmjs.org/yargs/-/yargs-13.3.2.tgz", + "integrity": "sha512-AX3Zw5iPruN5ie6xGRIDgqkT+ZhnRlZMLMHAs8tg7nRruy2Nb+i5o9bwghAogtM08q1dpr2LVoS8KSTMYpWXUw==", + "dev": true, + "dependencies": { + "cliui": "^5.0.0", + "find-up": "^3.0.0", + "get-caller-file": "^2.0.1", + "require-directory": "^2.1.1", + "require-main-filename": "^2.0.0", + "set-blocking": "^2.0.0", + "string-width": "^3.0.0", + "which-module": "^2.0.0", + "y18n": "^4.0.0", + "yargs-parser": "^13.1.2" + } + }, + "node_modules/webpack-dev-server/node_modules/yargs-parser": { + "version": "13.1.2", + "resolved": "https://registry.npmjs.org/yargs-parser/-/yargs-parser-13.1.2.tgz", + "integrity": "sha512-3lbsNRf/j+A4QuSZfDRA7HRSfWrzO0YjqTJd5kjAq37Zep1CEgaYmrH9Q3GwPiB9cHyd1Y1UwggGhJGoxipbzg==", + "dev": true, + "dependencies": { + "camelcase": "^5.0.0", + "decamelize": "^1.2.0" + } + }, + "node_modules/webpack-log": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/webpack-log/-/webpack-log-2.0.0.tgz", + "integrity": "sha512-cX8G2vR/85UYG59FgkoMamwHUIkSSlV3bBMRsbxVXVUk2j6NleCKjQ/WE9eYg9WY4w25O9w8wKP4rzNZFmUcUg==", + "dev": true, + "dependencies": { + "ansi-colors": "^3.0.0", + "uuid": "^3.3.2" + }, + "engines": { + "node": ">= 6" + } + }, + "node_modules/webpack-sources": { + "version": "3.2.3", + "resolved": "https://registry.npmjs.org/webpack-sources/-/webpack-sources-3.2.3.tgz", + "integrity": "sha512-/DyMEOrDgLKKIG0fmvtz+4dUX/3Ghozwgm6iPp8KRhvn+eQf9+Q7GWxVNMk3+uCPWfdXYC4ExGBckIXdFEfH1w==", + "dev": true, + "engines": { + "node": ">=10.13.0" + } + }, + "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==", + "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==", + "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/memory-fs": { + "version": "0.4.1", + "resolved": "https://registry.npmjs.org/memory-fs/-/memory-fs-0.4.1.tgz", + "integrity": "sha512-cda4JKCxReDXFXRqOHPQscuIYg1PvxbE2S2GP45rnwfEK+vZaXC8C1OFvdHIbgw0DLzowXGVoxLaAmlgRy14GQ==", + "dependencies": { + "errno": "^0.1.3", + "readable-stream": "^2.0.1" + } + }, + "node_modules/webpack/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/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==", + "dependencies": { + "ajv": "^6.1.0", + "ajv-errors": "^1.0.0", + "ajv-keywords": "^3.1.0" + }, + "engines": { + "node": ">= 4" + } + }, + "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==", + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/webpack/node_modules/tapable": { + "version": "1.1.3", + "resolved": "https://registry.npmjs.org/tapable/-/tapable-1.1.3.tgz", + "integrity": "sha512-4WK/bYZmj8xLr+HUCODHGF1ZFzsYffasLUgEiMBY4fgtltdO6B4WJtlSbPaDTLpYTcGVwM2qLnFTICEcNxs3kA==", + "engines": { + "node": ">=6" + } + }, + "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==", + "dependencies": { + "source-list-map": "^2.0.0", + "source-map": "~0.6.1" + } + }, + "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-encoding": { + "version": "3.1.1", + "resolved": "https://registry.npmjs.org/whatwg-encoding/-/whatwg-encoding-3.1.1.tgz", + "integrity": "sha512-6qN4hJdMwfYBtE3YBTTHhoeuUrDBPZmbQaxWAqSALV/MeEnR5z1xd8UKud2RAkFoPkmB+hli1TZSnyi84xz1vQ==", + "dev": true, + "dependencies": { + "iconv-lite": "0.6.3" + }, + "engines": { + "node": ">=18" + } + }, + "node_modules/whatwg-fetch": { + "version": "3.6.20", + "resolved": "https://registry.npmjs.org/whatwg-fetch/-/whatwg-fetch-3.6.20.tgz", + "integrity": "sha512-EqhiFU6daOA8kpjOWTL0olhVOF3i7OrFzSYiGsEMB8GcXS+RrzauAERX65xMeNWVqxA6HXH2m69Z9LaKKdisfg==", + "dev": true + }, + "node_modules/whatwg-mimetype": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/whatwg-mimetype/-/whatwg-mimetype-4.0.0.tgz", + "integrity": "sha512-QaKxh0eNIi2mE9p2vEdzfagOKHCcj1pJ56EEHGQOVxp8r9/iszLUUV7v89x9O1p/T+NlTM5W7jW6+cz4Fq1YVg==", + "dev": true, + "engines": { + "node": ">=18" + } + }, + "node_modules/whatwg-url": { + "version": "4.8.0", + "resolved": "https://registry.npmjs.org/whatwg-url/-/whatwg-url-4.8.0.tgz", + "integrity": "sha512-nUvUPuenPFtPfy/X+dAYh/TfRbTBlnXTM5iIfLseJFkkQewmpG9pGR6i87E9qL+lZaJzv+99kkQWoGOtLfkZQQ==", + "dev": true, + "dependencies": { + "tr46": "~0.0.3", + "webidl-conversions": "^3.0.0" + } + }, + "node_modules/whatwg-url/node_modules/webidl-conversions": { + "version": "3.0.1", + "resolved": "https://registry.npmjs.org/webidl-conversions/-/webidl-conversions-3.0.1.tgz", + "integrity": "sha512-2JAn3z8AR6rjK8Sm8orRC0h/bcl/DqL7tRPdGZ4I1CjdF+EaMLmYxBHyXuKL849eucPFhvBoxMsflfOb8kxaeQ==", + "dev": true + }, + "node_modules/which": { + "version": "1.3.1", + "resolved": "https://registry.npmjs.org/which/-/which-1.3.1.tgz", + "integrity": "sha512-HxJdYWq1MTIQbJ3nw0cqssHoTNU267KlrDuGZ1WYlxDStUtKUhOaJmh112/TZmHxxUfuJqPXSOm7tDyas0OSIQ==", + "dev": true, + "dependencies": { + "isexe": "^2.0.0" + }, + "bin": { + "which": "bin/which" + } + }, + "node_modules/which-boxed-primitive": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/which-boxed-primitive/-/which-boxed-primitive-1.0.2.tgz", + "integrity": "sha512-bwZdv0AKLpplFY2KZRX6TvyuN7ojjr7lwkg6ml0roIy9YeuSr7JS372qlNW18UQYzgYK9ziGcerWqZOmEn9VNg==", + "dev": true, + "dependencies": { + "is-bigint": "^1.0.1", + "is-boolean-object": "^1.1.0", + "is-number-object": "^1.0.4", + "is-string": "^1.0.5", + "is-symbol": "^1.0.3" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/which-module": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/which-module/-/which-module-2.0.1.tgz", + "integrity": "sha512-iBdZ57RDvnOR9AGBhML2vFZf7h8vmBjhoaZqODJBFWHVtKkDmKuHai3cx5PgVMrX5YDNp27AofYbAwctSS+vhQ==", + "dev": true + }, + "node_modules/which-typed-array": { + "version": "1.1.15", + "resolved": "https://registry.npmjs.org/which-typed-array/-/which-typed-array-1.1.15.tgz", + "integrity": "sha512-oV0jmFtUky6CXfkqehVvBP/LSWJ2sy4vWMioiENyJLePrBO/yKyV9OyJySfAKosh+RYkIl5zJCNZ8/4JncrpdA==", + "dev": true, + "dependencies": { + "available-typed-arrays": "^1.0.7", + "call-bind": "^1.0.7", + "for-each": "^0.3.3", + "gopd": "^1.0.1", + "has-tostringtag": "^1.0.2" + }, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/window-size": { + "version": "0.1.4", + "resolved": "https://registry.npmjs.org/window-size/-/window-size-0.1.4.tgz", + "integrity": "sha512-2thx4pB0cV3h+Bw7QmMXcEbdmOzv9t0HFplJH/Lz6yu60hXYy5RT8rUu+wlIreVxWsGN20mo+MHeCSfUpQBwPw==", + "bin": { + "window-size": "cli.js" + }, + "engines": { + "node": ">= 0.10.0" + } + }, + "node_modules/word-wrap": { + "version": "1.2.5", + "resolved": "https://registry.npmjs.org/word-wrap/-/word-wrap-1.2.5.tgz", + "integrity": "sha512-BN22B5eaMMI9UMtjrGd5g5eCYPpCPDUy0FJXbYsaT5zYxjFOckS53SQDE3pWkVoWpHXVb3BrYcEN4Twa55B5cA==", + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/wordwrap": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/wordwrap/-/wordwrap-1.0.0.tgz", + "integrity": "sha512-gvVzJFlPycKc5dZN4yPkP8w7Dc37BtP1yczEneOb4uq34pXZcvrtRTmWV8W+Ume+XCxKgbjM+nevkyFPMybd4Q==", + "dev": true + }, + "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==", + "dependencies": { + "errno": "~0.1.7" + } + }, + "node_modules/worker-loader": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/worker-loader/-/worker-loader-2.0.0.tgz", + "integrity": "sha512-tnvNp4K3KQOpfRnD20m8xltE3eWh89Ye+5oj7wXEEHKac1P4oZ6p9oTj8/8ExqoSBnk9nu5Pr4nKfQ1hn2APJw==", + "dependencies": { + "loader-utils": "^1.0.0", + "schema-utils": "^0.4.0" + }, + "engines": { + "node": ">= 6.9.0 || >= 8.9.0" + }, + "peerDependencies": { + "webpack": "^3.0.0 || ^4.0.0-alpha.0 || ^4.0.0" + } + }, + "node_modules/worker-loader/node_modules/schema-utils": { + "version": "0.4.7", + "resolved": "https://registry.npmjs.org/schema-utils/-/schema-utils-0.4.7.tgz", + "integrity": "sha512-v/iwU6wvwGK8HbU9yi3/nhGzP0yGSuhQMzL6ySiec1FSrZZDkhm4noOSWzrNFo/jEc+SJY6jRTwuwbSXJPDUnQ==", + "dependencies": { + "ajv": "^6.1.0", + "ajv-keywords": "^3.1.0" + }, + "engines": { + "node": ">= 4" + } + }, + "node_modules/wrap-ansi": { + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/wrap-ansi/-/wrap-ansi-2.1.0.tgz", + "integrity": "sha512-vAaEaDM946gbNpH5pLVNR+vX2ht6n0Bt3GXwVB1AuAqZosOvHNF3P7wDnh8KLkSqgUh0uh77le7Owgoz+Z9XBw==", + "dependencies": { + "string-width": "^1.0.1", + "strip-ansi": "^3.0.1" + }, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/wrap-ansi/node_modules/is-fullwidth-code-point": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/is-fullwidth-code-point/-/is-fullwidth-code-point-1.0.0.tgz", + "integrity": "sha512-1pqUqRjkhPJ9miNq9SwMfdvi6lBJcd6eFxvfaivQhaH3SgisfiuudvFntdKOmxuee/77l+FPjKrQjWvmPjWrRw==", + "dependencies": { + "number-is-nan": "^1.0.0" + }, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/wrap-ansi/node_modules/string-width": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/string-width/-/string-width-1.0.2.tgz", + "integrity": "sha512-0XsVpQLnVCXHJfyEs8tC0zpTVIr5PKKsQtkT29IwupnPTjtPmQ3xT/4yCREF9hYkV/3M3kzcUTSAZT6a6h81tw==", + "dependencies": { + "code-point-at": "^1.0.0", + "is-fullwidth-code-point": "^1.0.0", + "strip-ansi": "^3.0.0" + }, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/wrappy": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/wrappy/-/wrappy-1.0.2.tgz", + "integrity": "sha512-l4Sp/DRseor9wL6EvV2+TuQn63dMkPjZ/sp9XkghTEbV9KlPS1xUsZ3u7/IQO4wxtcFB4bgpQPRcR3QCvezPcQ==" + }, + "node_modules/write": { + "version": "1.0.3", + "resolved": "https://registry.npmjs.org/write/-/write-1.0.3.tgz", + "integrity": "sha512-/lg70HAjtkUgWPVZhZcm+T4hkL8Zbtp1nFNOn3lRrxnlv50SRBv7cR7RqR+GMsd3hUXy9hWBo4CHTbFTcOYwig==", + "dev": true, + "dependencies": { + "mkdirp": "^0.5.1" + }, + "engines": { + "node": ">=4" + } + }, + "node_modules/write-file-atomic": { + "version": "2.4.3", + "resolved": "https://registry.npmjs.org/write-file-atomic/-/write-file-atomic-2.4.3.tgz", + "integrity": "sha512-GaETH5wwsX+GcnzhPgKcKjJ6M2Cq3/iZp1WyY/X1CSqrW+jVNM9Y7D8EC2sM4ZG/V8wZlSniJnCKWPmBYAucRQ==", + "dev": true, + "dependencies": { + "graceful-fs": "^4.1.11", + "imurmurhash": "^0.1.4", + "signal-exit": "^3.0.2" + } + }, + "node_modules/write/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==", + "dev": true, + "dependencies": { + "minimist": "^1.2.6" + }, + "bin": { + "mkdirp": "bin/cmd.js" + } + }, + "node_modules/ws": { + "version": "6.2.3", + "resolved": "https://registry.npmjs.org/ws/-/ws-6.2.3.tgz", + "integrity": "sha512-jmTjYU0j60B+vHey6TfR3Z7RD61z/hmxBS3VMSGIrroOWXQEneK1zNuotOUrGyBHQj0yrpsLHPWtigEFd13ndA==", + "dev": true, + "dependencies": { + "async-limiter": "~1.0.0" + } + }, + "node_modules/xhr": { + "version": "2.5.0", + "resolved": "https://registry.npmjs.org/xhr/-/xhr-2.5.0.tgz", + "integrity": "sha512-4nlO/14t3BNUZRXIXfXe+3N6w3s1KoxcJUUURctd64BLRe67E4gRwp4PjywtDY72fXpZ1y6Ch0VZQRY/gMPzzQ==", + "dependencies": { + "global": "~4.3.0", + "is-function": "^1.0.1", + "parse-headers": "^2.0.0", + "xtend": "^4.0.0" + } + }, + "node_modules/xhr/node_modules/global": { + "version": "4.3.2", + "resolved": "https://registry.npmjs.org/global/-/global-4.3.2.tgz", + "integrity": "sha512-/4AybdwIDU4HkCUbJkZdWpe4P6vuw/CUtu+0I1YlLIPe7OlUO7KNJ+q/rO70CW2/NW6Jc6I62++Hzsf5Alu6rQ==", + "dependencies": { + "min-document": "^2.19.0", + "process": "~0.5.1" + } + }, + "node_modules/xhr/node_modules/process": { + "version": "0.5.2", + "resolved": "https://registry.npmjs.org/process/-/process-0.5.2.tgz", + "integrity": "sha512-oNpcutj+nYX2FjdEW7PGltWhXulAnFlM0My/k48L90hARCOJtvBbQXc/6itV2jDvU5xAAtonP+r6wmQgCcbAUA==", + "engines": { + "node": ">= 0.6.0" + } + }, + "node_modules/xml": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/xml/-/xml-1.0.1.tgz", + "integrity": "sha512-huCv9IH9Tcf95zuYCsQraZtWnJvBtLVE0QHMOs8bWyZAFZNDcYjsPq1nEx8jKA9y+Beo9v+7OBPRisQTjinQMw==", + "dev": true + }, + "node_modules/xml-name-validator": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/xml-name-validator/-/xml-name-validator-2.0.1.tgz", + "integrity": "sha512-jRKe/iQYMyVJpzPH+3HL97Lgu5HrCfii+qSo+TfjKHtOnvbnvdVfMYrn9Q34YV81M2e5sviJlI6Ko9y+nByzvA==", + "dev": true + }, + "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/xtend": { + "version": "4.0.2", + "resolved": "https://registry.npmjs.org/xtend/-/xtend-4.0.2.tgz", + "integrity": "sha512-LKYU1iAXJXUgAXn9URjiu+MWhyUXHsvfp7mcuYm9dSUKK0/CjtrUwFAxD82/mCWbtLsGjFIad0wIsod4zrTAEQ==", + "engines": { + "node": ">=0.4" + } + }, + "node_modules/y18n": { + "version": "3.2.2", + "resolved": "https://registry.npmjs.org/y18n/-/y18n-3.2.2.tgz", + "integrity": "sha512-uGZHXkHnhF0XeeAPgnKfPv1bgKAYyVvmNL1xlKsPYZPaIHxGti2hHqvOCQv71XMsLxu1QjergkqogUnms5D3YQ==" + }, + "node_modules/yallist": { + "version": "3.1.1", + "resolved": "https://registry.npmjs.org/yallist/-/yallist-3.1.1.tgz", + "integrity": "sha512-a4UGQaWPH59mOXUYnAG2ewncQS4i4F43Tv3JoAM+s2VDAmS9NsK8GpDMLrCHPksFT7h3K6TOoUNn2pb7RoXx4g==" + }, + "node_modules/yargs": { + "version": "9.0.1", + "resolved": "https://registry.npmjs.org/yargs/-/yargs-9.0.1.tgz", + "integrity": "sha512-XS0NJoM9Iz0azh1cdgfLF5VFK6BSWfrrqA0V2tIx3fV6aGrWCseVDwOkIBg746ev0hes59od5ZvQAfdET4H0pw==", + "dev": true, + "dependencies": { + "camelcase": "^4.1.0", + "cliui": "^3.2.0", + "decamelize": "^1.1.1", + "get-caller-file": "^1.0.1", + "os-locale": "^2.0.0", + "read-pkg-up": "^2.0.0", + "require-directory": "^2.1.1", + "require-main-filename": "^1.0.1", + "set-blocking": "^2.0.0", + "string-width": "^2.0.0", + "which-module": "^2.0.0", + "y18n": "^3.2.1", + "yargs-parser": "^7.0.0" + } + }, + "node_modules/yargs-parser": { + "version": "7.0.0", + "resolved": "https://registry.npmjs.org/yargs-parser/-/yargs-parser-7.0.0.tgz", + "integrity": "sha512-WhzC+xgstid9MbVUktco/bf+KJG+Uu6vMX0LN1sLJvwmbCQVxb4D8LzogobonKycNasCZLdOzTAk1SK7+K7swg==", + "dev": true, + "dependencies": { + "camelcase": "^4.1.0" + } + }, + "node_modules/yargs/node_modules/load-json-file": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/load-json-file/-/load-json-file-2.0.0.tgz", + "integrity": "sha512-3p6ZOGNbiX4CdvEd1VcE6yi78UrGNpjHO33noGwHCnT/o2fyllJDepsm8+mFFv/DvtwFHht5HIHSyOy5a+ChVQ==", + "dev": true, + "dependencies": { + "graceful-fs": "^4.1.2", + "parse-json": "^2.2.0", + "pify": "^2.0.0", + "strip-bom": "^3.0.0" + }, + "engines": { + "node": ">=4" + } + }, + "node_modules/yargs/node_modules/parse-json": { + "version": "2.2.0", + "resolved": "https://registry.npmjs.org/parse-json/-/parse-json-2.2.0.tgz", + "integrity": "sha512-QR/GGaKCkhwk1ePQNYDRKYZ3mwU9ypsKhB0XyFnLQdomyEqk3e8wpW3V5Jp88zbxK4n5ST1nqo+g9juTpownhQ==", + "dev": true, + "dependencies": { + "error-ex": "^1.2.0" + }, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/yargs/node_modules/path-type": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/path-type/-/path-type-2.0.0.tgz", + "integrity": "sha512-dUnb5dXUf+kzhC/W/F4e5/SkluXIFf5VUHolW1Eg1irn1hGWjPGdsRcvYJ1nD6lhk8Ir7VM0bHJKsYTx8Jx9OQ==", + "dev": true, + "dependencies": { + "pify": "^2.0.0" + }, + "engines": { + "node": ">=4" + } + }, + "node_modules/yargs/node_modules/pify": { + "version": "2.3.0", + "resolved": "https://registry.npmjs.org/pify/-/pify-2.3.0.tgz", + "integrity": "sha512-udgsAY+fTnvv7kI7aaxbqwWNb0AHiB0qBO89PZKPkoTmGOgdbrHDKD+0B2X4uTfJ/FT1R09r9gTsjUjNJotuog==", + "dev": true, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/yargs/node_modules/read-pkg": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/read-pkg/-/read-pkg-2.0.0.tgz", + "integrity": "sha512-eFIBOPW7FGjzBuk3hdXEuNSiTZS/xEMlH49HxMyzb0hyPfu4EhVjT2DH32K1hSSmVq4sebAWnZuuY5auISUTGA==", + "dev": true, + "dependencies": { + "load-json-file": "^2.0.0", + "normalize-package-data": "^2.3.2", + "path-type": "^2.0.0" + }, + "engines": { + "node": ">=4" + } + }, + "node_modules/yargs/node_modules/read-pkg-up": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/read-pkg-up/-/read-pkg-up-2.0.0.tgz", + "integrity": "sha512-1orxQfbWGUiTn9XsPlChs6rLie/AV9jwZTGmu2NZw/CUDJQchXJFYE0Fq5j7+n558T1JhDWLdhyd1Zj+wLY//w==", + "dev": true, + "dependencies": { + "find-up": "^2.0.0", + "read-pkg": "^2.0.0" + }, + "engines": { + "node": ">=4" + } + }, + "node_modules/yargs/node_modules/strip-bom": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/strip-bom/-/strip-bom-3.0.0.tgz", + "integrity": "sha512-vavAMRXOgBVNF6nyEEmL3DBK19iRpDcoIwW+swQ+CbGiu7lju6t+JklA1MHweoWtadgt4ISVUsXLyDq34ddcwA==", + "dev": true, + "engines": { + "node": ">=4" + } + }, + "node_modules/yauzl": { + "version": "2.10.0", + "resolved": "https://registry.npmjs.org/yauzl/-/yauzl-2.10.0.tgz", + "integrity": "sha512-p4a9I6X6nu6IhoGmBqAcbJy1mlC4j27vEPZX9F4L4/vZT3Lyq1VkFHw/V/PUcB9Buo+DG3iHkT0x3Qya58zc3g==", + "dependencies": { + "buffer-crc32": "~0.2.3", + "fd-slicer": "~1.1.0" + } + }, + "node_modules/yocto-queue": { + "version": "0.1.0", + "resolved": "https://registry.npmjs.org/yocto-queue/-/yocto-queue-0.1.0.tgz", + "integrity": "sha512-rVksvsnNCdJ/ohGc6xgPwyN8eheCxsiLM8mxuE/t/mOVqJewPuO1miLpTHQiRgTKCLexL4MeAFVagts7HmNZ2Q==", + "engines": { + "node": ">=10" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + } + }, + "dependencies": { + "@babel/cli": { + "version": "7.14.8", + "resolved": "https://registry.npmjs.org/@babel/cli/-/cli-7.14.8.tgz", + "integrity": "sha512-lcy6Lymft9Rpfqmrqdd4oTDdUx9ZwaAhAfywVrHG4771Pa6PPT0danJ1kDHBXYqh4HHSmIdA+nlmfxfxSDPtBg==", + "requires": { + "@nicolo-ribaudo/chokidar-2": "2.1.8-no-fsevents.2", + "chokidar": "^3.4.0", + "commander": "^4.0.1", + "convert-source-map": "^1.1.0", + "fs-readdir-recursive": "^1.1.0", + "glob": "^7.0.0", + "make-dir": "^2.1.0", + "slash": "^2.0.0", + "source-map": "^0.5.0" + } + }, + "@babel/code-frame": { + "version": "7.26.2", + "resolved": "https://registry.npmjs.org/@babel/code-frame/-/code-frame-7.26.2.tgz", + "integrity": "sha512-RJlIHRueQgwWitWgF8OdFYGZX328Ax5BCemNGlqHfplnRT9ESi8JkFlvaVYbS+UubVY6dpv87Fs2u5M29iNFVQ==", + "requires": { + "@babel/helper-validator-identifier": "^7.25.9", + "js-tokens": "^4.0.0", + "picocolors": "^1.0.0" + } + }, + "@babel/compat-data": { + "version": "7.26.2", + "resolved": "https://registry.npmjs.org/@babel/compat-data/-/compat-data-7.26.2.tgz", + "integrity": "sha512-Z0WgzSEa+aUcdiJuCIqgujCshpMWgUpgOxXotrYPSA53hA3qopNaqcJpyr0hVb1FeWdnqFA35/fUtXgBK8srQg==" + }, + "@babel/core": { + "version": "7.14.8", + "resolved": "https://registry.npmjs.org/@babel/core/-/core-7.14.8.tgz", + "integrity": "sha512-/AtaeEhT6ErpDhInbXmjHcUQXH0L0TEgscfcxk1qbOvLuKCa5aZT0SOOtDKFY96/CLROwbLSKyFor6idgNaU4Q==", + "requires": { + "@babel/code-frame": "^7.14.5", + "@babel/generator": "^7.14.8", + "@babel/helper-compilation-targets": "^7.14.5", + "@babel/helper-module-transforms": "^7.14.8", + "@babel/helpers": "^7.14.8", + "@babel/parser": "^7.14.8", + "@babel/template": "^7.14.5", + "@babel/traverse": "^7.14.8", + "@babel/types": "^7.14.8", + "convert-source-map": "^1.7.0", + "debug": "^4.1.0", + "gensync": "^1.0.0-beta.2", + "json5": "^2.1.2", + "semver": "^6.3.0", + "source-map": "^0.5.0" + } + }, + "@babel/generator": { + "version": "7.26.2", + "resolved": "https://registry.npmjs.org/@babel/generator/-/generator-7.26.2.tgz", + "integrity": "sha512-zevQbhbau95nkoxSq3f/DC/SC+EEOUZd3DYqfSkMhY2/wfSeaHV1Ew4vk8e+x8lja31IbyuUa2uQ3JONqKbysw==", + "requires": { + "@babel/parser": "^7.26.2", + "@babel/types": "^7.26.0", + "@jridgewell/gen-mapping": "^0.3.5", + "@jridgewell/trace-mapping": "^0.3.25", + "jsesc": "^3.0.2" + } + }, + "@babel/helper-annotate-as-pure": { + "version": "7.25.9", + "resolved": "https://registry.npmjs.org/@babel/helper-annotate-as-pure/-/helper-annotate-as-pure-7.25.9.tgz", + "integrity": "sha512-gv7320KBUFJz1RnylIg5WWYPRXKZ884AGkYpgpWW02TH66Dl+HaC1t1CKd0z3R4b6hdYEcmrNZHUmfCP+1u3/g==", + "dev": true, + "requires": { + "@babel/types": "^7.25.9" + } + }, + "@babel/helper-builder-binary-assignment-operator-visitor": { + "version": "7.25.9", + "resolved": "https://registry.npmjs.org/@babel/helper-builder-binary-assignment-operator-visitor/-/helper-builder-binary-assignment-operator-visitor-7.25.9.tgz", + "integrity": "sha512-C47lC7LIDCnz0h4vai/tpNOI95tCd5ZT3iBt/DBH5lXKHZsyNQv18yf1wIIg2ntiQNgmAvA+DgZ82iW8Qdym8g==", + "dev": true, + "requires": { + "@babel/traverse": "^7.25.9", + "@babel/types": "^7.25.9" + } + }, + "@babel/helper-compilation-targets": { + "version": "7.25.9", + "resolved": "https://registry.npmjs.org/@babel/helper-compilation-targets/-/helper-compilation-targets-7.25.9.tgz", + "integrity": "sha512-j9Db8Suy6yV/VHa4qzrj9yZfZxhLWQdVnRlXxmKLYlhWUVB1sB2G5sxuWYXk/whHD9iW76PmNzxZ4UCnTQTVEQ==", + "requires": { + "@babel/compat-data": "^7.25.9", + "@babel/helper-validator-option": "^7.25.9", + "browserslist": "^4.24.0", + "lru-cache": "^5.1.1", + "semver": "^6.3.1" + } + }, + "@babel/helper-create-class-features-plugin": { + "version": "7.25.9", + "resolved": "https://registry.npmjs.org/@babel/helper-create-class-features-plugin/-/helper-create-class-features-plugin-7.25.9.tgz", + "integrity": "sha512-UTZQMvt0d/rSz6KI+qdu7GQze5TIajwTS++GUozlw8VBJDEOAqSXwm1WvmYEZwqdqSGQshRocPDqrt4HBZB3fQ==", + "dev": true, + "requires": { + "@babel/helper-annotate-as-pure": "^7.25.9", + "@babel/helper-member-expression-to-functions": "^7.25.9", + "@babel/helper-optimise-call-expression": "^7.25.9", + "@babel/helper-replace-supers": "^7.25.9", + "@babel/helper-skip-transparent-expression-wrappers": "^7.25.9", + "@babel/traverse": "^7.25.9", + "semver": "^6.3.1" + } + }, + "@babel/helper-create-regexp-features-plugin": { + "version": "7.25.9", + "resolved": "https://registry.npmjs.org/@babel/helper-create-regexp-features-plugin/-/helper-create-regexp-features-plugin-7.25.9.tgz", + "integrity": "sha512-ORPNZ3h6ZRkOyAa/SaHU+XsLZr0UQzRwuDQ0cczIA17nAzZ+85G5cVkOJIj7QavLZGSe8QXUmNFxSZzjcZF9bw==", + "dev": true, + "requires": { + "@babel/helper-annotate-as-pure": "^7.25.9", + "regexpu-core": "^6.1.1", + "semver": "^6.3.1" + } + }, + "@babel/helper-define-polyfill-provider": { + "version": "0.2.4", + "resolved": "https://registry.npmjs.org/@babel/helper-define-polyfill-provider/-/helper-define-polyfill-provider-0.2.4.tgz", + "integrity": "sha512-OrpPZ97s+aPi6h2n1OXzdhVis1SGSsMU2aMHgLcOKfsp4/v1NWpx3CWT3lBj5eeBq9cDkPkh+YCfdF7O12uNDQ==", + "dev": true, + "requires": { + "@babel/helper-compilation-targets": "^7.13.0", + "@babel/helper-module-imports": "^7.12.13", + "@babel/helper-plugin-utils": "^7.13.0", + "@babel/traverse": "^7.13.0", + "debug": "^4.1.1", + "lodash.debounce": "^4.0.8", + "resolve": "^1.14.2", + "semver": "^6.1.2" + } + }, + "@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-member-expression-to-functions": { + "version": "7.25.9", + "resolved": "https://registry.npmjs.org/@babel/helper-member-expression-to-functions/-/helper-member-expression-to-functions-7.25.9.tgz", + "integrity": "sha512-wbfdZ9w5vk0C0oyHqAJbc62+vet5prjj01jjJ8sKn3j9h3MQQlflEdXYvuqRWjHnM12coDEqiC1IRCi0U/EKwQ==", + "dev": true, + "requires": { + "@babel/traverse": "^7.25.9", + "@babel/types": "^7.25.9" + } + }, + "@babel/helper-module-imports": { + "version": "7.25.9", + "resolved": "https://registry.npmjs.org/@babel/helper-module-imports/-/helper-module-imports-7.25.9.tgz", + "integrity": "sha512-tnUA4RsrmflIM6W6RFTLFSXITtl0wKjgpnLgXyowocVPrbYrLUXSBXDgTs8BlbmIzIdlBySRQjINYs2BAkiLtw==", + "requires": { + "@babel/traverse": "^7.25.9", + "@babel/types": "^7.25.9" + } + }, + "@babel/helper-module-transforms": { + "version": "7.26.0", + "resolved": "https://registry.npmjs.org/@babel/helper-module-transforms/-/helper-module-transforms-7.26.0.tgz", + "integrity": "sha512-xO+xu6B5K2czEnQye6BHA7DolFFmS3LB7stHZFaOLb1pAwO1HWLS8fXA+eh0A2yIvltPVmx3eNNDBJA2SLHXFw==", + "requires": { + "@babel/helper-module-imports": "^7.25.9", + "@babel/helper-validator-identifier": "^7.25.9", + "@babel/traverse": "^7.25.9" + } + }, + "@babel/helper-optimise-call-expression": { + "version": "7.25.9", + "resolved": "https://registry.npmjs.org/@babel/helper-optimise-call-expression/-/helper-optimise-call-expression-7.25.9.tgz", + "integrity": "sha512-FIpuNaz5ow8VyrYcnXQTDRGvV6tTjkNtCK/RYNDXGSLlUD6cBuQTSw43CShGxjvfBTfcUA/r6UhUCbtYqkhcuQ==", + "dev": true, + "requires": { + "@babel/types": "^7.25.9" + } + }, + "@babel/helper-plugin-utils": { + "version": "7.25.9", + "resolved": "https://registry.npmjs.org/@babel/helper-plugin-utils/-/helper-plugin-utils-7.25.9.tgz", + "integrity": "sha512-kSMlyUVdWe25rEsRGviIgOWnoT/nfABVWlqt9N19/dIPWViAOW2s9wznP5tURbs/IDuNk4gPy3YdYRgH3uxhBw==" + }, + "@babel/helper-remap-async-to-generator": { + "version": "7.25.9", + "resolved": "https://registry.npmjs.org/@babel/helper-remap-async-to-generator/-/helper-remap-async-to-generator-7.25.9.tgz", + "integrity": "sha512-IZtukuUeBbhgOcaW2s06OXTzVNJR0ybm4W5xC1opWFFJMZbwRj5LCk+ByYH7WdZPZTt8KnFwA8pvjN2yqcPlgw==", + "dev": true, + "requires": { + "@babel/helper-annotate-as-pure": "^7.25.9", + "@babel/helper-wrap-function": "^7.25.9", + "@babel/traverse": "^7.25.9" + } + }, + "@babel/helper-replace-supers": { + "version": "7.25.9", + "resolved": "https://registry.npmjs.org/@babel/helper-replace-supers/-/helper-replace-supers-7.25.9.tgz", + "integrity": "sha512-IiDqTOTBQy0sWyeXyGSC5TBJpGFXBkRynjBeXsvbhQFKj2viwJC76Epz35YLU1fpe/Am6Vppb7W7zM4fPQzLsQ==", + "dev": true, + "requires": { + "@babel/helper-member-expression-to-functions": "^7.25.9", + "@babel/helper-optimise-call-expression": "^7.25.9", + "@babel/traverse": "^7.25.9" + } + }, + "@babel/helper-simple-access": { + "version": "7.25.9", + "resolved": "https://registry.npmjs.org/@babel/helper-simple-access/-/helper-simple-access-7.25.9.tgz", + "integrity": "sha512-c6WHXuiaRsJTyHYLJV75t9IqsmTbItYfdj99PnzYGQZkYKvan5/2jKJ7gu31J3/BJ/A18grImSPModuyG/Eo0Q==", + "dev": true, + "requires": { + "@babel/traverse": "^7.25.9", + "@babel/types": "^7.25.9" + } + }, + "@babel/helper-skip-transparent-expression-wrappers": { + "version": "7.25.9", + "resolved": "https://registry.npmjs.org/@babel/helper-skip-transparent-expression-wrappers/-/helper-skip-transparent-expression-wrappers-7.25.9.tgz", + "integrity": "sha512-K4Du3BFa3gvyhzgPcntrkDgZzQaq6uozzcpGbOO1OEJaI+EJdqWIMTLgFgQf6lrfiDFo5FU+BxKepI9RmZqahA==", + "dev": true, + "requires": { + "@babel/traverse": "^7.25.9", + "@babel/types": "^7.25.9" + } + }, + "@babel/helper-string-parser": { + "version": "7.25.9", + "resolved": "https://registry.npmjs.org/@babel/helper-string-parser/-/helper-string-parser-7.25.9.tgz", + "integrity": "sha512-4A/SCr/2KLd5jrtOMFzaKjVtAei3+2r/NChoBNoZ3EyP/+GlhoaEGoWOZUmFmoITP7zOJyHIMm+DYRd8o3PvHA==" + }, + "@babel/helper-validator-identifier": { + "version": "7.25.9", + "resolved": "https://registry.npmjs.org/@babel/helper-validator-identifier/-/helper-validator-identifier-7.25.9.tgz", + "integrity": "sha512-Ed61U6XJc3CVRfkERJWDz4dJwKe7iLmmJsbOGu9wSloNSFttHV0I8g6UAgb7qnK5ly5bGLPd4oXZlxCdANBOWQ==" + }, + "@babel/helper-validator-option": { + "version": "7.25.9", + "resolved": "https://registry.npmjs.org/@babel/helper-validator-option/-/helper-validator-option-7.25.9.tgz", + "integrity": "sha512-e/zv1co8pp55dNdEcCynfj9X7nyUKUXoUEwfXqaZt0omVOmDe9oOTdKStH4GmAw6zxMFs50ZayuMfHDKlO7Tfw==" + }, + "@babel/helper-wrap-function": { + "version": "7.25.9", + "resolved": "https://registry.npmjs.org/@babel/helper-wrap-function/-/helper-wrap-function-7.25.9.tgz", + "integrity": "sha512-ETzz9UTjQSTmw39GboatdymDq4XIQbR8ySgVrylRhPOFpsd+JrKHIuF0de7GCWmem+T4uC5z7EZguod7Wj4A4g==", + "dev": true, + "requires": { + "@babel/template": "^7.25.9", + "@babel/traverse": "^7.25.9", + "@babel/types": "^7.25.9" + } + }, + "@babel/helpers": { + "version": "7.26.0", + "resolved": "https://registry.npmjs.org/@babel/helpers/-/helpers-7.26.0.tgz", + "integrity": "sha512-tbhNuIxNcVb21pInl3ZSjksLCvgdZy9KwJ8brv993QtIVKJBBkYXz4q4ZbAv31GdnC+R90np23L5FbEBlthAEw==", + "requires": { + "@babel/template": "^7.25.9", + "@babel/types": "^7.26.0" + } + }, + "@babel/parser": { + "version": "7.26.2", + "resolved": "https://registry.npmjs.org/@babel/parser/-/parser-7.26.2.tgz", + "integrity": "sha512-DWMCZH9WA4Maitz2q21SRKHo9QXZxkDsbNZoVD62gusNtNBBqDg9i7uOhASfTfIGNzW+O+r7+jAlM8dwphcJKQ==", + "requires": { + "@babel/types": "^7.26.0" + } + }, + "@babel/plugin-bugfix-v8-spread-parameters-in-optional-chaining": { + "version": "7.25.9", + "resolved": "https://registry.npmjs.org/@babel/plugin-bugfix-v8-spread-parameters-in-optional-chaining/-/plugin-bugfix-v8-spread-parameters-in-optional-chaining-7.25.9.tgz", + "integrity": "sha512-6xWgLZTJXwilVjlnV7ospI3xi+sl8lN8rXXbBD6vYn3UYDlGsag8wrZkKcSI8G6KgqKP7vNFaDgeDnfAABq61g==", + "dev": true, + "requires": { + "@babel/helper-plugin-utils": "^7.25.9", + "@babel/helper-skip-transparent-expression-wrappers": "^7.25.9", + "@babel/plugin-transform-optional-chaining": "^7.25.9" + } + }, + "@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-class-static-block": { + "version": "7.21.0", + "resolved": "https://registry.npmjs.org/@babel/plugin-proposal-class-static-block/-/plugin-proposal-class-static-block-7.21.0.tgz", + "integrity": "sha512-XP5G9MWNUskFuP30IfFSEFB0Z6HzLIUcjYM4bYOPHXl7eiJ9HFv8tWj6TXTN5QODiEhDZAeI4hLok2iHFFV4hw==", + "dev": true, + "requires": { + "@babel/helper-create-class-features-plugin": "^7.21.0", + "@babel/helper-plugin-utils": "^7.20.2", + "@babel/plugin-syntax-class-static-block": "^7.14.5" + } + }, + "@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" + }, + "dependencies": { + "@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-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.14.7", + "resolved": "https://registry.npmjs.org/@babel/plugin-proposal-object-rest-spread/-/plugin-proposal-object-rest-spread-7.14.7.tgz", + "integrity": "sha512-082hsZz+sVabfmDWo1Oct1u1AgbKbUAyVgmX4otIc7bdsRgHBXwTwb3DpDmD4Eyyx6DNiuz5UAATT655k+kL5g==", + "dev": true, + "requires": { + "@babel/compat-data": "^7.14.7", + "@babel/helper-compilation-targets": "^7.14.5", + "@babel/helper-plugin-utils": "^7.14.5", + "@babel/plugin-syntax-object-rest-spread": "^7.8.3", + "@babel/plugin-transform-parameters": "^7.14.5" + } + }, + "@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-private-property-in-object": { + "version": "7.21.11", + "resolved": "https://registry.npmjs.org/@babel/plugin-proposal-private-property-in-object/-/plugin-proposal-private-property-in-object-7.21.11.tgz", + "integrity": "sha512-0QZ8qP/3RLDVBwBFoWAwCtgcDZJVwA5LUJRZU8x2YFfKNuFq161wK3cuGrALu5yiPu+vzwTAg/sMWVNeWeNyaw==", + "dev": true, + "requires": { + "@babel/helper-annotate-as-pure": "^7.18.6", + "@babel/helper-create-class-features-plugin": "^7.21.0", + "@babel/helper-plugin-utils": "^7.20.2", + "@babel/plugin-syntax-private-property-in-object": "^7.14.5" + } + }, + "@babel/plugin-proposal-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-class-static-block": { + "version": "7.14.5", + "resolved": "https://registry.npmjs.org/@babel/plugin-syntax-class-static-block/-/plugin-syntax-class-static-block-7.14.5.tgz", + "integrity": "sha512-b+YyPmr6ldyNnM6sqYeMWE+bgJcJpO6yS4QD7ymxgH34GBPNDM/THBh8iunyvKIZztiwLH4CJZ0RxTk9emgpjw==", + "dev": true, + "requires": { + "@babel/helper-plugin-utils": "^7.14.5" + } + }, + "@babel/plugin-syntax-dynamic-import": { + "version": "7.2.0", + "resolved": "https://registry.npmjs.org/@babel/plugin-syntax-dynamic-import/-/plugin-syntax-dynamic-import-7.2.0.tgz", + "integrity": "sha512-mVxuJ0YroI/h/tbFTPGZR8cv6ai+STMKNBq0f8hFxsxWjl94qqhsb+wXbpNMDPU3cfR1TIsVFzU3nXyZMqyK4w==", + "dev": true, + "requires": { + "@babel/helper-plugin-utils": "^7.0.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-jsx": { + "version": "7.25.9", + "resolved": "https://registry.npmjs.org/@babel/plugin-syntax-jsx/-/plugin-syntax-jsx-7.25.9.tgz", + "integrity": "sha512-ld6oezHQMZsZfp6pWtbjaNDF2tiiCYYDqQszHt5VV437lewP9aSi2Of99CK0D0XB21k7FLgnLcmQKyKzynfeAA==", + "dev": true, + "requires": { + "@babel/helper-plugin-utils": "^7.25.9" + } + }, + "@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-private-property-in-object": { + "version": "7.14.5", + "resolved": "https://registry.npmjs.org/@babel/plugin-syntax-private-property-in-object/-/plugin-syntax-private-property-in-object-7.14.5.tgz", + "integrity": "sha512-0wVnp9dxJ72ZUJDV27ZfbSj6iHLoytYZmh3rFcxNnvsJF3ktkzLDZPy/mA17HGsaQT3/DQsWYX1f1QGWkCoVUg==", + "dev": true, + "requires": { + "@babel/helper-plugin-utils": "^7.14.5" + } + }, + "@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.25.9", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-arrow-functions/-/plugin-transform-arrow-functions-7.25.9.tgz", + "integrity": "sha512-6jmooXYIwn9ca5/RylZADJ+EnSxVUS5sjeJ9UPk6RWRzXCmOJCy6dqItPJFpw2cuCangPK4OYr5uhGKcmrm5Qg==", + "dev": true, + "requires": { + "@babel/helper-plugin-utils": "^7.25.9" + } + }, + "@babel/plugin-transform-async-to-generator": { + "version": "7.14.5", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-async-to-generator/-/plugin-transform-async-to-generator-7.14.5.tgz", + "integrity": "sha512-szkbzQ0mNk0rpu76fzDdqSyPu0MuvpXgC+6rz5rpMb5OIRxdmHfQxrktL8CYolL2d8luMCZTR0DpIMIdL27IjA==", + "dev": true, + "requires": { + "@babel/helper-module-imports": "^7.14.5", + "@babel/helper-plugin-utils": "^7.14.5", + "@babel/helper-remap-async-to-generator": "^7.14.5" + } + }, + "@babel/plugin-transform-block-scoped-functions": { + "version": "7.25.9", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-block-scoped-functions/-/plugin-transform-block-scoped-functions-7.25.9.tgz", + "integrity": "sha512-toHc9fzab0ZfenFpsyYinOX0J/5dgJVA2fm64xPewu7CoYHWEivIWKxkK2rMi4r3yQqLnVmheMXRdG+k239CgA==", + "dev": true, + "requires": { + "@babel/helper-plugin-utils": "^7.25.9" + } + }, + "@babel/plugin-transform-block-scoping": { + "version": "7.25.9", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-block-scoping/-/plugin-transform-block-scoping-7.25.9.tgz", + "integrity": "sha512-1F05O7AYjymAtqbsFETboN1NvBdcnzMerO+zlMyJBEz6WkMdejvGWw9p05iTSjC85RLlBseHHQpYaM4gzJkBGg==", + "dev": true, + "requires": { + "@babel/helper-plugin-utils": "^7.25.9" + } + }, + "@babel/plugin-transform-classes": { + "version": "7.25.9", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-classes/-/plugin-transform-classes-7.25.9.tgz", + "integrity": "sha512-mD8APIXmseE7oZvZgGABDyM34GUmK45Um2TXiBUt7PnuAxrgoSVf123qUzPxEr/+/BHrRn5NMZCdE2m/1F8DGg==", + "dev": true, + "requires": { + "@babel/helper-annotate-as-pure": "^7.25.9", + "@babel/helper-compilation-targets": "^7.25.9", + "@babel/helper-plugin-utils": "^7.25.9", + "@babel/helper-replace-supers": "^7.25.9", + "@babel/traverse": "^7.25.9", + "globals": "^11.1.0" + } + }, + "@babel/plugin-transform-computed-properties": { + "version": "7.25.9", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-computed-properties/-/plugin-transform-computed-properties-7.25.9.tgz", + "integrity": "sha512-HnBegGqXZR12xbcTHlJ9HGxw1OniltT26J5YpfruGqtUHlz/xKf/G2ak9e+t0rVqrjXa9WOhvYPz1ERfMj23AA==", + "dev": true, + "requires": { + "@babel/helper-plugin-utils": "^7.25.9", + "@babel/template": "^7.25.9" + } + }, + "@babel/plugin-transform-destructuring": { + "version": "7.25.9", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-destructuring/-/plugin-transform-destructuring-7.25.9.tgz", + "integrity": "sha512-WkCGb/3ZxXepmMiX101nnGiU+1CAdut8oHyEOHxkKuS1qKpU2SMXE2uSvfz8PBuLd49V6LEsbtyPhWC7fnkgvQ==", + "dev": true, + "requires": { + "@babel/helper-plugin-utils": "^7.25.9" + } + }, + "@babel/plugin-transform-dotall-regex": { + "version": "7.25.9", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-dotall-regex/-/plugin-transform-dotall-regex-7.25.9.tgz", + "integrity": "sha512-t7ZQ7g5trIgSRYhI9pIJtRl64KHotutUJsh4Eze5l7olJv+mRSg4/MmbZ0tv1eeqRbdvo/+trvJD/Oc5DmW2cA==", + "dev": true, + "requires": { + "@babel/helper-create-regexp-features-plugin": "^7.25.9", + "@babel/helper-plugin-utils": "^7.25.9" + } + }, + "@babel/plugin-transform-duplicate-keys": { + "version": "7.25.9", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-duplicate-keys/-/plugin-transform-duplicate-keys-7.25.9.tgz", + "integrity": "sha512-LZxhJ6dvBb/f3x8xwWIuyiAHy56nrRG3PeYTpBkkzkYRRQ6tJLu68lEF5VIqMUZiAV7a8+Tb78nEoMCMcqjXBw==", + "dev": true, + "requires": { + "@babel/helper-plugin-utils": "^7.25.9" + } + }, + "@babel/plugin-transform-exponentiation-operator": { + "version": "7.25.9", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-exponentiation-operator/-/plugin-transform-exponentiation-operator-7.25.9.tgz", + "integrity": "sha512-KRhdhlVk2nObA5AYa7QMgTMTVJdfHprfpAk4DjZVtllqRg9qarilstTKEhpVjyt+Npi8ThRyiV8176Am3CodPA==", + "dev": true, + "requires": { + "@babel/helper-builder-binary-assignment-operator-visitor": "^7.25.9", + "@babel/helper-plugin-utils": "^7.25.9" + } + }, + "@babel/plugin-transform-for-of": { + "version": "7.25.9", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-for-of/-/plugin-transform-for-of-7.25.9.tgz", + "integrity": "sha512-LqHxduHoaGELJl2uhImHwRQudhCM50pT46rIBNvtT/Oql3nqiS3wOwP+5ten7NpYSXrrVLgtZU3DZmPtWZo16A==", + "dev": true, + "requires": { + "@babel/helper-plugin-utils": "^7.25.9", + "@babel/helper-skip-transparent-expression-wrappers": "^7.25.9" + } + }, + "@babel/plugin-transform-function-name": { + "version": "7.25.9", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-function-name/-/plugin-transform-function-name-7.25.9.tgz", + "integrity": "sha512-8lP+Yxjv14Vc5MuWBpJsoUCd3hD6V9DgBon2FVYL4jJgbnVQ9fTgYmonchzZJOVNgzEgbxp4OwAf6xz6M/14XA==", + "dev": true, + "requires": { + "@babel/helper-compilation-targets": "^7.25.9", + "@babel/helper-plugin-utils": "^7.25.9", + "@babel/traverse": "^7.25.9" + } + }, + "@babel/plugin-transform-literals": { + "version": "7.25.9", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-literals/-/plugin-transform-literals-7.25.9.tgz", + "integrity": "sha512-9N7+2lFziW8W9pBl2TzaNht3+pgMIRP74zizeCSrtnSKVdUl8mAjjOP2OOVQAfZ881P2cNjDj1uAMEdeD50nuQ==", + "dev": true, + "requires": { + "@babel/helper-plugin-utils": "^7.25.9" + } + }, + "@babel/plugin-transform-member-expression-literals": { + "version": "7.25.9", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-member-expression-literals/-/plugin-transform-member-expression-literals-7.25.9.tgz", + "integrity": "sha512-PYazBVfofCQkkMzh2P6IdIUaCEWni3iYEerAsRWuVd8+jlM1S9S9cz1dF9hIzyoZ8IA3+OwVYIp9v9e+GbgZhA==", + "dev": true, + "requires": { + "@babel/helper-plugin-utils": "^7.25.9" + } + }, + "@babel/plugin-transform-modules-amd": { + "version": "7.25.9", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-modules-amd/-/plugin-transform-modules-amd-7.25.9.tgz", + "integrity": "sha512-g5T11tnI36jVClQlMlt4qKDLlWnG5pP9CSM4GhdRciTNMRgkfpo5cR6b4rGIOYPgRRuFAvwjPQ/Yk+ql4dyhbw==", + "dev": true, + "requires": { + "@babel/helper-module-transforms": "^7.25.9", + "@babel/helper-plugin-utils": "^7.25.9" + } + }, + "@babel/plugin-transform-modules-commonjs": { + "version": "7.25.9", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-modules-commonjs/-/plugin-transform-modules-commonjs-7.25.9.tgz", + "integrity": "sha512-dwh2Ol1jWwL2MgkCzUSOvfmKElqQcuswAZypBSUsScMXvgdT8Ekq5YA6TtqpTVWH+4903NmboMuH1o9i8Rxlyg==", + "dev": true, + "requires": { + "@babel/helper-module-transforms": "^7.25.9", + "@babel/helper-plugin-utils": "^7.25.9", + "@babel/helper-simple-access": "^7.25.9" + } + }, + "@babel/plugin-transform-modules-systemjs": { + "version": "7.25.9", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-modules-systemjs/-/plugin-transform-modules-systemjs-7.25.9.tgz", + "integrity": "sha512-hyss7iIlH/zLHaehT+xwiymtPOpsiwIIRlCAOwBB04ta5Tt+lNItADdlXw3jAWZ96VJ2jlhl/c+PNIQPKNfvcA==", + "dev": true, + "requires": { + "@babel/helper-module-transforms": "^7.25.9", + "@babel/helper-plugin-utils": "^7.25.9", + "@babel/helper-validator-identifier": "^7.25.9", + "@babel/traverse": "^7.25.9" + } + }, + "@babel/plugin-transform-modules-umd": { + "version": "7.25.9", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-modules-umd/-/plugin-transform-modules-umd-7.25.9.tgz", + "integrity": "sha512-bS9MVObUgE7ww36HEfwe6g9WakQ0KF07mQF74uuXdkoziUPfKyu/nIm663kz//e5O1nPInPFx36z7WJmJ4yNEw==", + "dev": true, + "requires": { + "@babel/helper-module-transforms": "^7.25.9", + "@babel/helper-plugin-utils": "^7.25.9" + } + }, + "@babel/plugin-transform-named-capturing-groups-regex": { + "version": "7.25.9", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-named-capturing-groups-regex/-/plugin-transform-named-capturing-groups-regex-7.25.9.tgz", + "integrity": "sha512-oqB6WHdKTGl3q/ItQhpLSnWWOpjUJLsOCLVyeFgeTktkBSCiurvPOsyt93gibI9CmuKvTUEtWmG5VhZD+5T/KA==", + "dev": true, + "requires": { + "@babel/helper-create-regexp-features-plugin": "^7.25.9", + "@babel/helper-plugin-utils": "^7.25.9" + } + }, + "@babel/plugin-transform-new-target": { + "version": "7.25.9", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-new-target/-/plugin-transform-new-target-7.25.9.tgz", + "integrity": "sha512-U/3p8X1yCSoKyUj2eOBIx3FOn6pElFOKvAAGf8HTtItuPyB+ZeOqfn+mvTtg9ZlOAjsPdK3ayQEjqHjU/yLeVQ==", + "dev": true, + "requires": { + "@babel/helper-plugin-utils": "^7.25.9" + } + }, + "@babel/plugin-transform-object-super": { + "version": "7.25.9", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-object-super/-/plugin-transform-object-super-7.25.9.tgz", + "integrity": "sha512-Kj/Gh+Rw2RNLbCK1VAWj2U48yxxqL2x0k10nPtSdRa0O2xnHXalD0s+o1A6a0W43gJ00ANo38jxkQreckOzv5A==", + "dev": true, + "requires": { + "@babel/helper-plugin-utils": "^7.25.9", + "@babel/helper-replace-supers": "^7.25.9" + } + }, + "@babel/plugin-transform-optional-chaining": { + "version": "7.25.9", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-optional-chaining/-/plugin-transform-optional-chaining-7.25.9.tgz", + "integrity": "sha512-6AvV0FsLULbpnXeBjrY4dmWF8F7gf8QnvTEoO/wX/5xm/xE1Xo8oPuD3MPS+KS9f9XBEAWN7X1aWr4z9HdOr7A==", + "dev": true, + "requires": { + "@babel/helper-plugin-utils": "^7.25.9", + "@babel/helper-skip-transparent-expression-wrappers": "^7.25.9" + } + }, + "@babel/plugin-transform-parameters": { + "version": "7.25.9", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-parameters/-/plugin-transform-parameters-7.25.9.tgz", + "integrity": "sha512-wzz6MKwpnshBAiRmn4jR8LYz/g8Ksg0o80XmwZDlordjwEk9SxBzTWC7F5ef1jhbrbOW2DJ5J6ayRukrJmnr0g==", + "dev": true, + "requires": { + "@babel/helper-plugin-utils": "^7.25.9" + } + }, + "@babel/plugin-transform-property-literals": { + "version": "7.25.9", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-property-literals/-/plugin-transform-property-literals-7.25.9.tgz", + "integrity": "sha512-IvIUeV5KrS/VPavfSM/Iu+RE6llrHrYIKY1yfCzyO/lMXHQ+p7uGhonmGVisv6tSBSVgWzMBohTcvkC9vQcQFA==", + "dev": true, + "requires": { + "@babel/helper-plugin-utils": "^7.25.9" + } + }, + "@babel/plugin-transform-react-display-name": { + "version": "7.25.9", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-react-display-name/-/plugin-transform-react-display-name-7.25.9.tgz", + "integrity": "sha512-KJfMlYIUxQB1CJfO3e0+h0ZHWOTLCPP115Awhaz8U0Zpq36Gl/cXlpoyMRnUWlhNUBAzldnCiAZNvCDj7CrKxQ==", + "dev": true, + "requires": { + "@babel/helper-plugin-utils": "^7.25.9" + } + }, + "@babel/plugin-transform-react-jsx": { + "version": "7.25.9", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-react-jsx/-/plugin-transform-react-jsx-7.25.9.tgz", + "integrity": "sha512-s5XwpQYCqGerXl+Pu6VDL3x0j2d82eiV77UJ8a2mDHAW7j9SWRqQ2y1fNo1Z74CdcYipl5Z41zvjj4Nfzq36rw==", + "dev": true, + "requires": { + "@babel/helper-annotate-as-pure": "^7.25.9", + "@babel/helper-module-imports": "^7.25.9", + "@babel/helper-plugin-utils": "^7.25.9", + "@babel/plugin-syntax-jsx": "^7.25.9", + "@babel/types": "^7.25.9" + } + }, + "@babel/plugin-transform-react-jsx-development": { + "version": "7.25.9", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-react-jsx-development/-/plugin-transform-react-jsx-development-7.25.9.tgz", + "integrity": "sha512-9mj6rm7XVYs4mdLIpbZnHOYdpW42uoiBCTVowg7sP1thUOiANgMb4UtpRivR0pp5iL+ocvUv7X4mZgFRpJEzGw==", + "dev": true, + "requires": { + "@babel/plugin-transform-react-jsx": "^7.25.9" + } + }, + "@babel/plugin-transform-react-pure-annotations": { + "version": "7.25.9", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-react-pure-annotations/-/plugin-transform-react-pure-annotations-7.25.9.tgz", + "integrity": "sha512-KQ/Takk3T8Qzj5TppkS1be588lkbTp5uj7w6a0LeQaTMSckU/wK0oJ/pih+T690tkgI5jfmg2TqDJvd41Sj1Cg==", + "dev": true, + "requires": { + "@babel/helper-annotate-as-pure": "^7.25.9", + "@babel/helper-plugin-utils": "^7.25.9" + } + }, + "@babel/plugin-transform-regenerator": { + "version": "7.25.9", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-regenerator/-/plugin-transform-regenerator-7.25.9.tgz", + "integrity": "sha512-vwDcDNsgMPDGP0nMqzahDWE5/MLcX8sv96+wfX7as7LoF/kr97Bo/7fI00lXY4wUXYfVmwIIyG80fGZ1uvt2qg==", + "dev": true, + "requires": { + "@babel/helper-plugin-utils": "^7.25.9", + "regenerator-transform": "^0.15.2" + } + }, + "@babel/plugin-transform-reserved-words": { + "version": "7.25.9", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-reserved-words/-/plugin-transform-reserved-words-7.25.9.tgz", + "integrity": "sha512-7DL7DKYjn5Su++4RXu8puKZm2XBPHyjWLUidaPEkCUBbE7IPcsrkRHggAOOKydH1dASWdcUBxrkOGNxUv5P3Jg==", + "dev": true, + "requires": { + "@babel/helper-plugin-utils": "^7.25.9" + } + }, + "@babel/plugin-transform-shorthand-properties": { + "version": "7.25.9", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-shorthand-properties/-/plugin-transform-shorthand-properties-7.25.9.tgz", + "integrity": "sha512-MUv6t0FhO5qHnS/W8XCbHmiRWOphNufpE1IVxhK5kuN3Td9FT1x4rx4K42s3RYdMXCXpfWkGSbCSd0Z64xA7Ng==", + "dev": true, + "requires": { + "@babel/helper-plugin-utils": "^7.25.9" + } + }, + "@babel/plugin-transform-spread": { + "version": "7.25.9", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-spread/-/plugin-transform-spread-7.25.9.tgz", + "integrity": "sha512-oNknIB0TbURU5pqJFVbOOFspVlrpVwo2H1+HUIsVDvp5VauGGDP1ZEvO8Nn5xyMEs3dakajOxlmkNW7kNgSm6A==", + "dev": true, + "requires": { + "@babel/helper-plugin-utils": "^7.25.9", + "@babel/helper-skip-transparent-expression-wrappers": "^7.25.9" + } + }, + "@babel/plugin-transform-sticky-regex": { + "version": "7.25.9", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-sticky-regex/-/plugin-transform-sticky-regex-7.25.9.tgz", + "integrity": "sha512-WqBUSgeVwucYDP9U/xNRQam7xV8W5Zf+6Eo7T2SRVUFlhRiMNFdFz58u0KZmCVVqs2i7SHgpRnAhzRNmKfi2uA==", + "dev": true, + "requires": { + "@babel/helper-plugin-utils": "^7.25.9" + } + }, + "@babel/plugin-transform-template-literals": { + "version": "7.25.9", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-template-literals/-/plugin-transform-template-literals-7.25.9.tgz", + "integrity": "sha512-o97AE4syN71M/lxrCtQByzphAdlYluKPDBzDVzMmfCobUjjhAryZV0AIpRPrxN0eAkxXO6ZLEScmt+PNhj2OTw==", + "dev": true, + "requires": { + "@babel/helper-plugin-utils": "^7.25.9" + } + }, + "@babel/plugin-transform-typeof-symbol": { + "version": "7.25.9", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-typeof-symbol/-/plugin-transform-typeof-symbol-7.25.9.tgz", + "integrity": "sha512-v61XqUMiueJROUv66BVIOi0Fv/CUuZuZMl5NkRoCVxLAnMexZ0A3kMe7vvZ0nulxMuMp0Mk6S5hNh48yki08ZA==", + "dev": true, + "requires": { + "@babel/helper-plugin-utils": "^7.25.9" + } + }, + "@babel/plugin-transform-unicode-escapes": { + "version": "7.25.9", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-unicode-escapes/-/plugin-transform-unicode-escapes-7.25.9.tgz", + "integrity": "sha512-s5EDrE6bW97LtxOcGj1Khcx5AaXwiMmi4toFWRDP9/y0Woo6pXC+iyPu/KuhKtfSrNFd7jJB+/fkOtZy6aIC6Q==", + "dev": true, + "requires": { + "@babel/helper-plugin-utils": "^7.25.9" + } + }, + "@babel/plugin-transform-unicode-regex": { + "version": "7.25.9", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-unicode-regex/-/plugin-transform-unicode-regex-7.25.9.tgz", + "integrity": "sha512-yoxstj7Rg9dlNn9UQxzk4fcNivwv4nUYz7fYXBaKxvw/lnmPuOm/ikoELygbYq68Bls3D/D+NBPHiLwZdZZ4HA==", + "dev": true, + "requires": { + "@babel/helper-create-regexp-features-plugin": "^7.25.9", + "@babel/helper-plugin-utils": "^7.25.9" + } + }, + "@babel/preset-env": { + "version": "7.14.8", + "resolved": "https://registry.npmjs.org/@babel/preset-env/-/preset-env-7.14.8.tgz", + "integrity": "sha512-a9aOppDU93oArQ51H+B8M1vH+tayZbuBqzjOhntGetZVa+4tTu5jp+XTwqHGG2lxslqomPYVSjIxQkFwXzgnxg==", + "dev": true, + "requires": { + "@babel/compat-data": "^7.14.7", + "@babel/helper-compilation-targets": "^7.14.5", + "@babel/helper-plugin-utils": "^7.14.5", + "@babel/helper-validator-option": "^7.14.5", + "@babel/plugin-bugfix-v8-spread-parameters-in-optional-chaining": "^7.14.5", + "@babel/plugin-proposal-async-generator-functions": "^7.14.7", + "@babel/plugin-proposal-class-properties": "^7.14.5", + "@babel/plugin-proposal-class-static-block": "^7.14.5", + "@babel/plugin-proposal-dynamic-import": "^7.14.5", + "@babel/plugin-proposal-export-namespace-from": "^7.14.5", + "@babel/plugin-proposal-json-strings": "^7.14.5", + "@babel/plugin-proposal-logical-assignment-operators": "^7.14.5", + "@babel/plugin-proposal-nullish-coalescing-operator": "^7.14.5", + "@babel/plugin-proposal-numeric-separator": "^7.14.5", + "@babel/plugin-proposal-object-rest-spread": "^7.14.7", + "@babel/plugin-proposal-optional-catch-binding": "^7.14.5", + "@babel/plugin-proposal-optional-chaining": "^7.14.5", + "@babel/plugin-proposal-private-methods": "^7.14.5", + "@babel/plugin-proposal-private-property-in-object": "^7.14.5", + "@babel/plugin-proposal-unicode-property-regex": "^7.14.5", + "@babel/plugin-syntax-async-generators": "^7.8.4", + "@babel/plugin-syntax-class-properties": "^7.12.13", + "@babel/plugin-syntax-class-static-block": "^7.14.5", + "@babel/plugin-syntax-dynamic-import": "^7.8.3", + "@babel/plugin-syntax-export-namespace-from": "^7.8.3", + "@babel/plugin-syntax-json-strings": "^7.8.3", + "@babel/plugin-syntax-logical-assignment-operators": "^7.10.4", + "@babel/plugin-syntax-nullish-coalescing-operator": "^7.8.3", + "@babel/plugin-syntax-numeric-separator": "^7.10.4", + "@babel/plugin-syntax-object-rest-spread": "^7.8.3", + "@babel/plugin-syntax-optional-catch-binding": "^7.8.3", + "@babel/plugin-syntax-optional-chaining": "^7.8.3", + "@babel/plugin-syntax-private-property-in-object": "^7.14.5", + "@babel/plugin-syntax-top-level-await": "^7.14.5", + "@babel/plugin-transform-arrow-functions": "^7.14.5", + "@babel/plugin-transform-async-to-generator": "^7.14.5", + "@babel/plugin-transform-block-scoped-functions": "^7.14.5", + "@babel/plugin-transform-block-scoping": "^7.14.5", + "@babel/plugin-transform-classes": "^7.14.5", + "@babel/plugin-transform-computed-properties": "^7.14.5", + "@babel/plugin-transform-destructuring": "^7.14.7", + "@babel/plugin-transform-dotall-regex": "^7.14.5", + "@babel/plugin-transform-duplicate-keys": "^7.14.5", + "@babel/plugin-transform-exponentiation-operator": "^7.14.5", + "@babel/plugin-transform-for-of": "^7.14.5", + "@babel/plugin-transform-function-name": "^7.14.5", + "@babel/plugin-transform-literals": "^7.14.5", + "@babel/plugin-transform-member-expression-literals": "^7.14.5", + "@babel/plugin-transform-modules-amd": "^7.14.5", + "@babel/plugin-transform-modules-commonjs": "^7.14.5", + "@babel/plugin-transform-modules-systemjs": "^7.14.5", + "@babel/plugin-transform-modules-umd": "^7.14.5", + "@babel/plugin-transform-named-capturing-groups-regex": "^7.14.7", + "@babel/plugin-transform-new-target": "^7.14.5", + "@babel/plugin-transform-object-super": "^7.14.5", + "@babel/plugin-transform-parameters": "^7.14.5", + "@babel/plugin-transform-property-literals": "^7.14.5", + "@babel/plugin-transform-regenerator": "^7.14.5", + "@babel/plugin-transform-reserved-words": "^7.14.5", + "@babel/plugin-transform-shorthand-properties": "^7.14.5", + "@babel/plugin-transform-spread": "^7.14.6", + "@babel/plugin-transform-sticky-regex": "^7.14.5", + "@babel/plugin-transform-template-literals": "^7.14.5", + "@babel/plugin-transform-typeof-symbol": "^7.14.5", + "@babel/plugin-transform-unicode-escapes": "^7.14.5", + "@babel/plugin-transform-unicode-regex": "^7.14.5", + "@babel/preset-modules": "^0.1.4", + "@babel/types": "^7.14.8", + "babel-plugin-polyfill-corejs2": "^0.2.2", + "babel-plugin-polyfill-corejs3": "^0.2.2", + "babel-plugin-polyfill-regenerator": "^0.2.2", + "core-js-compat": "^3.15.0", + "semver": "^6.3.0" + }, + "dependencies": { + "@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/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" + } + }, + "@babel/preset-react": { + "version": "7.14.5", + "resolved": "https://registry.npmjs.org/@babel/preset-react/-/preset-react-7.14.5.tgz", + "integrity": "sha512-XFxBkjyObLvBaAvkx1Ie95Iaq4S/GUEIrejyrntQ/VCMKUYvKLoyKxOBzJ2kjA3b6rC9/KL6KXfDC2GqvLiNqQ==", + "dev": true, + "requires": { + "@babel/helper-plugin-utils": "^7.14.5", + "@babel/helper-validator-option": "^7.14.5", + "@babel/plugin-transform-react-display-name": "^7.14.5", + "@babel/plugin-transform-react-jsx": "^7.14.5", + "@babel/plugin-transform-react-jsx-development": "^7.14.5", + "@babel/plugin-transform-react-pure-annotations": "^7.14.5" + } + }, + "@babel/runtime": { + "version": "7.26.0", + "resolved": "https://registry.npmjs.org/@babel/runtime/-/runtime-7.26.0.tgz", + "integrity": "sha512-FDSOghenHTiToteC/QRlv2q3DhPZ/oOXTBoirfWNx1Cx3TMVcGWQtMMmQcSvb/JjpNeGzx8Pq/b4fKEJuWm1sw==", + "requires": { + "regenerator-runtime": "^0.14.0" + }, + "dependencies": { + "regenerator-runtime": { + "version": "0.14.1", + "resolved": "https://registry.npmjs.org/regenerator-runtime/-/regenerator-runtime-0.14.1.tgz", + "integrity": "sha512-dYnhHh0nJoMfnkZs6GmmhFknAGRrLznOu5nc9ML+EJxGvrx6H7teuevqVqCuPcPK//3eDrrjQhehXVx9cnkGdw==" + } + } + }, + "@babel/template": { + "version": "7.25.9", + "resolved": "https://registry.npmjs.org/@babel/template/-/template-7.25.9.tgz", + "integrity": "sha512-9DGttpmPvIxBb/2uwpVo3dqJ+O6RooAFOS+lB+xDqoE2PVCE8nfoHMdZLpfCQRLwvohzXISPZcgxt80xLfsuwg==", + "requires": { + "@babel/code-frame": "^7.25.9", + "@babel/parser": "^7.25.9", + "@babel/types": "^7.25.9" + } + }, + "@babel/traverse": { + "version": "7.25.9", + "resolved": "https://registry.npmjs.org/@babel/traverse/-/traverse-7.25.9.tgz", + "integrity": "sha512-ZCuvfwOwlz/bawvAuvcj8rrithP2/N55Tzz342AkTvq4qaWbGfmCk/tKhNaV2cthijKrPAA8SRJV5WWe7IBMJw==", + "requires": { + "@babel/code-frame": "^7.25.9", + "@babel/generator": "^7.25.9", + "@babel/parser": "^7.25.9", + "@babel/template": "^7.25.9", + "@babel/types": "^7.25.9", + "debug": "^4.3.1", + "globals": "^11.1.0" + } + }, + "@babel/types": { + "version": "7.26.0", + "resolved": "https://registry.npmjs.org/@babel/types/-/types-7.26.0.tgz", + "integrity": "sha512-Z/yiTPj+lDVnF7lWeKCIJzaIkI0vYO87dMpZ4bg4TDrFe4XXLFWL1TbXU27gBP3QccxV9mZICCrnjnYlJjXHOA==", + "requires": { + "@babel/helper-string-parser": "^7.25.9", + "@babel/helper-validator-identifier": "^7.25.9" + } + }, + "@gar/promisify": { + "version": "1.1.3", + "resolved": "https://registry.npmjs.org/@gar/promisify/-/promisify-1.1.3.tgz", + "integrity": "sha512-k2Ty1JcVojjJFwrg/ThKi2ujJ7XNLYaFGNB/bWT9wGR+oSMJHMa5w+CUq6p/pVrKeNNgA7pCqEcjSnHVoqJQFw==" + }, + "@jest/types": { + "version": "24.9.0", + "resolved": "https://registry.npmjs.org/@jest/types/-/types-24.9.0.tgz", + "integrity": "sha512-XKK7ze1apu5JWQ5eZjHITP66AX+QsLlbaJRBGYr8pNzwcAE2JVkwnf0yqjHTsDRcjR0mujy/NmZMXw5kl+kGBw==", + "dev": true, + "requires": { + "@types/istanbul-lib-coverage": "^2.0.0", + "@types/istanbul-reports": "^1.1.1", + "@types/yargs": "^13.0.0" + } + }, + "@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==", + "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==" + }, + "@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==" + }, + "@jridgewell/sourcemap-codec": { + "version": "1.5.0", + "resolved": "https://registry.npmjs.org/@jridgewell/sourcemap-codec/-/sourcemap-codec-1.5.0.tgz", + "integrity": "sha512-gv3ZRaISU3fjPAgNsriBRqGWQL6quFx04YMPW/zD8XMLsU32mhCCbfbO6KZFLjvYpCZ8zyDEgqsgf+PwPaM7GQ==" + }, + "@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==", + "requires": { + "@jridgewell/resolve-uri": "^3.1.0", + "@jridgewell/sourcemap-codec": "^1.4.14" + } + }, + "@nicolo-ribaudo/chokidar-2": { + "version": "2.1.8-no-fsevents.2", + "resolved": "https://registry.npmjs.org/@nicolo-ribaudo/chokidar-2/-/chokidar-2-2.1.8-no-fsevents.2.tgz", + "integrity": "sha512-Fb8WxUFOBQVl+CX4MWet5o7eCc6Pj04rXIwVKZ6h1NnqTo45eOQW6aWyhG25NIODvWFwTDMwBsYxrQ3imxpetg==", + "optional": true, + "requires": { + "anymatch": "^2.0.0", + "async-each": "^1.0.1", + "braces": "^2.3.2", + "glob-parent": "^5.1.2", + "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" + } + }, + "@nodelib/fs.scandir": { + "version": "2.1.5", + "resolved": "https://registry.npmjs.org/@nodelib/fs.scandir/-/fs.scandir-2.1.5.tgz", + "integrity": "sha512-vq24Bq3ym5HEQm2NKCr3yXDwjc7vTsEThRDnkp2DK9p1uqLR+DHurm/NOTo0KG7HYHU7eppKZj3MyqYuMBf62g==", + "requires": { + "@nodelib/fs.stat": "2.0.5", + "run-parallel": "^1.1.9" + } + }, + "@nodelib/fs.stat": { + "version": "2.0.5", + "resolved": "https://registry.npmjs.org/@nodelib/fs.stat/-/fs.stat-2.0.5.tgz", + "integrity": "sha512-RkhPPp2zrqDAQA/2jNhnztcPAlv64XdhIp7a7454A5ovI7Bukxgt7MX7udwAu3zg1DcpPU0rz3VV1SeaqvY4+A==" + }, + "@nodelib/fs.walk": { + "version": "1.2.8", + "resolved": "https://registry.npmjs.org/@nodelib/fs.walk/-/fs.walk-1.2.8.tgz", + "integrity": "sha512-oGB+UxlgWcgQkgwo8GcEGwemoTFt3FIO9ababBmaGwXIoBKZ+GTy0pP185beGg7Llih/NSHSV2XAs1lnznocSg==", + "requires": { + "@nodelib/fs.scandir": "2.1.5", + "fastq": "^1.6.0" + } + }, + "@npmcli/fs": { + "version": "1.1.1", + "resolved": "https://registry.npmjs.org/@npmcli/fs/-/fs-1.1.1.tgz", + "integrity": "sha512-8KG5RD0GVP4ydEzRn/I4BNDuxDtqVbOdm8675T49OIG/NGhaK0pjPX7ZcDlvKYbA+ulvVK3ztfcF4uBdOxuJbQ==", + "requires": { + "@gar/promisify": "^1.0.1", + "semver": "^7.3.5" + }, + "dependencies": { + "semver": { + "version": "7.6.3", + "resolved": "https://registry.npmjs.org/semver/-/semver-7.6.3.tgz", + "integrity": "sha512-oVekP1cKtI+CTDvHWYFUcMtsK/00wmAEfyqKfNdARm8u1wNVhSgaX7A8d4UuIlUI5e84iEwOhs7ZPYRmzU9U6A==" + } + } + }, + "@npmcli/move-file": { + "version": "1.1.2", + "resolved": "https://registry.npmjs.org/@npmcli/move-file/-/move-file-1.1.2.tgz", + "integrity": "sha512-1SUf/Cg2GzGDyaf15aR9St9TWlb+XvbZXWpDx8YKs7MLzMH/BCeopv+y9vzrzgkfykCGuWOlSu3mZhj2+FQcrg==", + "requires": { + "mkdirp": "^1.0.4", + "rimraf": "^3.0.2" + }, + "dependencies": { + "mkdirp": { + "version": "1.0.4", + "resolved": "https://registry.npmjs.org/mkdirp/-/mkdirp-1.0.4.tgz", + "integrity": "sha512-vVqVZQyf3WLx2Shd0qJ9xuvqgAyKPLAiqITEtqW0oIUjzo3PePDd6fW9iFz30ef7Ysp/oiWqbhszeGWW2T6Gzw==" + }, + "rimraf": { + "version": "3.0.2", + "resolved": "https://registry.npmjs.org/rimraf/-/rimraf-3.0.2.tgz", + "integrity": "sha512-JZkJMZkAGFFPP2YqXZXPbMlMBgsxzE8ILs4lMIX/2o0L9UBw9O/Y3o6wFw/i9YLapcUJWwqbi3kdxIPdC62TIA==", + "requires": { + "glob": "^7.1.3" + } + } + } + }, + "@protobufjs/aspromise": { + "version": "1.1.2", + "resolved": "https://registry.npmjs.org/@protobufjs/aspromise/-/aspromise-1.1.2.tgz", + "integrity": "sha512-j+gKExEuLmKwvz3OgROXtrJ2UG2x8Ch2YZUxahh+s1F2HZ+wAceUNLkvy6zKCPVRkU++ZWQrdxsUeQXmcg4uoQ==" + }, + "@protobufjs/base64": { + "version": "1.1.2", + "resolved": "https://registry.npmjs.org/@protobufjs/base64/-/base64-1.1.2.tgz", + "integrity": "sha512-AZkcAA5vnN/v4PDqKyMR5lx7hZttPDgClv83E//FMNhR2TMcLUhfRUBHCmSl0oi9zMgDDqRUJkSxO3wm85+XLg==" + }, + "@protobufjs/codegen": { + "version": "2.0.4", + "resolved": "https://registry.npmjs.org/@protobufjs/codegen/-/codegen-2.0.4.tgz", + "integrity": "sha512-YyFaikqM5sH0ziFZCN3xDC7zeGaB/d0IUb9CATugHWbd1FRFwWwt4ld4OYMPWu5a3Xe01mGAULCdqhMlPl29Jg==" + }, + "@protobufjs/eventemitter": { + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/@protobufjs/eventemitter/-/eventemitter-1.1.0.tgz", + "integrity": "sha512-j9ednRT81vYJ9OfVuXG6ERSTdEL1xVsNgqpkxMsbIabzSo3goCjDIveeGv5d03om39ML71RdmrGNjG5SReBP/Q==" + }, + "@protobufjs/fetch": { + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/@protobufjs/fetch/-/fetch-1.1.0.tgz", + "integrity": "sha512-lljVXpqXebpsijW71PZaCYeIcE5on1w5DlQy5WH6GLbFryLUrBD4932W/E2BSpfRJWseIL4v/KPgBFxDOIdKpQ==", + "requires": { + "@protobufjs/aspromise": "^1.1.1", + "@protobufjs/inquire": "^1.1.0" + } + }, + "@protobufjs/float": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/@protobufjs/float/-/float-1.0.2.tgz", + "integrity": "sha512-Ddb+kVXlXst9d+R9PfTIxh1EdNkgoRe5tOX6t01f1lYWOvJnSPDBlG241QLzcyPdoNTsblLUdujGSE4RzrTZGQ==" + }, + "@protobufjs/inquire": { + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/@protobufjs/inquire/-/inquire-1.1.0.tgz", + "integrity": "sha512-kdSefcPdruJiFMVSbn801t4vFK7KB/5gd2fYvrxhuJYg8ILrmn9SKSX2tZdV6V+ksulWqS7aXjBcRXl3wHoD9Q==" + }, + "@protobufjs/path": { + "version": "1.1.2", + "resolved": "https://registry.npmjs.org/@protobufjs/path/-/path-1.1.2.tgz", + "integrity": "sha512-6JOcJ5Tm08dOHAbdR3GrvP+yUUfkjG5ePsHYczMFLq3ZmMkAD98cDgcT2iA1lJ9NVwFd4tH/iSSoe44YWkltEA==" + }, + "@protobufjs/pool": { + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/@protobufjs/pool/-/pool-1.1.0.tgz", + "integrity": "sha512-0kELaGSIDBKvcgS4zkjz1PeddatrjYcmMWOlAuAPwAeccUrPHdUqo/J6LiymHHEiJT5NrF1UVwxY14f+fy4WQw==" + }, + "@protobufjs/utf8": { + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/@protobufjs/utf8/-/utf8-1.1.0.tgz", + "integrity": "sha512-Vvn3zZrhQZkkBE8LSuW3em98c0FwgO4nxzv6OdSxPKJIEKY2bGbHn+mhGIPerzI4twdxaP8/0+06HBpwf345Lw==" + }, + "@sindresorhus/is": { + "version": "0.7.0", + "resolved": "https://registry.npmjs.org/@sindresorhus/is/-/is-0.7.0.tgz", + "integrity": "sha512-ONhaKPIufzzrlNbqtWFFd+jlnemX6lJAgq9ZeiZtS7I1PIf/la7CW4m83rTXRnVnsMbW2k56pGYu7AUFJD9Pow==" + }, + "@testim/chrome-version": { + "version": "1.1.4", + "resolved": "https://registry.npmjs.org/@testim/chrome-version/-/chrome-version-1.1.4.tgz", + "integrity": "sha512-kIhULpw9TrGYnHp/8VfdcneIcxKnLixmADtukQRtJUmsVlMg0niMkwV0xZmi8hqa57xqilIHjWFA0GKvEjVU5g==", + "dev": true + }, + "@transifex/api": { + "version": "4.3.0", + "resolved": "https://registry.npmjs.org/@transifex/api/-/api-4.3.0.tgz", + "integrity": "sha512-RCpqAqxZlrHDo7rfam8tLSoT02wvF8LQeNRC0VZG5IGrH+wv+G6fB8PWLLHrvUuaqO6XCwkMmYlJ/X9U9TLTHw==", + "requires": { + "core-js": "^3.22.4" + }, + "dependencies": { + "core-js": { + "version": "3.39.0", + "resolved": "https://registry.npmjs.org/core-js/-/core-js-3.39.0.tgz", + "integrity": "sha512-raM0ew0/jJUqkJ0E6e8UDtl+y/7ktFivgWvqw8dNSQeNWoSDLvQ1H/RN3aPXB9tBd4/FhyR4RDPGhsNIMsAn7g==" + } + } + }, + "@turbowarp/json": { + "version": "0.1.2", + "resolved": "https://registry.npmjs.org/@turbowarp/json/-/json-0.1.2.tgz", + "integrity": "sha512-9nWywp+0SH7ROVzQPQQO9gMWBikahsqyMWp1Ku8VV0q+q6bnx6dS0aNPTjqTtF2GHAY55hcREsqKzaoUdWBSwg==" + }, + "@turbowarp/nanolog": { + "version": "0.2.0", + "resolved": "https://registry.npmjs.org/@turbowarp/nanolog/-/nanolog-0.2.0.tgz", + "integrity": "sha512-texcM9oxfEsADVlVDR5UhLkYclPKsV9mytJh+9pHHonNcUrxRVGF6FkJTzWO/Hl5NafU1crSdw737nqKE3atSA==" + }, + "@turbowarp/paper": { + "version": "0.12.202407262155", + "resolved": "https://registry.npmjs.org/@turbowarp/paper/-/paper-0.12.202407262155.tgz", + "integrity": "sha512-BxoKfghjobEeQT9pThi5U1REMBluJjeBmQsvKxSCcDfS6vCDF9ye/8fYmsreceZcNxdia+hKYZPr21s914lG1w==" + }, + "@turbowarp/scratch-l10n": { + "version": "3.1001.202405101234", + "resolved": "https://registry.npmjs.org/@turbowarp/scratch-l10n/-/scratch-l10n-3.1001.202405101234.tgz", + "integrity": "sha512-a0JTugOunBFQqAKtjdkViUSmLxuDWwtdNi+1gbqnbDQyGfHOBdOe1xVkmQekw/CzR2HgsBAlL8aS4rsuVXzR3Q==", + "requires": { + "@babel/cli": "^7.1.2", + "@babel/core": "^7.1.2", + "@transifex/api": "4.3.0", + "babel-plugin-react-intl": "^3.0.1", + "download": "^8.0.0", + "transifex": "1.6.6" + } + }, + "@types/babel__core": { + "version": "7.20.5", + "resolved": "https://registry.npmjs.org/@types/babel__core/-/babel__core-7.20.5.tgz", + "integrity": "sha512-qoQprZvz5wQFJwMDqeseRXWv3rqMvhgpbXFfVyWhbx9X47POIA6i/+dXefEmZKoAgOaTdaIgNSMqMIU61yRyzA==", + "requires": { + "@babel/parser": "^7.20.7", + "@babel/types": "^7.20.7", + "@types/babel__generator": "*", + "@types/babel__template": "*", + "@types/babel__traverse": "*" + } + }, + "@types/babel__generator": { + "version": "7.6.8", + "resolved": "https://registry.npmjs.org/@types/babel__generator/-/babel__generator-7.6.8.tgz", + "integrity": "sha512-ASsj+tpEDsEiFr1arWrlN6V3mdfjRMZt6LtK/Vp/kreFLnr5QH5+DhvD5nINYZXzwJvXeGq+05iUXcAzVrqWtw==", + "requires": { + "@babel/types": "^7.0.0" + } + }, + "@types/babel__template": { + "version": "7.4.4", + "resolved": "https://registry.npmjs.org/@types/babel__template/-/babel__template-7.4.4.tgz", + "integrity": "sha512-h/NUaSyG5EyxBIp8YRxo4RMe2/qQgvyowRwVMzhYhBCONbW8PUsg4lkFMrhgZhUe5z3L3MiLDuvyJ/CaPa2A8A==", + "requires": { + "@babel/parser": "^7.1.0", + "@babel/types": "^7.0.0" + } + }, + "@types/babel__traverse": { + "version": "7.20.6", + "resolved": "https://registry.npmjs.org/@types/babel__traverse/-/babel__traverse-7.20.6.tgz", + "integrity": "sha512-r1bzfrm0tomOI8g1SzvCaQHo6Lcv6zu0EA+W2kHrt8dyrHQxGzBBL4kdkzIS+jBMV+EYcMAEAqXqYaLJq5rOZg==", + "requires": { + "@babel/types": "^7.20.7" + } + }, + "@types/glob": { + "version": "7.2.0", + "resolved": "https://registry.npmjs.org/@types/glob/-/glob-7.2.0.tgz", + "integrity": "sha512-ZUxbzKl0IfJILTS6t7ip5fQQM/J3TJYubDm3nMbgubNNYS62eXeUpoLUC8/7fJNiFYHTrGPQn7hspDUzIHX3UA==", + "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 + }, + "@types/istanbul-lib-coverage": { + "version": "2.0.6", + "resolved": "https://registry.npmjs.org/@types/istanbul-lib-coverage/-/istanbul-lib-coverage-2.0.6.tgz", + "integrity": "sha512-2QF/t/auWm0lsy8XtKVPG19v3sSOQlJe/YHZgfjb/KBBHOGSV+J2q/S671rcq9uTBrLAXmZpqJiaQbMT+zNU1w==", + "dev": true + }, + "@types/istanbul-lib-report": { + "version": "3.0.3", + "resolved": "https://registry.npmjs.org/@types/istanbul-lib-report/-/istanbul-lib-report-3.0.3.tgz", + "integrity": "sha512-NQn7AHQnk/RSLOxrBbGyJM/aVQ+pjj5HCgasFxc0K/KhoATfQ/47AyUl15I2yBUpihjmas+a+VJBOqecrFH+uA==", + "dev": true, + "requires": { + "@types/istanbul-lib-coverage": "*" + } + }, + "@types/istanbul-reports": { + "version": "1.1.2", + "resolved": "https://registry.npmjs.org/@types/istanbul-reports/-/istanbul-reports-1.1.2.tgz", + "integrity": "sha512-P/W9yOX/3oPZSpaYOCQzGqgCQRXn0FFO/V8bWrCQs+wLmvVVxk6CRBXALEvNs9OHIatlnlFokfhuDo2ug01ciw==", + "dev": true, + "requires": { + "@types/istanbul-lib-coverage": "*", + "@types/istanbul-lib-report": "*" + } + }, + "@types/json-schema": { + "version": "7.0.15", + "resolved": "https://registry.npmjs.org/@types/json-schema/-/json-schema-7.0.15.tgz", + "integrity": "sha512-5+fP8P8MFNC+AyZCDxrB2pkZFPGzqQWUzpSeuuVLvm8VMcorNYavBqoFcxK8bQz4Qsbn4oUEEem4wDLfcysGHA==" + }, + "@types/json5": { + "version": "0.0.29", + "resolved": "https://registry.npmjs.org/@types/json5/-/json5-0.0.29.tgz", + "integrity": "sha512-dRLjCWHYg4oaA77cxO64oO+7JwCwnIzkZPdrrC71jQmQtlhM556pwKo5bUzqvZndkVbeFLIIi+9TC40JNF5hNQ==", + "dev": true + }, + "@types/minimatch": { + "version": "5.1.2", + "resolved": "https://registry.npmjs.org/@types/minimatch/-/minimatch-5.1.2.tgz", + "integrity": "sha512-K0VQKziLUWkVKiRVrx4a40iPaxTUefQmjtkQofBkYRcoaaL/8rhwDWww9qWbrgicNOgnpIsMxyNIUM4+n6dUIA==", + "dev": true + }, + "@types/node": { + "version": "22.9.0", + "resolved": "https://registry.npmjs.org/@types/node/-/node-22.9.0.tgz", + "integrity": "sha512-vuyHg81vvWA1Z1ELfvLko2c8f34gyA0zaic0+Rllc5lbCnbSyuvb2Oxpm6TAUAC/2xZN3QGqxBNggD1nNR2AfQ==", + "requires": { + "undici-types": "~6.19.8" + } + }, + "@types/source-list-map": { + "version": "0.1.6", + "resolved": "https://registry.npmjs.org/@types/source-list-map/-/source-list-map-0.1.6.tgz", + "integrity": "sha512-5JcVt1u5HDmlXkwOD2nslZVllBBc7HDuOICfiZah2Z0is8M8g+ddAEawbmd3VjedfDHBzxCaXLs07QEmb7y54g==", + "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 + }, + "@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, + "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 + } + } + }, + "@types/webpack": { + "version": "4.41.40", + "resolved": "https://registry.npmjs.org/@types/webpack/-/webpack-4.41.40.tgz", + "integrity": "sha512-u6kMFSBM9HcoTpUXnL6mt2HSzftqb3JgYV6oxIgL2dl6sX6aCa5k6SOkzv5DuZjBTPUE/dJltKtwwuqrkZHpfw==", + "dev": true, + "requires": { + "@types/node": "*", + "@types/tapable": "^1", + "@types/uglify-js": "*", + "@types/webpack-sources": "*", + "anymatch": "^3.0.0", + "source-map": "^0.6.0" + }, + "dependencies": { + "anymatch": { + "version": "3.1.3", + "resolved": "https://registry.npmjs.org/anymatch/-/anymatch-3.1.3.tgz", + "integrity": "sha512-KMReFUr0B4t+D+OBkjR3KYqvocp2XaSzO55UcB6mgQMd3KbcE+mWTyvVV7D/zsdEbNnV6acZUutkiHQXvTr1Rw==", + "dev": true, + "requires": { + "normalize-path": "^3.0.0", + "picomatch": "^2.0.4" + } + }, + "source-map": { + "version": "0.6.1", + "resolved": "https://registry.npmjs.org/source-map/-/source-map-0.6.1.tgz", + "integrity": "sha512-UjgapumWlbMhkBgzT7Ykc5YXUT46F0iKu8SGXq0bcwP5dz/h0Plj6enJqjz1Zbq2l5WaqYnrVbwWOWMyF3F47g==", + "dev": true + } + } + }, + "@types/webpack-sources": { + "version": "3.2.3", + "resolved": "https://registry.npmjs.org/@types/webpack-sources/-/webpack-sources-3.2.3.tgz", + "integrity": "sha512-4nZOdMwSPHZ4pTEZzSp0AsTM4K7Qmu40UKW4tJDiOVs20UzYF9l+qUe4s0ftfN0pin06n+5cWWDJXH+sbhAiDw==", + "dev": true, + "requires": { + "@types/node": "*", + "@types/source-list-map": "*", + "source-map": "^0.7.3" + }, + "dependencies": { + "source-map": { + "version": "0.7.4", + "resolved": "https://registry.npmjs.org/source-map/-/source-map-0.7.4.tgz", + "integrity": "sha512-l3BikUxvPOcn5E74dZiq5BGsTb5yEwhaTSzccU6t4sDOH8NWJCstKO5QT2CvtFoK6F0saL7p9xHAqHOlCPJygA==", + "dev": true + } + } + }, + "@types/yargs": { + "version": "13.0.12", + "resolved": "https://registry.npmjs.org/@types/yargs/-/yargs-13.0.12.tgz", + "integrity": "sha512-qCxJE1qgz2y0hA4pIxjBR+PelCH0U5CK1XJXFwCNqfmliatKp47UCXXE9Dyk1OXBDLvsCF57TqQEJaeLfDYEOQ==", + "dev": true, + "requires": { + "@types/yargs-parser": "*" + } + }, + "@types/yargs-parser": { + "version": "21.0.3", + "resolved": "https://registry.npmjs.org/@types/yargs-parser/-/yargs-parser-21.0.3.tgz", + "integrity": "sha512-I4q9QU9MQv4oEOz4tAHJtNz1cwuLxn2F3xcc2iV5WdqLPpUnj30aUuxt1mAxYTG+oe8CZMV/+6rU4S4gRDzqtQ==", + "dev": true + }, + "@types/yauzl": { + "version": "2.10.3", + "resolved": "https://registry.npmjs.org/@types/yauzl/-/yauzl-2.10.3.tgz", + "integrity": "sha512-oJoftv0LSuaDZE3Le4DbKX+KS9G36NzOeSap90UIK0yMA/NhKJhqlSGtNDORNRaIbQfzjXDrQa0ytJ6mNRGz/Q==", + "dev": true, + "optional": true, + "requires": { + "@types/node": "*" + } + }, + "@typescript-eslint/experimental-utils": { + "version": "1.13.0", + "resolved": "https://registry.npmjs.org/@typescript-eslint/experimental-utils/-/experimental-utils-1.13.0.tgz", + "integrity": "sha512-zmpS6SyqG4ZF64ffaJ6uah6tWWWgZ8m+c54XXgwFtUv0jNz8aJAVx8chMCvnk7yl6xwn8d+d96+tWp7fXzTuDg==", + "dev": true, + "requires": { + "@types/json-schema": "^7.0.3", + "@typescript-eslint/typescript-estree": "1.13.0", + "eslint-scope": "^4.0.0" + } + }, + "@typescript-eslint/typescript-estree": { + "version": "1.13.0", + "resolved": "https://registry.npmjs.org/@typescript-eslint/typescript-estree/-/typescript-estree-1.13.0.tgz", + "integrity": "sha512-b5rCmd2e6DCC6tCTN9GSUAuxdYwCM/k/2wdjHGrIRGPSJotWMCe/dGpi66u42bhuh8q3QBzqM4TMA1GUUCJvdw==", + "dev": true, + "requires": { + "lodash.unescape": "4.0.1", + "semver": "5.5.0" + }, + "dependencies": { + "semver": { + "version": "5.5.0", + "resolved": "https://registry.npmjs.org/semver/-/semver-5.5.0.tgz", + "integrity": "sha512-4SJ3dm0WAwWy/NVeioZh5AntkdJoWKxHxcmyP622fOkgHa4z3R0TdBJICINyaSDE6uNwVc8gZr+ZinwZAH4xIA==", + "dev": true + } + } + }, + "@vernier/godirect": { + "version": "1.5.0", + "resolved": "https://registry.npmjs.org/@vernier/godirect/-/godirect-1.5.0.tgz", + "integrity": "sha512-vMS0fQubI3WSSLg1Ry3aey/qWCl9XoCsFzgwOWYkeJs45YxjPel+42pLh5pO7uP6oF47sjZUKx8kGOoTiiiirA==" + }, + "@webassemblyjs/ast": { + "version": "1.9.0", + "resolved": "https://registry.npmjs.org/@webassemblyjs/ast/-/ast-1.9.0.tgz", + "integrity": "sha512-C6wW5L+b7ogSDVqymbkkvuW9kruN//YisMED04xzeBBqjHa2FYnmvOlS6Xj68xWQRgWvI9cIglsjFowH/RJyEA==", + "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==" + }, + "@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==" + }, + "@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==" + }, + "@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==", + "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==" + }, + "@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==", + "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==" + }, + "@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==", + "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==", + "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==", + "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==" + }, + "@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==", + "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==", + "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==", + "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==", + "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==", + "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==", + "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==" + }, + "@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==" + }, + "abab": { + "version": "1.0.4", + "resolved": "https://registry.npmjs.org/abab/-/abab-1.0.4.tgz", + "integrity": "sha512-I+Wi+qiE2kUXyrRhNsWv6XsjUTBJjSoVSctKNBfLG5zG/Xe7Rjbxf13+vqYHNTwHaFU+FtSlVxOCTiMEVtPv0A==", + "dev": true + }, + "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==", + "dev": true, + "requires": { + "mime-types": "~2.1.34", + "negotiator": "0.6.3" + }, + "dependencies": { + "negotiator": { + "version": "0.6.3", + "resolved": "https://registry.npmjs.org/negotiator/-/negotiator-0.6.3.tgz", + "integrity": "sha512-+EUsqGPLsM+j/zdChZjsnX51g4XrHFOIXwfnCVPGlQk/k5giakcKsuxCObBRu6DSm9opw/O6slWbJdghQM4bBg==", + "dev": true + } + } + }, + "acorn": { + "version": "6.4.2", + "resolved": "https://registry.npmjs.org/acorn/-/acorn-6.4.2.tgz", + "integrity": "sha512-XtGIhXwF8YM8bJhGxG5kXgjkEuNGLTkoYqVE+KMR+aspr4KGYmKYg7yUe3KghyQ9yheNwLnjmzh/7+gfDBmHCQ==" + }, + "acorn-globals": { + "version": "3.1.0", + "resolved": "https://registry.npmjs.org/acorn-globals/-/acorn-globals-3.1.0.tgz", + "integrity": "sha512-uWttZCk96+7itPxK8xCzY86PnxKTMrReKDqrHzv42VQY0K30PUO8WY13WMOuI+cOdX4EIdzdvQ8k6jkuGRFMYw==", + "dev": true, + "requires": { + "acorn": "^4.0.4" + }, + "dependencies": { + "acorn": { + "version": "4.0.13", + "resolved": "https://registry.npmjs.org/acorn/-/acorn-4.0.13.tgz", + "integrity": "sha512-fu2ygVGuMmlzG8ZeRJ0bvR41nsAkxxhbyk8bZ1SS521Z7vmgJFTQQlfz/Mp/nJexGBz+v8sC9bM6+lNgskt4Ug==", + "dev": true + } + } + }, + "acorn-jsx": { + "version": "5.3.2", + "resolved": "https://registry.npmjs.org/acorn-jsx/-/acorn-jsx-5.3.2.tgz", + "integrity": "sha512-rq9s+JNhf0IChjtDXxllJ7g41oZk5SlXtp0LHwyA5cejwn7vKmKp4pPri6YEePv2PU65sAsegbXtIinmDFDXgQ==", + "dev": true, + "requires": {} + }, + "agent-base": { + "version": "6.0.2", + "resolved": "https://registry.npmjs.org/agent-base/-/agent-base-6.0.2.tgz", + "integrity": "sha512-RZNwNclF7+MS/8bDg70amg32dyeZGZxiDuQmZxKLAlQjr3jGyLx+4Kkk58UO7D2QdgFIQCovuSuZESne6RG6XQ==", + "dev": true, + "requires": { + "debug": "4" + } + }, + "aggregate-error": { + "version": "3.1.0", + "resolved": "https://registry.npmjs.org/aggregate-error/-/aggregate-error-3.1.0.tgz", + "integrity": "sha512-4I7Td01quW/RpocfNayFdFVk1qSuoh0E7JrbRJ16nH01HhKFQ88INq9Sd+nd72zqRySlr9BmDA8xlEJ6vJMrYA==", + "requires": { + "clean-stack": "^2.0.0", + "indent-string": "^4.0.0" + } + }, + "airbnb-prop-types": { + "version": "2.16.0", + "resolved": "https://registry.npmjs.org/airbnb-prop-types/-/airbnb-prop-types-2.16.0.tgz", + "integrity": "sha512-7WHOFolP/6cS96PhKNrslCLMYAI8yB1Pp6u6XmxozQOiZbsI5ycglZr5cHhBFfuRcQQjzCMith5ZPZdYiJCxUg==", + "dev": true, + "requires": { + "array.prototype.find": "^2.1.1", + "function.prototype.name": "^1.1.2", + "is-regex": "^1.1.0", + "object-is": "^1.1.2", + "object.assign": "^4.1.0", + "object.entries": "^1.1.2", + "prop-types": "^15.7.2", + "prop-types-exact": "^1.2.0", + "react-is": "^16.13.1" + } + }, + "ajv": { + "version": "6.12.6", + "resolved": "https://registry.npmjs.org/ajv/-/ajv-6.12.6.tgz", + "integrity": "sha512-j3fVLgvTo527anyYyJOGTYJbG+vnnQYvE0m5mmkc1TK+nxAppkCLMIL0aZ4dblVCNoGShhm+kzE4ZUykBoMg4g==", + "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==", + "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==", + "requires": {} + }, + "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 + }, + "ansi-escapes": { + "version": "3.2.0", + "resolved": "https://registry.npmjs.org/ansi-escapes/-/ansi-escapes-3.2.0.tgz", + "integrity": "sha512-cBhpre4ma+U0T1oM5fXg7Dy1Jw7zzwv7lt/GoCpr+hDQJoYnKVPLL4dCvSEFMmQurOQvSrwT7SL/DAlhBI97RQ==", + "dev": true + }, + "ansi-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-regex": { + "version": "2.1.1", + "resolved": "https://registry.npmjs.org/ansi-regex/-/ansi-regex-2.1.1.tgz", + "integrity": "sha512-TIGnTpdo+E3+pCyAluZvtED5p5wCqLdezCyhPZzKPcxvFplEt4i+W7OONCKgeZFT3+y5NZZfOOS/Bdcanm1MYA==" + }, + "ansi-styles": { + "version": "2.2.1", + "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-2.2.1.tgz", + "integrity": "sha512-kmCevFghRiWM7HB5zTPULl4r9bVFSWjz62MhqizDGUrq2NWuNMQyuv4tHHoKJHs69M/MF64lEcHdYIocrdWQYA==" + }, + "anymatch": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/anymatch/-/anymatch-2.0.0.tgz", + "integrity": "sha512-5teOsQWABXHHBFP9y3skS5P3d/WfWXpv3FUpy+LorMrNYaT9pI4oLMQX7jzQ2KklNpGpWHzdCXTDT2Y3XGlZBw==", + "devOptional": 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==", + "devOptional": true, + "requires": { + "remove-trailing-separator": "^1.0.1" + } + } + } + }, + "append-transform": { + "version": "0.4.0", + "resolved": "https://registry.npmjs.org/append-transform/-/append-transform-0.4.0.tgz", + "integrity": "sha512-Yisb7ew0ZEyDtRYQ+b+26o9KbiYPFxwcsxKzbssigzRRMJ9LpExPVUg6Fos7eP7yP3q7///tzze4nm4lTptPBw==", + "dev": true, + "requires": { + "default-require-extensions": "^1.0.0" + } + }, + "aproba": { + "version": "1.2.0", + "resolved": "https://registry.npmjs.org/aproba/-/aproba-1.2.0.tgz", + "integrity": "sha512-Y9J6ZjXtoYh8RnXVCMOU/ttDmk1aBjunq9vO0ta5x85WDQiQfUF9sIPBITdbiiIVcBo03Hi3jMxigBtsddlXRw==" + }, + "archive-type": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/archive-type/-/archive-type-4.0.0.tgz", + "integrity": "sha512-zV4Ky0v1F8dBrdYElwTvQhweQ0P7Kwc1aluqJsYtOBP01jXcWCyW2IEfI1YiqsG+Iy7ZR+o5LF1N+PGECBxHWA==", + "requires": { + "file-type": "^4.2.0" + }, + "dependencies": { + "file-type": { + "version": "4.4.0", + "resolved": "https://registry.npmjs.org/file-type/-/file-type-4.4.0.tgz", + "integrity": "sha512-f2UbFQEk7LXgWpi5ntcO86OeA/cC80fuDDDaX/fZ2ZGel+AF7leRQqBBW1eJNiiQkrZlAoM6P+VYP5P6bOlDEQ==" + } + } + }, + "argparse": { + "version": "1.0.10", + "resolved": "https://registry.npmjs.org/argparse/-/argparse-1.0.10.tgz", + "integrity": "sha512-o5Roy6tNG4SL/FOkCAN6RzjiakZS25RLYFrcMttJqbdd8BWrnA+fGz57iN5Pb06pvBGvl5gQ0B48dJlslXvoTg==", + "requires": { + "sprintf-js": "~1.0.2" + } + }, + "arr-diff": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/arr-diff/-/arr-diff-4.0.0.tgz", + "integrity": "sha512-YVIQ82gZPGBebQV/a8dar4AitzCQs0jjXwMPZllpXMaGjXPYVUawSxQrRsjhjupyVxEvbHgUmIhKVlND+j02kA==" + }, + "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==" + }, + "arr-union": { + "version": "3.1.0", + "resolved": "https://registry.npmjs.org/arr-union/-/arr-union-3.1.0.tgz", + "integrity": "sha512-sKpyeERZ02v1FeCZT8lrfJq5u6goHCtpTAzPwJYe7c8SPFOboNjNg1vz2L4VTn9T4PQxEx13TbXLmYUcS6Ug7Q==" + }, + "array-buffer-byte-length": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/array-buffer-byte-length/-/array-buffer-byte-length-1.0.1.tgz", + "integrity": "sha512-ahC5W1xgou+KTXix4sAO8Ki12Q+jf4i0+tmk3sC+zgcynshkHxzpXdImBehiUYKKKDwvfFiJl1tZt6ewscS1Mg==", + "dev": true, + "requires": { + "call-bind": "^1.0.5", + "is-array-buffer": "^3.0.4" + } + }, + "array-equal": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/array-equal/-/array-equal-1.0.2.tgz", + "integrity": "sha512-gUHx76KtnhEgB3HOuFYiCm3FIdEs6ocM2asHvNTkfu/Y09qQVrrVVaOKENmS2KkSaGoxgXNqC+ZVtR/n0MOkSA==", + "dev": true + }, + "array-find": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/array-find/-/array-find-1.0.0.tgz", + "integrity": "sha512-kO/vVCacW9mnpn3WPWbTVlEnOabK2L7LWi2HViURtCM46y1zb6I8UMjx4LgbiqadTgHnLInUronwn3ampNTJtQ==", + "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-includes": { + "version": "3.1.8", + "resolved": "https://registry.npmjs.org/array-includes/-/array-includes-3.1.8.tgz", + "integrity": "sha512-itaWrbYbqpGXkGhZPGUulwnhVf5Hpy1xiCFsGqyIGglbBxmG5vSjxQen3/WGOjPpNEv1RtBLKxbmVXm8HpJStQ==", + "dev": true, + "requires": { + "call-bind": "^1.0.7", + "define-properties": "^1.2.1", + "es-abstract": "^1.23.2", + "es-object-atoms": "^1.0.0", + "get-intrinsic": "^1.2.4", + "is-string": "^1.0.7" + } + }, + "array-union": { + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/array-union/-/array-union-2.1.0.tgz", + "integrity": "sha512-HGyxoOTYUyCM6stUe6EJgnd4EoewAI7zMdfqO+kGjnlZmBDz/cR5pf8r/cR4Wq60sL/p0IkcjUEEPwS3GFrIyw==" + }, + "array-uniq": { + "version": "1.0.3", + "resolved": "https://registry.npmjs.org/array-uniq/-/array-uniq-1.0.3.tgz", + "integrity": "sha512-MNha4BWQ6JbwhFhj03YK552f7cb3AzoE8SzeljgChvL1dl3IcvggXVz1DilzySZkCja+CXuZbdW7yATchWn8/Q==", + "dev": true + }, + "array-unique": { + "version": "0.3.2", + "resolved": "https://registry.npmjs.org/array-unique/-/array-unique-0.3.2.tgz", + "integrity": "sha512-SleRWjh9JUud2wH1hPs9rZBZ33H6T9HOiL0uwGnGx9FpE6wKGyfWugmbkEOIs6qWrZhg0LWeLziLrEwQJhs5mQ==" + }, + "array.prototype.filter": { + "version": "1.0.4", + "resolved": "https://registry.npmjs.org/array.prototype.filter/-/array.prototype.filter-1.0.4.tgz", + "integrity": "sha512-r+mCJ7zXgXElgR4IRC+fkvNCeoaavWBs6EdCso5Tbcf+iEMKzBU/His60lt34WEZ9vlb8wDkZvQGcVI5GwkfoQ==", + "dev": true, + "requires": { + "call-bind": "^1.0.7", + "define-properties": "^1.2.1", + "es-abstract": "^1.23.2", + "es-array-method-boxes-properly": "^1.0.0", + "es-object-atoms": "^1.0.0", + "is-string": "^1.0.7" + } + }, + "array.prototype.find": { + "version": "2.2.3", + "resolved": "https://registry.npmjs.org/array.prototype.find/-/array.prototype.find-2.2.3.tgz", + "integrity": "sha512-fO/ORdOELvjbbeIfZfzrXFMhYHGofRGqd+am9zm3tZ4GlJINj/pA2eITyfd65Vg6+ZbHd/Cys7stpoRSWtQFdA==", + "dev": true, + "requires": { + "call-bind": "^1.0.7", + "define-properties": "^1.2.1", + "es-abstract": "^1.23.2", + "es-object-atoms": "^1.0.0", + "es-shim-unscopables": "^1.0.2" + } + }, + "array.prototype.flat": { + "version": "1.3.2", + "resolved": "https://registry.npmjs.org/array.prototype.flat/-/array.prototype.flat-1.3.2.tgz", + "integrity": "sha512-djYB+Zx2vLewY8RWlNCUdHjDXs2XOgm602S9E7P/UpHgfeHL00cRiIF+IN/G/aUJ7kGPb6yO/ErDI5V2s8iycA==", + "dev": true, + "requires": { + "call-bind": "^1.0.2", + "define-properties": "^1.2.0", + "es-abstract": "^1.22.1", + "es-shim-unscopables": "^1.0.0" + } + }, + "array.prototype.flatmap": { + "version": "1.3.2", + "resolved": "https://registry.npmjs.org/array.prototype.flatmap/-/array.prototype.flatmap-1.3.2.tgz", + "integrity": "sha512-Ewyx0c9PmpcsByhSW4r+9zDU7sGjFc86qf/kKtuSCRdhfbk0SNLLkaT5qvcHnRGgc5NP/ly/y+qkXkqONX54CQ==", + "dev": true, + "requires": { + "call-bind": "^1.0.2", + "define-properties": "^1.2.0", + "es-abstract": "^1.22.1", + "es-shim-unscopables": "^1.0.0" + } + }, + "array.prototype.reduce": { + "version": "1.0.7", + "resolved": "https://registry.npmjs.org/array.prototype.reduce/-/array.prototype.reduce-1.0.7.tgz", + "integrity": "sha512-mzmiUCVwtiD4lgxYP8g7IYy8El8p2CSMePvIbTS7gchKir/L1fgJrk0yDKmAX6mnRQFKNADYIk8nNlTris5H1Q==", + "dev": true, + "requires": { + "call-bind": "^1.0.7", + "define-properties": "^1.2.1", + "es-abstract": "^1.23.2", + "es-array-method-boxes-properly": "^1.0.0", + "es-errors": "^1.3.0", + "es-object-atoms": "^1.0.0", + "is-string": "^1.0.7" + } + }, + "arraybuffer-loader": { + "version": "1.0.8", + "resolved": "https://registry.npmjs.org/arraybuffer-loader/-/arraybuffer-loader-1.0.8.tgz", + "integrity": "sha512-CwUVCcxCgcgZUu2w741OV6Xj1tvRVQebq22RCyGXiLgJOJ4e4M/59EPYdtK2MLfIN28t1TDvuh2ojstNq3Kh5g==", + "requires": { + "loader-utils": "^1.1.0" + } + }, + "arraybuffer.prototype.slice": { + "version": "1.0.3", + "resolved": "https://registry.npmjs.org/arraybuffer.prototype.slice/-/arraybuffer.prototype.slice-1.0.3.tgz", + "integrity": "sha512-bMxMKAjg13EBSVscxTaYA4mRc5t1UAXa2kXiGTNfZ079HIWXEkKmkgFrh/nJqamaLSrXO5H4WFFkPEaLJWbs3A==", + "dev": true, + "requires": { + "array-buffer-byte-length": "^1.0.1", + "call-bind": "^1.0.5", + "define-properties": "^1.2.1", + "es-abstract": "^1.22.3", + "es-errors": "^1.2.1", + "get-intrinsic": "^1.2.3", + "is-array-buffer": "^3.0.4", + "is-shared-array-buffer": "^1.0.2" + } + }, + "arrify": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/arrify/-/arrify-1.0.1.tgz", + "integrity": "sha512-3CYzex9M9FGQjCGMGyi6/31c8GJbgb0qGyrx5HWxPd0aCwh4cB2YjMb2Xf9UuoogrMrlO9cTqnB5rI5GHZTcUA==", + "dev": true + }, + "asap": { + "version": "2.0.6", + "resolved": "https://registry.npmjs.org/asap/-/asap-2.0.6.tgz", + "integrity": "sha512-BSHWgDSAiKs50o2Re8ppvp3seVHXSRM44cdSsT9FfNEUUZLOGWVCsiWaRPWM1Znn+mqZ1OfVZ3z3DWEzSp7hRA==", + "dev": true + }, + "asn1": { + "version": "0.2.6", + "resolved": "https://registry.npmjs.org/asn1/-/asn1-0.2.6.tgz", + "integrity": "sha512-ix/FxPn0MDjeyJ7i/yoHGFt/EX6LyNbxSEhPPXODPL+KB0VPk86UYfL0lMdy+KCnv+fmvIzySwaK5COwqVbWTQ==", + "requires": { + "safer-buffer": "~2.1.0" + } + }, + "asn1.js": { + "version": "4.10.1", + "resolved": "https://registry.npmjs.org/asn1.js/-/asn1.js-4.10.1.tgz", + "integrity": "sha512-p32cOF5q0Zqs9uBiONKYLm6BClCoBCM5O9JfeUSlnQLBTxYdTK+pW+nXflm8UkKd2UYlEbYz5qEi0JuZR9ckSw==", + "requires": { + "bn.js": "^4.0.0", + "inherits": "^2.0.1", + "minimalistic-assert": "^1.0.0" + }, + "dependencies": { + "bn.js": { + "version": "4.12.1", + "resolved": "https://registry.npmjs.org/bn.js/-/bn.js-4.12.1.tgz", + "integrity": "sha512-k8TVBiPkPJT9uHLdOKfFpqcfprwBFOAAXXozRubr7R7PfIuKvQlzcI4M0pALeqXN09vdaMbUdUj+pass+uULAg==" + } + } + }, + "assert": { + "version": "1.5.1", + "resolved": "https://registry.npmjs.org/assert/-/assert-1.5.1.tgz", + "integrity": "sha512-zzw1uCAgLbsKwBfFc8CX78DDg+xZeBksSO3vwVIDDN5i94eOrPsSSyiVhmsSABFDM/OcpE2aagCat9dnWQLG1A==", + "requires": { + "object.assign": "^4.1.4", + "util": "^0.10.4" + }, + "dependencies": { + "inherits": { + "version": "2.0.3", + "resolved": "https://registry.npmjs.org/inherits/-/inherits-2.0.3.tgz", + "integrity": "sha512-x00IRNXNy63jwGkJmzPigoySHbaqpNuzKbBOmzK+g2OdZpQ9w+sxCN+VSB3ja7IAge2OP2qpfxTjeNcyjmW1uw==" + }, + "util": { + "version": "0.10.4", + "resolved": "https://registry.npmjs.org/util/-/util-0.10.4.tgz", + "integrity": "sha512-0Pm9hTQ3se5ll1XihRic3FDIku70C+iHUdT/W926rSgHV5QgXsYbKZN8MSC3tJtSkhuROzvsQjAaFENRXr+19A==", + "requires": { + "inherits": "2.0.3" + } + } + } + }, + "assert-plus": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/assert-plus/-/assert-plus-1.0.0.tgz", + "integrity": "sha512-NfJ4UzBCcQGLDlQq7nHxH+tv3kyZ0hHQqF5BO6J7tNJeP5do1llPr8dZ8zHonfhAu0PHAdMkSo+8o0wxg9lZWw==" + }, + "assign-symbols": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/assign-symbols/-/assign-symbols-1.0.0.tgz", + "integrity": "sha512-Q+JC7Whu8HhmTdBph/Tq59IoRtoy6KAm5zzPv00WdujX82lbAL8K7WVjne7vdCsAmbF4AYaDOPyO3k0kl8qIrw==" + }, + "astral-regex": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/astral-regex/-/astral-regex-1.0.0.tgz", + "integrity": "sha512-+Ryf6g3BKoRc7jfp7ad8tM4TtMiaWvbF/1/sQcZPkkS7ag3D5nMBCe2UfOTONtAkaG0tO0ij3C5Lwmf1EiyjHg==", + "dev": true + }, + "async": { + "version": "2.6.4", + "resolved": "https://registry.npmjs.org/async/-/async-2.6.4.tgz", + "integrity": "sha512-mzo5dfJYwAn29PeiJ0zvwTo04zj8HDJj0Mn8TD7sno7q12prdbnasKJHhkm2c1LgrhlJ0teaea8860oxi51mGA==", + "dev": true, + "requires": { + "lodash": "^4.17.14" + } + }, + "async-each": { + "version": "1.0.6", + "resolved": "https://registry.npmjs.org/async-each/-/async-each-1.0.6.tgz", + "integrity": "sha512-c646jH1avxr+aVpndVMeAfYw7wAa6idufrlN3LPA4PmKS0QEGp6PIC9nwz0WQkkvBGAMEki3pFdtxaF39J9vvg==", + "devOptional": 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": "sha512-Oei9OH4tRh0YqU3GxhX79dM/mwVgvbZJaSNaRk+bshkj0S5cfHcgYakreBjrHwatXKbz+IoIdYLxrKim2MjW0Q==" + }, + "atob": { + "version": "2.1.2", + "resolved": "https://registry.npmjs.org/atob/-/atob-2.1.2.tgz", + "integrity": "sha512-Wm6ukoaOGJi/73p/cl2GvLjTI5JM1k/O14isD73YML8StrH/7/lRFgmg8nICZgD3bZZvjwCGxtMOD3wWNAu8cg==" + }, + "audio-context": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/audio-context/-/audio-context-1.0.1.tgz", + "integrity": "sha512-b7ZmHGyjcAI3KmshPa4YSPxPbjglZQtKfZtzqhUfE3VeoANTsNffywkmujI32Sj31Aku/aB9s3BW4r3nmTF88g==", + "requires": { + "global": "^4.3.1" + } + }, + "automation-events": { + "version": "7.1.4", + "resolved": "https://registry.npmjs.org/automation-events/-/automation-events-7.1.4.tgz", + "integrity": "sha512-KCkUSGBKlZz2DTnjzHLnPzlTayExlkeIrzIgq5OqZgwvZsmgSsyQOXv/L+r8P14yR69xfSnwL2FmmzSCzI9o/g==", + "requires": { + "@babel/runtime": "^7.26.0", + "tslib": "^2.8.1" + } + }, + "autoprefixer": { + "version": "9.8.8", + "resolved": "https://registry.npmjs.org/autoprefixer/-/autoprefixer-9.8.8.tgz", + "integrity": "sha512-eM9d/swFopRt5gdJ7jrpCwgvEMIayITpojhkkSMRsFHYuH5bkSQ4p/9qTEHtmNudUZh22Tehu7I6CxAW0IXTKA==", + "requires": { + "browserslist": "^4.12.0", + "caniuse-lite": "^1.0.30001109", + "normalize-range": "^0.1.2", + "num2fraction": "^1.2.2", + "picocolors": "^0.2.1", + "postcss": "^7.0.32", + "postcss-value-parser": "^4.1.0" + }, + "dependencies": { + "picocolors": { + "version": "0.2.1", + "resolved": "https://registry.npmjs.org/picocolors/-/picocolors-0.2.1.tgz", + "integrity": "sha512-cMlDqaLEqfSaW8Z7N5Jw+lyIW869EzT73/F5lhtY9cLGoVxSXznfgfXMO0Z5K0o0Q2TkTXq+0KFsdnSe3jDViA==" + } + } + }, + "available-typed-arrays": { + "version": "1.0.7", + "resolved": "https://registry.npmjs.org/available-typed-arrays/-/available-typed-arrays-1.0.7.tgz", + "integrity": "sha512-wvUjBtSGN7+7SjNpq/9M2Tg350UZD3q62IFZLbRAR1bSMlCo1ZaeW+BJ+D090e4hIIZLBcTDWe4Mh4jvUDajzQ==", + "dev": true, + "requires": { + "possible-typed-array-names": "^1.0.0" + } + }, + "aws-sign2": { + "version": "0.7.0", + "resolved": "https://registry.npmjs.org/aws-sign2/-/aws-sign2-0.7.0.tgz", + "integrity": "sha512-08kcGqnYf/YmjoRhfxyu+CLxBjUtHLXLXX/vUfx9l2LYzG3c1m61nrpyFUZI6zeS+Li/wWMMidD9KgrqtGq3mA==" + }, + "aws4": { + "version": "1.13.2", + "resolved": "https://registry.npmjs.org/aws4/-/aws4-1.13.2.tgz", + "integrity": "sha512-lHe62zvbTB5eEABUVi/AwVh0ZKY9rMMDhmm+eeyuuUQbQ3+J+fONVQOZyj+DdrvD4BY33uYniyRJ4UJIaSKAfw==" + }, + "axios": { + "version": "0.27.2", + "resolved": "https://registry.npmjs.org/axios/-/axios-0.27.2.tgz", + "integrity": "sha512-t+yRIyySRTp/wua5xEr+z1q60QmLq8ABsS5O9Me1AsE5dfKqgnCFzwiCZZ/cGNd1lq4/7akDWMxdhVlucjmnOQ==", + "dev": true, + "requires": { + "follow-redirects": "^1.14.9", + "form-data": "^4.0.0" + } + }, + "babel-code-frame": { + "version": "6.26.0", + "resolved": "https://registry.npmjs.org/babel-code-frame/-/babel-code-frame-6.26.0.tgz", + "integrity": "sha512-XqYMR2dfdGMW+hd0IUZ2PwK+fGeFkOxZJ0wY+JaQAHzt1Zx8LcvpiZD2NiGkEG8qx0CfkAOr5xt76d1e8vG90g==", + "requires": { + "chalk": "^1.1.3", + "esutils": "^2.0.2", + "js-tokens": "^3.0.2" + }, + "dependencies": { + "js-tokens": { + "version": "3.0.2", + "resolved": "https://registry.npmjs.org/js-tokens/-/js-tokens-3.0.2.tgz", + "integrity": "sha512-RjTcuD4xjtthQkaWH7dFlH85L+QaVtSoOyGdZ3g6HFhS9dFNDfLyqgm2NFe2X6cQpeFmt0452FJjFG5UameExg==" + } + } + }, + "babel-core": { + "version": "7.0.0-bridge.0", + "resolved": "https://registry.npmjs.org/babel-core/-/babel-core-7.0.0-bridge.0.tgz", + "integrity": "sha512-poPX9mZH/5CSanm50Q+1toVci6pv5KSRv/5TWCwtzQS5XEwn40BcCrgIeMFWP9CKKIniKXNxoIOnOq4VVlGXhg==", + "dev": true, + "requires": {} + }, + "babel-eslint": { + "version": "10.0.3", + "resolved": "https://registry.npmjs.org/babel-eslint/-/babel-eslint-10.0.3.tgz", + "integrity": "sha512-z3U7eMY6r/3f3/JB9mTsLjyxrv0Yb1zb8PCWCLpguxfCzBIZUwy23R1t/XKewP+8mEN2Ck8Dtr4q20z6ce6SoA==", + "dev": true, + "requires": { + "@babel/code-frame": "^7.0.0", + "@babel/parser": "^7.0.0", + "@babel/traverse": "^7.0.0", + "@babel/types": "^7.0.0", + "eslint-visitor-keys": "^1.0.0", + "resolve": "^1.12.0" + } + }, + "babel-generator": { + "version": "6.26.1", + "resolved": "https://registry.npmjs.org/babel-generator/-/babel-generator-6.26.1.tgz", + "integrity": "sha512-HyfwY6ApZj7BYTcJURpM5tznulaBvyio7/0d4zFOeMPUmfxkCjHocCuoLa2SAGzBI8AREcH3eP3758F672DppA==", + "dev": true, + "requires": { + "babel-messages": "^6.23.0", + "babel-runtime": "^6.26.0", + "babel-types": "^6.26.0", + "detect-indent": "^4.0.0", + "jsesc": "^1.3.0", + "lodash": "^4.17.4", + "source-map": "^0.5.7", + "trim-right": "^1.0.1" + }, + "dependencies": { + "jsesc": { + "version": "1.3.0", + "resolved": "https://registry.npmjs.org/jsesc/-/jsesc-1.3.0.tgz", + "integrity": "sha512-Mke0DA0QjUWuJlhsE0ZPPhYiJkRap642SmI/4ztCFaUs6V2AiH1sfecc+57NgaryfAA2VR3v6O+CSjC1jZJKOA==", + "dev": true + } + } + }, + "babel-helpers": { + "version": "6.24.1", + "resolved": "https://registry.npmjs.org/babel-helpers/-/babel-helpers-6.24.1.tgz", + "integrity": "sha512-n7pFrqQm44TCYvrCDb0MqabAF+JUBq+ijBvNMUxpkLjJaAu32faIexewMumrH5KLLJ1HDyT0PTEqRyAe/GwwuQ==", + "dev": true, + "requires": { + "babel-runtime": "^6.22.0", + "babel-template": "^6.24.1" + } + }, + "babel-jest": { + "version": "21.2.0", + "resolved": "https://registry.npmjs.org/babel-jest/-/babel-jest-21.2.0.tgz", + "integrity": "sha512-O0W2qLoWu1QOoOGgxiR2JID4O6WSpxPiQanrkyi9SSlM0PJ60Ptzlck47lhtnr9YZO3zYOsxHwnyeWJ6AffoBQ==", + "dev": true, + "requires": { + "babel-plugin-istanbul": "^4.0.0", + "babel-preset-jest": "^21.2.0" + } + }, + "babel-loader": { + "version": "8.2.2", + "resolved": "https://registry.npmjs.org/babel-loader/-/babel-loader-8.2.2.tgz", + "integrity": "sha512-JvTd0/D889PQBtUXJ2PXaKU/pjZDMtHA9V2ecm+eNRmmBCMR09a+fmpGTNwnJtFmFl5Ei7Vy47LjBb+L0wQ99g==", + "dev": true, + "requires": { + "find-cache-dir": "^3.3.1", + "loader-utils": "^1.4.0", + "make-dir": "^3.1.0", + "schema-utils": "^2.6.5" + }, + "dependencies": { + "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" + } + } + } + }, + "babel-messages": { + "version": "6.23.0", + "resolved": "https://registry.npmjs.org/babel-messages/-/babel-messages-6.23.0.tgz", + "integrity": "sha512-Bl3ZiA+LjqaMtNYopA9TYE9HP1tQ+E5dLxE0XrAzcIJeK2UqF0/EaqXwBn9esd4UmTfEab+P+UYQ1GnioFIb/w==", + "dev": true, + "requires": { + "babel-runtime": "^6.22.0" + } + }, + "babel-plugin-istanbul": { + "version": "4.1.6", + "resolved": "https://registry.npmjs.org/babel-plugin-istanbul/-/babel-plugin-istanbul-4.1.6.tgz", + "integrity": "sha512-PWP9FQ1AhZhS01T/4qLSKoHGY/xvkZdVBGlKM/HuxxS3+sC66HhTNR7+MpbO/so/cz/wY94MeSWJuP1hXIPfwQ==", + "dev": true, + "requires": { + "babel-plugin-syntax-object-rest-spread": "^6.13.0", + "find-up": "^2.1.0", + "istanbul-lib-instrument": "^1.10.1", + "test-exclude": "^4.2.1" + } + }, + "babel-plugin-jest-hoist": { + "version": "21.2.0", + "resolved": "https://registry.npmjs.org/babel-plugin-jest-hoist/-/babel-plugin-jest-hoist-21.2.0.tgz", + "integrity": "sha512-yi5QuiVyyvhBUDLP4ButAnhYzkdrUwWDtvUJv71hjH3fclhnZg4HkDeqaitcR2dZZx/E67kGkRcPVjtVu+SJfQ==", + "dev": true + }, + "babel-plugin-polyfill-corejs2": { + "version": "0.2.3", + "resolved": "https://registry.npmjs.org/babel-plugin-polyfill-corejs2/-/babel-plugin-polyfill-corejs2-0.2.3.tgz", + "integrity": "sha512-NDZ0auNRzmAfE1oDDPW2JhzIMXUk+FFe2ICejmt5T4ocKgiQx3e0VCRx9NCAidcMtL2RUZaWtXnmjTCkx0tcbA==", + "dev": true, + "requires": { + "@babel/compat-data": "^7.13.11", + "@babel/helper-define-polyfill-provider": "^0.2.4", + "semver": "^6.1.1" + } + }, + "babel-plugin-polyfill-corejs3": { + "version": "0.2.5", + "resolved": "https://registry.npmjs.org/babel-plugin-polyfill-corejs3/-/babel-plugin-polyfill-corejs3-0.2.5.tgz", + "integrity": "sha512-ninF5MQNwAX9Z7c9ED+H2pGt1mXdP4TqzlHKyPIYmJIYz0N+++uwdM7RnJukklhzJ54Q84vA4ZJkgs7lu5vqcw==", + "dev": true, + "requires": { + "@babel/helper-define-polyfill-provider": "^0.2.2", + "core-js-compat": "^3.16.2" + } + }, + "babel-plugin-polyfill-regenerator": { + "version": "0.2.3", + "resolved": "https://registry.npmjs.org/babel-plugin-polyfill-regenerator/-/babel-plugin-polyfill-regenerator-0.2.3.tgz", + "integrity": "sha512-JVE78oRZPKFIeUqFGrSORNzQnrDwZR16oiWeGM8ZyjBn2XAT5OjP+wXx5ESuo33nUsFUEJYjtklnsKbxW5L+7g==", + "dev": true, + "requires": { + "@babel/helper-define-polyfill-provider": "^0.2.4" + } + }, + "babel-plugin-react-intl": { + "version": "3.5.1", + "resolved": "https://registry.npmjs.org/babel-plugin-react-intl/-/babel-plugin-react-intl-3.5.1.tgz", + "integrity": "sha512-1jlEJCSmLaJM4tjIKpu64UZ833COCHmwR77bFJDOye+zlwf80uR1b8p41l4tClx1QsrfI+qV6w/5AiPYQgaMUQ==", + "requires": { + "@babel/core": "^7.4.5", + "@babel/helper-plugin-utils": "^7.0.0", + "@types/babel__core": "^7.1.2", + "fs-extra": "^8.0.1", + "intl-messageformat-parser": "^1.8.1" + } + }, + "babel-plugin-syntax-object-rest-spread": { + "version": "6.13.0", + "resolved": "https://registry.npmjs.org/babel-plugin-syntax-object-rest-spread/-/babel-plugin-syntax-object-rest-spread-6.13.0.tgz", + "integrity": "sha512-C4Aq+GaAj83pRQ0EFgTvw5YO6T3Qz2KGrNRwIj9mSoNHVvdZY4KO2uA6HNtNXCw993iSZnckY1aLW8nOi8i4+w==", + "dev": true + }, + "babel-preset-jest": { + "version": "21.2.0", + "resolved": "https://registry.npmjs.org/babel-preset-jest/-/babel-preset-jest-21.2.0.tgz", + "integrity": "sha512-hm9cBnr2h3J7yXoTtAVV0zg+3vg0Q/gT2GYuzlreTU0EPkJRtlNgKJJ3tBKEn0+VjAi3JykV6xCJkuUYttEEfA==", + "dev": true, + "requires": { + "babel-plugin-jest-hoist": "^21.2.0", + "babel-plugin-syntax-object-rest-spread": "^6.13.0" + } + }, + "babel-register": { + "version": "6.26.0", + "resolved": "https://registry.npmjs.org/babel-register/-/babel-register-6.26.0.tgz", + "integrity": "sha512-veliHlHX06wjaeY8xNITbveXSiI+ASFnOqvne/LaIJIqOWi2Ogmj91KOugEz/hoh/fwMhXNBJPCv8Xaz5CyM4A==", + "dev": true, + "requires": { + "babel-core": "^6.26.0", + "babel-runtime": "^6.26.0", + "core-js": "^2.5.0", + "home-or-tmp": "^2.0.0", + "lodash": "^4.17.4", + "mkdirp": "^0.5.1", + "source-map-support": "^0.4.15" + }, + "dependencies": { + "babel-core": { + "version": "6.26.3", + "resolved": "https://registry.npmjs.org/babel-core/-/babel-core-6.26.3.tgz", + "integrity": "sha512-6jyFLuDmeidKmUEb3NM+/yawG0M2bDZ9Z1qbZP59cyHLz8kYGKYwpJP0UwUKKUiTRNvxfLesJnTedqczP7cTDA==", + "dev": true, + "requires": { + "babel-code-frame": "^6.26.0", + "babel-generator": "^6.26.0", + "babel-helpers": "^6.24.1", + "babel-messages": "^6.23.0", + "babel-register": "^6.26.0", + "babel-runtime": "^6.26.0", + "babel-template": "^6.26.0", + "babel-traverse": "^6.26.0", + "babel-types": "^6.26.0", + "babylon": "^6.18.0", + "convert-source-map": "^1.5.1", + "debug": "^2.6.9", + "json5": "^0.5.1", + "lodash": "^4.17.4", + "minimatch": "^3.0.4", + "path-is-absolute": "^1.0.1", + "private": "^0.1.8", + "slash": "^1.0.0", + "source-map": "^0.5.7" + } + }, + "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" + } + }, + "json5": { + "version": "0.5.1", + "resolved": "https://registry.npmjs.org/json5/-/json5-0.5.1.tgz", + "integrity": "sha512-4xrs1aW+6N5DalkqSVA8fxh458CXvR99WU8WLKmq4v8eWAL86Xo3BVqyd3SkA9wEVjCMqyvvRRkshAdOnBp5rw==", + "dev": true + }, + "mkdirp": { + "version": "0.5.6", + "resolved": "https://registry.npmjs.org/mkdirp/-/mkdirp-0.5.6.tgz", + "integrity": "sha512-FP+p8RB8OWpF3YZBCrP5gtADmtXApB5AMLn+vdyA+PyxCjrCs00mjyUozssO33cwDeT3wNGdLxJ5M//YqtHAJw==", + "dev": true, + "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==", + "dev": true + }, + "slash": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/slash/-/slash-1.0.0.tgz", + "integrity": "sha512-3TYDR7xWt4dIqV2JauJr+EJeW356RXijHeUlO+8djJ+uBXPn8/2dpzBc8yQhh583sVvc9CvFAeQVgijsH+PNNg==", + "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" + } + } + } + }, + "babel-runtime": { + "version": "6.26.0", + "resolved": "https://registry.npmjs.org/babel-runtime/-/babel-runtime-6.26.0.tgz", + "integrity": "sha512-ITKNuq2wKlW1fJg9sSW52eepoYgZBggvOAHC0u/CYu/qxQ9EVzThCgR69BnSXLHjy2f7SY5zaQ4yt7H9ZVxY2g==", + "requires": { + "core-js": "^2.4.0", + "regenerator-runtime": "^0.11.0" + } + }, + "babel-template": { + "version": "6.26.0", + "resolved": "https://registry.npmjs.org/babel-template/-/babel-template-6.26.0.tgz", + "integrity": "sha512-PCOcLFW7/eazGUKIoqH97sO9A2UYMahsn/yRQ7uOk37iutwjq7ODtcTNF+iFDSHNfkctqsLRjLP7URnOx0T1fg==", + "dev": true, + "requires": { + "babel-runtime": "^6.26.0", + "babel-traverse": "^6.26.0", + "babel-types": "^6.26.0", + "babylon": "^6.18.0", + "lodash": "^4.17.4" + } + }, + "babel-traverse": { + "version": "6.26.0", + "resolved": "https://registry.npmjs.org/babel-traverse/-/babel-traverse-6.26.0.tgz", + "integrity": "sha512-iSxeXx7apsjCHe9c7n8VtRXGzI2Bk1rBSOJgCCjfyXb6v1aCqE1KSEpq/8SXuVN8Ka/Rh1WDTF0MDzkvTA4MIA==", + "dev": true, + "requires": { + "babel-code-frame": "^6.26.0", + "babel-messages": "^6.23.0", + "babel-runtime": "^6.26.0", + "babel-types": "^6.26.0", + "babylon": "^6.18.0", + "debug": "^2.6.8", + "globals": "^9.18.0", + "invariant": "^2.2.2", + "lodash": "^4.17.4" + }, + "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" + } + }, + "globals": { + "version": "9.18.0", + "resolved": "https://registry.npmjs.org/globals/-/globals-9.18.0.tgz", + "integrity": "sha512-S0nG3CLEQiY/ILxqtztTWH/3iRRdyBLw6KMDxnKMchrtbj2OFmehVh0WUCfW3DUrIgx/qFrJPICrq4Z4sTR9UQ==", + "dev": true + }, + "ms": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/ms/-/ms-2.0.0.tgz", + "integrity": "sha512-Tpp60P6IUJDTuOq/5Z8cdskzJujfwqfOTkrwIwj7IRISpnkJnT6SyJ4PCPnGMoFjC9ddhal5KVIYtAt97ix05A==", + "dev": true + } + } + }, + "babel-types": { + "version": "6.26.0", + "resolved": "https://registry.npmjs.org/babel-types/-/babel-types-6.26.0.tgz", + "integrity": "sha512-zhe3V/26rCWsEZK8kZN+HaQj5yQ1CilTObixFzKW1UWjqG7618Twz6YEsCnjfg5gBcJh02DrpCkS9h98ZqDY+g==", + "dev": true, + "requires": { + "babel-runtime": "^6.26.0", + "esutils": "^2.0.2", + "lodash": "^4.17.4", + "to-fast-properties": "^1.0.3" + } + }, + "babylon": { + "version": "6.18.0", + "resolved": "https://registry.npmjs.org/babylon/-/babylon-6.18.0.tgz", + "integrity": "sha512-q/UEjfGJ2Cm3oKV71DJz9d25TPnq5rhBVL2Q4fA5wcC3jcrdn7+SssEybFIxwAvvP+YCsCYNKughoF33GxgycQ==", + "dev": true + }, + "balanced-match": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/balanced-match/-/balanced-match-1.0.2.tgz", + "integrity": "sha512-3oSeUO0TMV67hN1AmbXsK4yaqU7tjiHlbxRDZOpH0KW9+CeX4bRAaX0Anxt0tx2MrpRpWwQaPwIlISEJhYU5Pw==" + }, + "base": { + "version": "0.11.2", + "resolved": "https://registry.npmjs.org/base/-/base-0.11.2.tgz", + "integrity": "sha512-5T6P4xPgpp0YDFvSWwEZ4NoE3aM4QBQXDzmVbraCkFj8zHM+mba8SyqB5DbZWyR7mYHo6Y7BdQo3MoA4m0TeQg==", + "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": "sha512-cZTYKFWspt9jZsMscWo8sc/5lbPC9Q0N5nBLgb+Yd915iL3udB1uFgS3B8YCx66UVHq018DAVFoee7x+gxggeA==", + "requires": { + "is-descriptor": "^1.0.0" + } + } + } + }, + "base64-js": { + "version": "1.5.1", + "resolved": "https://registry.npmjs.org/base64-js/-/base64-js-1.5.1.tgz", + "integrity": "sha512-AKpaYlHn8t4SVbOHCy+b5+KKgvR4vrsD8vbvrbiQJps7fKDTkjkDry6ji0rUJjC0kzbNePLwzxq8iypo41qeWA==" + }, + "base64-loader": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/base64-loader/-/base64-loader-1.0.0.tgz", + "integrity": "sha512-p32+F8dg+ANGx7s8QsZS74ZPHfIycmC2yZcoerzFgbersIYWitPbbF39G6SBx3gyvzyLH5nt1ooocxr0IHuWKA==" + }, + "batch": { + "version": "0.6.1", + "resolved": "https://registry.npmjs.org/batch/-/batch-0.6.1.tgz", + "integrity": "sha512-x+VAiMRL6UPkx+kudNvxTl6hB2XNNCG2r+7wixVfIYwu/2HKRXimwQyaumLjMveWvT2Hkd/cAJw+QBMfJ/EKVw==", + "dev": true + }, + "bcrypt-pbkdf": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/bcrypt-pbkdf/-/bcrypt-pbkdf-1.0.2.tgz", + "integrity": "sha512-qeFIXtP4MSoi6NLqO12WfqARWWuCKi2Rn/9hJLEmtB5yTNr9DqFWkJRCf2qShWzPeAMRnOgCrq0sg/KLv5ES9w==", + "requires": { + "tweetnacl": "^0.14.3" + } + }, + "big.js": { + "version": "5.2.2", + "resolved": "https://registry.npmjs.org/big.js/-/big.js-5.2.2.tgz", + "integrity": "sha512-vyL2OymJxmarO8gxMr0mhChsO9QGwhynfuu4+MHTAW6czfq9humCB7rKpUjDd9YUiDPU4mzpyupFSvOClAwbmQ==" + }, + "binary-extensions": { + "version": "1.13.1", + "resolved": "https://registry.npmjs.org/binary-extensions/-/binary-extensions-1.13.1.tgz", + "integrity": "sha512-Un7MIEDdUC5gNpcGDV97op1Ywk748MpHcFTHoYs6qnj1Z3j7I53VG3nwZhKzoBZmbdRNnb6WRdFlwl7tSDuZGw==", + "devOptional": 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==", + "optional": true, + "requires": { + "file-uri-to-path": "1.0.0" + } + }, + "bl": { + "version": "1.2.3", + "resolved": "https://registry.npmjs.org/bl/-/bl-1.2.3.tgz", + "integrity": "sha512-pvcNpa0UU69UT341rO6AYy4FVAIkUHuZXRIWbq+zHnsVcRzDDjIAhGuuYoi0d//cwIwtt4pkpKycWEfjdV+vww==", + "requires": { + "readable-stream": "^2.3.5", + "safe-buffer": "^5.1.1" + } + }, + "bluebird": { + "version": "3.7.2", + "resolved": "https://registry.npmjs.org/bluebird/-/bluebird-3.7.2.tgz", + "integrity": "sha512-XpNj6GDQzdfW+r2Wnn7xiSAd7TM3jzkxGXBGTtWKuSXv1xUV+azxAm8jdWZN06QTQk+2N2XB9jRDkvbmQmcRtg==" + }, + "bn.js": { + "version": "5.2.1", + "resolved": "https://registry.npmjs.org/bn.js/-/bn.js-5.2.1.tgz", + "integrity": "sha512-eXRvHzWyYPBuB4NBy0cmYQjGitUrtqwbvlzP3G6VFnNRbsZQIxQ10PbKKHt8gZ/HW/D/747aDl+QkDqg3KQLMQ==" + }, + "body-parser": { + "version": "1.20.3", + "resolved": "https://registry.npmjs.org/body-parser/-/body-parser-1.20.3.tgz", + "integrity": "sha512-7rAxByjUMqQ3/bHJy7D6OGXvx/MMc4IqBn/X0fcM1QUcAItpZrBEYhWGem+tzXH90c+G01ypMcYJBO9Y30203g==", + "dev": true, + "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.13.0", + "raw-body": "2.5.2", + "type-is": "~1.6.18", + "unpipe": "1.0.0" + }, + "dependencies": { + "debug": { + "version": "2.6.9", + "resolved": "https://registry.npmjs.org/debug/-/debug-2.6.9.tgz", + "integrity": "sha512-bC7ElrdJaJnPbAP+1EotYvqZsb3ecl5wi6Bfi6BJTUcNowp6cvspg0jXznRTKDjm/E7AdgFBVeAPVMNcKGsHMA==", + "dev": true, + "requires": { + "ms": "2.0.0" + } + }, + "iconv-lite": { + "version": "0.4.24", + "resolved": "https://registry.npmjs.org/iconv-lite/-/iconv-lite-0.4.24.tgz", + "integrity": "sha512-v3MXnZAcvnywkTUEZomIActle7RXXeedOR31wwl7VlyoXO4Qi9arvSenNQWne1TcRwhCL1HwLI21bEqdpj8/rA==", + "dev": true, + "requires": { + "safer-buffer": ">= 2.1.2 < 3" + } + }, + "ms": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/ms/-/ms-2.0.0.tgz", + "integrity": "sha512-Tpp60P6IUJDTuOq/5Z8cdskzJujfwqfOTkrwIwj7IRISpnkJnT6SyJ4PCPnGMoFjC9ddhal5KVIYtAt97ix05A==", + "dev": true + }, + "qs": { + "version": "6.13.0", + "resolved": "https://registry.npmjs.org/qs/-/qs-6.13.0.tgz", + "integrity": "sha512-+38qI9SOr8tfZ4QmJNplMUxqjbe7LKvvZgWdExBOmd+egZTtjLB67Gu0HRX3u/XOq7UU2Nx6nsjvS16Z9uwfpg==", + "dev": true, + "requires": { + "side-channel": "^1.0.6" + } + } + } + }, + "bonjour": { + "version": "3.5.0", + "resolved": "https://registry.npmjs.org/bonjour/-/bonjour-3.5.0.tgz", + "integrity": "sha512-RaVTblr+OnEli0r/ud8InrU7D+G0y6aJhlxaLa6Pwty4+xoxboF1BsUI45tujvRpbj9dQVoglChqonGAsjEBYg==", + "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": "sha512-JZOSA7Mo9sNGB8+UjSgzdLtokWAky1zbztM3WRLCbZ70/3cTANmQmOdR7y2g+J0e2WXywy1yS468tY+IruqEww==", + "dev": true + }, + "bowser": { + "version": "1.9.4", + "resolved": "https://registry.npmjs.org/bowser/-/bowser-1.9.4.tgz", + "integrity": "sha512-9IdMmj2KjigRq6oWhmwv1W36pDuA4STQZ8q6YO9um+x07xgYNCD3Oou+WP/3L1HNz7iqythGet3/p4wvc8AAwQ==" + }, + "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": "2.3.2", + "resolved": "https://registry.npmjs.org/braces/-/braces-2.3.2.tgz", + "integrity": "sha512-aNdbnj9P8PjdXU4ybaWLK2IF3jc/EoDYbC7AazW6to3TRsfXxscC9UXOB5iDiEQrkyIbWp2SLQda4+QAa7nc3w==", + "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" + } + }, + "brfs": { + "version": "1.6.1", + "resolved": "https://registry.npmjs.org/brfs/-/brfs-1.6.1.tgz", + "integrity": "sha512-OfZpABRQQf+Xsmju8XE9bDjs+uU4vLREGolP7bDgcpsI17QREyZ4Bl+2KLxxx1kCgA0fAIhKQBaBYh+PEcCqYQ==", + "requires": { + "quote-stream": "^1.0.1", + "resolve": "^1.1.5", + "static-module": "^2.2.0", + "through2": "^2.0.0" + } + }, + "brorand": { + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/brorand/-/brorand-1.1.0.tgz", + "integrity": "sha512-cKV8tMCEpQs4hK/ik71d6LrPOnpkpGBR0wzxqr68g2m/LB2GxVYQroAjMJZRVM1Y4BCjCKc3vAamxSzOY2RP+w==" + }, + "browser-resolve": { + "version": "1.11.3", + "resolved": "https://registry.npmjs.org/browser-resolve/-/browser-resolve-1.11.3.tgz", + "integrity": "sha512-exDi1BYWB/6raKHmDTCicQfTkqwN5fioMFV4j8BsfMU4R2DK/QfZfK7kOVkmWCNANf0snkBzqGqAJBao9gZMdQ==", + "dev": true, + "requires": { + "resolve": "1.1.7" + }, + "dependencies": { + "resolve": { + "version": "1.1.7", + "resolved": "https://registry.npmjs.org/resolve/-/resolve-1.1.7.tgz", + "integrity": "sha512-9znBF0vBcaSN3W2j7wKvdERPwqTxSpCq+if5C0WoTCyV9n24rua28jeuQ2pL/HOf+yUe/Mef+H/5p60K0Id3bg==", + "dev": true + } + } + }, + "browser-stdout": { + "version": "1.3.0", + "resolved": "https://registry.npmjs.org/browser-stdout/-/browser-stdout-1.3.0.tgz", + "integrity": "sha512-7Rfk377tpSM9TWBEeHs0FlDZGoAIei2V/4MdZJoFMBFAK6BqLpxAIUepGRHGdPFgGsLb02PXovC4qddyHvQqTg==" + }, + "browserify-aes": { + "version": "1.2.0", + "resolved": "https://registry.npmjs.org/browserify-aes/-/browserify-aes-1.2.0.tgz", + "integrity": "sha512-+7CHXqGuspUn/Sl5aO7Ea0xWGAtETPXNSAjHo48JfLdPWcMng33Xe4znFvQweqc/uzk5zSOI3H52CYnjCfb5hA==", + "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==", + "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==", + "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.1", + "resolved": "https://registry.npmjs.org/browserify-rsa/-/browserify-rsa-4.1.1.tgz", + "integrity": "sha512-YBjSAiTqM04ZVei6sXighu679a3SqWORA3qZTEqZImnlkDIFtKc6pNutpjyZ8RJTjQtuYfeetkxM11GwoYXMIQ==", + "requires": { + "bn.js": "^5.2.1", + "randombytes": "^2.1.0", + "safe-buffer": "^5.2.1" + } + }, + "browserify-sign": { + "version": "4.2.3", + "resolved": "https://registry.npmjs.org/browserify-sign/-/browserify-sign-4.2.3.tgz", + "integrity": "sha512-JWCZW6SKhfhjJxO8Tyiiy+XYB7cqd2S5/+WeYHsKdNKFlCBhKbblba1A/HN/90YwtxKc8tCErjffZl++UNmGiw==", + "requires": { + "bn.js": "^5.2.1", + "browserify-rsa": "^4.1.0", + "create-hash": "^1.2.0", + "create-hmac": "^1.1.7", + "elliptic": "^6.5.5", + "hash-base": "~3.0", + "inherits": "^2.0.4", + "parse-asn1": "^5.1.7", + "readable-stream": "^2.3.8", + "safe-buffer": "^5.2.1" + } + }, + "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==", + "requires": { + "pako": "~1.0.5" + } + }, + "browserslist": { + "version": "4.24.2", + "resolved": "https://registry.npmjs.org/browserslist/-/browserslist-4.24.2.tgz", + "integrity": "sha512-ZIc+Q62revdMcqC6aChtW4jz3My3klmCO1fEmINZY/8J3EpBg5/A/D0AKmBveUh6pgoeycoMkVMko84tuYS+Gg==", + "requires": { + "caniuse-lite": "^1.0.30001669", + "electron-to-chromium": "^1.5.41", + "node-releases": "^2.0.18", + "update-browserslist-db": "^1.1.1" + } + }, + "bser": { + "version": "2.1.1", + "resolved": "https://registry.npmjs.org/bser/-/bser-2.1.1.tgz", + "integrity": "sha512-gQxTNE/GAfIIrmHLUE3oJyp5FO6HRBfhjnw4/wMmA63ZGDJnWBmgY/lyQBpnDUkGmAhbSe39tx2d/iTOAfglwQ==", + "dev": true, + "requires": { + "node-int64": "^0.4.0" + } + }, + "btoa": { + "version": "1.2.1", + "resolved": "https://registry.npmjs.org/btoa/-/btoa-1.2.1.tgz", + "integrity": "sha512-SB4/MIGlsiVkMcHmT+pSmIPoNDoHg+7cMzmt3Uxt628MTz2487DKSqK/fuhFBrkuqrYv5UCEnACpF4dTFNKc/g==" + }, + "buffer": { + "version": "4.9.2", + "resolved": "https://registry.npmjs.org/buffer/-/buffer-4.9.2.tgz", + "integrity": "sha512-xq+q3SRMOxGivLhBNaUdC64hDTQwejJ+H0T/NB1XMtTVEwNTrfFF3gAxiyW0Bu/xWEGhjVKgUcMhCrUy2+uCWg==", + "requires": { + "base64-js": "^1.0.2", + "ieee754": "^1.1.4", + "isarray": "^1.0.0" + }, + "dependencies": { + "isarray": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/isarray/-/isarray-1.0.0.tgz", + "integrity": "sha512-VLghIWNM6ELQzo7zwmcg0NmTVyWKYjvIeM83yjp0wRDTmUnrM678fQbcKBo6n2CJEF0szoG//ytg+TKla89ALQ==" + } + } + }, + "buffer-alloc": { + "version": "1.2.0", + "resolved": "https://registry.npmjs.org/buffer-alloc/-/buffer-alloc-1.2.0.tgz", + "integrity": "sha512-CFsHQgjtW1UChdXgbyJGtnm+O/uLQeZdtbDo8mfUgYXCHSM1wgrVxXm6bSyrUuErEb+4sYVGCzASBRot7zyrow==", + "requires": { + "buffer-alloc-unsafe": "^1.1.0", + "buffer-fill": "^1.0.0" + } + }, + "buffer-alloc-unsafe": { + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/buffer-alloc-unsafe/-/buffer-alloc-unsafe-1.1.0.tgz", + "integrity": "sha512-TEM2iMIEQdJ2yjPJoSIsldnleVaAk1oW3DBVUykyOLsEsFmEc9kn+SFFPz+gl54KQNxlDnAwCXosOS9Okx2xAg==" + }, + "buffer-crc32": { + "version": "0.2.13", + "resolved": "https://registry.npmjs.org/buffer-crc32/-/buffer-crc32-0.2.13.tgz", + "integrity": "sha512-VO9Ht/+p3SN7SKWqcrgEzjGbRSJYTx+Q1pTQC0wrWqHx0vpJraQ6GtHx8tvcg1rlK1byhU5gccxgOgj7B0TDkQ==" + }, + "buffer-equal": { + "version": "0.0.1", + "resolved": "https://registry.npmjs.org/buffer-equal/-/buffer-equal-0.0.1.tgz", + "integrity": "sha512-RgSV6InVQ9ODPdLWJ5UAqBqJBOg370Nz6ZQtRzpt6nUjc8v0St97uJ4PYC6NztqIScrAXafKM3mZPMygSe1ggA==" + }, + "buffer-fill": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/buffer-fill/-/buffer-fill-1.0.0.tgz", + "integrity": "sha512-T7zexNBwiiaCOGDg9xNX9PBmjrubblRkENuptryuI64URkXDFum9il/JGL8Lm8wYfAXpredVXXZz7eMHilimiQ==" + }, + "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==" + }, + "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": "sha512-571s0T7nZWK6vB67HI5dyUF7wXiNcfaPPPTl6zYCNApANjIvYJTg7hlud/+cJpdAhS7dVzqMLmfhfHR3rAcOjQ==" + }, + "builtin-modules": { + "version": "1.1.1", + "resolved": "https://registry.npmjs.org/builtin-modules/-/builtin-modules-1.1.1.tgz", + "integrity": "sha512-wxXCdllwGhI2kCC0MnvTGYTMvnVZTvqgypkiTI8Pa5tcz2i6VqsqwYGgqwXji+4RgCzms6EajE4IxiUH6HH8nQ==", + "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": "sha512-HpGFw18DgFWlncDfjTa2rcQ4W88O1mC8e8yZ2AvQY5KDaktSTwo+KRf6nHK6FRI5FyRyb/5T6+TSxfP7QyGsmQ==" + }, + "bytes": { + "version": "3.1.2", + "resolved": "https://registry.npmjs.org/bytes/-/bytes-3.1.2.tgz", + "integrity": "sha512-/Nf7TyzTx6S3yRJObOAV7956r8cr2+Oj8AC5dt8wSP3BQAoeX58NoHyCU8P8zGkNXStjTSi6fzO6F0pBdcYbEg==", + "dev": true + }, + "cacache": { + "version": "15.3.0", + "resolved": "https://registry.npmjs.org/cacache/-/cacache-15.3.0.tgz", + "integrity": "sha512-VVdYzXEn+cnbXpFgWs5hTT7OScegHVmLhJIR8Ufqk3iFD6A6j5iSX1KuBTfNEv4tdJWE2PzA6IVFtcLC7fN9wQ==", + "requires": { + "@npmcli/fs": "^1.0.0", + "@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.1", + "tar": "^6.0.2", + "unique-filename": "^1.1.1" + }, + "dependencies": { + "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==", + "requires": { + "yallist": "^4.0.0" + } + }, + "rimraf": { + "version": "3.0.2", + "resolved": "https://registry.npmjs.org/rimraf/-/rimraf-3.0.2.tgz", + "integrity": "sha512-JZkJMZkAGFFPP2YqXZXPbMlMBgsxzE8ILs4lMIX/2o0L9UBw9O/Y3o6wFw/i9YLapcUJWwqbi3kdxIPdC62TIA==", + "requires": { + "glob": "^7.1.3" + } + }, + "yallist": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/yallist/-/yallist-4.0.0.tgz", + "integrity": "sha512-3wdGidZyq5PB084XLES5TpOSRA3wjXAlIWMhum2kRcv/41Sn2emQ0dycQW4uZXLejwKvg6EsvbdlVL+FYEct7A==" + } + } + }, + "cache-base": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/cache-base/-/cache-base-1.0.1.tgz", + "integrity": "sha512-AKcdTnFSWATd5/GCPRxr2ChwIJ85CeyrEyjRHlKxQ56d4XJMGym0uAiKn0xbLOGOl3+yRpOTi484dVCEc5AUzQ==", + "requires": { + "collection-visit": "^1.0.0", + "component-emitter": "^1.2.1", + "get-value": "^2.0.6", + "has-value": "^1.0.0", + "isobject": "^3.0.1", + "set-value": "^2.0.0", + "to-object-path": "^0.3.0", + "union-value": "^1.0.0", + "unset-value": "^1.0.0" + } + }, + "cacheable-request": { + "version": "2.1.4", + "resolved": "https://registry.npmjs.org/cacheable-request/-/cacheable-request-2.1.4.tgz", + "integrity": "sha512-vag0O2LKZ/najSoUwDbVlnlCFvhBE/7mGTY2B5FgCBDcRD+oVV1HYTOwM6JZfMg/hIcM6IwnTZ1uQQL5/X3xIQ==", + "requires": { + "clone-response": "1.0.2", + "get-stream": "3.0.0", + "http-cache-semantics": "3.8.1", + "keyv": "3.0.0", + "lowercase-keys": "1.0.0", + "normalize-url": "2.0.1", + "responselike": "1.0.2" + }, + "dependencies": { + "get-stream": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/get-stream/-/get-stream-3.0.0.tgz", + "integrity": "sha512-GlhdIUuVakc8SJ6kK0zAFbiGzRFzNnY4jUuEbV9UROo4Y+0Ny4fjvcZFVTeDA4odpFyOQzaw6hXukJSq/f28sQ==" + }, + "lowercase-keys": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/lowercase-keys/-/lowercase-keys-1.0.0.tgz", + "integrity": "sha512-RPlX0+PHuvxVDZ7xX+EBVAp4RsVxP/TdDSN2mJYdiq1Lc4Hz7EUSjUI7RZrKKlmrIzVhf6Jo2stj7++gVarS0A==" + } + } + }, + "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" + } + }, + "caller-callsite": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/caller-callsite/-/caller-callsite-2.0.0.tgz", + "integrity": "sha512-JuG3qI4QOftFsZyOn1qq87fq5grLIyk1JYd5lJmdA+fG7aQ9pA/i3JIJGcO3q0MrRcHlOt1U+ZeHW8Dq9axALQ==", + "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": "sha512-MCL3sf6nCSXOwCTzvPKhN18TU7AHTvdtam8DAogxcrJ8Rjfbbg7Lgng64H9Iy+vUV6VGFClN/TyxBkAebLRR4A==", + "requires": { + "caller-callsite": "^2.0.0" + } + }, + "callsites": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/callsites/-/callsites-2.0.0.tgz", + "integrity": "sha512-ksWePWBloaWPxJYQ8TL0JHvtci6G5QTKwQ95RcWAa/lzoAKuAOflGdAK92hpHXjkwb8zLxoLNUoNYZgVsaJzvQ==" + }, + "camel-case": { + "version": "4.1.2", + "resolved": "https://registry.npmjs.org/camel-case/-/camel-case-4.1.2.tgz", + "integrity": "sha512-gxGWBrTT1JuMx6R+o5PTXMmUnhnVzLQ9SNutD4YqKtI6ap897t3tKECYla6gCWEkplXnlNybEkZg9GEGxKFCgw==", + "dev": true, + "requires": { + "pascal-case": "^3.1.2", + "tslib": "^2.0.3" + } + }, + "camelcase": { + "version": "4.1.0", + "resolved": "https://registry.npmjs.org/camelcase/-/camelcase-4.1.0.tgz", + "integrity": "sha512-FxAv7HpHrXbh3aPo4o2qxHay2lkLY3x5Mw3KeE4KQE8ysVfziWeRZDwcjauvwBSGEC/nXUPzZy8zeh4HokqOnw==", + "dev": true + }, + "caniuse-lite": { + "version": "1.0.30001680", + "resolved": "https://registry.npmjs.org/caniuse-lite/-/caniuse-lite-1.0.30001680.tgz", + "integrity": "sha512-rPQy70G6AGUMnbwS1z6Xg+RkHYPAi18ihs47GH0jcxIG7wArmPgY3XbS2sRdBbxJljp3thdT8BIqv9ccCypiPA==" + }, + "cannon-es": { + "version": "0.20.0", + "resolved": "https://registry.npmjs.org/cannon-es/-/cannon-es-0.20.0.tgz", + "integrity": "sha512-eZhWTZIkFOnMAJOgfXJa9+b3kVlvG+FX4mdkpePev/w/rP5V8NRquGyEozcjPfEoXUlb+p7d9SUcmDSn14prOA==" + }, + "canvas-toBlob": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/canvas-toBlob/-/canvas-toBlob-1.0.0.tgz", + "integrity": "sha512-oU5bawygt/Nef9F+C49eTFmzXzz6yKdGqn6J1wn/LZQF5ulnnZVm0KIZzik85I6tjCbZFH6aa47j4bU2tkHxRw==" + }, + "capture-exit": { + "version": "1.2.0", + "resolved": "https://registry.npmjs.org/capture-exit/-/capture-exit-1.2.0.tgz", + "integrity": "sha512-IS4lTgp57lUcpXzyCaiUQcRZBxZAkzl+jNXrMUXZjdnr2yujpKUMG9OYeYL29i6fL66ihypvVJ/MeX0B+9pWOg==", + "dev": true, + "requires": { + "rsvp": "^3.3.3" + } + }, + "caseless": { + "version": "0.12.0", + "resolved": "https://registry.npmjs.org/caseless/-/caseless-0.12.0.tgz", + "integrity": "sha512-4tYFyifaFfGacoiObjJegolkwSU4xQNGbVgUiNYVUxbQ2x2lUsFvY4hVgVzGiIe6WLOPqycWXA40l+PWsxthUw==" + }, + "chalk": { + "version": "1.1.3", + "resolved": "https://registry.npmjs.org/chalk/-/chalk-1.1.3.tgz", + "integrity": "sha512-U3lRVLMSlsCfjqYPbLyVv11M9CPW4I728d6TCKMAOJueEeB9/8o+eSsMnxPJD+Q+K909sdESg7C+tIkoH6on1A==", + "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" + } + }, + "chardet": { + "version": "0.7.0", + "resolved": "https://registry.npmjs.org/chardet/-/chardet-0.7.0.tgz", + "integrity": "sha512-mT8iDcrh03qDGRRmoA2hmBJnxpllMR+0/0qlzjqZES6NdiWDcZkCNAk4rPFZ9Q85r27unkiNNg8ZOiwZXBHwcA==", + "dev": true + }, + "cheerio": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/cheerio/-/cheerio-1.0.0.tgz", + "integrity": "sha512-quS9HgjQpdaXOvsZz82Oz7uxtXiy6UIsIQcpBj7HRw2M63Skasm9qlDocAM7jNuaxdhpPU7c4kJN+gA5MCu4ww==", + "dev": true, + "requires": { + "cheerio-select": "^2.1.0", + "dom-serializer": "^2.0.0", + "domhandler": "^5.0.3", + "domutils": "^3.1.0", + "encoding-sniffer": "^0.2.0", + "htmlparser2": "^9.1.0", + "parse5": "^7.1.2", + "parse5-htmlparser2-tree-adapter": "^7.0.0", + "parse5-parser-stream": "^7.1.2", + "undici": "^6.19.5", + "whatwg-mimetype": "^4.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==", + "dev": true, + "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" + } + }, + "chokidar": { + "version": "3.6.0", + "resolved": "https://registry.npmjs.org/chokidar/-/chokidar-3.6.0.tgz", + "integrity": "sha512-7VT13fmjotKpGipCW9JEQAusEPE+Ei8nl6/g4FBAmIm0GOOLMua9NDDo/DWp0ZAxCr3cPq5ZpBqmPAQgDda2Pw==", + "optional": true, + "requires": { + "anymatch": "~3.1.2", + "braces": "~3.0.2", + "fsevents": "~2.3.2", + "glob-parent": "~5.1.2", + "is-binary-path": "~2.1.0", + "is-glob": "~4.0.1", + "normalize-path": "~3.0.0", + "readdirp": "~3.6.0" + }, + "dependencies": { + "anymatch": { + "version": "3.1.3", + "resolved": "https://registry.npmjs.org/anymatch/-/anymatch-3.1.3.tgz", + "integrity": "sha512-KMReFUr0B4t+D+OBkjR3KYqvocp2XaSzO55UcB6mgQMd3KbcE+mWTyvVV7D/zsdEbNnV6acZUutkiHQXvTr1Rw==", + "optional": true, + "requires": { + "normalize-path": "^3.0.0", + "picomatch": "^2.0.4" + } + }, + "binary-extensions": { + "version": "2.3.0", + "resolved": "https://registry.npmjs.org/binary-extensions/-/binary-extensions-2.3.0.tgz", + "integrity": "sha512-Ceh+7ox5qe7LJuLHoY0feh3pHuUDHAcRUeyL2VYghZwfpkNIy/+8Ocg0a3UuSoYzavmylwuLWQOf3hl0jjMMIw==", + "optional": true + }, + "braces": { + "version": "3.0.3", + "resolved": "https://registry.npmjs.org/braces/-/braces-3.0.3.tgz", + "integrity": "sha512-yQbXgO/OSZVD2IsiLlro+7Hf6Q18EJrKSEsdoMzKePKXct3gvD8oLcOQdIzGupr5Fj+EDe8gO/lxc1BzfMpxvA==", + "optional": true, + "requires": { + "fill-range": "^7.1.1" + } + }, + "fill-range": { + "version": "7.1.1", + "resolved": "https://registry.npmjs.org/fill-range/-/fill-range-7.1.1.tgz", + "integrity": "sha512-YsGpe3WHLK8ZYi4tWDg2Jy3ebRz2rXowDxnld4bkQB00cc/1Zw9AWnC0i9ztDJitivtQvaI9KaLyKrc+hBW0yg==", + "optional": true, + "requires": { + "to-regex-range": "^5.0.1" + } + }, + "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==", + "optional": true, + "requires": { + "binary-extensions": "^2.0.0" + } + }, + "is-number": { + "version": "7.0.0", + "resolved": "https://registry.npmjs.org/is-number/-/is-number-7.0.0.tgz", + "integrity": "sha512-41Cifkg6e8TylSpdtTpeLVMqvSBEVzTttHvERD741+pnZ8ANv0004MRL43QKPDlK9cGvNp6NZWZUBlbGXYxxng==", + "optional": true + }, + "readdirp": { + "version": "3.6.0", + "resolved": "https://registry.npmjs.org/readdirp/-/readdirp-3.6.0.tgz", + "integrity": "sha512-hOS089on8RduqdbhvQ5Z37A0ESjsqz6qnRcffsMU3495FuTdqSm+7bhJ29JvIOsBDEEnan5DPu9t3To9VRlMzA==", + "optional": true, + "requires": { + "picomatch": "^2.2.1" + } + }, + "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==", + "optional": true, + "requires": { + "is-number": "^7.0.0" + } + } + } + }, + "chownr": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/chownr/-/chownr-2.0.0.tgz", + "integrity": "sha512-bIomtDF5KGpdogkLd9VspvFzk9KfpyyGlS8YFVZl7TGPBHL5snIOnxeshwVgPteQ9b4Eydl+pVbIyE1DcvCWgQ==" + }, + "chrome-trace-event": { + "version": "1.0.4", + "resolved": "https://registry.npmjs.org/chrome-trace-event/-/chrome-trace-event-1.0.4.tgz", + "integrity": "sha512-rNjApaLzuwaOTjCiT8lSDdGN1APCiqkChLMJxJPWLunPAt5fy8xgU9/jNOchV84wfIxrA0lRQB7oCT8jrn/wrQ==" + }, + "chromedriver": { + "version": "105.0.0", + "resolved": "https://registry.npmjs.org/chromedriver/-/chromedriver-105.0.0.tgz", + "integrity": "sha512-BX3GOUW5m6eiW9cVVF8hw+EFxvrGqYCxbwOqnpk8PjbNFqL5xjy7yel+e6ilJPjckAYFutMKs8XJvOs/W85vvg==", + "dev": true, + "requires": { + "@testim/chrome-version": "^1.1.2", + "axios": "^0.27.2", + "del": "^6.0.0", + "extract-zip": "^2.0.1", + "https-proxy-agent": "^5.0.0", + "proxy-from-env": "^1.1.0", + "tcp-port-used": "^1.0.1" + } + }, + "ci-info": { + "version": "1.6.0", + "resolved": "https://registry.npmjs.org/ci-info/-/ci-info-1.6.0.tgz", + "integrity": "sha512-vsGdkwSCDpWmP80ncATX7iea5DWQemg1UgCW5J8tqjU3lYw4FBYuj89J0CTVomA7BEfvSZd84GmHko+MxFQU2A==", + "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==", + "requires": { + "inherits": "^2.0.1", + "safe-buffer": "^5.0.1" + } + }, + "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==", + "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": "sha512-Rr7ADjQZenceVOAKop6ALkkRAmH1A4Gx9hV/7ZujPUN2rkATqFO0JZLZInbAjpZYoJ1gUx8MRMQVkYemcbMSTA==", + "requires": { + "is-descriptor": "^0.1.0" + } + }, + "is-descriptor": { + "version": "0.1.7", + "resolved": "https://registry.npmjs.org/is-descriptor/-/is-descriptor-0.1.7.tgz", + "integrity": "sha512-C3grZTvObeN1xud4cRWl366OMXZTj0+HGyk4hvfpx4ZHt1Pb60ANSXqCK7pdOTeUQpRzECBSTphqvD7U+l22Eg==", + "requires": { + "is-accessor-descriptor": "^1.0.1", + "is-data-descriptor": "^1.0.1" + } + } + } + }, + "classnames": { + "version": "2.2.6", + "resolved": "https://registry.npmjs.org/classnames/-/classnames-2.2.6.tgz", + "integrity": "sha512-JR/iSQOSt+LQIWwrwEzJ9uk0xfN3mTVYMwt1Ir5mUcSN6pU+V4zQFFaJsclJbPuAUQH+yfWef6tm7l1quW3C8Q==" + }, + "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, + "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 + } + } + }, + "clean-stack": { + "version": "2.2.0", + "resolved": "https://registry.npmjs.org/clean-stack/-/clean-stack-2.2.0.tgz", + "integrity": "sha512-4diC9HaTE+KRAMWhDhrGOECgWZxoevMc5TlkObMqNSsVU62PYzXZ/SMTjzyGAFF1YusgxGcSWTEXBhp0CPwQ1A==" + }, + "cli-cursor": { + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/cli-cursor/-/cli-cursor-2.1.0.tgz", + "integrity": "sha512-8lgKz8LmCRYZZQDpRyT2m5rKJ08TnU4tR9FFFW2rxpxR1FzWi4PQ/NfyODchAatHaUgnSPVcx/R5w6NuTBzFiw==", + "dev": true, + "requires": { + "restore-cursor": "^2.0.0" + } + }, + "cli-width": { + "version": "2.2.1", + "resolved": "https://registry.npmjs.org/cli-width/-/cli-width-2.2.1.tgz", + "integrity": "sha512-GRMWDxpOB6Dgk2E5Uo+3eEBvtOOlimMmpbFiKuLFnQzYDavtLFY3K5ona41jgN/WdRZtG7utuVSVTL4HbZHGkw==", + "dev": true + }, + "cliui": { + "version": "3.2.0", + "resolved": "https://registry.npmjs.org/cliui/-/cliui-3.2.0.tgz", + "integrity": "sha512-0yayqDxWQbqk3ojkYqUKqaAQ6AfNKeKWRNA8kR0WXzAsdHpP4BIaOmMAG87JGuO6qcobyW4GjxHd9PmhEd+T9w==", + "requires": { + "string-width": "^1.0.1", + "strip-ansi": "^3.0.1", + "wrap-ansi": "^2.0.0" + }, + "dependencies": { + "is-fullwidth-code-point": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/is-fullwidth-code-point/-/is-fullwidth-code-point-1.0.0.tgz", + "integrity": "sha512-1pqUqRjkhPJ9miNq9SwMfdvi6lBJcd6eFxvfaivQhaH3SgisfiuudvFntdKOmxuee/77l+FPjKrQjWvmPjWrRw==", + "requires": { + "number-is-nan": "^1.0.0" + } + }, + "string-width": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/string-width/-/string-width-1.0.2.tgz", + "integrity": "sha512-0XsVpQLnVCXHJfyEs8tC0zpTVIr5PKKsQtkT29IwupnPTjtPmQ3xT/4yCREF9hYkV/3M3kzcUTSAZT6a6h81tw==", + "requires": { + "code-point-at": "^1.0.0", + "is-fullwidth-code-point": "^1.0.0", + "strip-ansi": "^3.0.0" + } + } + } + }, + "clone-response": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/clone-response/-/clone-response-1.0.2.tgz", + "integrity": "sha512-yjLXh88P599UOyPTFX0POsd7WxnbsVsGohcwzHOLspIhhpalPw1BcqED8NblyZLKcGrL8dTgMlcaZxV2jAD41Q==", + "requires": { + "mimic-response": "^1.0.0" + } + }, + "code-point-at": { + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/code-point-at/-/code-point-at-1.1.0.tgz", + "integrity": "sha512-RpAVKQA5T63xEj6/giIbUEtZwJ4UFIc3ZtvEkiaUERylqe8xb5IvqcgOurZLahv93CLKfxcw5YI+DZcUBRyLXA==" + }, + "collection-visit": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/collection-visit/-/collection-visit-1.0.0.tgz", + "integrity": "sha512-lNkKvzEeMBBjUGHZ+q6z9pSJla0KWAQPvtzhEV9+iGyQYG+pBpl7xKDhxoNSOZH2hhv0v5k0y2yAM4o4SjoSkw==", + "requires": { + "map-visit": "^1.0.0", + "object-visit": "^1.0.0" + } + }, + "color-convert": { + "version": "0.5.3", + "resolved": "https://registry.npmjs.org/color-convert/-/color-convert-0.5.3.tgz", + "integrity": "sha512-RwBeO/B/vZR3dfKL1ye/vx8MHZ40ugzpyfeVG5GsiuGnrlMWe2o8wxBbLCpw9CsxV+wHuzYlCiWnybrIA0ling==" + }, + "color-name": { + "version": "1.1.3", + "resolved": "https://registry.npmjs.org/color-name/-/color-name-1.1.3.tgz", + "integrity": "sha512-72fSenhMw2HZMTVHeCA9KCmpEIbzWiQsjN+BHcBbS9vr1mtt+vJjPdksIBNUmKAW8TFUDPJK5SUU3QhE9NEXDw==" + }, + "colors": { + "version": "0.6.2", + "resolved": "https://registry.npmjs.org/colors/-/colors-0.6.2.tgz", + "integrity": "sha512-OsSVtHK8Ir8r3+Fxw/b4jS1ZLPXkV6ZxDRJQzeD7qo0SqMXWrHDM71DgYzPMHY8SFJ0Ao+nNU2p1MmwdzKqPrw==" + }, + "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" + } + }, + "commander": { + "version": "4.1.1", + "resolved": "https://registry.npmjs.org/commander/-/commander-4.1.1.tgz", + "integrity": "sha512-NOKm8xhkzAjzFx8B2v5OAHT+u5pRQc2UCa2Vq9jYL/31o2wi9mxBA7LIFs3sV5VSC49z6pEhfbMULvShKj26WA==" + }, + "commondir": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/commondir/-/commondir-1.0.1.tgz", + "integrity": "sha512-W9pAhw0ja1Edb5GVdIF1mjZw/ASI0AlShXM83UUGe2DVr5TdAPEA1OA8m/g8zWp9x6On7gqufY+FatDbC3MDQg==" + }, + "complex.js": { + "version": "2.4.2", + "resolved": "https://registry.npmjs.org/complex.js/-/complex.js-2.4.2.tgz", + "integrity": "sha512-qtx7HRhPGSCBtGiST4/WGHuW+zeaND/6Ld+db6PbrulIB1i2Ev/2UPiqcmpQNPSyfBKraC0EOvOKCB5dGZKt3g==" + }, + "component-emitter": { + "version": "1.3.1", + "resolved": "https://registry.npmjs.org/component-emitter/-/component-emitter-1.3.1.tgz", + "integrity": "sha512-T0+barUSQRTUQASh8bx02dl+DhF54GtIDY13Y3m9oWTklKbb3Wv974meRpeZ3lp1JpLVECWWNHC4vaG2XHXouQ==" + }, + "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.5", + "resolved": "https://registry.npmjs.org/compression/-/compression-1.7.5.tgz", + "integrity": "sha512-bQJ0YRck5ak3LgtnpKkiabX5pNF7tMUh1BSy2ZBOTh0Dim0BUu6aPPwByIns6/A5Prh8PufSPerMDUklpzes2Q==", + "dev": true, + "requires": { + "bytes": "3.1.2", + "compressible": "~2.0.18", + "debug": "2.6.9", + "negotiator": "~0.6.4", + "on-headers": "~1.0.2", + "safe-buffer": "5.2.1", + "vary": "~1.1.2" + }, + "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": "sha512-Tpp60P6IUJDTuOq/5Z8cdskzJujfwqfOTkrwIwj7IRISpnkJnT6SyJ4PCPnGMoFjC9ddhal5KVIYtAt97ix05A==", + "dev": true + } + } + }, + "computed-style-to-inline-style": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/computed-style-to-inline-style/-/computed-style-to-inline-style-3.0.0.tgz", + "integrity": "sha512-6XAOG2ZZkpCfbM9AhRN4/wjMgQujtH/2q/eowZON190oAASUjEb3jwcodjmRlR8HNDMahJdBQwchuDftOtF7eg==" + }, + "concat-map": { + "version": "0.0.1", + "resolved": "https://registry.npmjs.org/concat-map/-/concat-map-0.0.1.tgz", + "integrity": "sha512-/Srv4dswyQNBfohGpz9o6Yb3Gz3SrUDqBH5rTuhGR7ahtlbYKnVxw2bCFMRljaA7EXHaXZ8wsHdodFvbkhKmqg==" + }, + "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" + } + }, + "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==" + }, + "constants-browserify": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/constants-browserify/-/constants-browserify-1.0.0.tgz", + "integrity": "sha512-xFxOwqIzR/e1k1gLiWEophSCMqXcwVHIH7akf7b/vxcUeGunlj3hvZaaqxwHsTgn+IndtkQJgSztIDWeumWJDQ==" + }, + "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==", + "dev": true + }, + "content-type-parser": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/content-type-parser/-/content-type-parser-1.0.2.tgz", + "integrity": "sha512-lM4l4CnMEwOLHAHr/P6MEZwZFPJFtAAKgL6pogbXmVZggIqXhdB6RbBtPOTsw2FcXwYhehRGERJmRrjOiIB8pQ==", + "dev": true + }, + "convert-source-map": { + "version": "1.9.0", + "resolved": "https://registry.npmjs.org/convert-source-map/-/convert-source-map-1.9.0.tgz", + "integrity": "sha512-ASFBup0Mz1uyiIjANan1jzLQami9z1PoYSZCiiYW2FczPbenXc45FZdBZLzOT+r6+iciuEModtmCti+hjaAk0A==" + }, + "cookie": { + "version": "0.7.1", + "resolved": "https://registry.npmjs.org/cookie/-/cookie-0.7.1.tgz", + "integrity": "sha512-6DnInpx7SJ2AK3+CTUE/ZM0vWTUboZCegxhC2xiIydHR9jNuTAASBrfEpHhiGOZw/nX51bHt6YQl8jsGo4y/0w==", + "dev": true + }, + "cookie-signature": { + "version": "1.0.6", + "resolved": "https://registry.npmjs.org/cookie-signature/-/cookie-signature-1.0.6.tgz", + "integrity": "sha512-QADzlaHc8icV8I7vbaJXJwod9HWYp8uCqf1xa4OfNu1T7JVxQIrUgOWtHdNDtPiywmFbiS12VjotIXLrKM3orQ==", + "dev": true + }, + "copy-concurrently": { + "version": "1.0.5", + "resolved": "https://registry.npmjs.org/copy-concurrently/-/copy-concurrently-1.0.5.tgz", + "integrity": "sha512-f2domd9fsVDFtaFcbaRZuYXwtdmnzqbADSwhSWYxYB/Q8zsdUUFMXVRwXGDMWmbEzAn1kdRrtI1T/KTFOL4X2A==", + "requires": { + "aproba": "^1.1.1", + "fs-write-stream-atomic": "^1.0.8", + "iferr": "^0.1.5", + "mkdirp": "^0.5.1", + "rimraf": "^2.5.4", + "run-queue": "^1.0.0" + }, + "dependencies": { + "mkdirp": { + "version": "0.5.6", + "resolved": "https://registry.npmjs.org/mkdirp/-/mkdirp-0.5.6.tgz", + "integrity": "sha512-FP+p8RB8OWpF3YZBCrP5gtADmtXApB5AMLn+vdyA+PyxCjrCs00mjyUozssO33cwDeT3wNGdLxJ5M//YqtHAJw==", + "requires": { + "minimist": "^1.2.6" + } + } + } + }, + "copy-descriptor": { + "version": "0.1.1", + "resolved": "https://registry.npmjs.org/copy-descriptor/-/copy-descriptor-0.1.1.tgz", + "integrity": "sha512-XgZ0pFcakEUlbwQEVNg3+QAis1FyTL3Qel9FYy8pSkQqoG3PNoT0bOCQtOXcOkur21r2Eq2kI+IE+gsmAEVlYw==" + }, + "copy-webpack-plugin": { + "version": "6.4.1", + "resolved": "https://registry.npmjs.org/copy-webpack-plugin/-/copy-webpack-plugin-6.4.1.tgz", + "integrity": "sha512-MXyPCjdPVx5iiWyl40Va3JGh27bKzOTNY3NjUTrosD2q7dR/cLD0013uqJ3BpFbUjyONINjb6qI7nDIJujrMbA==", + "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": { + "loader-utils": { + "version": "2.0.4", + "resolved": "https://registry.npmjs.org/loader-utils/-/loader-utils-2.0.4.tgz", + "integrity": "sha512-xXqpXoINfFhgua9xiqD8fPFHgkoq1mmmpE92WlDbm9rNRd/EbRb+Gqf908T2DMfuHjjJlksiK2RbHVOdD/MqSw==", + "requires": { + "big.js": "^5.2.2", + "emojis-list": "^3.0.0", + "json5": "^2.1.2" + } + }, + "schema-utils": { + "version": "3.3.0", + "resolved": "https://registry.npmjs.org/schema-utils/-/schema-utils-3.3.0.tgz", + "integrity": "sha512-pN/yOAvcC+5rQ5nERGuwrjLlYvLTbCibnZ1I7B1LaiAz9BRBlE9GMgE/eqV30P7aJQUf7Ddimy/RsbYO/GrVGg==", + "requires": { + "@types/json-schema": "^7.0.8", + "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==" + }, + "webpack-sources": { + "version": "1.4.3", + "resolved": "https://registry.npmjs.org/webpack-sources/-/webpack-sources-1.4.3.tgz", + "integrity": "sha512-lgTS3Xhv1lCOKo7SA5TjKXMjpSM4sBjNV5+q2bqesbSPs5FjGmU6jjtBSkX9b4qW87vDIsCIlUPOEhbZrMdjeQ==", + "requires": { + "source-list-map": "^2.0.0", + "source-map": "~0.6.1" + } + } + } + }, + "core-js": { + "version": "2.5.7", + "resolved": "https://registry.npmjs.org/core-js/-/core-js-2.5.7.tgz", + "integrity": "sha512-RszJCAxg/PP6uzXVXL6BsxSXx/B05oJAQ2vkJRjyjrEcNVycaqOmNb5OTxZPE3xa5gwZduqza6L9JOCenh/Ecw==" + }, + "core-js-compat": { + "version": "3.39.0", + "resolved": "https://registry.npmjs.org/core-js-compat/-/core-js-compat-3.39.0.tgz", + "integrity": "sha512-VgEUx3VwlExr5no0tXlBt+silBvhTryPwCXRI2Id1PN8WTKu7MreethvddqOubrYxkFdv/RnYrqlv1sFNAUelw==", + "dev": true, + "requires": { + "browserslist": "^4.24.2" + } + }, + "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==" + }, + "cosmiconfig": { + "version": "5.2.1", + "resolved": "https://registry.npmjs.org/cosmiconfig/-/cosmiconfig-5.2.1.tgz", + "integrity": "sha512-H65gsXo1SKjf8zmrJ67eJk8aIRKV5ff2D4uKZIBZShbhGSpEmsQOPW/SKMKYhSTrqR7ufy6RP69rPogdaPh/kA==", + "requires": { + "import-fresh": "^2.0.0", + "is-directory": "^0.3.1", + "js-yaml": "^3.13.1", + "parse-json": "^4.0.0" + }, + "dependencies": { + "import-fresh": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/import-fresh/-/import-fresh-2.0.0.tgz", + "integrity": "sha512-eZ5H8rcgYazHbKC3PG4ClHNykCSxtAhxSSEM+2mb+7evD2CKF5V7c0dNum7AdpDh0ZdICwZY9sRSn8f+KH96sg==", + "requires": { + "caller-path": "^2.0.0", + "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": "sha512-GnlH6vxLymXJNMBo7XP1fJIzBFbdYt49CuTwmB/6N53t+kMPRMFKz783LlQ4tv28XoQfMWinAJX6WCGf2IlaIw==" + } + } + }, + "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==", + "requires": { + "bn.js": "^4.1.0", + "elliptic": "^6.5.3" + }, + "dependencies": { + "bn.js": { + "version": "4.12.1", + "resolved": "https://registry.npmjs.org/bn.js/-/bn.js-4.12.1.tgz", + "integrity": "sha512-k8TVBiPkPJT9uHLdOKfFpqcfprwBFOAAXXozRubr7R7PfIuKvQlzcI4M0pALeqXN09vdaMbUdUj+pass+uULAg==" + } + } + }, + "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==", + "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==", + "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-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.2", + "resolved": "https://registry.npmjs.org/semver/-/semver-5.7.2.tgz", + "integrity": "sha512-cBznnQ9KjJqU67B52RMC65CMarK2600WFnbkcaiwWq3xy/5haFJlshgnpjovMVJ+Hff49d8GEn0b87C5pDQ10g==", + "dev": true + } + } + }, + "crypto-browserify": { + "version": "3.12.1", + "resolved": "https://registry.npmjs.org/crypto-browserify/-/crypto-browserify-3.12.1.tgz", + "integrity": "sha512-r4ESw/IlusD17lgQi1O20Fa3qNnsckR126TdUuBgAu7GBYSIPvdNyONd3Zrxh0xCwA4+6w/TDArBPsMvhur+KQ==", + "requires": { + "browserify-cipher": "^1.0.1", + "browserify-sign": "^4.2.3", + "create-ecdh": "^4.0.4", + "create-hash": "^1.2.0", + "create-hmac": "^1.1.7", + "diffie-hellman": "^5.0.3", + "hash-base": "~3.0.4", + "inherits": "^2.0.4", + "pbkdf2": "^3.1.2", + "public-encrypt": "^4.0.3", + "randombytes": "^2.1.0", + "randomfill": "^1.0.4" + } + }, + "css-loader": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/css-loader/-/css-loader-1.0.1.tgz", + "integrity": "sha512-+ZHAZm/yqvJ2kDtPne3uX0C+Vr3Zn5jFn2N4HywtS5ujwvsVkyg0VArEXpl3BgczDA8anieki1FIzhchX4yrDw==", + "requires": { + "babel-code-frame": "^6.26.0", + "css-selector-tokenizer": "^0.7.0", + "icss-utils": "^2.1.0", + "loader-utils": "^1.0.2", + "lodash": "^4.17.11", + "postcss": "^6.0.23", + "postcss-modules-extract-imports": "^1.2.0", + "postcss-modules-local-by-default": "^1.2.0", + "postcss-modules-scope": "^1.1.0", + "postcss-modules-values": "^1.3.0", + "postcss-value-parser": "^3.3.0", + "source-list-map": "^2.0.0" + }, + "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==", + "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==", + "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==", + "requires": { + "color-name": "1.1.3" + } + }, + "postcss": { + "version": "6.0.23", + "resolved": "https://registry.npmjs.org/postcss/-/postcss-6.0.23.tgz", + "integrity": "sha512-soOk1h6J3VMTZtVeVpv15/Hpdl2cBLX3CAw4TAbkpTJiNPk9YP/zWcD1ND+xEtvyuuvKzbxliTOIyvkSeSJ6ag==", + "requires": { + "chalk": "^2.4.1", + "source-map": "^0.6.1", + "supports-color": "^5.4.0" + } + }, + "postcss-value-parser": { + "version": "3.3.1", + "resolved": "https://registry.npmjs.org/postcss-value-parser/-/postcss-value-parser-3.3.1.tgz", + "integrity": "sha512-pISE66AbVkp4fDQ7VHBwRNXzAAKJjw4Vw7nWI/+Q3vuly7SNfgYXvm6i5IgFylHGK5sP/xHAbB7N49OS4gWNyQ==" + }, + "source-map": { + "version": "0.6.1", + "resolved": "https://registry.npmjs.org/source-map/-/source-map-0.6.1.tgz", + "integrity": "sha512-UjgapumWlbMhkBgzT7Ykc5YXUT46F0iKu8SGXq0bcwP5dz/h0Plj6enJqjz1Zbq2l5WaqYnrVbwWOWMyF3F47g==" + }, + "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" + } + } + } + }, + "css-mediaquery": { + "version": "0.1.2", + "resolved": "https://registry.npmjs.org/css-mediaquery/-/css-mediaquery-0.1.2.tgz", + "integrity": "sha512-COtn4EROW5dBGlE/4PiKnh6rZpAPxDeFLaEEwt4i10jpDMFt2EhQGS79QmmrO+iKCHv0PU/HrOWEhijFd1x99Q==" + }, + "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==", + "dev": true, + "requires": { + "boolbase": "^1.0.0", + "css-what": "^6.1.0", + "domhandler": "^5.0.2", + "domutils": "^3.0.1", + "nth-check": "^2.0.1" + } + }, + "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==", + "requires": { + "cssesc": "^3.0.0", + "fastparse": "^1.1.2" + } + }, + "css-tree": { + "version": "1.1.3", + "resolved": "https://registry.npmjs.org/css-tree/-/css-tree-1.1.3.tgz", + "integrity": "sha512-tRpdppF7TRazZrjJ6v3stzv93qxRcSsFmW6cX0Zm2NVKpxE1WV1HblnghVv9TreireHkqI/VDEsfolRF1p6y7Q==", + "requires": { + "mdn-data": "2.0.14", + "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==" + } + } + }, + "css-vendor": { + "version": "0.3.8", + "resolved": "https://registry.npmjs.org/css-vendor/-/css-vendor-0.3.8.tgz", + "integrity": "sha512-Vx/Vl3zsHj32Z+WTNzGjd2iSbSIJTYHMmyGUT2nzCjj0Xk4qLfwpQ8nF6TQ5oo3Cf0s/An3DTc7LclH1BkAXbQ==", + "requires": { + "is-in-browser": "^1.0.2" + } + }, + "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 + }, + "cssesc": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/cssesc/-/cssesc-3.0.0.tgz", + "integrity": "sha512-/Tb/JcjK111nNScGob5MNtsntNM1aCNUDipB/TkwZFhyDrrE47SOx/18wF2bbjgc3ZzCSKW1T5nt5EbFoAz/Vg==" + }, + "cssom": { + "version": "0.3.8", + "resolved": "https://registry.npmjs.org/cssom/-/cssom-0.3.8.tgz", + "integrity": "sha512-b0tGHbfegbhPJpxpiBPU2sCkigAqtM9O121le6bbOlgyV+NyGyCmVfJ6QW9eRjz8CpNfWEOYBIMIGRYkLwsIYg==", + "dev": true + }, + "cssstyle": { + "version": "0.2.37", + "resolved": "https://registry.npmjs.org/cssstyle/-/cssstyle-0.2.37.tgz", + "integrity": "sha512-FUpKc+1FNBsHUr9IsfSGCovr8VuGOiiuzlgCyppKBjJi2jYTOFLN3oiiNRMIvYqbFzF38mqKj4BgcevzU5/kIA==", + "dev": true, + "requires": { + "cssom": "0.3.x" + } + }, + "cyclist": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/cyclist/-/cyclist-1.0.2.tgz", + "integrity": "sha512-0sVXIohTfLqVIW3kb/0n6IiWF3Ifj5nm2XaSrLq2DI6fKIGa2fYAZdk917rUneaeLVpYfFcyXE2ft0fe3remsA==" + }, + "dashdash": { + "version": "1.14.1", + "resolved": "https://registry.npmjs.org/dashdash/-/dashdash-1.14.1.tgz", + "integrity": "sha512-jRFi8UDGo6j+odZiEpjazZaWqEal3w/basFjQHQEwVtZJGDpxbH1MeYluwCS8Xq5wmLJooDlMgvVarmWfGM44g==", + "requires": { + "assert-plus": "^1.0.0" + } + }, + "data-view-buffer": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/data-view-buffer/-/data-view-buffer-1.0.1.tgz", + "integrity": "sha512-0lht7OugA5x3iJLOWFhWK/5ehONdprk0ISXqVFn/NFrDu+cuc8iADFrGQz5BnRK7LLU3JmkbXSxaqX+/mXYtUA==", + "dev": true, + "requires": { + "call-bind": "^1.0.6", + "es-errors": "^1.3.0", + "is-data-view": "^1.0.1" + } + }, + "data-view-byte-length": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/data-view-byte-length/-/data-view-byte-length-1.0.1.tgz", + "integrity": "sha512-4J7wRJD3ABAzr8wP+OcIcqq2dlUKp4DVflx++hs5h5ZKydWMI6/D/fAot+yh6g2tHh8fLFTvNOaVN357NvSrOQ==", + "dev": true, + "requires": { + "call-bind": "^1.0.7", + "es-errors": "^1.3.0", + "is-data-view": "^1.0.1" + } + }, + "data-view-byte-offset": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/data-view-byte-offset/-/data-view-byte-offset-1.0.0.tgz", + "integrity": "sha512-t/Ygsytq+R995EJ5PZlD4Cu56sWa8InXySaViRzw9apusqsOO2bQP+SbYzAhR0pFKoB+43lYy8rWban9JSuXnA==", + "dev": true, + "requires": { + "call-bind": "^1.0.6", + "es-errors": "^1.3.0", + "is-data-view": "^1.0.1" + } + }, + "debug": { + "version": "4.3.7", + "resolved": "https://registry.npmjs.org/debug/-/debug-4.3.7.tgz", + "integrity": "sha512-Er2nc/H7RrMXZBFCEim6TCmMk02Z8vLC2Rbi1KEBggpo0fS6l0S1nnapwmIi3yW/+GOJap1Krg4w0Hg80oCqgQ==", + "requires": { + "ms": "^2.1.3" + } + }, + "decamelize": { + "version": "1.2.0", + "resolved": "https://registry.npmjs.org/decamelize/-/decamelize-1.2.0.tgz", + "integrity": "sha512-z2S+W9X73hAUUki+N+9Za2lBlun89zigOyGrsax+KUQ6wKW4ZoWpEYBkGhQjwAjjDCkWxhY0VKEhk8wzY7F5cA==" + }, + "decimal.js": { + "version": "10.4.3", + "resolved": "https://registry.npmjs.org/decimal.js/-/decimal.js-10.4.3.tgz", + "integrity": "sha512-VBBaLc1MgL5XpzgIP7ny5Z6Nx3UrRkIViUkPUdtl9aya5amy3De1gsUUSB1g3+3sExYNjCAsAznmukyxCb1GRA==" + }, + "decode-html": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/decode-html/-/decode-html-2.0.0.tgz", + "integrity": "sha512-lVJ+EBozhAXA2nSQG+xAgcD0P5K3uejnIIvM09uoQfS8AALkQ+HhHcEUvKovXi0EIpIZWjm0y8X7ULjaJpgY9w==" + }, + "decode-uri-component": { + "version": "0.2.2", + "resolved": "https://registry.npmjs.org/decode-uri-component/-/decode-uri-component-0.2.2.tgz", + "integrity": "sha512-FqUYQ+8o158GyGTrMFJms9qh3CqTKvAqgqsTnkLI8sKu0028orqBhxNMFkFen0zGyg6epACD32pjVk58ngIErQ==" + }, + "decompress": { + "version": "4.2.1", + "resolved": "https://registry.npmjs.org/decompress/-/decompress-4.2.1.tgz", + "integrity": "sha512-e48kc2IjU+2Zw8cTb6VZcJQ3lgVbS4uuB1TfCHbiZIP/haNXm+SVyhu+87jts5/3ROpd82GSVCoNs/z8l4ZOaQ==", + "requires": { + "decompress-tar": "^4.0.0", + "decompress-tarbz2": "^4.0.0", + "decompress-targz": "^4.0.0", + "decompress-unzip": "^4.0.1", + "graceful-fs": "^4.1.10", + "make-dir": "^1.0.0", + "pify": "^2.3.0", + "strip-dirs": "^2.0.0" + }, + "dependencies": { + "make-dir": { + "version": "1.3.0", + "resolved": "https://registry.npmjs.org/make-dir/-/make-dir-1.3.0.tgz", + "integrity": "sha512-2w31R7SJtieJJnQtGc7RVL2StM2vGYVfqUOvUDxH6bC6aJTxPxTF0GnIgCyu7tjockiUWAYQRbxa7vKn34s5sQ==", + "requires": { + "pify": "^3.0.0" + }, + "dependencies": { + "pify": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/pify/-/pify-3.0.0.tgz", + "integrity": "sha512-C3FsVNH1udSEX48gGX1xfvwTWfsYWj5U+8/uK15BGzIGrKoUpghX8hWZwa/OFnakBiiVNmBvemTJR5mcy7iPcg==" + } + } + }, + "pify": { + "version": "2.3.0", + "resolved": "https://registry.npmjs.org/pify/-/pify-2.3.0.tgz", + "integrity": "sha512-udgsAY+fTnvv7kI7aaxbqwWNb0AHiB0qBO89PZKPkoTmGOgdbrHDKD+0B2X4uTfJ/FT1R09r9gTsjUjNJotuog==" + } + } + }, + "decompress-response": { + "version": "3.3.0", + "resolved": "https://registry.npmjs.org/decompress-response/-/decompress-response-3.3.0.tgz", + "integrity": "sha512-BzRPQuY1ip+qDonAOz42gRm/pg9F768C+npV/4JOsxRC2sq+Rlk+Q4ZCAsOhnIaMrgarILY+RMUIvMmmX1qAEA==", + "requires": { + "mimic-response": "^1.0.0" + } + }, + "decompress-tar": { + "version": "4.1.1", + "resolved": "https://registry.npmjs.org/decompress-tar/-/decompress-tar-4.1.1.tgz", + "integrity": "sha512-JdJMaCrGpB5fESVyxwpCx4Jdj2AagLmv3y58Qy4GE6HMVjWz1FeVQk1Ct4Kye7PftcdOo/7U7UKzYBJgqnGeUQ==", + "requires": { + "file-type": "^5.2.0", + "is-stream": "^1.1.0", + "tar-stream": "^1.5.2" + }, + "dependencies": { + "file-type": { + "version": "5.2.0", + "resolved": "https://registry.npmjs.org/file-type/-/file-type-5.2.0.tgz", + "integrity": "sha512-Iq1nJ6D2+yIO4c8HHg4fyVb8mAJieo1Oloy1mLLaB2PvezNedhBVm+QU7g0qM42aiMbRXTxKKwGD17rjKNJYVQ==" + } + } + }, + "decompress-tarbz2": { + "version": "4.1.1", + "resolved": "https://registry.npmjs.org/decompress-tarbz2/-/decompress-tarbz2-4.1.1.tgz", + "integrity": "sha512-s88xLzf1r81ICXLAVQVzaN6ZmX4A6U4z2nMbOwobxkLoIIfjVMBg7TeguTUXkKeXni795B6y5rnvDw7rxhAq9A==", + "requires": { + "decompress-tar": "^4.1.0", + "file-type": "^6.1.0", + "is-stream": "^1.1.0", + "seek-bzip": "^1.0.5", + "unbzip2-stream": "^1.0.9" + }, + "dependencies": { + "file-type": { + "version": "6.2.0", + "resolved": "https://registry.npmjs.org/file-type/-/file-type-6.2.0.tgz", + "integrity": "sha512-YPcTBDV+2Tm0VqjybVd32MHdlEGAtuxS3VAYsumFokDSMG+ROT5wawGlnHDoz7bfMcMDt9hxuXvXwoKUx2fkOg==" + } + } + }, + "decompress-targz": { + "version": "4.1.1", + "resolved": "https://registry.npmjs.org/decompress-targz/-/decompress-targz-4.1.1.tgz", + "integrity": "sha512-4z81Znfr6chWnRDNfFNqLwPvm4db3WuZkqV+UgXQzSngG3CEKdBkw5jrv3axjjL96glyiiKjsxJG3X6WBZwX3w==", + "requires": { + "decompress-tar": "^4.1.1", + "file-type": "^5.2.0", + "is-stream": "^1.1.0" + }, + "dependencies": { + "file-type": { + "version": "5.2.0", + "resolved": "https://registry.npmjs.org/file-type/-/file-type-5.2.0.tgz", + "integrity": "sha512-Iq1nJ6D2+yIO4c8HHg4fyVb8mAJieo1Oloy1mLLaB2PvezNedhBVm+QU7g0qM42aiMbRXTxKKwGD17rjKNJYVQ==" + } + } + }, + "decompress-unzip": { + "version": "4.0.1", + "resolved": "https://registry.npmjs.org/decompress-unzip/-/decompress-unzip-4.0.1.tgz", + "integrity": "sha512-1fqeluvxgnn86MOh66u8FjbtJpAFv5wgCT9Iw8rcBqQcCo5tO8eiJw7NNTrvt9n4CRBVq7CstiS922oPgyGLrw==", + "requires": { + "file-type": "^3.8.0", + "get-stream": "^2.2.0", + "pify": "^2.3.0", + "yauzl": "^2.4.2" + }, + "dependencies": { + "file-type": { + "version": "3.9.0", + "resolved": "https://registry.npmjs.org/file-type/-/file-type-3.9.0.tgz", + "integrity": "sha512-RLoqTXE8/vPmMuTI88DAzhMYC99I8BWv7zYP4A1puo5HIjEJ5EX48ighy4ZyKMG9EDXxBgW6e++cn7d1xuFghA==" + }, + "get-stream": { + "version": "2.3.1", + "resolved": "https://registry.npmjs.org/get-stream/-/get-stream-2.3.1.tgz", + "integrity": "sha512-AUGhbbemXxrZJRD5cDvKtQxLuYaIbNtDTK8YqupCI393Q2KSTreEsLUN3ZxAWFGiKTzL6nKuzfcIvieflUX9qA==", + "requires": { + "object-assign": "^4.0.1", + "pinkie-promise": "^2.0.0" + } + }, + "pify": { + "version": "2.3.0", + "resolved": "https://registry.npmjs.org/pify/-/pify-2.3.0.tgz", + "integrity": "sha512-udgsAY+fTnvv7kI7aaxbqwWNb0AHiB0qBO89PZKPkoTmGOgdbrHDKD+0B2X4uTfJ/FT1R09r9gTsjUjNJotuog==" + } + } + }, + "deep-equal": { + "version": "1.1.2", + "resolved": "https://registry.npmjs.org/deep-equal/-/deep-equal-1.1.2.tgz", + "integrity": "sha512-5tdhKF6DbU7iIzrIOa1AOUt39ZRm13cmL1cGEh//aqR8x9+tNfbywRf0n5FD/18OKMdo7DNEtrX2t22ZAkI+eg==", + "dev": true, + "requires": { + "is-arguments": "^1.1.1", + "is-date-object": "^1.0.5", + "is-regex": "^1.1.4", + "object-is": "^1.1.5", + "object-keys": "^1.1.1", + "regexp.prototype.flags": "^1.5.1" + } + }, + "deep-is": { + "version": "0.1.4", + "resolved": "https://registry.npmjs.org/deep-is/-/deep-is-0.1.4.tgz", + "integrity": "sha512-oIPzksmTg4/MriiaYGO+okXDT7ztn/w3Eptv/+gSIdMdKsJo0u4CfYNFJPy+4SKMuCqGw2wxnA+URMg3t8a/bQ==" + }, + "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" + }, + "dependencies": { + "ip-regex": { + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/ip-regex/-/ip-regex-2.1.0.tgz", + "integrity": "sha512-58yWmlHpp7VYfcdTwMTvwMmqx/Elfxjd9RXTDyMsbL7lLWmhMylLEqiYVLKuLzOZqVgiWXD9MfR62Vv89VRxkw==", + "dev": true + } + } + }, + "default-require-extensions": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/default-require-extensions/-/default-require-extensions-1.0.0.tgz", + "integrity": "sha512-Dn2eAftOqXhNXs5f/Xjn7QTZ6kDYkx7u0EXQInN1oyYwsZysu11q7oTtaKcbzLxZRJiDHa8VmwpWmb4lY5FqgA==", + "dev": true, + "requires": { + "strip-bom": "^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" + } + }, + "define-properties": { + "version": "1.2.1", + "resolved": "https://registry.npmjs.org/define-properties/-/define-properties-1.2.1.tgz", + "integrity": "sha512-8QmQKqEASLd5nx0U1B1okLElbUuuttJ/AnYmRXbbbGDWh6uS208EjD4Xqq/I9wK7u0v6O08XhTWnt5XtEbR6Dg==", + "requires": { + "define-data-property": "^1.0.1", + "has-property-descriptors": "^1.0.0", + "object-keys": "^1.1.1" + } + }, + "define-property": { + "version": "2.0.2", + "resolved": "https://registry.npmjs.org/define-property/-/define-property-2.0.2.tgz", + "integrity": "sha512-jwK2UV4cnPpbcG7+VRARKTZPUWowwXA8bzH5NP6ud0oeAxyYPuGZUAC7hMugpCdz4BeSZl2Dl9k66CHJ/46ZYQ==", + "requires": { + "is-descriptor": "^1.0.2", + "isobject": "^3.0.1" + } + }, + "del": { + "version": "6.1.1", + "resolved": "https://registry.npmjs.org/del/-/del-6.1.1.tgz", + "integrity": "sha512-ua8BhapfP0JUJKC/zV9yHHDW/rDoDxP4Zhn3AkA6/xT6gY7jYXJiaeyBZznYVujhZZET+UgcbZiQ7sN3WqcImg==", + "dev": true, + "requires": { + "globby": "^11.0.1", + "graceful-fs": "^4.2.4", + "is-glob": "^4.0.1", + "is-path-cwd": "^2.2.0", + "is-path-inside": "^3.0.2", + "p-map": "^4.0.0", + "rimraf": "^3.0.2", + "slash": "^3.0.0" + }, + "dependencies": { + "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" + } + }, + "slash": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/slash/-/slash-3.0.0.tgz", + "integrity": "sha512-g9Q1haeby36OSStwb4ntCGGGaKsaVSjQ68fBxoQcutl5fS1vuY18H3wSt3jFyFtrkx+Kz0V1G85A4MyAdDMi2Q==", + "dev": true + } + } + }, + "delayed-stream": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/delayed-stream/-/delayed-stream-1.0.0.tgz", + "integrity": "sha512-ZySD7Nf91aLB0RxL4KGrKHBXl7Eds1DAmEdcoVawXnLD7SDhpNgtuII2aAkg7a7QS41jxPSZ17p4VdGnMHk3MQ==" + }, + "depd": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/depd/-/depd-2.0.0.tgz", + "integrity": "sha512-g7nH6P6dyDioJogAAGprGpCtVImJhpPk/roCzdb3fIh61/s/nPsfR6onyMwkCAR/OlC3yBC0lESvUoQEAssIrw==", + "dev": true + }, + "des.js": { + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/des.js/-/des.js-1.1.0.tgz", + "integrity": "sha512-r17GxjhUCjSRy8aiJpr8/UadFIzMzJGexI3Nmz4ADi9LYSFx4gTBp80+NaX/YsXWWLhpZ7v/v/ubEc/bCNfKwg==", + "requires": { + "inherits": "^2.0.1", + "minimalistic-assert": "^1.0.0" + } + }, + "destroy": { + "version": "1.2.0", + "resolved": "https://registry.npmjs.org/destroy/-/destroy-1.2.0.tgz", + "integrity": "sha512-2sJGJTaXIIaR1w4iJSNoN0hnMY7Gpc/n8D4qSCJw8QqFWXf7cuAgnEHxBpweaVcPevC2l3KpjYCx3NypQQgaJg==", + "dev": true + }, + "detect-file": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/detect-file/-/detect-file-1.0.0.tgz", + "integrity": "sha512-DtCOLG98P007x7wiiOmfI0fi3eIKyWiLTGJ2MDnVi/E04lWGbf+JzrRHMm0rgIIZJGtHpKpbVgLWHrv8xXpc3Q==", + "dev": true + }, + "detect-indent": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/detect-indent/-/detect-indent-4.0.0.tgz", + "integrity": "sha512-BDKtmHlOzwI7iRuEkhzsnPoi5ypEhWAJB5RvHWe1kMr06js3uK5B3734i3ui5Yd+wOJV1cpE4JnivPD283GU/A==", + "dev": true, + "requires": { + "repeating": "^2.0.0" + } + }, + "detect-node": { + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/detect-node/-/detect-node-2.1.0.tgz", + "integrity": "sha512-T0NIuQpnTvFDATNuHN5roPwSBG83rFsuO+MXXH9/3N1eFbn4wcPjttvjMLEPWJ0RGUYgQE7cGgS3tNxbqCGM7g==", + "dev": true + }, + "diff": { + "version": "3.5.0", + "resolved": "https://registry.npmjs.org/diff/-/diff-3.5.0.tgz", + "integrity": "sha512-A46qtFgd+g7pDZinpnwiRJtxbC1hpgf0uzP3iG89scHk0AUC7A1TGxf5OiiOUv/JMZR8GOt8hL900hV0bOy5xA==", + "dev": true + }, + "diff-match-patch": { + "version": "1.0.4", + "resolved": "https://registry.npmjs.org/diff-match-patch/-/diff-match-patch-1.0.4.tgz", + "integrity": "sha512-Uv3SW8bmH9nAtHKaKSanOQmj2DnlH65fUpcrMdfdaOxUG02QQ4YGZ8AE7kKOMisF7UqvOlGKVYWRvezdncW9lg==" + }, + "diffie-hellman": { + "version": "5.0.3", + "resolved": "https://registry.npmjs.org/diffie-hellman/-/diffie-hellman-5.0.3.tgz", + "integrity": "sha512-kqag/Nl+f3GwyK25fhUMYj81BUOrZ9IuJsjIcDE5icNM9FJHAVm3VcUDxdLPoQtTuUylWm6ZIknYJwwaPxsUzg==", + "requires": { + "bn.js": "^4.1.0", + "miller-rabin": "^4.0.0", + "randombytes": "^2.0.0" + }, + "dependencies": { + "bn.js": { + "version": "4.12.1", + "resolved": "https://registry.npmjs.org/bn.js/-/bn.js-4.12.1.tgz", + "integrity": "sha512-k8TVBiPkPJT9uHLdOKfFpqcfprwBFOAAXXozRubr7R7PfIuKvQlzcI4M0pALeqXN09vdaMbUdUj+pass+uULAg==" + } + } + }, + "dir-glob": { + "version": "3.0.1", + "resolved": "https://registry.npmjs.org/dir-glob/-/dir-glob-3.0.1.tgz", + "integrity": "sha512-WkrWp9GR4KXfKGYzOLmTuGVi1UWFfws377n9cc55/tb6DuqyF6pcQ5AbiHEshaDpY9v6oaSr2XCDidGmMwdzIA==", + "requires": { + "path-type": "^4.0.0" + } + }, + "discontinuous-range": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/discontinuous-range/-/discontinuous-range-1.0.0.tgz", + "integrity": "sha512-c68LpLbO+7kP/b1Hr1qs8/BJ09F5khZGTxqxZuhzxpmwJKOgRFHJWIb9/KmqnqHhLdO55aOxFH/EGBvUQbL/RQ==", + "dev": true + }, + "dns-equal": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/dns-equal/-/dns-equal-1.0.0.tgz", + "integrity": "sha512-z+paD6YUQsk+AbGCEM4PrOXSss5gd66QfcVBFTKR/HpFL9jCqikS94HYwKww6fQyO7IxrIIyUu+g0Ka9tUS2Cg==", + "dev": true + }, + "dns-packet": { + "version": "1.3.4", + "resolved": "https://registry.npmjs.org/dns-packet/-/dns-packet-1.3.4.tgz", + "integrity": "sha512-BQ6F4vycLXBvdrJZ6S3gZewt6rcrks9KBgM9vrhW+knGRqc8uEdT7fuCwloc7nny5xNoMJ17HGH0R/6fpo8ECA==", + "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": "sha512-Ix5PrWjphuSoUXV/Zv5gaFHjnaJtb02F2+Si3Ht9dyJ87+Z/lMmy+dpNHtTGraNK958ndXq2i+GLkWsWHcKaBQ==", + "dev": true, + "requires": { + "buffer-indexof": "^1.0.0" + } + }, + "doctrine": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/doctrine/-/doctrine-3.0.0.tgz", + "integrity": "sha512-yS+Q5i3hBf7GBkd4KG8a7eBNNWNGLTaEwwYWUijIYM7zrlYDM0BFXHjjPWlWZ1Rg7UaddZeIDmi9jF3HmqiQ2w==", + "dev": true, + "requires": { + "esutils": "^2.0.2" + } + }, + "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, + "requires": { + "utila": "~0.4" + } + }, + "dom-helpers": { + "version": "3.4.0", + "resolved": "https://registry.npmjs.org/dom-helpers/-/dom-helpers-3.4.0.tgz", + "integrity": "sha512-LnuPJ+dwqKDIyotW1VzmOZ5TONUN7CwkCR5hrgawTUbkBGYdeoNLZo6nNfGkCrjtE1nXXaj7iMMpDa8/d9WoIA==", + "requires": { + "@babel/runtime": "^7.1.2" + } + }, + "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==", + "dev": true, + "requires": { + "domelementtype": "^2.3.0", + "domhandler": "^5.0.2", + "entities": "^4.2.0" + } + }, + "dom-walk": { + "version": "0.1.2", + "resolved": "https://registry.npmjs.org/dom-walk/-/dom-walk-0.1.2.tgz", + "integrity": "sha512-6QvTW9mrGeIegrFXdtQi9pk7O/nSK6lSdXW2eqUspN5LWD7UTji2Fqw5V2YLjBpHEoU9Xl/eUWNpDeZvoyOv2w==" + }, + "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==" + }, + "domelementtype": { + "version": "2.3.0", + "resolved": "https://registry.npmjs.org/domelementtype/-/domelementtype-2.3.0.tgz", + "integrity": "sha512-OLETBj6w0OsagBwdXnPdN0cnMfF9opN69co+7ZrbfPGrdpPVNBUj02spi6B1N7wChLQiPn4CSH/zJvXw56gmHw==", + "dev": true + }, + "domhandler": { + "version": "5.0.3", + "resolved": "https://registry.npmjs.org/domhandler/-/domhandler-5.0.3.tgz", + "integrity": "sha512-cgwlv/1iFQiFnU96XXgROh8xTeetsnJiDsTc7TYCLFd9+/WNkIqPTxiM/8pSd8VIrhXGTf1Ny1q1hquVqDJB5w==", + "dev": true, + "requires": { + "domelementtype": "^2.3.0" + } + }, + "dompurify": { + "version": "2.5.7", + "resolved": "https://registry.npmjs.org/dompurify/-/dompurify-2.5.7.tgz", + "integrity": "sha512-2q4bEI+coQM8f5ez7kt2xclg1XsecaV9ASJk/54vwlfRRNQfDqJz2pzQ8t0Ix/ToBpXlVjrRIx7pFC/o8itG2Q==" + }, + "domutils": { + "version": "3.1.0", + "resolved": "https://registry.npmjs.org/domutils/-/domutils-3.1.0.tgz", + "integrity": "sha512-H78uMmQtI2AhgDJjWeQmHwJJ2bLPD3GMmO7Zja/ZZh84wkm+4ut+IUnUdRa8uCGX88DiVx1j6FRe1XfxEgjEZA==", + "dev": true, + "requires": { + "dom-serializer": "^2.0.0", + "domelementtype": "^2.3.0", + "domhandler": "^5.0.3" + } + }, + "dot-case": { + "version": "3.0.4", + "resolved": "https://registry.npmjs.org/dot-case/-/dot-case-3.0.4.tgz", + "integrity": "sha512-Kv5nKlh6yRrdrGvxeJ2e5y2eRUpkUosIW4A2AS38zwSz27zu7ufDwQPi5Jhs3XAlGNetl3bmnGhQsMtkKJnj3w==", + "dev": true, + "requires": { + "no-case": "^3.0.4", + "tslib": "^2.0.3" + } + }, + "download": { + "version": "8.0.0", + "resolved": "https://registry.npmjs.org/download/-/download-8.0.0.tgz", + "integrity": "sha512-ASRY5QhDk7FK+XrQtQyvhpDKanLluEEQtWl/J7Lxuf/b+i8RYh997QeXvL85xitrmRKVlx9c7eTrcRdq2GS4eA==", + "requires": { + "archive-type": "^4.0.0", + "content-disposition": "^0.5.2", + "decompress": "^4.2.1", + "ext-name": "^5.0.0", + "file-type": "^11.1.0", + "filenamify": "^3.0.0", + "get-stream": "^4.1.0", + "got": "^8.3.1", + "make-dir": "^2.1.0", + "p-event": "^2.1.0", + "pify": "^4.0.1" + } + }, + "duplexer2": { + "version": "0.1.4", + "resolved": "https://registry.npmjs.org/duplexer2/-/duplexer2-0.1.4.tgz", + "integrity": "sha512-asLFVfWWtJ90ZyOUHMqk7/S2w2guQKxUI2itj3d92ADHhxUSbCMGi1f1cBcJ7xM1To+pE/Khbwo1yuNbMEPKeA==", + "requires": { + "readable-stream": "^2.0.2" + } + }, + "duplexer3": { + "version": "0.1.5", + "resolved": "https://registry.npmjs.org/duplexer3/-/duplexer3-0.1.5.tgz", + "integrity": "sha512-1A8za6ws41LQgv9HrE/66jyC5yuSjQ3L/KOpFtoBilsAK2iA2wuS5rTt1OCzIvtS2V7nVmedsUU+DGRcjBmOYA==" + }, + "duplexify": { + "version": "3.7.1", + "resolved": "https://registry.npmjs.org/duplexify/-/duplexify-3.7.1.tgz", + "integrity": "sha512-07z8uv2wMyS51kKhD1KsdXJg5WQ6t93RneqRxUHnskXVtlYYkLqM0gqStQZ3pj073g687jPCHrqNfCzawLYh5g==", + "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": "sha512-eh9O+hwRHNbG4BLTjEl3nw044CkGm5X6LoaCf7LPp7UU8Qrt47JYNi6nPX8xjW97TKGKm1ouctg0QSpZe9qrnw==", + "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": "sha512-WMwm9LhRUo+WUaRN+vRuETqG89IgZphVSNkdFgeb6sS/E4OrDIN7t48CAewSHXc6C8lefD8KKfr5vY61brQlow==", + "dev": true + }, + "electron-to-chromium": { + "version": "1.5.62", + "resolved": "https://registry.npmjs.org/electron-to-chromium/-/electron-to-chromium-1.5.62.tgz", + "integrity": "sha512-t8c+zLmJHa9dJy96yBZRXGQYoiCEnHYgFwn1asvSPZSUdVxnB62A4RASd7k41ytG3ErFBA0TpHlKg9D9SQBmLg==" + }, + "elliptic": { + "version": "6.6.1", + "resolved": "https://registry.npmjs.org/elliptic/-/elliptic-6.6.1.tgz", + "integrity": "sha512-RaddvvMatK2LJHqFJ+YA4WysVN5Ita9E35botqIYspQ4TkRAlCicdzKOjlyv/1Za5RyTNn7di//eEV0uTAfe3g==", + "requires": { + "bn.js": "^4.11.9", + "brorand": "^1.1.0", + "hash.js": "^1.0.0", + "hmac-drbg": "^1.0.1", + "inherits": "^2.0.4", + "minimalistic-assert": "^1.0.1", + "minimalistic-crypto-utils": "^1.0.1" + }, + "dependencies": { + "bn.js": { + "version": "4.12.1", + "resolved": "https://registry.npmjs.org/bn.js/-/bn.js-4.12.1.tgz", + "integrity": "sha512-k8TVBiPkPJT9uHLdOKfFpqcfprwBFOAAXXozRubr7R7PfIuKvQlzcI4M0pALeqXN09vdaMbUdUj+pass+uULAg==" + } + } + }, + "email-addresses": { + "version": "3.1.0", + "resolved": "https://registry.npmjs.org/email-addresses/-/email-addresses-3.1.0.tgz", + "integrity": "sha512-k0/r7GrWVL32kZlGwfPNgB2Y/mMXVTq/decgLczm/j34whdaspNrZO8CnXPf1laaHxI6ptUlsnAxN+UAPw+fzg==", + "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==" + }, + "encodeurl": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/encodeurl/-/encodeurl-2.0.0.tgz", + "integrity": "sha512-Q0n9HRi4m6JuGIV1eFlmvJB7ZEVxu93IrMyiMsGC0lrMJMWzRgx6WGquyfQgZVb31vhGgXnfmPNNXmxnOkRBrg==", + "dev": true + }, + "encoding": { + "version": "0.1.13", + "resolved": "https://registry.npmjs.org/encoding/-/encoding-0.1.13.tgz", + "integrity": "sha512-ETBauow1T35Y/WZMkio9jiM0Z5xjHHmJ4XmjZOq1l/dXz3lr2sRn87nJy20RupqSh1F2m3HHPSp8ShIPQJrJ3A==", + "dev": true, + "requires": { + "iconv-lite": "^0.6.2" + } + }, + "encoding-sniffer": { + "version": "0.2.0", + "resolved": "https://registry.npmjs.org/encoding-sniffer/-/encoding-sniffer-0.2.0.tgz", + "integrity": "sha512-ju7Wq1kg04I3HtiYIOrUrdfdDvkyO9s5XM8QAj/bN61Yo/Vb4vgJxy5vi4Yxk01gWHbrofpPtpxM8bKger9jhg==", + "dev": true, + "requires": { + "iconv-lite": "^0.6.3", + "whatwg-encoding": "^3.1.1" + } + }, + "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==", + "requires": { + "once": "^1.4.0" + } + }, + "enhanced-resolve": { + "version": "0.9.1", + "resolved": "https://registry.npmjs.org/enhanced-resolve/-/enhanced-resolve-0.9.1.tgz", + "integrity": "sha512-kxpoMgrdtkXZ5h0SeraBS1iRntpTpQ3R8ussdb38+UAFnMGX5DDyJXePm+OCHOcoXvHDw7mc2erbJBpDnl7TPw==", + "dev": true, + "requires": { + "graceful-fs": "^4.1.2", + "memory-fs": "^0.2.0", + "tapable": "^0.1.8" + } + }, + "entities": { + "version": "4.5.0", + "resolved": "https://registry.npmjs.org/entities/-/entities-4.5.0.tgz", + "integrity": "sha512-V0hjH4dGPh9Ao5p0MoRY6BVqtwCjhz6vI5LT8AJ55H+4g9/4vbHx1I54fS0XuclLhDHArPQCiMjDxjaL8fPxhw==", + "dev": true + }, + "enzyme": { + "version": "3.10.0", + "resolved": "https://registry.npmjs.org/enzyme/-/enzyme-3.10.0.tgz", + "integrity": "sha512-p2yy9Y7t/PFbPoTvrWde7JIYB2ZyGC+NgTNbVEGvZ5/EyoYSr9aG/2rSbVvyNvMHEhw9/dmGUJHWtfQIEiX9pg==", + "dev": true, + "requires": { + "array.prototype.flat": "^1.2.1", + "cheerio": "^1.0.0-rc.2", + "function.prototype.name": "^1.1.0", + "has": "^1.0.3", + "html-element-map": "^1.0.0", + "is-boolean-object": "^1.0.0", + "is-callable": "^1.1.4", + "is-number-object": "^1.0.3", + "is-regex": "^1.0.4", + "is-string": "^1.0.4", + "is-subset": "^0.1.1", + "lodash.escape": "^4.0.1", + "lodash.isequal": "^4.5.0", + "object-inspect": "^1.6.0", + "object-is": "^1.0.1", + "object.assign": "^4.1.0", + "object.entries": "^1.0.4", + "object.values": "^1.0.4", + "raf": "^3.4.0", + "rst-selector-parser": "^2.2.3", + "string.prototype.trim": "^1.1.2" + } + }, + "enzyme-adapter-react-16": { + "version": "1.3.0", + "resolved": "https://registry.npmjs.org/enzyme-adapter-react-16/-/enzyme-adapter-react-16-1.3.0.tgz", + "integrity": "sha512-TRX+Y5QPreGmqfFU3bPsJUmqNZX9paQCmQ93kj7hnfQoZzufO/pahGN/OviWn60YcgaQojhf0AWv3PxrIDARbA==", + "dev": true, + "requires": { + "enzyme-adapter-utils": "^1.6.0", + "function.prototype.name": "^1.1.0", + "object.assign": "^4.1.0", + "object.values": "^1.0.4", + "prop-types": "^15.6.2", + "react-is": "^16.4.2", + "react-test-renderer": "^16.0.0-0" + } + }, + "enzyme-adapter-utils": { + "version": "1.14.2", + "resolved": "https://registry.npmjs.org/enzyme-adapter-utils/-/enzyme-adapter-utils-1.14.2.tgz", + "integrity": "sha512-1ZC++RlsYRaiOWE5NRaF5OgsMt7F5rn/VuaJIgc7eW/fmgg8eS1/Ut7EugSPPi7VMdWMLcymRnMF+mJUJ4B8KA==", + "dev": true, + "requires": { + "airbnb-prop-types": "^2.16.0", + "function.prototype.name": "^1.1.6", + "hasown": "^2.0.0", + "object.assign": "^4.1.5", + "object.fromentries": "^2.0.7", + "prop-types": "^15.8.1", + "semver": "^6.3.1" + } + }, + "errno": { + "version": "0.1.8", + "resolved": "https://registry.npmjs.org/errno/-/errno-0.1.8.tgz", + "integrity": "sha512-dJ6oBr5SQ1VSd9qkk7ByRgb/1SH4JZjCHSW/mr63/QcXO9zLVxvJ6Oy13nio03rxpSnVDDjFor75SjVeZWPW/A==", + "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==", + "requires": { + "is-arrayish": "^0.2.1" + } + }, + "es-abstract": { + "version": "1.23.5", + "resolved": "https://registry.npmjs.org/es-abstract/-/es-abstract-1.23.5.tgz", + "integrity": "sha512-vlmniQ0WNPwXqA0BnmwV3Ng7HxiGlh6r5U6JcTMNx8OilcAGqVJBHJcPjqOMaczU9fRuRK5Px2BdVyPRnKMMVQ==", + "dev": true, + "requires": { + "array-buffer-byte-length": "^1.0.1", + "arraybuffer.prototype.slice": "^1.0.3", + "available-typed-arrays": "^1.0.7", + "call-bind": "^1.0.7", + "data-view-buffer": "^1.0.1", + "data-view-byte-length": "^1.0.1", + "data-view-byte-offset": "^1.0.0", + "es-define-property": "^1.0.0", + "es-errors": "^1.3.0", + "es-object-atoms": "^1.0.0", + "es-set-tostringtag": "^2.0.3", + "es-to-primitive": "^1.2.1", + "function.prototype.name": "^1.1.6", + "get-intrinsic": "^1.2.4", + "get-symbol-description": "^1.0.2", + "globalthis": "^1.0.4", + "gopd": "^1.0.1", + "has-property-descriptors": "^1.0.2", + "has-proto": "^1.0.3", + "has-symbols": "^1.0.3", + "hasown": "^2.0.2", + "internal-slot": "^1.0.7", + "is-array-buffer": "^3.0.4", + "is-callable": "^1.2.7", + "is-data-view": "^1.0.1", + "is-negative-zero": "^2.0.3", + "is-regex": "^1.1.4", + "is-shared-array-buffer": "^1.0.3", + "is-string": "^1.0.7", + "is-typed-array": "^1.1.13", + "is-weakref": "^1.0.2", + "object-inspect": "^1.13.3", + "object-keys": "^1.1.1", + "object.assign": "^4.1.5", + "regexp.prototype.flags": "^1.5.3", + "safe-array-concat": "^1.1.2", + "safe-regex-test": "^1.0.3", + "string.prototype.trim": "^1.2.9", + "string.prototype.trimend": "^1.0.8", + "string.prototype.trimstart": "^1.0.8", + "typed-array-buffer": "^1.0.2", + "typed-array-byte-length": "^1.0.1", + "typed-array-byte-offset": "^1.0.2", + "typed-array-length": "^1.0.6", + "unbox-primitive": "^1.0.2", + "which-typed-array": "^1.1.15" + } + }, + "es-array-method-boxes-properly": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/es-array-method-boxes-properly/-/es-array-method-boxes-properly-1.0.0.tgz", + "integrity": "sha512-wd6JXUmyHmt8T5a2xreUwKcGPq6f1f+WwIJkijUqiGcJz1qqnZgP6XIK+QyIWU5lT7imeNxUll48bziG+TSYcA==", + "dev": true + }, + "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==" + }, + "es-object-atoms": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/es-object-atoms/-/es-object-atoms-1.0.0.tgz", + "integrity": "sha512-MZ4iQ6JwHOBQjahnjwaC1ZtIBH+2ohjamzAO3oaHcXYup7qxjF2fixyH+Q71voWHeOkI2q/TnJao/KfXYIZWbw==", + "dev": true, + "requires": { + "es-errors": "^1.3.0" + } + }, + "es-set-tostringtag": { + "version": "2.0.3", + "resolved": "https://registry.npmjs.org/es-set-tostringtag/-/es-set-tostringtag-2.0.3.tgz", + "integrity": "sha512-3T8uNMC3OQTHkFUsFq8r/BwAXLHvU/9O9mE0fBc/MY5iq/8H7ncvO947LmYA6ldWw9Uh8Yhf25zu6n7nML5QWQ==", + "dev": true, + "requires": { + "get-intrinsic": "^1.2.4", + "has-tostringtag": "^1.0.2", + "hasown": "^2.0.1" + } + }, + "es-shim-unscopables": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/es-shim-unscopables/-/es-shim-unscopables-1.0.2.tgz", + "integrity": "sha512-J3yBRXCzDu4ULnQwxyToo/OjdMx6akgVC7K6few0a7F/0wLtmKKN7I73AH5T2836UuXRqN7Qg+IIUw/+YJksRw==", + "dev": true, + "requires": { + "hasown": "^2.0.0" + } + }, + "es-to-primitive": { + "version": "1.2.1", + "resolved": "https://registry.npmjs.org/es-to-primitive/-/es-to-primitive-1.2.1.tgz", + "integrity": "sha512-QCOllgZJtaUo9miYBcLChTUaHNjJF3PYs1VidD7AwiEj1kYxKeQTctLAezAOH5ZKRH0g2IgPn6KwB4IT8iRpvA==", + "dev": true, + "requires": { + "is-callable": "^1.1.4", + "is-date-object": "^1.0.1", + "is-symbol": "^1.0.2" + } + }, + "es6-object-assign": { + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/es6-object-assign/-/es6-object-assign-1.1.0.tgz", + "integrity": "sha512-MEl9uirslVwqQU369iHNWZXsI8yaZYGg/D65aOgZkeyFJwHYSxilf7rQzXKI7DdDuBPrBXbfk3sl9hJhmd5AUw==" + }, + "es6-promise": { + "version": "3.0.2", + "resolved": "https://registry.npmjs.org/es6-promise/-/es6-promise-3.0.2.tgz", + "integrity": "sha512-CUD62/uqeE0L+EJeypOKuFfM56CFaH4vo+++J76bff0NkeQ2bBmWVCTNxL2hj9HeCYPkof6Gqea0BSeK17gBzA==" + }, + "escalade": { + "version": "3.2.0", + "resolved": "https://registry.npmjs.org/escalade/-/escalade-3.2.0.tgz", + "integrity": "sha512-WUj2qlxaQtO4g6Pq5c29GTcWGDyd8itL8zTlipgECz3JesAiiOKotd8JU6otB3PACgG6xkJUyVhboMS+bje/jA==" + }, + "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==", + "dev": true + }, + "escape-latex": { + "version": "1.2.0", + "resolved": "https://registry.npmjs.org/escape-latex/-/escape-latex-1.2.0.tgz", + "integrity": "sha512-nV5aVWW1K0wEiUIEdZ4erkGGH8mDxGyxSeqPzRNtWP7ataw+/olFObw7hujFWlVjNsaDFw5VZ5NzVSIqRgfTiw==" + }, + "escape-string-regexp": { + "version": "1.0.5", + "resolved": "https://registry.npmjs.org/escape-string-regexp/-/escape-string-regexp-1.0.5.tgz", + "integrity": "sha512-vbRorB5FUQWvla16U8R/qgaFIya2qGzwDrNmCZuYKrbdSUMG6I1ZCGQRefkRVhuOkIGVne7BQ35DSfo1qvJqFg==" + }, + "escodegen": { + "version": "1.14.3", + "resolved": "https://registry.npmjs.org/escodegen/-/escodegen-1.14.3.tgz", + "integrity": "sha512-qFcX0XJkdg+PB3xjZZG/wKSuT1PnQWx57+TVSjIMmILd2yC/6ByYElPwJnslDsuWuSAp4AwJGumarAAmJch5Kw==", + "dev": true, + "requires": { + "esprima": "^4.0.1", + "estraverse": "^4.2.0", + "esutils": "^2.0.2", + "optionator": "^0.8.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, + "optional": true + } + } + }, + "eslint": { + "version": "5.16.0", + "resolved": "https://registry.npmjs.org/eslint/-/eslint-5.16.0.tgz", + "integrity": "sha512-S3Rz11i7c8AA5JPv7xAH+dOyq/Cu/VXHiHXBPOU1k/JAM5dXqQPt3qcrhpHSorXmrpu2g0gkIBVXAqCpzfoZIg==", + "dev": true, + "requires": { + "@babel/code-frame": "^7.0.0", + "ajv": "^6.9.1", + "chalk": "^2.1.0", + "cross-spawn": "^6.0.5", + "debug": "^4.0.1", + "doctrine": "^3.0.0", + "eslint-scope": "^4.0.3", + "eslint-utils": "^1.3.1", + "eslint-visitor-keys": "^1.0.0", + "espree": "^5.0.1", + "esquery": "^1.0.1", + "esutils": "^2.0.2", + "file-entry-cache": "^5.0.1", + "functional-red-black-tree": "^1.0.1", + "glob": "^7.1.2", + "globals": "^11.7.0", + "ignore": "^4.0.6", + "import-fresh": "^3.0.0", + "imurmurhash": "^0.1.4", + "inquirer": "^6.2.2", + "js-yaml": "^3.13.0", + "json-stable-stringify-without-jsonify": "^1.0.1", + "levn": "^0.3.0", + "lodash": "^4.17.11", + "minimatch": "^3.0.4", + "mkdirp": "^0.5.1", + "natural-compare": "^1.4.0", + "optionator": "^0.8.2", + "path-is-inside": "^1.0.2", + "progress": "^2.0.0", + "regexpp": "^2.0.1", + "semver": "^5.5.1", + "strip-ansi": "^4.0.0", + "strip-json-comments": "^2.0.1", + "table": "^5.2.3", + "text-table": "^0.2.0" + }, + "dependencies": { + "ansi-regex": { + "version": "3.0.1", + "resolved": "https://registry.npmjs.org/ansi-regex/-/ansi-regex-3.0.1.tgz", + "integrity": "sha512-+O9Jct8wf++lXxxFc4hc8LsjaSq0HFzzL7cVsw8pRDIPdjKD2mT4ytDZlLuSBZ4cLKZFXIrMGO7DbQCtMJJMKw==", + "dev": true + }, + "ansi-styles": { + "version": "3.2.1", + "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-3.2.1.tgz", + "integrity": "sha512-VT0ZI6kZRdTh8YyJw3SMbYm/u+NqfsAxEpWO0Pf9sq8/e94WxxOpPKx9FR1FlyCtOVDNOQ+8ntlqFxiRc+r5qA==", + "dev": true, + "requires": { + "color-convert": "^1.9.0" + } + }, + "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" + } + }, + "mkdirp": { + "version": "0.5.6", + "resolved": "https://registry.npmjs.org/mkdirp/-/mkdirp-0.5.6.tgz", + "integrity": "sha512-FP+p8RB8OWpF3YZBCrP5gtADmtXApB5AMLn+vdyA+PyxCjrCs00mjyUozssO33cwDeT3wNGdLxJ5M//YqtHAJw==", + "dev": true, + "requires": { + "minimist": "^1.2.6" + } + }, + "semver": { + "version": "5.7.2", + "resolved": "https://registry.npmjs.org/semver/-/semver-5.7.2.tgz", + "integrity": "sha512-cBznnQ9KjJqU67B52RMC65CMarK2600WFnbkcaiwWq3xy/5haFJlshgnpjovMVJ+Hff49d8GEn0b87C5pDQ10g==", + "dev": true + }, + "strip-ansi": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/strip-ansi/-/strip-ansi-4.0.0.tgz", + "integrity": "sha512-4XaJ2zQdCzROZDivEVIDPkcQn8LMFSa8kj8Gxb/Lnwzv9A8VctNZ+lfivC/sV3ivW8ElJTERXZoPBRrZKkNKow==", + "dev": true, + "requires": { + "ansi-regex": "^3.0.0" + } + }, + "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" + } + } + } + }, + "eslint-config-scratch": { + "version": "6.0.0", + "resolved": "https://registry.npmjs.org/eslint-config-scratch/-/eslint-config-scratch-6.0.0.tgz", + "integrity": "sha512-2aW7EVWhjTrwaM54hjAZeRETh/habWeQ5xzTbPO2dG//RtixBztUAmdxqAHKH8MEtmAMsUhf3mRjO1BstO4dGg==", + "dev": true, + "requires": { + "eslint-plugin-react": ">=7.14.2" + } + }, + "eslint-import-resolver-node": { + "version": "0.3.9", + "resolved": "https://registry.npmjs.org/eslint-import-resolver-node/-/eslint-import-resolver-node-0.3.9.tgz", + "integrity": "sha512-WFj2isz22JahUv+B788TlO3N6zL3nNJGU8CcZbPZvVEkBPaJdCV4vy5wyghty5ROFbCRnm132v8BScu5/1BQ8g==", + "dev": true, + "requires": { + "debug": "^3.2.7", + "is-core-module": "^2.13.0", + "resolve": "^1.22.4" + }, + "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" + } + } + } + }, + "eslint-import-resolver-webpack": { + "version": "0.11.1", + "resolved": "https://registry.npmjs.org/eslint-import-resolver-webpack/-/eslint-import-resolver-webpack-0.11.1.tgz", + "integrity": "sha512-eK3zR7xVQR/MaoBWwGuD+CULYVuqe5QFlDukman71aI6IboCGzggDUohHNfu1ZeBnbHcUHJc0ywWoXUBNB6qdg==", + "dev": true, + "requires": { + "array-find": "^1.0.0", + "debug": "^2.6.8", + "enhanced-resolve": "~0.9.0", + "find-root": "^1.1.0", + "has": "^1.0.1", + "interpret": "^1.0.0", + "lodash": "^4.17.4", + "node-libs-browser": "^1.0.0 || ^2.0.0", + "resolve": "^1.10.0", + "semver": "^5.3.0" + }, + "dependencies": { + "debug": { + "version": "2.6.9", + "resolved": "https://registry.npmjs.org/debug/-/debug-2.6.9.tgz", + "integrity": "sha512-bC7ElrdJaJnPbAP+1EotYvqZsb3ecl5wi6Bfi6BJTUcNowp6cvspg0jXznRTKDjm/E7AdgFBVeAPVMNcKGsHMA==", + "dev": true, + "requires": { + "ms": "2.0.0" + } + }, + "ms": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/ms/-/ms-2.0.0.tgz", + "integrity": "sha512-Tpp60P6IUJDTuOq/5Z8cdskzJujfwqfOTkrwIwj7IRISpnkJnT6SyJ4PCPnGMoFjC9ddhal5KVIYtAt97ix05A==", + "dev": true + }, + "semver": { + "version": "5.7.2", + "resolved": "https://registry.npmjs.org/semver/-/semver-5.7.2.tgz", + "integrity": "sha512-cBznnQ9KjJqU67B52RMC65CMarK2600WFnbkcaiwWq3xy/5haFJlshgnpjovMVJ+Hff49d8GEn0b87C5pDQ10g==", + "dev": true + } + } + }, + "eslint-module-utils": { + "version": "2.12.0", + "resolved": "https://registry.npmjs.org/eslint-module-utils/-/eslint-module-utils-2.12.0.tgz", + "integrity": "sha512-wALZ0HFoytlyh/1+4wuZ9FJCD/leWHQzzrxJ8+rebyReSLk7LApMyd3WJaLVoN+D5+WIdJyDK1c6JnE65V4Zyg==", + "dev": true, + "requires": { + "debug": "^3.2.7" + }, + "dependencies": { + "debug": { + "version": "3.2.7", + "resolved": "https://registry.npmjs.org/debug/-/debug-3.2.7.tgz", + "integrity": "sha512-CFjzYYAi4ThfiQvizrFQevTTXHtnCqWfe7x1AhgEscTz6ZbLbfoLRLPugTQyBth6f8ZERVUSyWHFD/7Wu4t1XQ==", + "dev": true, + "requires": { + "ms": "^2.1.1" + } + } + } + }, + "eslint-plugin-import": { + "version": "2.23.4", + "resolved": "https://registry.npmjs.org/eslint-plugin-import/-/eslint-plugin-import-2.23.4.tgz", + "integrity": "sha512-6/wP8zZRsnQFiR3iaPFgh5ImVRM1WN5NUWfTIRqwOdeiGJlBcSk82o1FEVq8yXmy4lkIzTo7YhHCIxlU/2HyEQ==", + "dev": true, + "requires": { + "array-includes": "^3.1.3", + "array.prototype.flat": "^1.2.4", + "debug": "^2.6.9", + "doctrine": "^2.1.0", + "eslint-import-resolver-node": "^0.3.4", + "eslint-module-utils": "^2.6.1", + "find-up": "^2.0.0", + "has": "^1.0.3", + "is-core-module": "^2.4.0", + "minimatch": "^3.0.4", + "object.values": "^1.1.3", + "pkg-up": "^2.0.0", + "read-pkg-up": "^3.0.0", + "resolve": "^1.20.0", + "tsconfig-paths": "^3.9.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" + } + }, + "doctrine": { + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/doctrine/-/doctrine-2.1.0.tgz", + "integrity": "sha512-35mSku4ZXK0vfCuHEDAwt55dg2jNajHZ1odvF+8SSr82EsZY4QmXfuWso8oEd8zRhVObSN18aM0CjSdoBX7zIw==", + "dev": true, + "requires": { + "esutils": "^2.0.2" + } + }, + "ms": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/ms/-/ms-2.0.0.tgz", + "integrity": "sha512-Tpp60P6IUJDTuOq/5Z8cdskzJujfwqfOTkrwIwj7IRISpnkJnT6SyJ4PCPnGMoFjC9ddhal5KVIYtAt97ix05A==", + "dev": true + } + } + }, + "eslint-plugin-jest": { + "version": "22.17.0", + "resolved": "https://registry.npmjs.org/eslint-plugin-jest/-/eslint-plugin-jest-22.17.0.tgz", + "integrity": "sha512-WT4DP4RoGBhIQjv+5D0FM20fAdAUstfYAf/mkufLNTojsfgzc5/IYW22cIg/Q4QBavAZsROQlqppiWDpFZDS8Q==", + "dev": true, + "requires": { + "@typescript-eslint/experimental-utils": "^1.13.0" + } + }, + "eslint-plugin-react": { + "version": "7.24.0", + "resolved": "https://registry.npmjs.org/eslint-plugin-react/-/eslint-plugin-react-7.24.0.tgz", + "integrity": "sha512-KJJIx2SYx7PBx3ONe/mEeMz4YE0Lcr7feJTCMyyKb/341NcjuAgim3Acgan89GfPv7nxXK2+0slu0CWXYM4x+Q==", + "dev": true, + "requires": { + "array-includes": "^3.1.3", + "array.prototype.flatmap": "^1.2.4", + "doctrine": "^2.1.0", + "has": "^1.0.3", + "jsx-ast-utils": "^2.4.1 || ^3.0.0", + "minimatch": "^3.0.4", + "object.entries": "^1.1.4", + "object.fromentries": "^2.0.4", + "object.values": "^1.1.4", + "prop-types": "^15.7.2", + "resolve": "^2.0.0-next.3", + "string.prototype.matchall": "^4.0.5" + }, + "dependencies": { + "doctrine": { + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/doctrine/-/doctrine-2.1.0.tgz", + "integrity": "sha512-35mSku4ZXK0vfCuHEDAwt55dg2jNajHZ1odvF+8SSr82EsZY4QmXfuWso8oEd8zRhVObSN18aM0CjSdoBX7zIw==", + "dev": true, + "requires": { + "esutils": "^2.0.2" + } + }, + "resolve": { + "version": "2.0.0-next.5", + "resolved": "https://registry.npmjs.org/resolve/-/resolve-2.0.0-next.5.tgz", + "integrity": "sha512-U7WjGVG9sH8tvjW5SmGbQuui75FiyjAX72HX15DwBBwF9dNiQZRQAg9nnPhYy+TUnE0+VcrttuvNI8oSxZcocA==", + "dev": true, + "requires": { + "is-core-module": "^2.13.0", + "path-parse": "^1.0.7", + "supports-preserve-symlinks-flag": "^1.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==", + "requires": { + "esrecurse": "^4.1.0", + "estraverse": "^4.1.1" + } + }, + "eslint-utils": { + "version": "1.4.3", + "resolved": "https://registry.npmjs.org/eslint-utils/-/eslint-utils-1.4.3.tgz", + "integrity": "sha512-fbBN5W2xdY45KulGXmLHZ3c3FHfVYmKg0IrAKGOkT/464PQsx2UeIzfz1RmEci+KLm1bBaAzZAh8+/E+XAeZ8Q==", + "dev": true, + "requires": { + "eslint-visitor-keys": "^1.1.0" + } + }, + "eslint-visitor-keys": { + "version": "1.3.0", + "resolved": "https://registry.npmjs.org/eslint-visitor-keys/-/eslint-visitor-keys-1.3.0.tgz", + "integrity": "sha512-6J72N8UNa462wa/KFODt/PJ3IU60SDpC3QXC1Hjc1BXXpfL2C9R5+AU7jhe0F6GREqVMh4Juu+NY7xn+6dipUQ==", + "dev": true + }, + "espree": { + "version": "5.0.1", + "resolved": "https://registry.npmjs.org/espree/-/espree-5.0.1.tgz", + "integrity": "sha512-qWAZcWh4XE/RwzLJejfcofscgMc9CamR6Tn1+XRXNzrvUSSbiAjGOI/fggztjIi7y9VLPqnICMIPiGyr8JaZ0A==", + "dev": true, + "requires": { + "acorn": "^6.0.7", + "acorn-jsx": "^5.0.0", + "eslint-visitor-keys": "^1.0.0" + } + }, + "esprima": { + "version": "4.0.1", + "resolved": "https://registry.npmjs.org/esprima/-/esprima-4.0.1.tgz", + "integrity": "sha512-eGuFFw7Upda+g4p+QHvnW0RyTX/SVeJBDM/gCtMARO0cLuT2HcEKnTPvhjV6aGeqrCB/sbNop0Kszm0jsaWU4A==" + }, + "esquery": { + "version": "1.6.0", + "resolved": "https://registry.npmjs.org/esquery/-/esquery-1.6.0.tgz", + "integrity": "sha512-ca9pw9fomFcKPvFLXhBKUK90ZvGibiGOvRJNbjljY7s7uq/5YO4BOzcYtJqExdx99rF6aAcnRxHmcUHcz6sQsg==", + "dev": true, + "requires": { + "estraverse": "^5.1.0" + }, + "dependencies": { + "estraverse": { + "version": "5.3.0", + "resolved": "https://registry.npmjs.org/estraverse/-/estraverse-5.3.0.tgz", + "integrity": "sha512-MMdARuVEQziNTeJD8DgMqmhwR11BRQ/cBP+pLtYdSTnf3MIO8fFeiINEbX36ZdNlfU/7A9f3gUw49B3oQsvwBA==", + "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==", + "requires": { + "estraverse": "^5.2.0" + }, + "dependencies": { + "estraverse": { + "version": "5.3.0", + "resolved": "https://registry.npmjs.org/estraverse/-/estraverse-5.3.0.tgz", + "integrity": "sha512-MMdARuVEQziNTeJD8DgMqmhwR11BRQ/cBP+pLtYdSTnf3MIO8fFeiINEbX36ZdNlfU/7A9f3gUw49B3oQsvwBA==" + } + } + }, + "estraverse": { + "version": "4.3.0", + "resolved": "https://registry.npmjs.org/estraverse/-/estraverse-4.3.0.tgz", + "integrity": "sha512-39nnKffWz8xN1BU/2c79n9nB9HDzo0niYUqx6xyqUnyoAnQyyWpOTdZEeiCch8BBu515t4wp9ZmgVfVhn9EBpw==" + }, + "esutils": { + "version": "2.0.3", + "resolved": "https://registry.npmjs.org/esutils/-/esutils-2.0.3.tgz", + "integrity": "sha512-kVscqXk4OCp68SZ0dkgEKVi6/8ij300KBWTJq32P/dYeWTSwK41WyTxalN1eRmA5Z9UU/LX9D7FWSmV9SAYx6g==" + }, + "etag": { + "version": "1.8.1", + "resolved": "https://registry.npmjs.org/etag/-/etag-1.8.1.tgz", + "integrity": "sha512-aIL5Fx7mawVa300al2BnEE4iNvo1qETxLrPI/o05L7z6go7fCw1J6EQmbK4FmJ2AS7kgVF/KEZWufBfdClMcPg==", + "dev": true + }, + "eventemitter3": { + "version": "4.0.7", + "resolved": "https://registry.npmjs.org/eventemitter3/-/eventemitter3-4.0.7.tgz", + "integrity": "sha512-8guHBZCwKnFhYdHr2ysuRWErTwhoN2X8XELRlrRwpmfeY2jjuUN4taQMsULKUVo1K4DvZl+0pgfyoysHxvmvEw==", + "dev": true + }, + "events": { + "version": "3.3.0", + "resolved": "https://registry.npmjs.org/events/-/events-3.3.0.tgz", + "integrity": "sha512-mQw+2fkQbALzQ7V0MY0IqdnXNOeTtP4r0lN9z7AAawCXgqea7bDii20AYrIBrFd/Hx0M2Ocz6S111CaFkUcb0Q==" + }, + "eventsource": { + "version": "2.0.2", + "resolved": "https://registry.npmjs.org/eventsource/-/eventsource-2.0.2.tgz", + "integrity": "sha512-IzUmBGPR3+oUG9dUeXynyNmf91/3zUSJg1lCktzKw47OXuhco54U3r9B7O4XX+Rb1Itm9OZ2b0RkTs10bICOxA==", + "dev": 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==", + "requires": { + "md5.js": "^1.3.4", + "safe-buffer": "^5.1.1" + } + }, + "exec-sh": { + "version": "0.2.2", + "resolved": "https://registry.npmjs.org/exec-sh/-/exec-sh-0.2.2.tgz", + "integrity": "sha512-FIUCJz1RbuS0FKTdaAafAByGS0CPvU3R0MeHxgtl+djzCc//F8HakL8GzmVNZanasTbTAY/3DRFA0KpVqj/eAw==", + "dev": true, + "requires": { + "merge": "^1.2.0" + } + }, + "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" + } + }, + "exenv": { + "version": "1.2.2", + "resolved": "https://registry.npmjs.org/exenv/-/exenv-1.2.2.tgz", + "integrity": "sha512-Z+ktTxTwv9ILfgKCk32OX3n/doe+OcLTRtqK9pcL+JsP3J1/VW8Uvl4ZjLlKqeW4rzK4oesDOGMEMRIZqtP4Iw==" + }, + "expand-brackets": { + "version": "2.1.4", + "resolved": "https://registry.npmjs.org/expand-brackets/-/expand-brackets-2.1.4.tgz", + "integrity": "sha512-w/ozOKR9Obk3qoWeY/WDi6MFta9AoMR+zud60mdnbniMcBxRuFJyDt2LdX/14A1UABeqk+Uk+LDfUpvoGKppZA==", + "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==", + "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": "sha512-Rr7ADjQZenceVOAKop6ALkkRAmH1A4Gx9hV/7ZujPUN2rkATqFO0JZLZInbAjpZYoJ1gUx8MRMQVkYemcbMSTA==", + "requires": { + "is-descriptor": "^0.1.0" + } + }, + "is-descriptor": { + "version": "0.1.7", + "resolved": "https://registry.npmjs.org/is-descriptor/-/is-descriptor-0.1.7.tgz", + "integrity": "sha512-C3grZTvObeN1xud4cRWl366OMXZTj0+HGyk4hvfpx4ZHt1Pb60ANSXqCK7pdOTeUQpRzECBSTphqvD7U+l22Eg==", + "requires": { + "is-accessor-descriptor": "^1.0.1", + "is-data-descriptor": "^1.0.1" + } + }, + "ms": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/ms/-/ms-2.0.0.tgz", + "integrity": "sha512-Tpp60P6IUJDTuOq/5Z8cdskzJujfwqfOTkrwIwj7IRISpnkJnT6SyJ4PCPnGMoFjC9ddhal5KVIYtAt97ix05A==" + } + } + }, + "expand-range": { + "version": "1.8.2", + "resolved": "https://registry.npmjs.org/expand-range/-/expand-range-1.8.2.tgz", + "integrity": "sha512-AFASGfIlnIbkKPQwX1yHaDjFvh/1gyKJODme52V6IORh69uEYgZp0o9C+qsIGNVEiuuhQU0CSSl++Rlegg1qvA==", + "dev": true, + "requires": { + "fill-range": "^2.1.0" + }, + "dependencies": { + "fill-range": { + "version": "2.2.4", + "resolved": "https://registry.npmjs.org/fill-range/-/fill-range-2.2.4.tgz", + "integrity": "sha512-cnrcCbj01+j2gTG921VZPnHbjmdAf8oQV/iGeV2kZxGSyfYjjTyY79ErsK1WJWMpw6DaApEX72binqJE+/d+5Q==", + "dev": true, + "requires": { + "is-number": "^2.1.0", + "isobject": "^2.0.0", + "randomatic": "^3.0.0", + "repeat-element": "^1.1.2", + "repeat-string": "^1.5.2" + } + }, + "is-number": { + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/is-number/-/is-number-2.1.0.tgz", + "integrity": "sha512-QUzH43Gfb9+5yckcrSA0VBDwEtDUchrk4F6tfJZQuNzDJbEDB9cZNzSfXGQ1jqmdDY/kl41lUOWM9syA8z8jlg==", + "dev": true, + "requires": { + "kind-of": "^3.0.2" + } + }, + "isarray": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/isarray/-/isarray-1.0.0.tgz", + "integrity": "sha512-VLghIWNM6ELQzo7zwmcg0NmTVyWKYjvIeM83yjp0wRDTmUnrM678fQbcKBo6n2CJEF0szoG//ytg+TKla89ALQ==", + "dev": true + }, + "isobject": { + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/isobject/-/isobject-2.1.0.tgz", + "integrity": "sha512-+OUdGJlgjOBZDfxnDjYYG6zp487z0JGNQq3cYQYg5f5hKR+syHMsaztzGeml/4kGG55CSpKSpWTY+jYGgsHLgA==", + "dev": true, + "requires": { + "isarray": "1.0.0" + } + } + } + }, + "expand-tilde": { + "version": "2.0.2", + "resolved": "https://registry.npmjs.org/expand-tilde/-/expand-tilde-2.0.2.tgz", + "integrity": "sha512-A5EmesHW6rfnZ9ysHQjPdJRni0SRar0tjtG5MNtm9n5TUvsYU8oozprtRD4AqHxcZWWlVuAmQo2nWKfN9oyjTw==", + "dev": true, + "requires": { + "homedir-polyfill": "^1.0.1" + } + }, + "expect": { + "version": "21.2.1", + "resolved": "https://registry.npmjs.org/expect/-/expect-21.2.1.tgz", + "integrity": "sha512-orfQQqFRTX0jH7znRIGi8ZMR8kTNpXklTTz8+HGTpmTKZo3Occ6JNB5FXMb8cRuiiC/GyDqsr30zUa66ACYlYw==", + "dev": true, + "requires": { + "ansi-styles": "^3.2.0", + "jest-diff": "^21.2.1", + "jest-get-type": "^21.2.0", + "jest-matcher-utils": "^21.2.1", + "jest-message-util": "^21.2.1", + "jest-regex-util": "^21.2.0" + }, + "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" + } + }, + "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" + } + } + } + }, + "express": { + "version": "4.21.1", + "resolved": "https://registry.npmjs.org/express/-/express-4.21.1.tgz", + "integrity": "sha512-YSFlK1Ee0/GC8QaO91tHcDxJiE/X4FbpAyQWkxAvG6AXCuR65YzK8ua6D9hvi/TzUfZMpc+BwuM1IPw8fmQBiQ==", + "dev": true, + "requires": { + "accepts": "~1.3.8", + "array-flatten": "1.1.1", + "body-parser": "1.20.3", + "content-disposition": "0.5.4", + "content-type": "~1.0.4", + "cookie": "0.7.1", + "cookie-signature": "1.0.6", + "debug": "2.6.9", + "depd": "2.0.0", + "encodeurl": "~2.0.0", + "escape-html": "~1.0.3", + "etag": "~1.8.1", + "finalhandler": "1.3.1", + "fresh": "0.5.2", + "http-errors": "2.0.0", + "merge-descriptors": "1.0.3", + "methods": "~1.1.2", + "on-finished": "2.4.1", + "parseurl": "~1.3.3", + "path-to-regexp": "0.1.10", + "proxy-addr": "~2.0.7", + "qs": "6.13.0", + "range-parser": "~1.2.1", + "safe-buffer": "5.2.1", + "send": "0.19.0", + "serve-static": "1.16.2", + "setprototypeof": "1.2.0", + "statuses": "2.0.1", + "type-is": "~1.6.18", + "utils-merge": "1.0.1", + "vary": "~1.1.2" + }, + "dependencies": { + "array-flatten": { + "version": "1.1.1", + "resolved": "https://registry.npmjs.org/array-flatten/-/array-flatten-1.1.1.tgz", + "integrity": "sha512-PCVAQswWemu6UdxsDFFX/+gVeYqKAod3D3UVm91jHwynguOwAvYPhx8nNlM++NqRcK6CxxpUafjmhIdKiHibqg==", + "dev": true + }, + "debug": { + "version": "2.6.9", + "resolved": "https://registry.npmjs.org/debug/-/debug-2.6.9.tgz", + "integrity": "sha512-bC7ElrdJaJnPbAP+1EotYvqZsb3ecl5wi6Bfi6BJTUcNowp6cvspg0jXznRTKDjm/E7AdgFBVeAPVMNcKGsHMA==", + "dev": true, + "requires": { + "ms": "2.0.0" + } + }, + "ms": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/ms/-/ms-2.0.0.tgz", + "integrity": "sha512-Tpp60P6IUJDTuOq/5Z8cdskzJujfwqfOTkrwIwj7IRISpnkJnT6SyJ4PCPnGMoFjC9ddhal5KVIYtAt97ix05A==", + "dev": true + }, + "qs": { + "version": "6.13.0", + "resolved": "https://registry.npmjs.org/qs/-/qs-6.13.0.tgz", + "integrity": "sha512-+38qI9SOr8tfZ4QmJNplMUxqjbe7LKvvZgWdExBOmd+egZTtjLB67Gu0HRX3u/XOq7UU2Nx6nsjvS16Z9uwfpg==", + "dev": true, + "requires": { + "side-channel": "^1.0.6" + } + } + } + }, + "ext-list": { + "version": "2.2.2", + "resolved": "https://registry.npmjs.org/ext-list/-/ext-list-2.2.2.tgz", + "integrity": "sha512-u+SQgsubraE6zItfVA0tBuCBhfU9ogSRnsvygI7wht9TS510oLkBRXBsqopeUG/GBOIQyKZO9wjTqIu/sf5zFA==", + "requires": { + "mime-db": "^1.28.0" + } + }, + "ext-name": { + "version": "5.0.0", + "resolved": "https://registry.npmjs.org/ext-name/-/ext-name-5.0.0.tgz", + "integrity": "sha512-yblEwXAbGv1VQDmow7s38W77hzAgJAO50ztBLMcUyUBfxv1HC+LGwtiEN+Co6LtlqT/5uwVOxsD4TNIilWhwdQ==", + "requires": { + "ext-list": "^2.0.0", + "sort-keys-length": "^1.0.0" + } + }, + "extend": { + "version": "3.0.2", + "resolved": "https://registry.npmjs.org/extend/-/extend-3.0.2.tgz", + "integrity": "sha512-fjquC59cD7CyW6urNXK0FBufkZcoiGG80wTuPujX590cB5Ttln20E2UB4S/WARVqhXffZl2LNgS+gQdPIIim/g==" + }, + "extend-shallow": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/extend-shallow/-/extend-shallow-2.0.1.tgz", + "integrity": "sha512-zCnTtlxNoAiDc3gqY2aYAWFx7XWWiasuF2K8Me5WbN8otHKTUKBwjPtNpRs/rbUZm7KxWAaNj7P1a/p52GbVug==", + "requires": { + "is-extendable": "^0.1.0" + } + }, + "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" + }, + "dependencies": { + "iconv-lite": { + "version": "0.4.24", + "resolved": "https://registry.npmjs.org/iconv-lite/-/iconv-lite-0.4.24.tgz", + "integrity": "sha512-v3MXnZAcvnywkTUEZomIActle7RXXeedOR31wwl7VlyoXO4Qi9arvSenNQWne1TcRwhCL1HwLI21bEqdpj8/rA==", + "dev": true, + "requires": { + "safer-buffer": ">= 2.1.2 < 3" + } + } + } + }, + "extglob": { + "version": "2.0.4", + "resolved": "https://registry.npmjs.org/extglob/-/extglob-2.0.4.tgz", + "integrity": "sha512-Nmb6QXkELsuBr24CJSkilo6UHHgbekK5UiZgfE6UHD3Eb27YC6oD+bhcT+tJ6cl8dmsgdQxnWlcry8ksBIBLpw==", + "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": "sha512-cZTYKFWspt9jZsMscWo8sc/5lbPC9Q0N5nBLgb+Yd915iL3udB1uFgS3B8YCx66UVHq018DAVFoee7x+gxggeA==", + "requires": { + "is-descriptor": "^1.0.0" + } + } + } + }, + "extract-zip": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/extract-zip/-/extract-zip-2.0.1.tgz", + "integrity": "sha512-GDhU9ntwuKyGXdZBUgTIe+vXnWj0fppUEtMDL0+idd5Sta8TGpHssn/eusA9mrPr9qNDym6SxAYZjNvCn/9RBg==", + "dev": true, + "requires": { + "@types/yauzl": "^2.9.1", + "debug": "^4.1.1", + "get-stream": "^5.1.0", + "yauzl": "^2.10.0" + }, + "dependencies": { + "get-stream": { + "version": "5.2.0", + "resolved": "https://registry.npmjs.org/get-stream/-/get-stream-5.2.0.tgz", + "integrity": "sha512-nBF+F1rAZVCu/p7rjzgA+Yb4lfYXrpl7a6VmJrU8wF9I1CKvP/QwPNZHnOlwbTkY6dvtFIzFMSyQXbLoTQPRpA==", + "dev": true, + "requires": { + "pump": "^3.0.0" + } + } + } + }, + "extsprintf": { + "version": "1.3.0", + "resolved": "https://registry.npmjs.org/extsprintf/-/extsprintf-1.3.0.tgz", + "integrity": "sha512-11Ndz7Nv+mvAC1j0ktTa7fAb0vLyGGX+rMHNBYQviQDGU0Hw7lhctJANqbPhu9nV9/izT/IntTgZ7Im/9LJs9g==" + }, + "falafel": { + "version": "2.2.5", + "resolved": "https://registry.npmjs.org/falafel/-/falafel-2.2.5.tgz", + "integrity": "sha512-HuC1qF9iTnHDnML9YZAdCDQwT0yKl/U55K4XSUXqGAA2GLoafFgWRqdAbhWJxXaYD4pyoVxAJ8wH670jMpI9DQ==", + "requires": { + "acorn": "^7.1.1", + "isarray": "^2.0.1" + }, + "dependencies": { + "acorn": { + "version": "7.4.1", + "resolved": "https://registry.npmjs.org/acorn/-/acorn-7.4.1.tgz", + "integrity": "sha512-nQyp0o1/mNdbTO1PO6kHkwSrmgZ0MT/jCCpNiwbUjGoRN4dlBhqJtoQuCnEOKzgTVwg0ZWiCoQy6SxMebQVh8A==" + } + } + }, + "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==" + }, + "fast-glob": { + "version": "3.3.2", + "resolved": "https://registry.npmjs.org/fast-glob/-/fast-glob-3.3.2.tgz", + "integrity": "sha512-oX2ruAFQwf/Orj8m737Y5adxDQO0LAB7/S5MnxCdTNDd4p6BsyIVsv9JQsATbTSq8KHRpLwIHbVlUNatxd+1Ow==", + "requires": { + "@nodelib/fs.stat": "^2.0.2", + "@nodelib/fs.walk": "^1.2.3", + "glob-parent": "^5.1.2", + "merge2": "^1.3.0", + "micromatch": "^4.0.4" + }, + "dependencies": { + "braces": { + "version": "3.0.3", + "resolved": "https://registry.npmjs.org/braces/-/braces-3.0.3.tgz", + "integrity": "sha512-yQbXgO/OSZVD2IsiLlro+7Hf6Q18EJrKSEsdoMzKePKXct3gvD8oLcOQdIzGupr5Fj+EDe8gO/lxc1BzfMpxvA==", + "requires": { + "fill-range": "^7.1.1" + } + }, + "fill-range": { + "version": "7.1.1", + "resolved": "https://registry.npmjs.org/fill-range/-/fill-range-7.1.1.tgz", + "integrity": "sha512-YsGpe3WHLK8ZYi4tWDg2Jy3ebRz2rXowDxnld4bkQB00cc/1Zw9AWnC0i9ztDJitivtQvaI9KaLyKrc+hBW0yg==", + "requires": { + "to-regex-range": "^5.0.1" + } + }, + "is-number": { + "version": "7.0.0", + "resolved": "https://registry.npmjs.org/is-number/-/is-number-7.0.0.tgz", + "integrity": "sha512-41Cifkg6e8TylSpdtTpeLVMqvSBEVzTttHvERD741+pnZ8ANv0004MRL43QKPDlK9cGvNp6NZWZUBlbGXYxxng==" + }, + "micromatch": { + "version": "4.0.8", + "resolved": "https://registry.npmjs.org/micromatch/-/micromatch-4.0.8.tgz", + "integrity": "sha512-PXwfBhYu0hBCPw8Dn0E+WDYb7af3dSLVWKi3HGv84IdF4TyFoC0ysxFd0Goxw7nSv4T/PzEJQxsYsEiFCKo2BA==", + "requires": { + "braces": "^3.0.3", + "picomatch": "^2.3.1" + } + }, + "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==", + "requires": { + "is-number": "^7.0.0" + } + } + } + }, + "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==" + }, + "fast-levenshtein": { + "version": "2.0.6", + "resolved": "https://registry.npmjs.org/fast-levenshtein/-/fast-levenshtein-2.0.6.tgz", + "integrity": "sha512-DCXu6Ifhqcks7TZKY3Hxp3y6qphY5SJZmrWMDrKcERSOXWQdMhU9Ig/PYrzyw/ul9jOIyh0N4M0tbC5hodg8dw==" + }, + "fastestsmallesttextencoderdecoder": { + "version": "1.0.22", + "resolved": "https://registry.npmjs.org/fastestsmallesttextencoderdecoder/-/fastestsmallesttextencoderdecoder-1.0.22.tgz", + "integrity": "sha512-Pb8d48e+oIuY4MaM64Cd7OW1gt4nxCHs7/ddPPZ/Ic3sg8yVGM7O9wDvZ7us6ScaUupzM+pfBolwtYhN1IxBIw==" + }, + "fastparse": { + "version": "1.1.2", + "resolved": "https://registry.npmjs.org/fastparse/-/fastparse-1.1.2.tgz", + "integrity": "sha512-483XLLxTVIwWK3QTrMGRqUfUpoOs/0hbQrl2oz4J0pAcm3A3bu84wxTFqGqkJzewCLdME38xJLJAxBABfQT8sQ==" + }, + "fastq": { + "version": "1.17.1", + "resolved": "https://registry.npmjs.org/fastq/-/fastq-1.17.1.tgz", + "integrity": "sha512-sRVD3lWVIXWg6By68ZN7vho9a1pQcN/WBFaAAsDDFzlJjvoGx0P8z7V1t72grFJfJhu3YPZBuu25f7Kaw2jN1w==", + "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" + } + }, + "fb-watchman": { + "version": "2.0.2", + "resolved": "https://registry.npmjs.org/fb-watchman/-/fb-watchman-2.0.2.tgz", + "integrity": "sha512-p5161BqbuCaSnB8jIbzQHOlpgsPmK5rJVDfDKO91Axs5NC1uu3HRQm6wt9cd9/+GtQQIO53JdGXXoyDpTAsgYA==", + "dev": true, + "requires": { + "bser": "2.1.1" + } + }, + "fbjs": { + "version": "0.8.18", + "resolved": "https://registry.npmjs.org/fbjs/-/fbjs-0.8.18.tgz", + "integrity": "sha512-EQaWFK+fEPSoibjNy8IxUtaFOMXcWsY0JaVrQoZR9zC8N2Ygf9iDITPWjUTVIax95b6I742JFLqASHfsag/vKA==", + "dev": true, + "requires": { + "core-js": "^1.0.0", + "isomorphic-fetch": "^2.1.1", + "loose-envify": "^1.0.0", + "object-assign": "^4.1.0", + "promise": "^7.1.1", + "setimmediate": "^1.0.5", + "ua-parser-js": "^0.7.30" + }, + "dependencies": { + "core-js": { + "version": "1.2.7", + "resolved": "https://registry.npmjs.org/core-js/-/core-js-1.2.7.tgz", + "integrity": "sha512-ZiPp9pZlgxpWRu0M+YWbm6+aQ84XEfH1JRXvfOc/fILWI0VKhLC2LX13X1NYq4fULzLMq7Hfh43CSo2/aIaUPA==", + "dev": true + } + } + }, + "fd-slicer": { + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/fd-slicer/-/fd-slicer-1.1.0.tgz", + "integrity": "sha512-cE1qsB/VwyQozZ+q1dGxR8LBYNZeofhEdUNGSMbQD3Gw2lAzX9Zb3uIU6Ebc/Fmyjo9AWWfnn0AUCHqtevs/8g==", + "requires": { + "pend": "~1.2.0" + } + }, + "figgy-pudding": { + "version": "3.5.2", + "resolved": "https://registry.npmjs.org/figgy-pudding/-/figgy-pudding-3.5.2.tgz", + "integrity": "sha512-0btnI/H8f2pavGMN8w40mlSKOfTK2SVJmBfBeVIj3kNw0swwgzyRq0d5TJVOwodFmtvpPeWPN/MCcfuWF0Ezbw==" + }, + "figures": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/figures/-/figures-2.0.0.tgz", + "integrity": "sha512-Oa2M9atig69ZkfwiApY8F2Yy+tzMbazyvqv21R0NsSC8floSOC09BbT1ITWAdoMGQvJ/aZnR1KMwdx9tvHnTNA==", + "dev": true, + "requires": { + "escape-string-regexp": "^1.0.5" + } + }, + "file-entry-cache": { + "version": "5.0.1", + "resolved": "https://registry.npmjs.org/file-entry-cache/-/file-entry-cache-5.0.1.tgz", + "integrity": "sha512-bCg29ictuBaKUwwArK4ouCaqDgLZcysCFLmM/Yn/FDoqndh/9vNuQfXRDvTuXKLxfD/JtZQGKFT8MGcJBK644g==", + "dev": true, + "requires": { + "flat-cache": "^2.0.1" + } + }, + "file-loader": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/file-loader/-/file-loader-2.0.0.tgz", + "integrity": "sha512-YCsBfd1ZGCyonOKLxPiKPdu+8ld9HAaMEvJewzz+b2eTF7uL5Zm/HdBF6FjCrpCMRq25Mi0U1gl4pwn2TlH7hQ==", + "requires": { + "loader-utils": "^1.0.2", + "schema-utils": "^1.0.0" + }, + "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==", + "requires": { + "ajv": "^6.1.0", + "ajv-errors": "^1.0.0", + "ajv-keywords": "^3.1.0" + } + } + } + }, + "file-type": { + "version": "11.1.0", + "resolved": "https://registry.npmjs.org/file-type/-/file-type-11.1.0.tgz", + "integrity": "sha512-rM0UO7Qm9K7TWTtA6AShI/t7H5BPjDeGVDaNyg9BjHAj3PysKy7+8C8D137R88jnR3rFJZQB/tFgydl5sN5m7g==" + }, + "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==", + "optional": true + }, + "filename-regex": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/filename-regex/-/filename-regex-2.0.1.tgz", + "integrity": "sha512-BTCqyBaWBTsauvnHiE8i562+EdJj+oUpkqWp2R1iCoR8f6oo8STRu3of7WJJ0TqWtxN50a5YFpzYK4Jj9esYfQ==", + "dev": true + }, + "filename-reserved-regex": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/filename-reserved-regex/-/filename-reserved-regex-2.0.0.tgz", + "integrity": "sha512-lc1bnsSr4L4Bdif8Xb/qrtokGbq5zlsms/CYH8PP+WtCkGNF65DPiQY8vG3SakEdRn8Dlnm+gW/qWKKjS5sZzQ==" + }, + "filenamify": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/filenamify/-/filenamify-3.0.0.tgz", + "integrity": "sha512-5EFZ//MsvJgXjBAFJ+Bh2YaCTRF/VP1YOmGrgt+KJ4SFRLjI87EIdwLLuT6wQX0I4F9W41xutobzczjsOKlI/g==", + "requires": { + "filename-reserved-regex": "^2.0.0", + "strip-outer": "^1.0.0", + "trim-repeated": "^1.0.0" + } + }, + "fileset": { + "version": "2.0.3", + "resolved": "https://registry.npmjs.org/fileset/-/fileset-2.0.3.tgz", + "integrity": "sha512-UxowFKnAFIwtmSxgKjWAVgjE3Fk7MQJT0ZIyl0NwIFZTrx4913rLaonGJ84V+x/2+w/pe4ULHRns+GZPs1TVuw==", + "dev": true, + "requires": { + "glob": "^7.0.3", + "minimatch": "^3.0.3" + } + }, + "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==", + "requires": { + "extend-shallow": "^2.0.1", + "is-number": "^3.0.0", + "repeat-string": "^1.6.1", + "to-regex-range": "^2.1.0" + } + }, + "finalhandler": { + "version": "1.3.1", + "resolved": "https://registry.npmjs.org/finalhandler/-/finalhandler-1.3.1.tgz", + "integrity": "sha512-6BN9trH7bp3qvnrRyzsBz+g3lZxTNZTbVO2EV1CS0WIcDbawYVdYvGflME/9QP0h0pYlCDBCTjYa9nZzMDpyxQ==", + "dev": true, + "requires": { + "debug": "2.6.9", + "encodeurl": "~2.0.0", + "escape-html": "~1.0.3", + "on-finished": "2.4.1", + "parseurl": "~1.3.3", + "statuses": "2.0.1", + "unpipe": "~1.0.0" + }, + "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": "sha512-Tpp60P6IUJDTuOq/5Z8cdskzJujfwqfOTkrwIwj7IRISpnkJnT6SyJ4PCPnGMoFjC9ddhal5KVIYtAt97ix05A==", + "dev": true + } + } + }, + "find-cache-dir": { + "version": "3.3.2", + "resolved": "https://registry.npmjs.org/find-cache-dir/-/find-cache-dir-3.3.2.tgz", + "integrity": "sha512-wXZV5emFEjrridIgED11OoUKLxiYjAcqot/NJdAkOhlJ+vGzwhOAfcG5OX1jP+S0PcjEn8bdMJv+g2jwQ3Onig==", + "requires": { + "commondir": "^1.0.1", + "make-dir": "^3.0.2", + "pkg-dir": "^4.1.0" + }, + "dependencies": { + "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==", + "requires": { + "semver": "^6.0.0" + } + } + } + }, + "find-root": { + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/find-root/-/find-root-1.1.0.tgz", + "integrity": "sha512-NKfW6bec6GfKc0SGx1e07QZY9PE99u0Bft/0rzSD5k3sO/vwkVUpDUKVm5Gpp5Ue3YfShPFTX2070tDs5kB9Ng==", + "dev": true + }, + "find-up": { + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/find-up/-/find-up-2.1.0.tgz", + "integrity": "sha512-NWzkk0jSJtTt08+FBFMvXoeZnOJD+jTtsRmBYbAIzJdX6l7dLgR7CTubCM5/eDdPUBvLCeVasP1brfVR/9/EZQ==", + "dev": true, + "requires": { + "locate-path": "^2.0.0" + } + }, + "findup": { + "version": "0.1.5", + "resolved": "https://registry.npmjs.org/findup/-/findup-0.1.5.tgz", + "integrity": "sha512-Udxo3C9A6alt2GZ2MNsgnIvX7De0V3VGxeP/x98NSVgSlizcDHdmJza61LI7zJy4OEtSiJyE72s0/+tBl5/ZxA==", + "requires": { + "colors": "~0.6.0-1", + "commander": "~2.1.0" + }, + "dependencies": { + "commander": { + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/commander/-/commander-2.1.0.tgz", + "integrity": "sha512-J2wnb6TKniXNOtoHS8TSrG9IOQluPrsmyAJ8oCUJOBmv+uLBCyPYAZkD2jFvw2DCzIXNnISIM01NIvr35TkBMQ==" + } + } + }, + "findup-sync": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/findup-sync/-/findup-sync-3.0.0.tgz", + "integrity": "sha512-YbffarhcicEhOrm4CtrwdKBdCuz576RLdhJDsIfvNtxUuhdRet1qZcsMjqbePtAseKdAnDyM/IyXbu7PRPRLYg==", + "dev": true, + "requires": { + "detect-file": "^1.0.0", + "is-glob": "^4.0.0", + "micromatch": "^3.0.4", + "resolve-dir": "^1.0.1" + } + }, + "flat-cache": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/flat-cache/-/flat-cache-2.0.1.tgz", + "integrity": "sha512-LoQe6yDuUMDzQAEH8sgmh4Md6oZnc/7PjtwjNFSzveXqSHt6ka9fPBuso7IGf9Rz4uqnSnWiFH2B/zj24a5ReA==", + "dev": true, + "requires": { + "flatted": "^2.0.0", + "rimraf": "2.6.3", + "write": "1.0.3" + }, + "dependencies": { + "rimraf": { + "version": "2.6.3", + "resolved": "https://registry.npmjs.org/rimraf/-/rimraf-2.6.3.tgz", + "integrity": "sha512-mwqeW5XsA2qAejG46gYdENaxXjx9onRNCfn7L0duuP4hCuTIi/QO7PDK07KJfp1d+izWPrzEJDcSqBa0OZQriA==", + "dev": true, + "requires": { + "glob": "^7.1.3" + } + } + } + }, + "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==", + "requires": { + "inherits": "^2.0.3", + "readable-stream": "^2.3.6" + } + }, + "follow-redirects": { + "version": "1.15.9", + "resolved": "https://registry.npmjs.org/follow-redirects/-/follow-redirects-1.15.9.tgz", + "integrity": "sha512-gew4GsXizNgdoRyqmyfMHyAmXsZDk6mHkSxZFCzW9gwlbtOW44CDtYavM+y+72qD/Vq2l550kMF52DT8fOLJqQ==", + "dev": true + }, + "for-each": { + "version": "0.3.3", + "resolved": "https://registry.npmjs.org/for-each/-/for-each-0.3.3.tgz", + "integrity": "sha512-jqYfLp7mo9vIyQf8ykW2v7A+2N4QjeCeI5+Dz9XraiO1ign81wjiH7Fb9vSOWvQfNtmSa4H2RoQTrrXivdUZmw==", + "dev": true, + "requires": { + "is-callable": "^1.1.3" + } + }, + "for-in": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/for-in/-/for-in-1.0.2.tgz", + "integrity": "sha512-7EwmXrOjyL+ChxMhmG5lnW9MPt1aIeZEwKhQzoBUdTV0N3zuwWDZYVJatDvZ2OyzPUvdIAZDsCetk3coyMfcnQ==" + }, + "for-own": { + "version": "0.1.5", + "resolved": "https://registry.npmjs.org/for-own/-/for-own-0.1.5.tgz", + "integrity": "sha512-SKmowqGTJoPzLO1T0BBJpkfp3EMacCMOuH40hOUbrbzElVktk4DioXVM99QkLCyKoiuOmyjgcWMpVz2xjE7LZw==", + "dev": true, + "requires": { + "for-in": "^1.0.1" + } + }, + "forever-agent": { + "version": "0.6.1", + "resolved": "https://registry.npmjs.org/forever-agent/-/forever-agent-0.6.1.tgz", + "integrity": "sha512-j0KLYPhm6zeac4lz3oJ3o65qvgQCcPubiyotZrXqEaG4hNagNYO8qdlUrX5vwqv9ohqeT/Z3j6+yW067yWWdUw==" + }, + "form-data": { + "version": "4.0.1", + "resolved": "https://registry.npmjs.org/form-data/-/form-data-4.0.1.tgz", + "integrity": "sha512-tzN8e4TX8+kkxGPK8D5u0FNmjPUjw3lwC9lSLxxoB/+GtsJG91CO8bSWy73APlgAZzZbXEYZJuxjkHH2w+Ezhw==", + "dev": true, + "requires": { + "asynckit": "^0.4.0", + "combined-stream": "^1.0.8", + "mime-types": "^2.1.12" + } + }, + "format-message": { + "version": "6.2.1", + "resolved": "https://registry.npmjs.org/format-message/-/format-message-6.2.1.tgz", + "integrity": "sha512-6gBXI+MOE9pu9QNeZf95V87GKYiLCdUvhisjts75xonaPAshtBu20NTZt2l8kbYcoMtxNyH9E9af+aieIRfVmw==", + "requires": { + "format-message-formats": "^6.2.0", + "format-message-interpret": "^6.2.0", + "format-message-parse": "^6.2.0", + "lookup-closest-locale": "^6.2.0" + } + }, + "format-message-formats": { + "version": "6.2.4", + "resolved": "https://registry.npmjs.org/format-message-formats/-/format-message-formats-6.2.4.tgz", + "integrity": "sha512-smT/fAqBLqusWfWCKRAx6QBDAAbmYznWsIyTyk66COmvwt2Byiqd7SJe2ma9a5oV0kwRaOJpN/F4lr4YK/n6qQ==" + }, + "format-message-interpret": { + "version": "6.2.4", + "resolved": "https://registry.npmjs.org/format-message-interpret/-/format-message-interpret-6.2.4.tgz", + "integrity": "sha512-dRvz9mXhITApyOtfuFEb/XqvCe1u6RMkQW49UJHXS8w2S8cAHCqq5LNDFK+QK6XVzcofROycLb/k1uybTAKt2w==", + "requires": { + "format-message-formats": "^6.2.4", + "lookup-closest-locale": "^6.2.0" + } + }, + "format-message-parse": { + "version": "6.2.4", + "resolved": "https://registry.npmjs.org/format-message-parse/-/format-message-parse-6.2.4.tgz", + "integrity": "sha512-k7WqXkEzgXkW4wkHdS6Cv2Ou0rIFtiDelZjgoe1saW4p7FT7zS8OeAUpAekhormqzpeecR97e4vBft1zMsfFOQ==" + }, + "forwarded": { + "version": "0.2.0", + "resolved": "https://registry.npmjs.org/forwarded/-/forwarded-0.2.0.tgz", + "integrity": "sha512-buRG0fpBtRHSTCOASe6hD258tEubFoRLb4ZNA6NxMVHNw2gOcwHo9wyablzMzOA5z9xA9L1KNjk/Nt6MT9aYow==", + "dev": true + }, + "fraction.js": { + "version": "4.3.4", + "resolved": "https://registry.npmjs.org/fraction.js/-/fraction.js-4.3.4.tgz", + "integrity": "sha512-pwiTgt0Q7t+GHZA4yaLjObx4vXmmdcS0iSJ19o8d/goUGgItX9UZWKWNnLHehxviD8wU2IWRsnR8cD5+yOJP2Q==" + }, + "fragment-cache": { + "version": "0.2.1", + "resolved": "https://registry.npmjs.org/fragment-cache/-/fragment-cache-0.2.1.tgz", + "integrity": "sha512-GMBAbW9antB8iZRHLoGw0b3HANt57diZYFO/HL1JGIC1MjKrdmhxvrJbupnVvpys0zsz7yBApXdQyfepKly2kA==", + "requires": { + "map-cache": "^0.2.2" + } + }, + "fresh": { + "version": "0.5.2", + "resolved": "https://registry.npmjs.org/fresh/-/fresh-0.5.2.tgz", + "integrity": "sha512-zJ2mQYM18rEFOudeV4GShTGIQ7RbzA7ozbU9I/XBpm7kqgMywgmylMwXHxZJmkVoYkna9d2pVXVXPdYTP9ej8Q==", + "dev": true + }, + "from2": { + "version": "2.3.0", + "resolved": "https://registry.npmjs.org/from2/-/from2-2.3.0.tgz", + "integrity": "sha512-OMcX/4IC/uqEPVgGeyfN22LJk6AZrMkRZHxcHBMBvHScDGgwTm2GT2Wkgtocyd3JfZffjj2kYUDXXII0Fk9W0g==", + "requires": { + "inherits": "^2.0.1", + "readable-stream": "^2.0.0" + } + }, + "from2-array": { + "version": "0.0.4", + "resolved": "https://registry.npmjs.org/from2-array/-/from2-array-0.0.4.tgz", + "integrity": "sha512-0G0cAp7sYLobH7ALsr835x98PU/YeVF7wlwxdWbCUaea7wsa7lJfKZUAo6p2YZGZ8F94luCuqHZS3JtFER6uPg==", + "requires": { + "from2": "^2.0.3" + } + }, + "fs-constants": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/fs-constants/-/fs-constants-1.0.0.tgz", + "integrity": "sha512-y6OAwoSIf7FyjMIv94u+b5rdheZEjzR63GTyZJm5qh4Bi+2YgwLCcI/fPFZkL5PSixOt6ZNKm+w+Hfp/Bciwow==" + }, + "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==", + "requires": { + "graceful-fs": "^4.2.0", + "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==", + "requires": { + "minipass": "^3.0.0" + } + }, + "fs-readdir-recursive": { + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/fs-readdir-recursive/-/fs-readdir-recursive-1.1.0.tgz", + "integrity": "sha512-GNanXlVr2pf02+sPN40XN8HG+ePaNcvM0q5mZBd668Obwb0yD5GiUbZOFgwn8kGMY6I3mdyDJzieUy3PTYyTRA==" + }, + "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": "sha512-gehEzmPn2nAwr39eay+x3X34Ra+M2QlVUTLhkXPjWdeO8RF9kszk116avgBJM3ZyNHgHXBNx+VmPaFC36k0PzA==", + "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": "sha512-OO0pH2lK6a0hZnAdau5ItzHPI6pUlvI7jMVnxUQRtw4owF2wk8lOSabtGDCTP4Ggrg2MbGnWO9X8K1t4+fGMDw==" + }, + "fsevents": { + "version": "2.3.3", + "resolved": "https://registry.npmjs.org/fsevents/-/fsevents-2.3.3.tgz", + "integrity": "sha512-5xoDfX+fL7faATnagmWPpbFtwh/R77WmMMqqHGS65C3vvB0YHrgF+B1YmZ3441tMj5n63k0212XNoJwzlhffQw==", + "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==" + }, + "function.prototype.name": { + "version": "1.1.6", + "resolved": "https://registry.npmjs.org/function.prototype.name/-/function.prototype.name-1.1.6.tgz", + "integrity": "sha512-Z5kx79swU5P27WEayXM1tBi5Ze/lbIyiNgU3qyXUOf9b2rgXYyF9Dy9Cx+IQv/Lc8WCG6L82zwUPpSS9hGehIg==", + "dev": true, + "requires": { + "call-bind": "^1.0.2", + "define-properties": "^1.2.0", + "es-abstract": "^1.22.1", + "functions-have-names": "^1.2.3" + } + }, + "functional-red-black-tree": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/functional-red-black-tree/-/functional-red-black-tree-1.0.1.tgz", + "integrity": "sha512-dsKNQNdj6xA3T+QlADDA7mOSlX0qiMINjn0cgr+eGHGsbSHzTabcIogz2+p/iqP1Xs6EP/sS2SbqH+brGTbq0g==", + "dev": true + }, + "functions-have-names": { + "version": "1.2.3", + "resolved": "https://registry.npmjs.org/functions-have-names/-/functions-have-names-1.2.3.tgz", + "integrity": "sha512-xckBUXyTIqT97tq2x2AMb+g163b5JFysYk0x4qxNFwbfQkmNZoiRHb6sPzI9/QV33WeuvVYBUIiD4NzNIyqaRQ==", + "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==" + }, + "get-caller-file": { + "version": "1.0.3", + "resolved": "https://registry.npmjs.org/get-caller-file/-/get-caller-file-1.0.3.tgz", + "integrity": "sha512-3t6rVToeoZfYSGd8YoLFR2DJkiQrIiUrGcjvFX2mDw3bn6k2OtwHN0TNCLbBO+w8qTvimhDkv+LSscbJY1vE6w==", + "dev": true + }, + "get-float-time-domain-data": { + "version": "0.1.0", + "resolved": "https://registry.npmjs.org/get-float-time-domain-data/-/get-float-time-domain-data-0.1.0.tgz", + "integrity": "sha512-6lWdVMny7vJ+xWxGUmVdSW7rd4L2byptiVkjH3QEBsxcHSa8UbC/HsZmixHK/ZQ1EYsOaQjaeRgR+NAsIerEJQ==" + }, + "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" + } + }, + "get-stream": { + "version": "4.1.0", + "resolved": "https://registry.npmjs.org/get-stream/-/get-stream-4.1.0.tgz", + "integrity": "sha512-GMat4EJ5161kIy2HevLlr4luNjBgvmj413KaQA7jt4V8B4RDsfpHk7WQ9GVqfYyyx8OS/L66Kox+rJRNklLK7w==", + "requires": { + "pump": "^3.0.0" + } + }, + "get-symbol-description": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/get-symbol-description/-/get-symbol-description-1.0.2.tgz", + "integrity": "sha512-g0QYk1dZBxGwk+Ngc+ltRH2IBp2f7zBkBMBJZCDerh6EhlhSR6+9irMCuT/09zD6qkarHUSn529sK/yL4S27mg==", + "dev": true, + "requires": { + "call-bind": "^1.0.5", + "es-errors": "^1.3.0", + "get-intrinsic": "^1.2.4" + } + }, + "get-user-media-promise": { + "version": "1.1.4", + "resolved": "https://registry.npmjs.org/get-user-media-promise/-/get-user-media-promise-1.1.4.tgz", + "integrity": "sha512-k49YuV2z0d3gKHLPTFKYfzEA9kduuQk7YBf8ev2dxrKk+DhMyuzfQnK9ZSxkEhE/jv3BZY62M0eICWa7lak9nw==" + }, + "get-value": { + "version": "2.0.6", + "resolved": "https://registry.npmjs.org/get-value/-/get-value-2.0.6.tgz", + "integrity": "sha512-Ln0UQDlxH1BapMu3GPtf7CuYNwRZf2gwCuPqbyG6pB8WfmFpzqcy4xtAaAMUhnNqjMKTiCPZG2oMT3YSx8U2NA==" + }, + "getpass": { + "version": "0.1.7", + "resolved": "https://registry.npmjs.org/getpass/-/getpass-0.1.7.tgz", + "integrity": "sha512-0fzj9JxOLfJ+XGLhR8ze3unN0KZCgZwiSSDz168VERjK8Wl8kVSdcu2kspd4s4wtAa1y/qrVRiAA0WclVsu0ng==", + "requires": { + "assert-plus": "^1.0.0" + } + }, + "gh-pages": { + "version": "3.2.3", + "resolved": "https://registry.npmjs.org/gh-pages/-/gh-pages-3.2.3.tgz", + "integrity": "sha512-jA1PbapQ1jqzacECfjUaO9gV8uBgU6XNMV0oXLtfCX3haGLe5Atq8BxlrADhbD6/UdG9j6tZLWAkAybndOXTJg==", + "dev": true, + "requires": { + "async": "^2.6.1", + "commander": "^2.18.0", + "email-addresses": "^3.0.1", + "filenamify": "^4.3.0", + "find-cache-dir": "^3.3.1", + "fs-extra": "^8.1.0", + "globby": "^6.1.0" + }, + "dependencies": { + "array-union": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/array-union/-/array-union-1.0.2.tgz", + "integrity": "sha512-Dxr6QJj/RdU/hCaBjOfxW+q6lyuVE6JFWIrAUpuOOhoJJoQ99cUn3igRaHVB5P9WrgFVN0FfArM3x0cueOU8ng==", + "dev": true, + "requires": { + "array-uniq": "^1.0.1" + } + }, + "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 + }, + "filenamify": { + "version": "4.3.0", + "resolved": "https://registry.npmjs.org/filenamify/-/filenamify-4.3.0.tgz", + "integrity": "sha512-hcFKyUG57yWGAzu1CMt/dPzYZuv+jAJUT85bL8mrXvNe6hWj6yEHEc4EdcgiA6Z3oi1/9wXJdZPXF2dZNgwgOg==", + "dev": true, + "requires": { + "filename-reserved-regex": "^2.0.0", + "strip-outer": "^1.0.1", + "trim-repeated": "^1.0.0" + } + }, + "globby": { + "version": "6.1.0", + "resolved": "https://registry.npmjs.org/globby/-/globby-6.1.0.tgz", + "integrity": "sha512-KVbFv2TQtbzCoxAnfD6JcHZTYCzyliEaaeM/gH8qQdkKr5s0OP9scEgvdcngyk7AVdY6YVW/TJHd+lQ/Df3Daw==", + "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" + } + }, + "pify": { + "version": "2.3.0", + "resolved": "https://registry.npmjs.org/pify/-/pify-2.3.0.tgz", + "integrity": "sha512-udgsAY+fTnvv7kI7aaxbqwWNb0AHiB0qBO89PZKPkoTmGOgdbrHDKD+0B2X4uTfJ/FT1R09r9gTsjUjNJotuog==", + "dev": true + } + } + }, + "glob": { + "version": "7.2.3", + "resolved": "https://registry.npmjs.org/glob/-/glob-7.2.3.tgz", + "integrity": "sha512-nFR0zLpU2YCaRxwoCJvL6UvCH2JFyFVIvwTLsIf21AuHlMskA1hhTdk+LlYJtOlYt9v6dvszD2BGRqBL+iQK9Q==", + "requires": { + "fs.realpath": "^1.0.0", + "inflight": "^1.0.4", + "inherits": "2", + "minimatch": "^3.1.1", + "once": "^1.3.0", + "path-is-absolute": "^1.0.0" + } + }, + "glob-base": { + "version": "0.3.0", + "resolved": "https://registry.npmjs.org/glob-base/-/glob-base-0.3.0.tgz", + "integrity": "sha512-ab1S1g1EbO7YzauaJLkgLp7DZVAqj9M/dvKlTt8DkXA2tiOIcSMrlVI2J1RZyB5iJVccEscjGn+kpOG9788MHA==", + "dev": true, + "requires": { + "glob-parent": "^2.0.0", + "is-glob": "^2.0.0" + }, + "dependencies": { + "glob-parent": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/glob-parent/-/glob-parent-2.0.0.tgz", + "integrity": "sha512-JDYOvfxio/t42HKdxkAYaCiBN7oYiuxykOxKxdaUW5Qn0zaYN3gRQWolrwdnf0shM9/EP0ebuuTmyoXNr1cC5w==", + "dev": true, + "requires": { + "is-glob": "^2.0.0" + } + }, + "is-extglob": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/is-extglob/-/is-extglob-1.0.0.tgz", + "integrity": "sha512-7Q+VbVafe6x2T+Tu6NcOf6sRklazEPmBoB3IWk3WdGZM2iGUwU/Oe3Wtq5lSEkDTTlpp8yx+5t4pzO/i9Ty1ww==", + "dev": true + }, + "is-glob": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/is-glob/-/is-glob-2.0.1.tgz", + "integrity": "sha512-a1dBeB19NXsf/E0+FHqkagizel/LQw2DjSQpvQrj3zT+jYPpaUCryPnrQajXKFLCMuf4I6FhRpaGtw4lPrG6Eg==", + "dev": true, + "requires": { + "is-extglob": "^1.0.0" + } + } + } + }, + "glob-parent": { + "version": "5.1.2", + "resolved": "https://registry.npmjs.org/glob-parent/-/glob-parent-5.1.2.tgz", + "integrity": "sha512-AOIgSQCepiJYwP3ARnGx+5VnTu2HBYdzbGP45eLw1vr3zB3vZLeyed1sC9hnbcOc9/SrMyM5RPQrkGz4aS9Zow==", + "requires": { + "is-glob": "^4.0.1" + } + }, + "global": { + "version": "4.4.0", + "resolved": "https://registry.npmjs.org/global/-/global-4.4.0.tgz", + "integrity": "sha512-wv/LAoHdRE3BeTGz53FAamhGlPLhlssK45usmGFThIi4XqnBmjKQ16u+RNbP7WvigRZDxUsM0J3gcQ5yicaL0w==", + "requires": { + "min-document": "^2.19.0", + "process": "^0.11.10" + } + }, + "global-modules": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/global-modules/-/global-modules-2.0.0.tgz", + "integrity": "sha512-NGbfmJBp9x8IxyJSd1P+otYK8vonoJactOogrVfFRIAEY1ukil8RSKDz2Yo7wh1oihl51l/r6W4epkeKJHqL8A==", + "dev": true, + "requires": { + "global-prefix": "^3.0.0" + } + }, + "global-prefix": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/global-prefix/-/global-prefix-3.0.0.tgz", + "integrity": "sha512-awConJSVCHVGND6x3tmMaKcQvwXLhjdkmomy2W+Goaui8YPgYgXJZewhg3fWC+DlfqqQuWg8AwqjGTD2nAPVWg==", + "dev": true, + "requires": { + "ini": "^1.3.5", + "kind-of": "^6.0.2", + "which": "^1.3.1" + }, + "dependencies": { + "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 + } + } + }, + "globals": { + "version": "11.12.0", + "resolved": "https://registry.npmjs.org/globals/-/globals-11.12.0.tgz", + "integrity": "sha512-WOBp/EEGUiIsJSp7wcv/y6MO+lV9UoncWqxuFfm8eBwzWNgyfBd6Gz+IeKQ9jCmyhoH99g15M3T+QaVHFjizVA==" + }, + "globalthis": { + "version": "1.0.4", + "resolved": "https://registry.npmjs.org/globalthis/-/globalthis-1.0.4.tgz", + "integrity": "sha512-DpLKbNU4WylpxJykQujfCcwYWiV/Jhm50Goo0wrVILAv5jOr9d+H+UR3PhSCD2rCCEIg0uc+G+muBTwD54JhDQ==", + "dev": true, + "requires": { + "define-properties": "^1.2.1", + "gopd": "^1.0.1" + } + }, + "globby": { + "version": "11.1.0", + "resolved": "https://registry.npmjs.org/globby/-/globby-11.1.0.tgz", + "integrity": "sha512-jhIXaOzy1sb8IyocaruWSn1TjmnBVs8Ayhcy83rmxNJ8q2uWKCAj3CnJY+KpGSXCueAPc0i05kVvVKtP1t9S3g==", + "requires": { + "array-union": "^2.1.0", + "dir-glob": "^3.0.1", + "fast-glob": "^3.2.9", + "ignore": "^5.2.0", + "merge2": "^1.4.1", + "slash": "^3.0.0" + }, + "dependencies": { + "ignore": { + "version": "5.3.2", + "resolved": "https://registry.npmjs.org/ignore/-/ignore-5.3.2.tgz", + "integrity": "sha512-hsBTNUqQTDwkWtcdYI2i06Y/nUBEsNEDJKjWdigLvegy8kDuJAS8uRlpkkcQpyEXL0Z/pjDy5HBmMjRCJ2gq+g==" + }, + "slash": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/slash/-/slash-3.0.0.tgz", + "integrity": "sha512-g9Q1haeby36OSStwb4ntCGGGaKsaVSjQ68fBxoQcutl5fS1vuY18H3wSt3jFyFtrkx+Kz0V1G85A4MyAdDMi2Q==" + } + } + }, + "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" + } + }, + "got": { + "version": "8.3.2", + "resolved": "https://registry.npmjs.org/got/-/got-8.3.2.tgz", + "integrity": "sha512-qjUJ5U/hawxosMryILofZCkm3C84PLJS/0grRIpjAwu+Lkxxj5cxeCU25BG0/3mDSpXKTyZr8oh8wIgLaH0QCw==", + "requires": { + "@sindresorhus/is": "^0.7.0", + "cacheable-request": "^2.1.1", + "decompress-response": "^3.3.0", + "duplexer3": "^0.1.4", + "get-stream": "^3.0.0", + "into-stream": "^3.1.0", + "is-retry-allowed": "^1.1.0", + "isurl": "^1.0.0-alpha5", + "lowercase-keys": "^1.0.0", + "mimic-response": "^1.0.0", + "p-cancelable": "^0.4.0", + "p-timeout": "^2.0.1", + "pify": "^3.0.0", + "safe-buffer": "^5.1.1", + "timed-out": "^4.0.1", + "url-parse-lax": "^3.0.0", + "url-to-options": "^1.0.1" + }, + "dependencies": { + "get-stream": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/get-stream/-/get-stream-3.0.0.tgz", + "integrity": "sha512-GlhdIUuVakc8SJ6kK0zAFbiGzRFzNnY4jUuEbV9UROo4Y+0Ny4fjvcZFVTeDA4odpFyOQzaw6hXukJSq/f28sQ==" + }, + "pify": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/pify/-/pify-3.0.0.tgz", + "integrity": "sha512-C3FsVNH1udSEX48gGX1xfvwTWfsYWj5U+8/uK15BGzIGrKoUpghX8hWZwa/OFnakBiiVNmBvemTJR5mcy7iPcg==" + } + } + }, + "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==" + }, + "grapheme-breaker": { + "version": "0.3.2", + "resolved": "https://registry.npmjs.org/grapheme-breaker/-/grapheme-breaker-0.3.2.tgz", + "integrity": "sha512-mB6rwkw1Z7z4z2RkFFTd/+q6Ug1gnCgjKAervAKgBeNI1mSr8E5EUWoYzFNOZsLHFArLfpk+O8X8qXC7uvuawQ==", + "requires": { + "brfs": "^1.2.0", + "unicode-trie": "^0.3.1" + } + }, + "growl": { + "version": "1.10.3", + "resolved": "https://registry.npmjs.org/growl/-/growl-1.10.3.tgz", + "integrity": "sha512-hKlsbA5Vu3xsh1Cg3J7jSmX/WaW6A5oBeqzM88oNbCRQFz+zUaXm6yxS4RVytp1scBoJzSYl4YAEOQIt6O8V1Q==" + }, + "growly": { + "version": "1.3.0", + "resolved": "https://registry.npmjs.org/growly/-/growly-1.3.0.tgz", + "integrity": "sha512-+xGQY0YyAWCnqy7Cd++hc2JqMYzlm0dG30Jd0beaA64sROr8C4nt8Yc9V5Ro3avlSUDTN0ulqP/VBKi1/lLygw==", + "dev": true + }, + "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 + }, + "handlebars": { + "version": "4.7.8", + "resolved": "https://registry.npmjs.org/handlebars/-/handlebars-4.7.8.tgz", + "integrity": "sha512-vafaFqs8MZkRrSX7sFVUdo3ap/eNiLnb4IakshzvP56X5Nr1iGKAIqdX6tMlm6HcNRIkr6AxO5jFEoJzzpT8aQ==", + "dev": true, + "requires": { + "minimist": "^1.2.5", + "neo-async": "^2.6.2", + "source-map": "^0.6.1", + "uglify-js": "^3.1.4", + "wordwrap": "^1.0.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 + } + } + }, + "har-schema": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/har-schema/-/har-schema-2.0.0.tgz", + "integrity": "sha512-Oqluz6zhGX8cyRaTQlFMPw80bSJVG2x/cFb8ZPhUILGgHka9SsokCCOQgpveePerqidZOrT14ipqfJb7ILcW5Q==" + }, + "har-validator": { + "version": "5.1.5", + "resolved": "https://registry.npmjs.org/har-validator/-/har-validator-5.1.5.tgz", + "integrity": "sha512-nmT2T0lljbxdQZfspsno9hgrG3Uir6Ks5afism62poxqBM6sDnMEuPmzTq8XN0OEwqKLLdh1jQI3qyE66Nzb3w==", + "requires": { + "ajv": "^6.12.3", + "har-schema": "^2.0.0" + } + }, + "has": { + "version": "1.0.4", + "resolved": "https://registry.npmjs.org/has/-/has-1.0.4.tgz", + "integrity": "sha512-qdSAmqLF6209RFj4VVItywPMbm3vWylknmB3nvNiUIs72xAimcM8nVYxYr7ncvZq5qzk9MKIZR8ijqD/1QuYjQ==" + }, + "has-ansi": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/has-ansi/-/has-ansi-2.0.0.tgz", + "integrity": "sha512-C8vBJ8DwUCx19vhm7urhTuUsr4/IyP6l4VzNQDv+ryHQObW3TTTp9yB68WpYgRe2bbaGuZ/se74IqFeVnMnLZg==", + "requires": { + "ansi-regex": "^2.0.0" + } + }, + "has-bigints": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/has-bigints/-/has-bigints-1.0.2.tgz", + "integrity": "sha512-tSvCKtBr9lkF0Ex0aQiP9N+OpV4zi2r/Nee5VkRDbaqv35RLYMzbwQfFSZZH0kR+Rd6302UJZ2p/bJCEoR3VoQ==", + "dev": true + }, + "has-flag": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/has-flag/-/has-flag-3.0.0.tgz", + "integrity": "sha512-sKJf1+ceQBr4SMkvQnBDNDtf4TXpVhVGateu0t918bl30FnbE2m4vNLX+VWe/dpjlb+HugGYzW7uQXH98HPEYw==" + }, + "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-symbol-support-x": { + "version": "1.4.2", + "resolved": "https://registry.npmjs.org/has-symbol-support-x/-/has-symbol-support-x-1.4.2.tgz", + "integrity": "sha512-3ToOva++HaW+eCpgqZrCfN51IPB+7bJNVT6CUATzueB5Heb8o6Nam0V3HG5dlDvZU1Gn5QLcbahiKw/XVk5JJw==" + }, + "has-symbols": { + "version": "1.0.3", + "resolved": "https://registry.npmjs.org/has-symbols/-/has-symbols-1.0.3.tgz", + "integrity": "sha512-l3LCuF6MgDNwTDKkdYGEihYjt5pRPbEg46rtlmnSPlUbgmB8LOIrKJbYYFBSbnPaJexMKtiPO8hmeRjRz2Td+A==" + }, + "has-to-string-tag-x": { + "version": "1.4.1", + "resolved": "https://registry.npmjs.org/has-to-string-tag-x/-/has-to-string-tag-x-1.4.1.tgz", + "integrity": "sha512-vdbKfmw+3LoOYVr+mtxHaX5a96+0f3DljYd8JOqvOLsf5mw2Otda2qCDT9qRqLAhrjyQ0h7ual5nOiASpsGNFw==", + "requires": { + "has-symbol-support-x": "^1.4.1" + } + }, + "has-tostringtag": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/has-tostringtag/-/has-tostringtag-1.0.2.tgz", + "integrity": "sha512-NqADB8VjPFLM2V0VvHUewwwsw0ZWBaIdgo+ieHtK3hasLz4qeCRjYcqfB6AQrBggRKppKF8L52/VqdVsO47Dlw==", + "dev": true, + "requires": { + "has-symbols": "^1.0.3" + } + }, + "has-value": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/has-value/-/has-value-1.0.0.tgz", + "integrity": "sha512-IBXk4GTsLYdQ7Rvt+GRBrFSVEkmuOUy4re0Xjd9kJSUQpnTrWR4/y9RpfexN9vkAPMFuQoeWKwqzPozRTlasGw==", + "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": "sha512-ODYZC64uqzmtfGMEAX/FvZiRyWLpAC3vYnNunURUnkGVTS+mI0smVsWaPydRBsE3g+ok7h960jChO8mFcWlHaQ==", + "requires": { + "is-number": "^3.0.0", + "kind-of": "^4.0.0" + }, + "dependencies": { + "kind-of": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/kind-of/-/kind-of-4.0.0.tgz", + "integrity": "sha512-24XsCxmEbRwEDbz/qz3stgin8TTzZ1ESR56OMCN0ujYg+vRutNSiOj9bHH9u85DKgXguraugV5sFuvbD4FW/hw==", + "requires": { + "is-buffer": "^1.1.5" + } + } + } + }, + "hash-base": { + "version": "3.0.4", + "resolved": "https://registry.npmjs.org/hash-base/-/hash-base-3.0.4.tgz", + "integrity": "sha512-EeeoJKjTyt868liAlVmcv2ZsUfGHlE3Q+BICOXcZiwN3osr5Q/zFGYmTJpoIzuaSTAwndFy+GqhEwlU4L3j4Ow==", + "requires": { + "inherits": "^2.0.1", + "safe-buffer": "^5.0.1" + } + }, + "hash.js": { + "version": "1.1.7", + "resolved": "https://registry.npmjs.org/hash.js/-/hash.js-1.1.7.tgz", + "integrity": "sha512-taOaskGt4z4SOANNseOviYDvjEJinIkRgmp7LbKP2YTTmVxWBl87s/uzK9r+44BclBSp2X7K1hqeNfz9JbBeXA==", + "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==", + "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 + }, + "heap": { + "version": "0.2.5", + "resolved": "https://registry.npmjs.org/heap/-/heap-0.2.5.tgz", + "integrity": "sha512-G7HLD+WKcrOyJP5VQwYZNC3Z6FcQ7YYjEFiFoIj8PfEr73mu421o8B1N5DKUcc8K37EsJ2XXWA8DtrDz/2dReg==" + }, + "hmac-drbg": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/hmac-drbg/-/hmac-drbg-1.0.1.tgz", + "integrity": "sha512-Tti3gMqLdZfhOQY1Mzf/AanLiqh1WTiJgEj26ZuYQ9fbkLomzGchCws4FyrSd4VkpBfiNhaE1On+lOz894jvXg==", + "requires": { + "hash.js": "^1.0.3", + "minimalistic-assert": "^1.0.0", + "minimalistic-crypto-utils": "^1.0.1" + } + }, + "hoist-non-react-statics": { + "version": "3.3.2", + "resolved": "https://registry.npmjs.org/hoist-non-react-statics/-/hoist-non-react-statics-3.3.2.tgz", + "integrity": "sha512-/gGivxi8JPKWNm/W0jSmzcMPpfpPLc3dY/6GxhX2hQ9iGj3aDfklV4ET7NjKpSinLpJ5vafa9iiGIEZg10SfBw==", + "requires": { + "react-is": "^16.7.0" + } + }, + "home-or-tmp": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/home-or-tmp/-/home-or-tmp-2.0.0.tgz", + "integrity": "sha512-ycURW7oUxE2sNiPVw1HVEFsW+ecOpJ5zaj7eC0RlwhibhRBod20muUN8qu/gzx956YrLolVvs1MTXwKgC2rVEg==", + "dev": true, + "requires": { + "os-homedir": "^1.0.0", + "os-tmpdir": "^1.0.1" + } + }, + "homedir-polyfill": { + "version": "1.0.3", + "resolved": "https://registry.npmjs.org/homedir-polyfill/-/homedir-polyfill-1.0.3.tgz", + "integrity": "sha512-eSmmWE5bZTK2Nou4g0AI3zZ9rswp7GRKoKXS1BLUkvPviOqs4YTN1djQIqrXy9k5gEtdLPy86JjRwsNM9tnDcA==", + "dev": true, + "requires": { + "parse-passwd": "^1.0.0" + } + }, + "hosted-git-info": { + "version": "2.8.9", + "resolved": "https://registry.npmjs.org/hosted-git-info/-/hosted-git-info-2.8.9.tgz", + "integrity": "sha512-mxIDAb9Lsm6DoOJ7xH+5+X4y1LU/4Hi50L9C5sIswK3JzULS4bwk1FvjdBgvYR4bzT4tuUQiC15FE2f5HbLvYw==" + }, + "hpack.js": { + "version": "2.1.6", + "resolved": "https://registry.npmjs.org/hpack.js/-/hpack.js-2.1.6.tgz", + "integrity": "sha512-zJxVehUdMGIKsRaNt7apO2Gqp0BdqW5yaiGHXXmbpvxgBYVZnAql+BJb4RO5ad2MgpbZKn5G6nMnegrH1FcNYQ==", + "dev": true, + "requires": { + "inherits": "^2.0.1", + "obuf": "^1.0.0", + "readable-stream": "^2.0.1", + "wbuf": "^1.1.0" + } + }, + "html-element-map": { + "version": "1.3.1", + "resolved": "https://registry.npmjs.org/html-element-map/-/html-element-map-1.3.1.tgz", + "integrity": "sha512-6XMlxrAFX4UEEGxctfFnmrFaaZFNf9i5fNuV5wZ3WWQ4FVaNP1aX1LkX9j2mfEx1NpjeE/rL3nmgEn23GdFmrg==", + "dev": true, + "requires": { + "array.prototype.filter": "^1.0.0", + "call-bind": "^1.0.2" + } + }, + "html-encoding-sniffer": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/html-encoding-sniffer/-/html-encoding-sniffer-1.0.2.tgz", + "integrity": "sha512-71lZziiDnsuabfdYiUeWdCVyKuqwWi23L8YeIgV9jSSZHCtb6wB1BKWooH7L3tn4/FuZJMVWyNaIDr4RGmaSYw==", + "dev": true, + "requires": { + "whatwg-encoding": "^1.0.1" + }, + "dependencies": { + "iconv-lite": { + "version": "0.4.24", + "resolved": "https://registry.npmjs.org/iconv-lite/-/iconv-lite-0.4.24.tgz", + "integrity": "sha512-v3MXnZAcvnywkTUEZomIActle7RXXeedOR31wwl7VlyoXO4Qi9arvSenNQWne1TcRwhCL1HwLI21bEqdpj8/rA==", + "dev": true, + "requires": { + "safer-buffer": ">= 2.1.2 < 3" + } + }, + "whatwg-encoding": { + "version": "1.0.5", + "resolved": "https://registry.npmjs.org/whatwg-encoding/-/whatwg-encoding-1.0.5.tgz", + "integrity": "sha512-b5lim54JOPN9HtzvK9HFXvBma/rnfFeqsic0hSpjtDbVxR3dJKLc+KB4V6GgiGOvl7CY/KNh8rxSo9DKQrnUEw==", + "dev": true, + "requires": { + "iconv-lite": "0.4.24" + } + } + } + }, + "html-entities": { + "version": "1.4.0", + "resolved": "https://registry.npmjs.org/html-entities/-/html-entities-1.4.0.tgz", + "integrity": "sha512-8nxjcBcd8wovbeKx7h3wTji4e6+rhaVuPNpMqwWgnHh+N9ToqsCs6XztWRBPQ+UtzsoMAdKZtUENoVzU/EMtZA==", + "dev": true + }, + "html-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, + "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" + } + }, + "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, + "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": { + "tapable": { + "version": "1.1.3", + "resolved": "https://registry.npmjs.org/tapable/-/tapable-1.1.3.tgz", + "integrity": "sha512-4WK/bYZmj8xLr+HUCODHGF1ZFzsYffasLUgEiMBY4fgtltdO6B4WJtlSbPaDTLpYTcGVwM2qLnFTICEcNxs3kA==", + "dev": true + } + } + }, + "htmlparser2": { + "version": "9.1.0", + "resolved": "https://registry.npmjs.org/htmlparser2/-/htmlparser2-9.1.0.tgz", + "integrity": "sha512-5zfg6mHUoaer/97TxnGpxmbR7zJtPwIYFMZ/H5ucTlPZhKvtum05yiPK3Mgai3a0DyVxv7qYqoweaEd2nrYQzQ==", + "dev": true, + "requires": { + "domelementtype": "^2.3.0", + "domhandler": "^5.0.3", + "domutils": "^3.1.0", + "entities": "^4.5.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==" + }, + "http-deceiver": { + "version": "1.2.7", + "resolved": "https://registry.npmjs.org/http-deceiver/-/http-deceiver-1.2.7.tgz", + "integrity": "sha512-LmpOGxTfbpgtGVxJrj5k7asXHCgNZp5nLfp+hWc8QQRqtb7fUy6kRY3BO1h9ddF6yIPYUARgxGOwB42DnxIaNw==", + "dev": true + }, + "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==", + "dev": true, + "requires": { + "depd": "2.0.0", + "inherits": "2.0.4", + "setprototypeof": "1.2.0", + "statuses": "2.0.1", + "toidentifier": "1.0.1" + } + }, + "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-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" + } + }, + "http-signature": { + "version": "1.2.0", + "resolved": "https://registry.npmjs.org/http-signature/-/http-signature-1.2.0.tgz", + "integrity": "sha512-CAbnr6Rz4CYQkLYUtSNXxQPUH2gK8f3iWexVlsnMeD+GjlsQ0Xsy1cOX+mN3dtxYomRy21CiOzU8Uhw6OwncEQ==", + "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": "sha512-J+FkSdyD+0mA0N+81tMotaRMfSL9SGi+xpD3T6YApKsc3bGSXJlfXri3VyFOeYkfLRQisDk1W+jIFFKBeUBbBg==" + }, + "https-proxy-agent": { + "version": "5.0.1", + "resolved": "https://registry.npmjs.org/https-proxy-agent/-/https-proxy-agent-5.0.1.tgz", + "integrity": "sha512-dFcAjpTQFgoLMzC2VwU+C/CbS7uRL0lWmxDITmqm7C+7F0Odmj6s9l6alZc6AELXhrnggM2CeWSXHGOdX2YtwA==", + "dev": true, + "requires": { + "agent-base": "6", + "debug": "4" + } + }, + "hull.js": { + "version": "0.2.10", + "resolved": "https://registry.npmjs.org/hull.js/-/hull.js-0.2.10.tgz", + "integrity": "sha512-UO3W30HxhWgeSpNKCdXt00xkwjRTGmhQaoZNP8ll509Nl+DP9juXE3wRGizihuop08FSB4xtAWIbWSe+RxEoog==" + }, + "hyphenate-style-name": { + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/hyphenate-style-name/-/hyphenate-style-name-1.1.0.tgz", + "integrity": "sha512-WDC/ui2VVRrz3jOVi+XtjqkDjiVjTtFaAGiW37k6b+ohyQ5wYDOGkvCZa8+H0nx3gyvv0+BST9xuOgIyGQ00gw==" + }, + "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==", + "dev": true, + "requires": { + "safer-buffer": ">= 2.1.2 < 3.0.0" + } + }, + "icss-replace-symbols": { + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/icss-replace-symbols/-/icss-replace-symbols-1.1.0.tgz", + "integrity": "sha512-chIaY3Vh2mh2Q3RGXttaDIzeiPvaVXJ+C4DAh/w3c37SKZ/U6PGMmuicR2EQQp9bKG8zLMCl7I+PtIoOOPp8Gg==" + }, + "icss-utils": { + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/icss-utils/-/icss-utils-2.1.0.tgz", + "integrity": "sha512-bsVoyn/1V4R1kYYjLcWLedozAM4FClZUdjE9nIr8uWY7xs78y9DATgwz2wGU7M+7z55KenmmTkN2DVJ7bqzjAA==", + "requires": { + "postcss": "^6.0.1" + }, + "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==", + "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==", + "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==", + "requires": { + "color-name": "1.1.3" + } + }, + "postcss": { + "version": "6.0.23", + "resolved": "https://registry.npmjs.org/postcss/-/postcss-6.0.23.tgz", + "integrity": "sha512-soOk1h6J3VMTZtVeVpv15/Hpdl2cBLX3CAw4TAbkpTJiNPk9YP/zWcD1ND+xEtvyuuvKzbxliTOIyvkSeSJ6ag==", + "requires": { + "chalk": "^2.4.1", + "source-map": "^0.6.1", + "supports-color": "^5.4.0" + } + }, + "source-map": { + "version": "0.6.1", + "resolved": "https://registry.npmjs.org/source-map/-/source-map-0.6.1.tgz", + "integrity": "sha512-UjgapumWlbMhkBgzT7Ykc5YXUT46F0iKu8SGXq0bcwP5dz/h0Plj6enJqjz1Zbq2l5WaqYnrVbwWOWMyF3F47g==" + }, + "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" + } + } + } + }, + "ieee754": { + "version": "1.2.1", + "resolved": "https://registry.npmjs.org/ieee754/-/ieee754-1.2.1.tgz", + "integrity": "sha512-dcyqhDvX1C46lXZcVqCpK+FtMRQVdIMN6/Df5js2zouUsqG7I6sFxitIC+7KYK29KdXOLHdu9zL4sFnoVQnqaA==" + }, + "iferr": { + "version": "0.1.5", + "resolved": "https://registry.npmjs.org/iferr/-/iferr-0.1.5.tgz", + "integrity": "sha512-DUNFN5j7Tln0D+TxzloUjKB+CtVu6myn0JEFak6dG18mNt9YkQ6lzGCdafwofISZ1lLF3xRHJ98VKy9ynkcFaA==" + }, + "ify-loader": { + "version": "1.0.4", + "resolved": "https://registry.npmjs.org/ify-loader/-/ify-loader-1.0.4.tgz", + "integrity": "sha512-fzWOWwsTZH3c2GPNJy1dndN5lk+oyXGPbg9YrHv/UwC/SmlxNEUAst6evF1H9ySGbezgBA42YGLSr1WzAwgx9w==", + "requires": { + "bl": "^1.0.0", + "findup": "^0.1.5", + "from2-array": "0.0.4", + "map-limit": "0.0.1", + "multipipe": "^0.3.0", + "read-package-json": "^2.0.2", + "resolve": "^1.1.6" + } + }, + "ignore": { + "version": "4.0.6", + "resolved": "https://registry.npmjs.org/ignore/-/ignore-4.0.6.tgz", + "integrity": "sha512-cyFDKrqc/YdcWFniJhzI42+AzS+gNwmUzOSFcRCQYwySuBBBy/KjuxWLZ/FHEH6Moq1NizMOBWyTcv8O4OZIMg==", + "dev": true + }, + "immediate": { + "version": "3.0.6", + "resolved": "https://registry.npmjs.org/immediate/-/immediate-3.0.6.tgz", + "integrity": "sha512-XXOFtyqDjNDAQxVfYxuF7g9Il/IbWmmlQg2MYKOH8ExIT1qg6xc4zyS3HaEEATgs1btfzxq15ciUiY7gjSXRGQ==" + }, + "immutable": { + "version": "3.8.2", + "resolved": "https://registry.npmjs.org/immutable/-/immutable-3.8.2.tgz", + "integrity": "sha512-15gZoQ38eYjEjxkorfbcgBKBL6R7T459OuK+CpcWt7O3KF4uPCx2tD0uFETlUDIyo+1789crbMhTvQBSR5yBMg==" + }, + "import-cwd": { + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/import-cwd/-/import-cwd-2.1.0.tgz", + "integrity": "sha512-Ew5AZzJQFqrOV5BTW3EIoHAnoie1LojZLXKcCQ/yTRyVZosBhK1x1ViYjHGf5pAFOq8ZyChZp6m/fSN7pJyZtg==", + "requires": { + "import-from": "^2.1.0" + } + }, + "import-fresh": { + "version": "3.3.0", + "resolved": "https://registry.npmjs.org/import-fresh/-/import-fresh-3.3.0.tgz", + "integrity": "sha512-veYYhQa+D1QBKznvhUHxb8faxlrwUnxseDAbAp457E0wLNio2bOSKnjYDhMj+YiAq61xrMGhQk9iXVk5FzgQMw==", + "dev": true, + "requires": { + "parent-module": "^1.0.0", + "resolve-from": "^4.0.0" + } + }, + "import-from": { + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/import-from/-/import-from-2.1.0.tgz", + "integrity": "sha512-0vdnLL2wSGnhlRmzHJAg5JHjt1l2vYhzJ7tNLGbeVg0fse56tpGaH0uzH+r9Slej+BSXXEHvBKDEnVSLLE9/+w==", + "requires": { + "resolve-from": "^3.0.0" + }, + "dependencies": { + "resolve-from": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/resolve-from/-/resolve-from-3.0.0.tgz", + "integrity": "sha512-GnlH6vxLymXJNMBo7XP1fJIzBFbdYt49CuTwmB/6N53t+kMPRMFKz783LlQ4tv28XoQfMWinAJX6WCGf2IlaIw==" + } + } + }, + "import-local": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/import-local/-/import-local-2.0.0.tgz", + "integrity": "sha512-b6s04m3O+s3CGSbqDIyP4R6aAwAeYlVq9+WUWep6iHa8ETRf9yei1U48C5MmfJmV9AiLYYBKPMq/W+/WRpQmCQ==", + "dev": true, + "requires": { + "pkg-dir": "^3.0.0", + "resolve-cwd": "^2.0.0" + }, + "dependencies": { + "find-up": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/find-up/-/find-up-3.0.0.tgz", + "integrity": "sha512-1yD6RmLI1XBfxugvORwlck6f75tYL+iR0jqwsOrOxMZyGYqUuDhJ0l4AXdO1iX/FTs9cBAMEk1gWSEx1kSbylg==", + "dev": true, + "requires": { + "locate-path": "^3.0.0" + } + }, + "locate-path": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/locate-path/-/locate-path-3.0.0.tgz", + "integrity": "sha512-7AO748wWnIhNqAuaty2ZWHkQHRSNfPVIsPIfwEOWO22AmaoVrWavlOcMR5nzTLNYvp36X220/maaRsrec1G65A==", + "dev": true, + "requires": { + "p-locate": "^3.0.0", + "path-exists": "^3.0.0" + } + }, + "p-limit": { + "version": "2.3.0", + "resolved": "https://registry.npmjs.org/p-limit/-/p-limit-2.3.0.tgz", + "integrity": "sha512-//88mFWSJx8lxCzwdAABTJL2MyWB12+eIY7MDL2SqLmAkeKU9qxRvWuSyTjm3FUmpBEMuFfckAIqEaVGUDxb6w==", + "dev": true, + "requires": { + "p-try": "^2.0.0" + } + }, + "p-locate": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/p-locate/-/p-locate-3.0.0.tgz", + "integrity": "sha512-x+12w/To+4GFfgJhBEpiDcLozRJGegY+Ei7/z0tSLkMmxGZNybVMSfWj9aJn8Z5Fc7dBUNJOOVgPv2H7IwulSQ==", + "dev": true, + "requires": { + "p-limit": "^2.0.0" + } + }, + "pkg-dir": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/pkg-dir/-/pkg-dir-3.0.0.tgz", + "integrity": "sha512-/E57AYkoeQ25qkxMj5PBOVgF8Kiu/h7cYS30Z5+R7WaiCCBfLq58ZI/dSeaEKb9WVJV5n/03QwrN3IeWIFllvw==", + "dev": true, + "requires": { + "find-up": "^3.0.0" + } + } + } + }, + "imurmurhash": { + "version": "0.1.4", + "resolved": "https://registry.npmjs.org/imurmurhash/-/imurmurhash-0.1.4.tgz", + "integrity": "sha512-JmXMZ6wuvDmLiHEml9ykzqO6lwFbof0GG4IkcGaENdCRDDmMVnny7s5HsIgHCbaq0w2MyPhDqkhTUgS2LU2PHA==" + }, + "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==" + }, + "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==" + }, + "inflight": { + "version": "1.0.6", + "resolved": "https://registry.npmjs.org/inflight/-/inflight-1.0.6.tgz", + "integrity": "sha512-k92I/b08q4wvFscXCLvqfsHCrjrF7yiXsQuIVvVE7N82W3+aqpzuUdBbfhWcy/FZR3/4IgflMgKLOsvPDrGCJA==", + "requires": { + "once": "^1.3.0", + "wrappy": "1" + } + }, + "inherits": { + "version": "2.0.4", + "resolved": "https://registry.npmjs.org/inherits/-/inherits-2.0.4.tgz", + "integrity": "sha512-k/vGaX4/Yla3WzyMCvTQOXYeIHvqOKtnqBduzTHpzpQZzAskKMhZ2K+EnBiSM9zGSoIFeMpXKxa4dYeZIQqewQ==" + }, + "ini": { + "version": "1.3.8", + "resolved": "https://registry.npmjs.org/ini/-/ini-1.3.8.tgz", + "integrity": "sha512-JV/yugV2uzW5iMRSiZAyDtQd+nxtUnjeLt0acNdw98kKLrvuRVyB80tsREOE7yvGVgalhZ6RNXCmEHkUKBKxew==", + "dev": true + }, + "inquirer": { + "version": "6.5.2", + "resolved": "https://registry.npmjs.org/inquirer/-/inquirer-6.5.2.tgz", + "integrity": "sha512-cntlB5ghuB0iuO65Ovoi8ogLHiWGs/5yNrtUcKjFhSSiVeAIVpD7koaSU9RM8mpXw5YDi9RdYXGQMaOURB7ycQ==", + "dev": true, + "requires": { + "ansi-escapes": "^3.2.0", + "chalk": "^2.4.2", + "cli-cursor": "^2.1.0", + "cli-width": "^2.0.0", + "external-editor": "^3.0.3", + "figures": "^2.0.0", + "lodash": "^4.17.12", + "mute-stream": "0.0.7", + "run-async": "^2.2.0", + "rxjs": "^6.4.0", + "string-width": "^2.1.0", + "strip-ansi": "^5.1.0", + "through": "^2.3.6" + }, + "dependencies": { + "ansi-regex": { + "version": "4.1.1", + "resolved": "https://registry.npmjs.org/ansi-regex/-/ansi-regex-4.1.1.tgz", + "integrity": "sha512-ILlv4k/3f6vfQ4OoP2AGvirOktlQ98ZEL1k9FaQjxa3L1abBgbuTDAdPOpvbGncC0BTVQrl+OM8xZGK6tWXt7g==", + "dev": true + }, + "ansi-styles": { + "version": "3.2.1", + "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-3.2.1.tgz", + "integrity": "sha512-VT0ZI6kZRdTh8YyJw3SMbYm/u+NqfsAxEpWO0Pf9sq8/e94WxxOpPKx9FR1FlyCtOVDNOQ+8ntlqFxiRc+r5qA==", + "dev": true, + "requires": { + "color-convert": "^1.9.0" + } + }, + "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" + } + }, + "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" + } + }, + "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" + } + } + } + }, + "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" + } + }, + "internal-slot": { + "version": "1.0.7", + "resolved": "https://registry.npmjs.org/internal-slot/-/internal-slot-1.0.7.tgz", + "integrity": "sha512-NGnrKwXzSms2qUUih/ILZ5JBqNTSa1+ZmP6flaIp6KmSElgE9qdndzS3cqjrDovwFdmwsGsLdeFgB6suw+1e9g==", + "dev": true, + "requires": { + "es-errors": "^1.3.0", + "hasown": "^2.0.0", + "side-channel": "^1.0.4" + } + }, + "interpret": { + "version": "1.4.0", + "resolved": "https://registry.npmjs.org/interpret/-/interpret-1.4.0.tgz", + "integrity": "sha512-agE4QfB2Lkp9uICn7BAqoscw4SZP9kTE2hxiFI3jBPmXJfdqiahTbUuKGsMoN2GtqL9AxhYioAcVvgsb1HvRbA==", + "dev": true + }, + "intl": { + "version": "1.2.5", + "resolved": "https://registry.npmjs.org/intl/-/intl-1.2.5.tgz", + "integrity": "sha512-rK0KcPHeBFBcqsErKSpvZnrOmWOj+EmDkyJ57e90YWaQNqbcivcqmKDlHEeNprDWOsKzPsh1BfSpPQdDvclHVw==" + }, + "intl-format-cache": { + "version": "2.2.9", + "resolved": "https://registry.npmjs.org/intl-format-cache/-/intl-format-cache-2.2.9.tgz", + "integrity": "sha512-Zv/u8wRpekckv0cLkwpVdABYST4hZNTDaX7reFetrYTJwxExR2VyTqQm+l0WmL0Qo8Mjb9Tf33qnfj0T7pjxdQ==" + }, + "intl-messageformat": { + "version": "2.2.0", + "resolved": "https://registry.npmjs.org/intl-messageformat/-/intl-messageformat-2.2.0.tgz", + "integrity": "sha512-I+tSvHnXqJYjDfNmY95tpFMj30yoakC6OXAo+wu/wTMy6tA/4Fd4mvV7Uzs4cqK/Ap29sHhwjcY+78a8eifcXw==", + "requires": { + "intl-messageformat-parser": "1.4.0" + }, + "dependencies": { + "intl-messageformat-parser": { + "version": "1.4.0", + "resolved": "https://registry.npmjs.org/intl-messageformat-parser/-/intl-messageformat-parser-1.4.0.tgz", + "integrity": "sha512-/XkqFHKezO6UcF4Av2/Lzfrez18R0jyw7kRFhSeB/YRakdrgSc9QfFZUwNJI9swMwMoNPygK1ArC5wdFSjPw+A==" + } + } + }, + "intl-messageformat-parser": { + "version": "1.8.1", + "resolved": "https://registry.npmjs.org/intl-messageformat-parser/-/intl-messageformat-parser-1.8.1.tgz", + "integrity": "sha512-IMSCKVf0USrM/959vj3xac7s8f87sc+80Y/ipBzdKy4ifBv5Gsj2tZ41EAaURVg01QU71fYr77uA8Meh6kELbg==" + }, + "intl-relativeformat": { + "version": "2.2.0", + "resolved": "https://registry.npmjs.org/intl-relativeformat/-/intl-relativeformat-2.2.0.tgz", + "integrity": "sha512-4bV/7kSKaPEmu6ArxXf9xjv1ny74Zkwuey8Pm01NH4zggPP7JHwg2STk8Y3JdspCKRDriwIyLRfEXnj2ZLr4Bw==", + "requires": { + "intl-messageformat": "^2.0.0" + } + }, + "into-stream": { + "version": "3.1.0", + "resolved": "https://registry.npmjs.org/into-stream/-/into-stream-3.1.0.tgz", + "integrity": "sha512-TcdjPibTksa1NQximqep2r17ISRiNE9fwlfbg3F8ANdvP5/yrFTew86VcO//jk4QTaMlbjypPBq76HN2zaKfZQ==", + "requires": { + "from2": "^2.1.1", + "p-is-promise": "^1.1.0" + } + }, + "invariant": { + "version": "2.2.4", + "resolved": "https://registry.npmjs.org/invariant/-/invariant-2.2.4.tgz", + "integrity": "sha512-phJfQVBuaJM5raOpJjSfkiD6BpbCE4Ns//LaXl6wGYtUBY83nWS6Rf9tXm2e8VaK60JEjYldbPif/A2B1C2gNA==", + "requires": { + "loose-envify": "^1.0.0" + } + }, + "invert-kv": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/invert-kv/-/invert-kv-1.0.0.tgz", + "integrity": "sha512-xgs2NH9AE66ucSq4cNG1nhSFghr5l6tdL15Pk+jl46bmmBapgoaY/AacXyaDznAqmGL99TiLSQgO/XazFSKYeQ==" + }, + "ip": { + "version": "1.1.9", + "resolved": "https://registry.npmjs.org/ip/-/ip-1.1.9.tgz", + "integrity": "sha512-cyRxvOEpNHNtchU3Ln9KC/auJgup87llfQpQ+t5ghoC/UhL16SWzbueiCsdTnWmqAWl7LadfuwhlqmtOaqMHdQ==", + "dev": true + }, + "ip-regex": { + "version": "4.3.0", + "resolved": "https://registry.npmjs.org/ip-regex/-/ip-regex-4.3.0.tgz", + "integrity": "sha512-B9ZWJxHHOHUhUjCPrMpLD4xEq35bUTClHM1S6CBU5ixQnkZmwipwgc96vAd7AAGM9TGHvJR+Uss+/Ak6UphK+Q==", + "dev": true + }, + "ipaddr.js": { + "version": "1.9.1", + "resolved": "https://registry.npmjs.org/ipaddr.js/-/ipaddr.js-1.9.1.tgz", + "integrity": "sha512-0KI/607xoxSToH7GjN1FfSbLoU0+btTicjsQSWQlh/hZykN8KpmMf7uYwPW3R+akZ6R/w18ZlXSHBYXiYUPO3g==", + "dev": true + }, + "is-absolute-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-accessor-descriptor": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/is-accessor-descriptor/-/is-accessor-descriptor-1.0.1.tgz", + "integrity": "sha512-YBUanLI8Yoihw923YeFUS5fs0fF2f5TSFTNiYAAzhhDscDa3lEqYuz1pDOEP5KvX94I9ey3vsqjJcLVFVU+3QA==", + "requires": { + "hasown": "^2.0.0" + } + }, + "is-arguments": { + "version": "1.1.1", + "resolved": "https://registry.npmjs.org/is-arguments/-/is-arguments-1.1.1.tgz", + "integrity": "sha512-8Q7EARjzEnKpt/PCD7e1cgUS0a6X8u5tdSiMqXhojOdoV9TsMsiO+9VLC5vAmO8N7/GmXn7yjR8qnA6bVAEzfA==", + "dev": true, + "requires": { + "call-bind": "^1.0.2", + "has-tostringtag": "^1.0.0" + } + }, + "is-array-buffer": { + "version": "3.0.4", + "resolved": "https://registry.npmjs.org/is-array-buffer/-/is-array-buffer-3.0.4.tgz", + "integrity": "sha512-wcjaerHw0ydZwfhiKbXJWLDY8A7yV7KhjQOpb83hGgGfId/aQa4TOvwyzn2PuswW2gPCYEL/nEAiSVpdOj1lXw==", + "dev": true, + "requires": { + "call-bind": "^1.0.2", + "get-intrinsic": "^1.2.1" + } + }, + "is-arrayish": { + "version": "0.2.1", + "resolved": "https://registry.npmjs.org/is-arrayish/-/is-arrayish-0.2.1.tgz", + "integrity": "sha512-zz06S8t0ozoDXMG+ube26zeCTNXcKIPJZJi8hBrF4idCLms4CG9QtK7qBl1boi5ODzFpjswb5JPmHCbMpjaYzg==" + }, + "is-bigint": { + "version": "1.0.4", + "resolved": "https://registry.npmjs.org/is-bigint/-/is-bigint-1.0.4.tgz", + "integrity": "sha512-zB9CruMamjym81i2JZ3UMn54PKGsQzsJeo6xvN3HJJ4CAsQNB6iRutp2To77OfCNuoxspsIhzaPoO1zyCEhFOg==", + "dev": true, + "requires": { + "has-bigints": "^1.0.1" + } + }, + "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==", + "devOptional": true, + "requires": { + "binary-extensions": "^1.0.0" + } + }, + "is-boolean-object": { + "version": "1.1.2", + "resolved": "https://registry.npmjs.org/is-boolean-object/-/is-boolean-object-1.1.2.tgz", + "integrity": "sha512-gDYaKHJmnj4aWxyj6YHyXVpdQawtVLHU5cb+eztPGczf6cjuTdwve5ZIEfgXqH4e57An1D1AKf8CZ3kYrQRqYA==", + "dev": true, + "requires": { + "call-bind": "^1.0.2", + "has-tostringtag": "^1.0.0" + } + }, + "is-buffer": { + "version": "1.1.6", + "resolved": "https://registry.npmjs.org/is-buffer/-/is-buffer-1.1.6.tgz", + "integrity": "sha512-NcdALwpXkTm5Zvvbk7owOUSvVvBKDgKP5/ewfXEznmQFfs4ZRmanOeKBTjRVjka3QFoN6XJ+9F3USqfHqTaU5w==" + }, + "is-builtin-module": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/is-builtin-module/-/is-builtin-module-1.0.0.tgz", + "integrity": "sha512-C2wz7Juo5pUZTFQVer9c+9b4qw3I5T/CHQxQyhVu7BJel6C22FmsLIWsdseYyOw6xz9Pqy9eJWSkQ7+3iN1HVw==", + "dev": true, + "requires": { + "builtin-modules": "^1.0.0" + } + }, + "is-callable": { + "version": "1.2.7", + "resolved": "https://registry.npmjs.org/is-callable/-/is-callable-1.2.7.tgz", + "integrity": "sha512-1BC0BVFhS/p0qtw6enp8e+8OD0UrK0oFLztSjNzhcKA3WDuJxxAPXzPuPtKkjEY9UUoEWlX/8fgKeu2S8i9JTA==", + "dev": true + }, + "is-ci": { + "version": "1.2.1", + "resolved": "https://registry.npmjs.org/is-ci/-/is-ci-1.2.1.tgz", + "integrity": "sha512-s6tfsaQaQi3JNciBH6shVqEDvhGut0SUXr31ag8Pd8BBbVVlcGfWhpPmEOoM6RJ5TFhbypvf5yyRw/VXW1IiWg==", + "dev": true, + "requires": { + "ci-info": "^1.5.0" + } + }, + "is-core-module": { + "version": "2.15.1", + "resolved": "https://registry.npmjs.org/is-core-module/-/is-core-module-2.15.1.tgz", + "integrity": "sha512-z0vtXSwucUJtANQWldhbtbt7BnL0vxiFjIdDLAatwhDYty2bad6s+rijD6Ri4YuYJubLzIJLUidCh09e1djEVQ==", + "requires": { + "hasown": "^2.0.2" + } + }, + "is-data-descriptor": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/is-data-descriptor/-/is-data-descriptor-1.0.1.tgz", + "integrity": "sha512-bc4NlCDiCr28U4aEsQ3Qs2491gVq4V8G7MQyws968ImqjKuYtTJXrl7Vq7jsN7Ly/C3xj5KWFrY7sHNeDkAzXw==", + "requires": { + "hasown": "^2.0.0" + } + }, + "is-data-view": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/is-data-view/-/is-data-view-1.0.1.tgz", + "integrity": "sha512-AHkaJrsUVW6wq6JS8y3JnM/GJF/9cf+k20+iDzlSaJrinEo5+7vRiteOSwBhHRiAyQATN1AmY4hwzxJKPmYf+w==", + "dev": true, + "requires": { + "is-typed-array": "^1.1.13" + } + }, + "is-date-object": { + "version": "1.0.5", + "resolved": "https://registry.npmjs.org/is-date-object/-/is-date-object-1.0.5.tgz", + "integrity": "sha512-9YQaSxsAiSwcvS33MBk3wTCVnWK+HhF8VZR2jRxehM16QcVOdHqPn4VPHmRK4lSr38n9JriurInLcP90xsYNfQ==", + "dev": true, + "requires": { + "has-tostringtag": "^1.0.0" + } + }, + "is-descriptor": { + "version": "1.0.3", + "resolved": "https://registry.npmjs.org/is-descriptor/-/is-descriptor-1.0.3.tgz", + "integrity": "sha512-JCNNGbwWZEVaSPtS45mdtrneRWJFp07LLmykxeFV5F6oBvNF8vHSfJuJgoT472pSfk+Mf8VnlrspaFBHWM8JAw==", + "requires": { + "is-accessor-descriptor": "^1.0.1", + "is-data-descriptor": "^1.0.1" + } + }, + "is-directory": { + "version": "0.3.1", + "resolved": "https://registry.npmjs.org/is-directory/-/is-directory-0.3.1.tgz", + "integrity": "sha512-yVChGzahRFvbkscn2MlwGismPO12i9+znNruC5gVEntG3qu0xQMzsGg/JFbrsqDOHtHFPci+V5aP5T9I+yeKqw==" + }, + "is-dotfile": { + "version": "1.0.3", + "resolved": "https://registry.npmjs.org/is-dotfile/-/is-dotfile-1.0.3.tgz", + "integrity": "sha512-9YclgOGtN/f8zx0Pr4FQYMdibBiTaH3sn52vjYip4ZSf6C4/6RfTEZ+MR4GvKhCxdPh21Bg42/WL55f6KSnKpg==", + "dev": true + }, + "is-equal-shallow": { + "version": "0.1.3", + "resolved": "https://registry.npmjs.org/is-equal-shallow/-/is-equal-shallow-0.1.3.tgz", + "integrity": "sha512-0EygVC5qPvIyb+gSz7zdD5/AAoS6Qrx1e//6N4yv4oNm30kqvdmG66oZFWVlQHUWe5OjP08FuTw2IdT0EOTcYA==", + "dev": true, + "requires": { + "is-primitive": "^2.0.0" + } + }, + "is-extendable": { + "version": "0.1.1", + "resolved": "https://registry.npmjs.org/is-extendable/-/is-extendable-0.1.1.tgz", + "integrity": "sha512-5BMULNob1vgFX6EjQw5izWDxrecWK9AM72rugNr0TFldMOi0fj6Jk+zeKIt0xGj4cEfQIJth4w3OKWOJ4f+AFw==" + }, + "is-extglob": { + "version": "2.1.1", + "resolved": "https://registry.npmjs.org/is-extglob/-/is-extglob-2.1.1.tgz", + "integrity": "sha512-SbKbANkN603Vi4jEZv49LeVJMn4yGwsbzZworEoyEiutsN3nJYdbO36zfhGJ6QEDpOZIFkDtnq5JRxmvl3jsoQ==" + }, + "is-finite": { + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/is-finite/-/is-finite-1.1.0.tgz", + "integrity": "sha512-cdyMtqX/BOqqNBBiKlIVkytNHm49MtMlYyn1zxzvJKWmFMlGzm+ry5BBfYyeY9YmNKbRSo/o7OX9w9ale0wg3w==", + "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": "sha512-VHskAKYM8RfSFXwee5t5cbN5PZeq1Wrh6qd5bkyiXIf6UQcN6w/A0eXM9r6t8d+GYOh+o6ZhiEnb88LN/Y8m2w==", + "dev": true + }, + "is-function": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/is-function/-/is-function-1.0.2.tgz", + "integrity": "sha512-lw7DUp0aWXYg+CBCN+JKkcE0Q2RayZnSvnZBlwgxHBQhqt5pZNVy4Ri7H9GmmXkdu7LUthszM+Tor1u/2iBcpQ==" + }, + "is-glob": { + "version": "4.0.3", + "resolved": "https://registry.npmjs.org/is-glob/-/is-glob-4.0.3.tgz", + "integrity": "sha512-xelSayHH36ZgE7ZWhli7pW34hNbNl8Ojv5KVmkJD4hBdD3th8Tfk9vYasLM+mXWOZhFkgZfxhLSnrwRr4elSSg==", + "requires": { + "is-extglob": "^2.1.1" + } + }, + "is-in-browser": { + "version": "1.1.3", + "resolved": "https://registry.npmjs.org/is-in-browser/-/is-in-browser-1.1.3.tgz", + "integrity": "sha512-FeXIBgG/CPGd/WUxuEyvgGTEfwiG9Z4EKGxjNMRqviiIIfsmgrpnHLffEDdwUHqNva1VEW91o3xBT/m8Elgl9g==" + }, + "is-natural-number": { + "version": "4.0.1", + "resolved": "https://registry.npmjs.org/is-natural-number/-/is-natural-number-4.0.1.tgz", + "integrity": "sha512-Y4LTamMe0DDQIIAlaer9eKebAlDSV6huy+TWhJVPlzZh2o4tRP5SQWFlLn5N0To4mDD22/qdOq+veo1cSISLgQ==" + }, + "is-negative-zero": { + "version": "2.0.3", + "resolved": "https://registry.npmjs.org/is-negative-zero/-/is-negative-zero-2.0.3.tgz", + "integrity": "sha512-5KoIu2Ngpyek75jXodFvnafB6DJgr3u8uuK0LEZJjrU19DrMD3EVERaR8sjz8CCGgpZvxPl9SuE1GMVPFHx1mw==", + "dev": true + }, + "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==", + "requires": { + "kind-of": "^3.0.2" + } + }, + "is-number-object": { + "version": "1.0.7", + "resolved": "https://registry.npmjs.org/is-number-object/-/is-number-object-1.0.7.tgz", + "integrity": "sha512-k1U0IRzLMo7ZlYIfzRu23Oh6MiIFasgpb9X76eqfFZAqwH44UI4KTBvBYIZ1dSL9ZzChTB9ShHfLkR4pdW5krQ==", + "dev": true, + "requires": { + "has-tostringtag": "^1.0.0" + } + }, + "is-object": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/is-object/-/is-object-1.0.2.tgz", + "integrity": "sha512-2rRIahhZr2UWb45fIOuvZGpFtz0TyOZLf32KxBbSoUCeZR495zCKlWUKKUByk3geS2eAs7ZAABt0Y/Rx0GiQGA==" + }, + "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" + }, + "dependencies": { + "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-path-inside": { + "version": "3.0.3", + "resolved": "https://registry.npmjs.org/is-path-inside/-/is-path-inside-3.0.3.tgz", + "integrity": "sha512-Fd4gABb+ycGAmKou8eMftCupSir5lRxqf4aD/vd0cD2qc4HL07OjCeuHMr8Ro4CoMaeCKDB0/ECBOVWjTwUvPQ==", + "dev": true + }, + "is-plain-obj": { + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/is-plain-obj/-/is-plain-obj-1.1.0.tgz", + "integrity": "sha512-yvkRyxmFKEOQ4pNXCmJG5AEQNlXJS5LaONXo5/cLdTZdWvsZ1ioJEonLGAosKlMWE8lwUy/bJzMjcw8az73+Fg==" + }, + "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==", + "requires": { + "isobject": "^3.0.1" + } + }, + "is-posix-bracket": { + "version": "0.1.1", + "resolved": "https://registry.npmjs.org/is-posix-bracket/-/is-posix-bracket-0.1.1.tgz", + "integrity": "sha512-Yu68oeXJ7LeWNmZ3Zov/xg/oDBnBK2RNxwYY1ilNJX+tKKZqgPK+qOn/Gs9jEu66KDY9Netf5XLKNGzas/vPfQ==", + "dev": true + }, + "is-primitive": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/is-primitive/-/is-primitive-2.0.0.tgz", + "integrity": "sha512-N3w1tFaRfk3UrPfqeRyD+GYDASU3W5VinKhlORy8EWVf/sIdDL9GAcew85XmktCfH+ngG7SRXEVDoO18WMdB/Q==", + "dev": true + }, + "is-regex": { + "version": "1.1.4", + "resolved": "https://registry.npmjs.org/is-regex/-/is-regex-1.1.4.tgz", + "integrity": "sha512-kvRdxDsxZjhzUX07ZnLydzS1TU/TJlTUHHY4YLL87e37oUA49DfkLqgy+VjFocowy29cKvcSiu+kIv728jTTVg==", + "dev": true, + "requires": { + "call-bind": "^1.0.2", + "has-tostringtag": "^1.0.0" + } + }, + "is-retry-allowed": { + "version": "1.2.0", + "resolved": "https://registry.npmjs.org/is-retry-allowed/-/is-retry-allowed-1.2.0.tgz", + "integrity": "sha512-RUbUeKwvm3XG2VYamhJL1xFktgjvPzL0Hq8C+6yrWIswDy3BIXGqCxhxkc30N9jqK311gVU137K8Ei55/zVJRg==" + }, + "is-shared-array-buffer": { + "version": "1.0.3", + "resolved": "https://registry.npmjs.org/is-shared-array-buffer/-/is-shared-array-buffer-1.0.3.tgz", + "integrity": "sha512-nA2hv5XIhLR3uVzDDfCIknerhx8XUKnstuOERPNNIinXG7v9u+ohXF67vxm4TPTEPU6lm61ZkwP3c9PCB97rhg==", + "dev": true, + "requires": { + "call-bind": "^1.0.7" + } + }, + "is-stream": { + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/is-stream/-/is-stream-1.1.0.tgz", + "integrity": "sha512-uQPm8kcs47jx38atAcWTVxyltQYoPT68y9aWYdV6yWXSyW8mzSat0TL6CiWdZeCdF3KrAvpVtnHbTv4RN+rqdQ==" + }, + "is-string": { + "version": "1.0.7", + "resolved": "https://registry.npmjs.org/is-string/-/is-string-1.0.7.tgz", + "integrity": "sha512-tE2UXzivje6ofPW7l23cjDOMa09gb7xlAqG6jG5ej6uPV32TlWP3NKPigtaGeHNu9fohccRYvIiZMfOOnOYUtg==", + "dev": true, + "requires": { + "has-tostringtag": "^1.0.0" + } + }, + "is-subset": { + "version": "0.1.1", + "resolved": "https://registry.npmjs.org/is-subset/-/is-subset-0.1.1.tgz", + "integrity": "sha512-6Ybun0IkarhmEqxXCNw/C0bna6Zb/TkfUX9UbwJtK6ObwAVCxmAP308WWTHviM/zAqXk05cdhYsUsZeGQh99iw==", + "dev": true + }, + "is-symbol": { + "version": "1.0.4", + "resolved": "https://registry.npmjs.org/is-symbol/-/is-symbol-1.0.4.tgz", + "integrity": "sha512-C/CPBqKWnvdcxqIARxyOh4v1UUEOCHpgDa0WYgpKDFMszcrPcffg5uhwSgPCLD2WWxmq6isisz87tzT01tuGhg==", + "dev": true, + "requires": { + "has-symbols": "^1.0.2" + } + }, + "is-typed-array": { + "version": "1.1.13", + "resolved": "https://registry.npmjs.org/is-typed-array/-/is-typed-array-1.1.13.tgz", + "integrity": "sha512-uZ25/bUAlUY5fR4OKT4rZQEBrzQWYV9ZJYGGsUmEJ6thodVJ1HX64ePQ6Z0qPWP+m+Uq6e9UugrE38jeYsDSMw==", + "dev": true, + "requires": { + "which-typed-array": "^1.1.14" + } + }, + "is-typedarray": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/is-typedarray/-/is-typedarray-1.0.0.tgz", + "integrity": "sha512-cyA56iCMHAh5CdzjJIa4aohJyeO1YbwLi3Jc35MmRU6poroFjIGZzUzupGiRPOjgHg9TLu43xbpwXk523fMxKA==" + }, + "is-url": { + "version": "1.2.4", + "resolved": "https://registry.npmjs.org/is-url/-/is-url-1.2.4.tgz", + "integrity": "sha512-ITvGim8FhRiYe4IQ5uHSkj7pVaPDrCTkNd3yq3cV7iZAcJdHTUMPMEHcqSOy9xZ9qFenQCvi+2wjH9a1nXqHww==", + "dev": true + }, + "is-utf8": { + "version": "0.2.1", + "resolved": "https://registry.npmjs.org/is-utf8/-/is-utf8-0.2.1.tgz", + "integrity": "sha512-rMYPYvCzsXywIsldgLaSoPlw5PfoB/ssr7hY4pLfcodrA5M/eArza1a9VmTiNIBNMjOGr1Ow9mTyU2o69U6U9Q==", + "dev": true + }, + "is-weakref": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/is-weakref/-/is-weakref-1.0.2.tgz", + "integrity": "sha512-qctsuLZmIQ0+vSSMfoVvyFe2+GSEvnmZ2ezTup1SBse9+twCCeial6EEi3Nc2KFcf6+qz2FBPnjXsk8xhKSaPQ==", + "dev": true, + "requires": { + "call-bind": "^1.0.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==" + }, + "is-wsl": { + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/is-wsl/-/is-wsl-1.1.0.tgz", + "integrity": "sha512-gfygJYZ2gLTDlmbWMI0CE2MwnFzSN/2SZfkMlItC4K/JBlsWVDB0bO6XhqcY13YXE7iMcAJnzTCJjPiTeJJ0Mw==" + }, + "is2": { + "version": "2.0.9", + "resolved": "https://registry.npmjs.org/is2/-/is2-2.0.9.tgz", + "integrity": "sha512-rZkHeBn9Zzq52sd9IUIV3a5mfwBY+o2HePMh0wkGBM4z4qjvy2GwVxQ6nNXSfw6MmVP6gf1QIlWjiOavhM3x5g==", + "dev": true, + "requires": { + "deep-is": "^0.1.3", + "ip-regex": "^4.1.0", + "is-url": "^1.2.4" + } + }, + "isarray": { + "version": "2.0.5", + "resolved": "https://registry.npmjs.org/isarray/-/isarray-2.0.5.tgz", + "integrity": "sha512-xHjhDr3cNBK0BzdUJSPXZntQUx/mwMS5Rw4A7lPJ90XGAO6ISP/ePDNuo0vhqOZU+UD5JoodwCAAoZQd3FeAKw==" + }, + "isexe": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/isexe/-/isexe-2.0.0.tgz", + "integrity": "sha512-RHxMLp9lnKHGHRng9QFhRCMbYAcVpn69smSGcq3f36xjgVVWThj4qqLbTLlq7Ssj8B+fIQ1EuCEGI2lKsyQeIw==", + "dev": true + }, + "isobject": { + "version": "3.0.1", + "resolved": "https://registry.npmjs.org/isobject/-/isobject-3.0.1.tgz", + "integrity": "sha512-WhB9zCku7EGTj/HQQRz5aUQEUeoQZH2bWcltRErOpymJ4boYE6wL9Tbr23krRPSZ+C5zqNSrSw+Cc7sZZ4b7vg==" + }, + "isomorphic-fetch": { + "version": "2.2.1", + "resolved": "https://registry.npmjs.org/isomorphic-fetch/-/isomorphic-fetch-2.2.1.tgz", + "integrity": "sha512-9c4TNAKYXM5PRyVcwUZrF3W09nQ+sO7+jydgs4ZGW9dhsLG2VOlISJABombdQqQRXCwuYG3sYV/puGf5rp0qmA==", + "dev": true, + "requires": { + "node-fetch": "^1.0.1", + "whatwg-fetch": ">=0.10.0" + } + }, + "isstream": { + "version": "0.1.2", + "resolved": "https://registry.npmjs.org/isstream/-/isstream-0.1.2.tgz", + "integrity": "sha512-Yljz7ffyPbrLpLngrMtZ7NduUgVvi6wG9RJ9IUcyCd59YQ911PBJphODUcbOVbqYfxe1wuYf/LJ8PauMRwsM/g==" + }, + "istanbul-api": { + "version": "1.3.7", + "resolved": "https://registry.npmjs.org/istanbul-api/-/istanbul-api-1.3.7.tgz", + "integrity": "sha512-4/ApBnMVeEPG3EkSzcw25wDe4N66wxwn+KKn6b47vyek8Xb3NBAcg4xfuQbS7BqcZuTX4wxfD5lVagdggR3gyA==", + "dev": true, + "requires": { + "async": "^2.1.4", + "fileset": "^2.0.2", + "istanbul-lib-coverage": "^1.2.1", + "istanbul-lib-hook": "^1.2.2", + "istanbul-lib-instrument": "^1.10.2", + "istanbul-lib-report": "^1.1.5", + "istanbul-lib-source-maps": "^1.2.6", + "istanbul-reports": "^1.5.1", + "js-yaml": "^3.7.0", + "mkdirp": "^0.5.1", + "once": "^1.4.0" + }, + "dependencies": { + "mkdirp": { + "version": "0.5.6", + "resolved": "https://registry.npmjs.org/mkdirp/-/mkdirp-0.5.6.tgz", + "integrity": "sha512-FP+p8RB8OWpF3YZBCrP5gtADmtXApB5AMLn+vdyA+PyxCjrCs00mjyUozssO33cwDeT3wNGdLxJ5M//YqtHAJw==", + "dev": true, + "requires": { + "minimist": "^1.2.6" + } + } + } + }, + "istanbul-lib-coverage": { + "version": "1.2.1", + "resolved": "https://registry.npmjs.org/istanbul-lib-coverage/-/istanbul-lib-coverage-1.2.1.tgz", + "integrity": "sha512-PzITeunAgyGbtY1ibVIUiV679EFChHjoMNRibEIobvmrCRaIgwLxNucOSimtNWUhEib/oO7QY2imD75JVgCJWQ==", + "dev": true + }, + "istanbul-lib-hook": { + "version": "1.2.2", + "resolved": "https://registry.npmjs.org/istanbul-lib-hook/-/istanbul-lib-hook-1.2.2.tgz", + "integrity": "sha512-/Jmq7Y1VeHnZEQ3TL10VHyb564mn6VrQXHchON9Jf/AEcmQ3ZIiyD1BVzNOKTZf/G3gE+kiGK6SmpF9y3qGPLw==", + "dev": true, + "requires": { + "append-transform": "^0.4.0" + } + }, + "istanbul-lib-instrument": { + "version": "1.10.2", + "resolved": "https://registry.npmjs.org/istanbul-lib-instrument/-/istanbul-lib-instrument-1.10.2.tgz", + "integrity": "sha512-aWHxfxDqvh/ZlxR8BBaEPVSWDPUkGD63VjGQn3jcw8jCp7sHEMKcrj4xfJn/ABzdMEHiQNyvDQhqm5o8+SQg7A==", + "dev": true, + "requires": { + "babel-generator": "^6.18.0", + "babel-template": "^6.16.0", + "babel-traverse": "^6.18.0", + "babel-types": "^6.18.0", + "babylon": "^6.18.0", + "istanbul-lib-coverage": "^1.2.1", + "semver": "^5.3.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 + } + } + }, + "istanbul-lib-report": { + "version": "1.1.5", + "resolved": "https://registry.npmjs.org/istanbul-lib-report/-/istanbul-lib-report-1.1.5.tgz", + "integrity": "sha512-UsYfRMoi6QO/doUshYNqcKJqVmFe9w51GZz8BS3WB0lYxAllQYklka2wP9+dGZeHYaWIdcXUx8JGdbqaoXRXzw==", + "dev": true, + "requires": { + "istanbul-lib-coverage": "^1.2.1", + "mkdirp": "^0.5.1", + "path-parse": "^1.0.5", + "supports-color": "^3.1.2" + }, + "dependencies": { + "has-flag": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/has-flag/-/has-flag-1.0.0.tgz", + "integrity": "sha512-DyYHfIYwAJmjAjSSPKANxI8bFY9YtFrgkAfinBojQ8YJTOuOuav64tMUJv584SES4xl74PmuaevIyaLESHdTAA==", + "dev": true + }, + "mkdirp": { + "version": "0.5.6", + "resolved": "https://registry.npmjs.org/mkdirp/-/mkdirp-0.5.6.tgz", + "integrity": "sha512-FP+p8RB8OWpF3YZBCrP5gtADmtXApB5AMLn+vdyA+PyxCjrCs00mjyUozssO33cwDeT3wNGdLxJ5M//YqtHAJw==", + "dev": true, + "requires": { + "minimist": "^1.2.6" + } + }, + "supports-color": { + "version": "3.2.3", + "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-3.2.3.tgz", + "integrity": "sha512-Jds2VIYDrlp5ui7t8abHN2bjAu4LV/q4N2KivFPpGH0lrka0BMq/33AmECUXlKPcHigkNaqfXRENFju+rlcy+A==", + "dev": true, + "requires": { + "has-flag": "^1.0.0" + } + } + } + }, + "istanbul-lib-source-maps": { + "version": "1.2.6", + "resolved": "https://registry.npmjs.org/istanbul-lib-source-maps/-/istanbul-lib-source-maps-1.2.6.tgz", + "integrity": "sha512-TtbsY5GIHgbMsMiRw35YBHGpZ1DVFEO19vxxeiDMYaeOFOCzfnYVxvl6pOUIZR4dtPhAGpSMup8OyF8ubsaqEg==", + "dev": true, + "requires": { + "debug": "^3.1.0", + "istanbul-lib-coverage": "^1.2.1", + "mkdirp": "^0.5.1", + "rimraf": "^2.6.1", + "source-map": "^0.5.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" + } + }, + "mkdirp": { + "version": "0.5.6", + "resolved": "https://registry.npmjs.org/mkdirp/-/mkdirp-0.5.6.tgz", + "integrity": "sha512-FP+p8RB8OWpF3YZBCrP5gtADmtXApB5AMLn+vdyA+PyxCjrCs00mjyUozssO33cwDeT3wNGdLxJ5M//YqtHAJw==", + "dev": true, + "requires": { + "minimist": "^1.2.6" + } + } + } + }, + "istanbul-reports": { + "version": "1.5.1", + "resolved": "https://registry.npmjs.org/istanbul-reports/-/istanbul-reports-1.5.1.tgz", + "integrity": "sha512-+cfoZ0UXzWjhAdzosCPP3AN8vvef8XDkWtTfgaN+7L3YTpNYITnCaEkceo5SEYy644VkHka/P1FvkWvrG/rrJw==", + "dev": true, + "requires": { + "handlebars": "^4.0.3" + } + }, + "isurl": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/isurl/-/isurl-1.0.0.tgz", + "integrity": "sha512-1P/yWsxPlDtn7QeRD+ULKQPaIaN6yF368GZ2vDfv0AL0NwpStafjWCDDdn0k8wgFMWpVAqG7oJhxHnlud42i9w==", + "requires": { + "has-to-string-tag-x": "^1.2.0", + "is-object": "^1.0.1" + } + }, + "javascript-natural-sort": { + "version": "0.7.1", + "resolved": "https://registry.npmjs.org/javascript-natural-sort/-/javascript-natural-sort-0.7.1.tgz", + "integrity": "sha512-nO6jcEfZWQXDhOiBtG2KvKyEptz7RVbpGP4vTD2hLBdmNQSsCiicO2Ioinv6UI4y9ukqnBpy+XZ9H6uLNgJTlw==" + }, + "jest": { + "version": "21.2.1", + "resolved": "https://registry.npmjs.org/jest/-/jest-21.2.1.tgz", + "integrity": "sha512-mXN0ppPvWYoIcC+R+ctKxAJ28xkt/Z5Js875padm4GbgUn6baeR5N4Ng6LjatIRpUQDZVJABT7Y4gucFjPryfw==", + "dev": true, + "requires": { + "jest-cli": "^21.2.1" + } + }, + "jest-changed-files": { + "version": "21.2.0", + "resolved": "https://registry.npmjs.org/jest-changed-files/-/jest-changed-files-21.2.0.tgz", + "integrity": "sha512-+lCNP1IZLwN1NOIvBcV5zEL6GENK6TXrDj4UxWIeLvIsIDa+gf6J7hkqsW2qVVt/wvH65rVvcPwqXdps5eclTQ==", + "dev": true, + "requires": { + "throat": "^4.0.0" + } + }, + "jest-cli": { + "version": "21.2.1", + "resolved": "https://registry.npmjs.org/jest-cli/-/jest-cli-21.2.1.tgz", + "integrity": "sha512-T1BzrbFxDIW/LLYQqVfo94y/hhaj1NzVQkZgBumAC+sxbjMROI7VkihOdxNR758iYbQykL2ZOWUBurFgkQrzdg==", + "dev": true, + "requires": { + "ansi-escapes": "^3.0.0", + "chalk": "^2.0.1", + "glob": "^7.1.2", + "graceful-fs": "^4.1.11", + "is-ci": "^1.0.10", + "istanbul-api": "^1.1.1", + "istanbul-lib-coverage": "^1.0.1", + "istanbul-lib-instrument": "^1.4.2", + "istanbul-lib-source-maps": "^1.1.0", + "jest-changed-files": "^21.2.0", + "jest-config": "^21.2.1", + "jest-environment-jsdom": "^21.2.1", + "jest-haste-map": "^21.2.0", + "jest-message-util": "^21.2.1", + "jest-regex-util": "^21.2.0", + "jest-resolve-dependencies": "^21.2.0", + "jest-runner": "^21.2.1", + "jest-runtime": "^21.2.1", + "jest-snapshot": "^21.2.1", + "jest-util": "^21.2.1", + "micromatch": "^2.3.11", + "node-notifier": "^5.0.2", + "pify": "^3.0.0", + "slash": "^1.0.0", + "string-length": "^2.0.0", + "strip-ansi": "^4.0.0", + "which": "^1.2.12", + "worker-farm": "^1.3.1", + "yargs": "^9.0.0" + }, + "dependencies": { + "ansi-regex": { + "version": "3.0.1", + "resolved": "https://registry.npmjs.org/ansi-regex/-/ansi-regex-3.0.1.tgz", + "integrity": "sha512-+O9Jct8wf++lXxxFc4hc8LsjaSq0HFzzL7cVsw8pRDIPdjKD2mT4ytDZlLuSBZ4cLKZFXIrMGO7DbQCtMJJMKw==", + "dev": true + }, + "ansi-styles": { + "version": "3.2.1", + "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-3.2.1.tgz", + "integrity": "sha512-VT0ZI6kZRdTh8YyJw3SMbYm/u+NqfsAxEpWO0Pf9sq8/e94WxxOpPKx9FR1FlyCtOVDNOQ+8ntlqFxiRc+r5qA==", + "dev": true, + "requires": { + "color-convert": "^1.9.0" + } + }, + "arr-diff": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/arr-diff/-/arr-diff-2.0.0.tgz", + "integrity": "sha512-dtXTVMkh6VkEEA7OhXnN1Ecb8aAGFdZ1LFxtOCoqj4qkyOJMt7+qs6Ahdy6p/NQCPYsRSXXivhSB/J5E9jmYKA==", + "dev": true, + "requires": { + "arr-flatten": "^1.0.1" + } + }, + "array-unique": { + "version": "0.2.1", + "resolved": "https://registry.npmjs.org/array-unique/-/array-unique-0.2.1.tgz", + "integrity": "sha512-G2n5bG5fSUCpnsXz4+8FUkYsGPkNfLn9YvS66U5qbTIXI2Ynnlo4Bi42bWv+omKUCqz+ejzfClwne0alJWJPhg==", + "dev": true + }, + "braces": { + "version": "1.8.5", + "resolved": "https://registry.npmjs.org/braces/-/braces-1.8.5.tgz", + "integrity": "sha512-xU7bpz2ytJl1bH9cgIurjpg/n8Gohy9GTw81heDYLJQ4RU60dlyJsa+atVF2pI0yMMvKxI9HkKwjePCj5XI1hw==", + "dev": true, + "requires": { + "expand-range": "^1.8.1", + "preserve": "^0.2.0", + "repeat-element": "^1.1.2" + } + }, + "chalk": { + "version": "2.4.2", + "resolved": "https://registry.npmjs.org/chalk/-/chalk-2.4.2.tgz", + "integrity": "sha512-Mti+f9lpJNcwF4tWV8/OrTTtF1gZi+f8FqlyAdouralcFWFQWF2+NgCHShjkCb+IFBLq9buZwE1xckQU4peSuQ==", + "dev": true, + "requires": { + "ansi-styles": "^3.2.1", + "escape-string-regexp": "^1.0.5", + "supports-color": "^5.3.0" + } + }, + "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" + } + }, + "expand-brackets": { + "version": "0.1.5", + "resolved": "https://registry.npmjs.org/expand-brackets/-/expand-brackets-0.1.5.tgz", + "integrity": "sha512-hxx03P2dJxss6ceIeri9cmYOT4SRs3Zk3afZwWpOsRqLqprhTR8u++SlC+sFGsQr7WGFPdMF7Gjc1njDLDK6UA==", + "dev": true, + "requires": { + "is-posix-bracket": "^0.1.0" + } + }, + "extglob": { + "version": "0.3.2", + "resolved": "https://registry.npmjs.org/extglob/-/extglob-0.3.2.tgz", + "integrity": "sha512-1FOj1LOwn42TMrruOHGt18HemVnbwAmAak7krWk+wa93KXxGbK+2jpezm+ytJYDaBX0/SPLZFHKM7m+tKobWGg==", + "dev": true, + "requires": { + "is-extglob": "^1.0.0" + } + }, + "is-extglob": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/is-extglob/-/is-extglob-1.0.0.tgz", + "integrity": "sha512-7Q+VbVafe6x2T+Tu6NcOf6sRklazEPmBoB3IWk3WdGZM2iGUwU/Oe3Wtq5lSEkDTTlpp8yx+5t4pzO/i9Ty1ww==", + "dev": true + }, + "is-glob": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/is-glob/-/is-glob-2.0.1.tgz", + "integrity": "sha512-a1dBeB19NXsf/E0+FHqkagizel/LQw2DjSQpvQrj3zT+jYPpaUCryPnrQajXKFLCMuf4I6FhRpaGtw4lPrG6Eg==", + "dev": true, + "requires": { + "is-extglob": "^1.0.0" + } + }, + "micromatch": { + "version": "2.3.11", + "resolved": "https://registry.npmjs.org/micromatch/-/micromatch-2.3.11.tgz", + "integrity": "sha512-LnU2XFEk9xxSJ6rfgAry/ty5qwUTyHYOBU0g4R6tIw5ljwgGIBmiKhRWLw5NpMOnrgUNcDJ4WMp8rl3sYVHLNA==", + "dev": true, + "requires": { + "arr-diff": "^2.0.0", + "array-unique": "^0.2.1", + "braces": "^1.8.2", + "expand-brackets": "^0.1.4", + "extglob": "^0.3.1", + "filename-regex": "^2.0.0", + "is-extglob": "^1.0.0", + "is-glob": "^2.0.1", + "kind-of": "^3.0.2", + "normalize-path": "^2.0.1", + "object.omit": "^2.0.0", + "parse-glob": "^3.0.4", + "regex-cache": "^0.4.2" + } + }, + "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" + } + }, + "pify": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/pify/-/pify-3.0.0.tgz", + "integrity": "sha512-C3FsVNH1udSEX48gGX1xfvwTWfsYWj5U+8/uK15BGzIGrKoUpghX8hWZwa/OFnakBiiVNmBvemTJR5mcy7iPcg==", + "dev": true + }, + "slash": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/slash/-/slash-1.0.0.tgz", + "integrity": "sha512-3TYDR7xWt4dIqV2JauJr+EJeW356RXijHeUlO+8djJ+uBXPn8/2dpzBc8yQhh583sVvc9CvFAeQVgijsH+PNNg==", + "dev": true + }, + "strip-ansi": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/strip-ansi/-/strip-ansi-4.0.0.tgz", + "integrity": "sha512-4XaJ2zQdCzROZDivEVIDPkcQn8LMFSa8kj8Gxb/Lnwzv9A8VctNZ+lfivC/sV3ivW8ElJTERXZoPBRrZKkNKow==", + "dev": true, + "requires": { + "ansi-regex": "^3.0.0" + } + }, + "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" + } + } + } + }, + "jest-config": { + "version": "21.2.1", + "resolved": "https://registry.npmjs.org/jest-config/-/jest-config-21.2.1.tgz", + "integrity": "sha512-fJru5HtlD/5l2o25eY9xT0doK3t2dlglrqoGpbktduyoI0T5CwuB++2YfoNZCrgZipTwPuAGonYv0q7+8yDc/A==", + "dev": true, + "requires": { + "chalk": "^2.0.1", + "glob": "^7.1.1", + "jest-environment-jsdom": "^21.2.1", + "jest-environment-node": "^21.2.1", + "jest-get-type": "^21.2.0", + "jest-jasmine2": "^21.2.1", + "jest-regex-util": "^21.2.0", + "jest-resolve": "^21.2.0", + "jest-util": "^21.2.1", + "jest-validate": "^21.2.1", + "pretty-format": "^21.2.1" + }, + "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" + } + }, + "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" + } + } + } + }, + "jest-diff": { + "version": "21.2.1", + "resolved": "https://registry.npmjs.org/jest-diff/-/jest-diff-21.2.1.tgz", + "integrity": "sha512-E5fu6r7PvvPr5qAWE1RaUwIh/k6Zx/3OOkZ4rk5dBJkEWRrUuSgbMt2EO8IUTPTd6DOqU3LW6uTIwX5FRvXoFA==", + "dev": true, + "requires": { + "chalk": "^2.0.1", + "diff": "^3.2.0", + "jest-get-type": "^21.2.0", + "pretty-format": "^21.2.1" + }, + "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" + } + }, + "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" + } + } + } + }, + "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-environment-jsdom": { + "version": "21.2.1", + "resolved": "https://registry.npmjs.org/jest-environment-jsdom/-/jest-environment-jsdom-21.2.1.tgz", + "integrity": "sha512-mecaeNh0eWmzNrUNMWARysc0E9R96UPBamNiOCYL28k7mksb1d0q6DD38WKP7ABffjnXyUWJPVaWRgUOivwXwg==", + "dev": true, + "requires": { + "jest-mock": "^21.2.0", + "jest-util": "^21.2.1", + "jsdom": "^9.12.0" + } + }, + "jest-environment-node": { + "version": "21.2.1", + "resolved": "https://registry.npmjs.org/jest-environment-node/-/jest-environment-node-21.2.1.tgz", + "integrity": "sha512-R211867wx9mVBVHzrjGRGTy5cd05K7eqzQl/WyZixR/VkJ4FayS8qkKXZyYnwZi6Rxo6WEV81cDbiUx/GfuLNw==", + "dev": true, + "requires": { + "jest-mock": "^21.2.0", + "jest-util": "^21.2.1" + } + }, + "jest-get-type": { + "version": "21.2.0", + "resolved": "https://registry.npmjs.org/jest-get-type/-/jest-get-type-21.2.0.tgz", + "integrity": "sha512-y2fFw3C+D0yjNSDp7ab1kcd6NUYfy3waPTlD8yWkAtiocJdBRQqNoRqVfMNxgj+IjT0V5cBIHJO0z9vuSSZ43Q==", + "dev": true + }, + "jest-haste-map": { + "version": "21.2.0", + "resolved": "https://registry.npmjs.org/jest-haste-map/-/jest-haste-map-21.2.0.tgz", + "integrity": "sha512-5LhsY/loPH7wwOFRMs+PT4aIAORJ2qwgbpMFlbWbxfN0bk3ZCwxJ530vrbSiTstMkYLao6JwBkLhCJ5XbY7ZHw==", + "dev": true, + "requires": { + "fb-watchman": "^2.0.0", + "graceful-fs": "^4.1.11", + "jest-docblock": "^21.2.0", + "micromatch": "^2.3.11", + "sane": "^2.0.0", + "worker-farm": "^1.3.1" + }, + "dependencies": { + "arr-diff": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/arr-diff/-/arr-diff-2.0.0.tgz", + "integrity": "sha512-dtXTVMkh6VkEEA7OhXnN1Ecb8aAGFdZ1LFxtOCoqj4qkyOJMt7+qs6Ahdy6p/NQCPYsRSXXivhSB/J5E9jmYKA==", + "dev": true, + "requires": { + "arr-flatten": "^1.0.1" + } + }, + "array-unique": { + "version": "0.2.1", + "resolved": "https://registry.npmjs.org/array-unique/-/array-unique-0.2.1.tgz", + "integrity": "sha512-G2n5bG5fSUCpnsXz4+8FUkYsGPkNfLn9YvS66U5qbTIXI2Ynnlo4Bi42bWv+omKUCqz+ejzfClwne0alJWJPhg==", + "dev": true + }, + "braces": { + "version": "1.8.5", + "resolved": "https://registry.npmjs.org/braces/-/braces-1.8.5.tgz", + "integrity": "sha512-xU7bpz2ytJl1bH9cgIurjpg/n8Gohy9GTw81heDYLJQ4RU60dlyJsa+atVF2pI0yMMvKxI9HkKwjePCj5XI1hw==", + "dev": true, + "requires": { + "expand-range": "^1.8.1", + "preserve": "^0.2.0", + "repeat-element": "^1.1.2" + } + }, + "expand-brackets": { + "version": "0.1.5", + "resolved": "https://registry.npmjs.org/expand-brackets/-/expand-brackets-0.1.5.tgz", + "integrity": "sha512-hxx03P2dJxss6ceIeri9cmYOT4SRs3Zk3afZwWpOsRqLqprhTR8u++SlC+sFGsQr7WGFPdMF7Gjc1njDLDK6UA==", + "dev": true, + "requires": { + "is-posix-bracket": "^0.1.0" + } + }, + "extglob": { + "version": "0.3.2", + "resolved": "https://registry.npmjs.org/extglob/-/extglob-0.3.2.tgz", + "integrity": "sha512-1FOj1LOwn42TMrruOHGt18HemVnbwAmAak7krWk+wa93KXxGbK+2jpezm+ytJYDaBX0/SPLZFHKM7m+tKobWGg==", + "dev": true, + "requires": { + "is-extglob": "^1.0.0" + } + }, + "is-extglob": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/is-extglob/-/is-extglob-1.0.0.tgz", + "integrity": "sha512-7Q+VbVafe6x2T+Tu6NcOf6sRklazEPmBoB3IWk3WdGZM2iGUwU/Oe3Wtq5lSEkDTTlpp8yx+5t4pzO/i9Ty1ww==", + "dev": true + }, + "is-glob": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/is-glob/-/is-glob-2.0.1.tgz", + "integrity": "sha512-a1dBeB19NXsf/E0+FHqkagizel/LQw2DjSQpvQrj3zT+jYPpaUCryPnrQajXKFLCMuf4I6FhRpaGtw4lPrG6Eg==", + "dev": true, + "requires": { + "is-extglob": "^1.0.0" + } + }, + "micromatch": { + "version": "2.3.11", + "resolved": "https://registry.npmjs.org/micromatch/-/micromatch-2.3.11.tgz", + "integrity": "sha512-LnU2XFEk9xxSJ6rfgAry/ty5qwUTyHYOBU0g4R6tIw5ljwgGIBmiKhRWLw5NpMOnrgUNcDJ4WMp8rl3sYVHLNA==", + "dev": true, + "requires": { + "arr-diff": "^2.0.0", + "array-unique": "^0.2.1", + "braces": "^1.8.2", + "expand-brackets": "^0.1.4", + "extglob": "^0.3.1", + "filename-regex": "^2.0.0", + "is-extglob": "^1.0.0", + "is-glob": "^2.0.1", + "kind-of": "^3.0.2", + "normalize-path": "^2.0.1", + "object.omit": "^2.0.0", + "parse-glob": "^3.0.4", + "regex-cache": "^0.4.2" + } + }, + "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" + } + } + } + }, + "jest-jasmine2": { + "version": "21.2.1", + "resolved": "https://registry.npmjs.org/jest-jasmine2/-/jest-jasmine2-21.2.1.tgz", + "integrity": "sha512-lw8FXXIEekD+jYNlStfgNsUHpfMWhWWCgHV7n0B7mA/vendH7vBFs8xybjQsDzJSduptBZJHqQX9SMssya9+3A==", + "dev": true, + "requires": { + "chalk": "^2.0.1", + "expect": "^21.2.1", + "graceful-fs": "^4.1.11", + "jest-diff": "^21.2.1", + "jest-matcher-utils": "^21.2.1", + "jest-message-util": "^21.2.1", + "jest-snapshot": "^21.2.1", + "p-cancelable": "^0.3.0" + }, + "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" + } + }, + "p-cancelable": { + "version": "0.3.0", + "resolved": "https://registry.npmjs.org/p-cancelable/-/p-cancelable-0.3.0.tgz", + "integrity": "sha512-RVbZPLso8+jFeq1MfNvgXtCRED2raz/dKpacfTNxsx6pLEpEomM7gah6VeHSYV3+vo0OAi4MkArtQcWWXuQoyw==", + "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" + } + } + } + }, + "jest-junit": { + "version": "7.0.0", + "resolved": "https://registry.npmjs.org/jest-junit/-/jest-junit-7.0.0.tgz", + "integrity": "sha512-ljUdO0hLyu0A92xk7R2Wet3kj99fmazTo+ZFYQP6b7AGOBxJUj8ZkJWzJ632ajpXko2Y5oNoGR2kvOwiDdu6hg==", + "dev": true, + "requires": { + "jest-validate": "^24.0.0", + "mkdirp": "^0.5.1", + "strip-ansi": "^4.0.0", + "xml": "^1.0.1" + }, + "dependencies": { + "ansi-regex": { + "version": "4.1.1", + "resolved": "https://registry.npmjs.org/ansi-regex/-/ansi-regex-4.1.1.tgz", + "integrity": "sha512-ILlv4k/3f6vfQ4OoP2AGvirOktlQ98ZEL1k9FaQjxa3L1abBgbuTDAdPOpvbGncC0BTVQrl+OM8xZGK6tWXt7g==", + "dev": true + }, + "ansi-styles": { + "version": "3.2.1", + "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-3.2.1.tgz", + "integrity": "sha512-VT0ZI6kZRdTh8YyJw3SMbYm/u+NqfsAxEpWO0Pf9sq8/e94WxxOpPKx9FR1FlyCtOVDNOQ+8ntlqFxiRc+r5qA==", + "dev": true, + "requires": { + "color-convert": "^1.9.0" + } + }, + "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": "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" + } + }, + "jest-get-type": { + "version": "24.9.0", + "resolved": "https://registry.npmjs.org/jest-get-type/-/jest-get-type-24.9.0.tgz", + "integrity": "sha512-lUseMzAley4LhIcpSP9Jf+fTrQ4a1yHQwLNeeVa2cEmbCGeoZAtYPOIv8JaxLD/sUpKxetKGP+gsHl8f8TSj8Q==", + "dev": true + }, + "jest-validate": { + "version": "24.9.0", + "resolved": "https://registry.npmjs.org/jest-validate/-/jest-validate-24.9.0.tgz", + "integrity": "sha512-HPIt6C5ACwiqSiwi+OfSSHbK8sG7akG8eATl+IPKaeIjtPOeBUd/g3J7DghugzxrGjI93qS/+RPKe1H6PqvhRQ==", + "dev": true, + "requires": { + "@jest/types": "^24.9.0", + "camelcase": "^5.3.1", + "chalk": "^2.0.1", + "jest-get-type": "^24.9.0", + "leven": "^3.1.0", + "pretty-format": "^24.9.0" + } + }, + "leven": { + "version": "3.1.0", + "resolved": "https://registry.npmjs.org/leven/-/leven-3.1.0.tgz", + "integrity": "sha512-qsda+H8jTaUaN/x5vzW2rzc+8Rw4TAQ/4KjB46IwK5VH+IlVeeeje/EoZRpiXvIqjFgK84QffqPztGI3VBLG1A==", + "dev": true + }, + "mkdirp": { + "version": "0.5.6", + "resolved": "https://registry.npmjs.org/mkdirp/-/mkdirp-0.5.6.tgz", + "integrity": "sha512-FP+p8RB8OWpF3YZBCrP5gtADmtXApB5AMLn+vdyA+PyxCjrCs00mjyUozssO33cwDeT3wNGdLxJ5M//YqtHAJw==", + "dev": true, + "requires": { + "minimist": "^1.2.6" + } + }, + "pretty-format": { + "version": "24.9.0", + "resolved": "https://registry.npmjs.org/pretty-format/-/pretty-format-24.9.0.tgz", + "integrity": "sha512-00ZMZUiHaJrNfk33guavqgvfJS30sLYf0f8+Srklv0AMPodGGHcoHgksZ3OThYnIvOd+8yMCn0YiEOogjlgsnA==", + "dev": true, + "requires": { + "@jest/types": "^24.9.0", + "ansi-regex": "^4.0.0", + "ansi-styles": "^3.2.0", + "react-is": "^16.8.4" + } + }, + "strip-ansi": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/strip-ansi/-/strip-ansi-4.0.0.tgz", + "integrity": "sha512-4XaJ2zQdCzROZDivEVIDPkcQn8LMFSa8kj8Gxb/Lnwzv9A8VctNZ+lfivC/sV3ivW8ElJTERXZoPBRrZKkNKow==", + "dev": true, + "requires": { + "ansi-regex": "^3.0.0" + }, + "dependencies": { + "ansi-regex": { + "version": "3.0.1", + "resolved": "https://registry.npmjs.org/ansi-regex/-/ansi-regex-3.0.1.tgz", + "integrity": "sha512-+O9Jct8wf++lXxxFc4hc8LsjaSq0HFzzL7cVsw8pRDIPdjKD2mT4ytDZlLuSBZ4cLKZFXIrMGO7DbQCtMJJMKw==", + "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" + } + } + } + }, + "jest-matcher-utils": { + "version": "21.2.1", + "resolved": "https://registry.npmjs.org/jest-matcher-utils/-/jest-matcher-utils-21.2.1.tgz", + "integrity": "sha512-kn56My+sekD43dwQPrXBl9Zn9tAqwoy25xxe7/iY4u+mG8P3ALj5IK7MLHZ4Mi3xW7uWVCjGY8cm4PqgbsqMCg==", + "dev": true, + "requires": { + "chalk": "^2.0.1", + "jest-get-type": "^21.2.0", + "pretty-format": "^21.2.1" + }, + "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" + } + }, + "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" + } + } + } + }, + "jest-message-util": { + "version": "21.2.1", + "resolved": "https://registry.npmjs.org/jest-message-util/-/jest-message-util-21.2.1.tgz", + "integrity": "sha512-EbC1X2n0t9IdeMECJn2BOg7buOGivCvVNjqKMXTzQOu7uIfLml+keUfCALDh8o4rbtndIeyGU8/BKfoTr/LVDQ==", + "dev": true, + "requires": { + "chalk": "^2.0.1", + "micromatch": "^2.3.11", + "slash": "^1.0.0" + }, + "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" + } + }, + "arr-diff": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/arr-diff/-/arr-diff-2.0.0.tgz", + "integrity": "sha512-dtXTVMkh6VkEEA7OhXnN1Ecb8aAGFdZ1LFxtOCoqj4qkyOJMt7+qs6Ahdy6p/NQCPYsRSXXivhSB/J5E9jmYKA==", + "dev": true, + "requires": { + "arr-flatten": "^1.0.1" + } + }, + "array-unique": { + "version": "0.2.1", + "resolved": "https://registry.npmjs.org/array-unique/-/array-unique-0.2.1.tgz", + "integrity": "sha512-G2n5bG5fSUCpnsXz4+8FUkYsGPkNfLn9YvS66U5qbTIXI2Ynnlo4Bi42bWv+omKUCqz+ejzfClwne0alJWJPhg==", + "dev": true + }, + "braces": { + "version": "1.8.5", + "resolved": "https://registry.npmjs.org/braces/-/braces-1.8.5.tgz", + "integrity": "sha512-xU7bpz2ytJl1bH9cgIurjpg/n8Gohy9GTw81heDYLJQ4RU60dlyJsa+atVF2pI0yMMvKxI9HkKwjePCj5XI1hw==", + "dev": true, + "requires": { + "expand-range": "^1.8.1", + "preserve": "^0.2.0", + "repeat-element": "^1.1.2" + } + }, + "chalk": { + "version": "2.4.2", + "resolved": "https://registry.npmjs.org/chalk/-/chalk-2.4.2.tgz", + "integrity": "sha512-Mti+f9lpJNcwF4tWV8/OrTTtF1gZi+f8FqlyAdouralcFWFQWF2+NgCHShjkCb+IFBLq9buZwE1xckQU4peSuQ==", + "dev": true, + "requires": { + "ansi-styles": "^3.2.1", + "escape-string-regexp": "^1.0.5", + "supports-color": "^5.3.0" + } + }, + "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" + } + }, + "expand-brackets": { + "version": "0.1.5", + "resolved": "https://registry.npmjs.org/expand-brackets/-/expand-brackets-0.1.5.tgz", + "integrity": "sha512-hxx03P2dJxss6ceIeri9cmYOT4SRs3Zk3afZwWpOsRqLqprhTR8u++SlC+sFGsQr7WGFPdMF7Gjc1njDLDK6UA==", + "dev": true, + "requires": { + "is-posix-bracket": "^0.1.0" + } + }, + "extglob": { + "version": "0.3.2", + "resolved": "https://registry.npmjs.org/extglob/-/extglob-0.3.2.tgz", + "integrity": "sha512-1FOj1LOwn42TMrruOHGt18HemVnbwAmAak7krWk+wa93KXxGbK+2jpezm+ytJYDaBX0/SPLZFHKM7m+tKobWGg==", + "dev": true, + "requires": { + "is-extglob": "^1.0.0" + } + }, + "is-extglob": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/is-extglob/-/is-extglob-1.0.0.tgz", + "integrity": "sha512-7Q+VbVafe6x2T+Tu6NcOf6sRklazEPmBoB3IWk3WdGZM2iGUwU/Oe3Wtq5lSEkDTTlpp8yx+5t4pzO/i9Ty1ww==", + "dev": true + }, + "is-glob": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/is-glob/-/is-glob-2.0.1.tgz", + "integrity": "sha512-a1dBeB19NXsf/E0+FHqkagizel/LQw2DjSQpvQrj3zT+jYPpaUCryPnrQajXKFLCMuf4I6FhRpaGtw4lPrG6Eg==", + "dev": true, + "requires": { + "is-extglob": "^1.0.0" + } + }, + "micromatch": { + "version": "2.3.11", + "resolved": "https://registry.npmjs.org/micromatch/-/micromatch-2.3.11.tgz", + "integrity": "sha512-LnU2XFEk9xxSJ6rfgAry/ty5qwUTyHYOBU0g4R6tIw5ljwgGIBmiKhRWLw5NpMOnrgUNcDJ4WMp8rl3sYVHLNA==", + "dev": true, + "requires": { + "arr-diff": "^2.0.0", + "array-unique": "^0.2.1", + "braces": "^1.8.2", + "expand-brackets": "^0.1.4", + "extglob": "^0.3.1", + "filename-regex": "^2.0.0", + "is-extglob": "^1.0.0", + "is-glob": "^2.0.1", + "kind-of": "^3.0.2", + "normalize-path": "^2.0.1", + "object.omit": "^2.0.0", + "parse-glob": "^3.0.4", + "regex-cache": "^0.4.2" + } + }, + "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" + } + }, + "slash": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/slash/-/slash-1.0.0.tgz", + "integrity": "sha512-3TYDR7xWt4dIqV2JauJr+EJeW356RXijHeUlO+8djJ+uBXPn8/2dpzBc8yQhh583sVvc9CvFAeQVgijsH+PNNg==", + "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" + } + } + } + }, + "jest-mock": { + "version": "21.2.0", + "resolved": "https://registry.npmjs.org/jest-mock/-/jest-mock-21.2.0.tgz", + "integrity": "sha512-aZDfyVf0LEoABWiY6N0d+O963dUQSyUa4qgzurHR3TBDPen0YxKCJ6l2i7lQGh1tVdsuvdrCZ4qPj+A7PievCw==", + "dev": true + }, + "jest-regex-util": { + "version": "21.2.0", + "resolved": "https://registry.npmjs.org/jest-regex-util/-/jest-regex-util-21.2.0.tgz", + "integrity": "sha512-BKQ1F83EQy0d9Jen/mcVX7D+lUt2tthhK/2gDWRgLDJRNOdRgSp1iVqFxP8EN1ARuypvDflRfPzYT8fQnoBQFQ==", + "dev": true + }, + "jest-resolve": { + "version": "21.2.0", + "resolved": "https://registry.npmjs.org/jest-resolve/-/jest-resolve-21.2.0.tgz", + "integrity": "sha512-vefQ/Lr+VdNvHUZFQXWtOqHX3HEdOc2MtSahBO89qXywEbUxGPB9ZLP9+BHinkxb60UT2Q/tTDOS6rYc6Mwigw==", + "dev": true, + "requires": { + "browser-resolve": "^1.11.2", + "chalk": "^2.0.1", + "is-builtin-module": "^1.0.0" + }, + "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" + } + }, + "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" + } + } + } + }, + "jest-resolve-dependencies": { + "version": "21.2.0", + "resolved": "https://registry.npmjs.org/jest-resolve-dependencies/-/jest-resolve-dependencies-21.2.0.tgz", + "integrity": "sha512-ok8ybRFU5ScaAcfufIQrCbdNJSRZ85mkxJ1EhUp8Bhav1W1/jv/rl1Q6QoVQHObNxmKnbHVKrfLZbCbOsXQ+bQ==", + "dev": true, + "requires": { + "jest-regex-util": "^21.2.0" + } + }, + "jest-runner": { + "version": "21.2.1", + "resolved": "https://registry.npmjs.org/jest-runner/-/jest-runner-21.2.1.tgz", + "integrity": "sha512-Anb72BOQlHqF/zETqZ2K20dbYsnqW/nZO7jV8BYENl+3c44JhMrA8zd1lt52+N7ErnsQMd2HHKiVwN9GYSXmrg==", + "dev": true, + "requires": { + "jest-config": "^21.2.1", + "jest-docblock": "^21.2.0", + "jest-haste-map": "^21.2.0", + "jest-jasmine2": "^21.2.1", + "jest-message-util": "^21.2.1", + "jest-runtime": "^21.2.1", + "jest-util": "^21.2.1", + "pify": "^3.0.0", + "throat": "^4.0.0", + "worker-farm": "^1.3.1" + }, + "dependencies": { + "pify": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/pify/-/pify-3.0.0.tgz", + "integrity": "sha512-C3FsVNH1udSEX48gGX1xfvwTWfsYWj5U+8/uK15BGzIGrKoUpghX8hWZwa/OFnakBiiVNmBvemTJR5mcy7iPcg==", + "dev": true + } + } + }, + "jest-runtime": { + "version": "21.2.1", + "resolved": "https://registry.npmjs.org/jest-runtime/-/jest-runtime-21.2.1.tgz", + "integrity": "sha512-6omlpA3+NSE+rHwD0PQjNEjZeb2z+oRmuehMfM1tWQVum+E0WV3pFt26Am0DUfQkkPyTABvxITRjCUclYgSOsA==", + "dev": true, + "requires": { + "babel-core": "^6.0.0", + "babel-jest": "^21.2.0", + "babel-plugin-istanbul": "^4.0.0", + "chalk": "^2.0.1", + "convert-source-map": "^1.4.0", + "graceful-fs": "^4.1.11", + "jest-config": "^21.2.1", + "jest-haste-map": "^21.2.0", + "jest-regex-util": "^21.2.0", + "jest-resolve": "^21.2.0", + "jest-util": "^21.2.1", + "json-stable-stringify": "^1.0.1", + "micromatch": "^2.3.11", + "slash": "^1.0.0", + "strip-bom": "3.0.0", + "write-file-atomic": "^2.1.0", + "yargs": "^9.0.0" + }, + "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" + } + }, + "arr-diff": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/arr-diff/-/arr-diff-2.0.0.tgz", + "integrity": "sha512-dtXTVMkh6VkEEA7OhXnN1Ecb8aAGFdZ1LFxtOCoqj4qkyOJMt7+qs6Ahdy6p/NQCPYsRSXXivhSB/J5E9jmYKA==", + "dev": true, + "requires": { + "arr-flatten": "^1.0.1" + } + }, + "array-unique": { + "version": "0.2.1", + "resolved": "https://registry.npmjs.org/array-unique/-/array-unique-0.2.1.tgz", + "integrity": "sha512-G2n5bG5fSUCpnsXz4+8FUkYsGPkNfLn9YvS66U5qbTIXI2Ynnlo4Bi42bWv+omKUCqz+ejzfClwne0alJWJPhg==", + "dev": true + }, + "babel-core": { + "version": "6.26.3", + "resolved": "https://registry.npmjs.org/babel-core/-/babel-core-6.26.3.tgz", + "integrity": "sha512-6jyFLuDmeidKmUEb3NM+/yawG0M2bDZ9Z1qbZP59cyHLz8kYGKYwpJP0UwUKKUiTRNvxfLesJnTedqczP7cTDA==", + "dev": true, + "requires": { + "babel-code-frame": "^6.26.0", + "babel-generator": "^6.26.0", + "babel-helpers": "^6.24.1", + "babel-messages": "^6.23.0", + "babel-register": "^6.26.0", + "babel-runtime": "^6.26.0", + "babel-template": "^6.26.0", + "babel-traverse": "^6.26.0", + "babel-types": "^6.26.0", + "babylon": "^6.18.0", + "convert-source-map": "^1.5.1", + "debug": "^2.6.9", + "json5": "^0.5.1", + "lodash": "^4.17.4", + "minimatch": "^3.0.4", + "path-is-absolute": "^1.0.1", + "private": "^0.1.8", + "slash": "^1.0.0", + "source-map": "^0.5.7" + } + }, + "braces": { + "version": "1.8.5", + "resolved": "https://registry.npmjs.org/braces/-/braces-1.8.5.tgz", + "integrity": "sha512-xU7bpz2ytJl1bH9cgIurjpg/n8Gohy9GTw81heDYLJQ4RU60dlyJsa+atVF2pI0yMMvKxI9HkKwjePCj5XI1hw==", + "dev": true, + "requires": { + "expand-range": "^1.8.1", + "preserve": "^0.2.0", + "repeat-element": "^1.1.2" + } + }, + "chalk": { + "version": "2.4.2", + "resolved": "https://registry.npmjs.org/chalk/-/chalk-2.4.2.tgz", + "integrity": "sha512-Mti+f9lpJNcwF4tWV8/OrTTtF1gZi+f8FqlyAdouralcFWFQWF2+NgCHShjkCb+IFBLq9buZwE1xckQU4peSuQ==", + "dev": true, + "requires": { + "ansi-styles": "^3.2.1", + "escape-string-regexp": "^1.0.5", + "supports-color": "^5.3.0" + } + }, + "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" + } + }, + "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" + } + }, + "expand-brackets": { + "version": "0.1.5", + "resolved": "https://registry.npmjs.org/expand-brackets/-/expand-brackets-0.1.5.tgz", + "integrity": "sha512-hxx03P2dJxss6ceIeri9cmYOT4SRs3Zk3afZwWpOsRqLqprhTR8u++SlC+sFGsQr7WGFPdMF7Gjc1njDLDK6UA==", + "dev": true, + "requires": { + "is-posix-bracket": "^0.1.0" + } + }, + "extglob": { + "version": "0.3.2", + "resolved": "https://registry.npmjs.org/extglob/-/extglob-0.3.2.tgz", + "integrity": "sha512-1FOj1LOwn42TMrruOHGt18HemVnbwAmAak7krWk+wa93KXxGbK+2jpezm+ytJYDaBX0/SPLZFHKM7m+tKobWGg==", + "dev": true, + "requires": { + "is-extglob": "^1.0.0" + } + }, + "is-extglob": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/is-extglob/-/is-extglob-1.0.0.tgz", + "integrity": "sha512-7Q+VbVafe6x2T+Tu6NcOf6sRklazEPmBoB3IWk3WdGZM2iGUwU/Oe3Wtq5lSEkDTTlpp8yx+5t4pzO/i9Ty1ww==", + "dev": true + }, + "is-glob": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/is-glob/-/is-glob-2.0.1.tgz", + "integrity": "sha512-a1dBeB19NXsf/E0+FHqkagizel/LQw2DjSQpvQrj3zT+jYPpaUCryPnrQajXKFLCMuf4I6FhRpaGtw4lPrG6Eg==", + "dev": true, + "requires": { + "is-extglob": "^1.0.0" + } + }, + "json5": { + "version": "0.5.1", + "resolved": "https://registry.npmjs.org/json5/-/json5-0.5.1.tgz", + "integrity": "sha512-4xrs1aW+6N5DalkqSVA8fxh458CXvR99WU8WLKmq4v8eWAL86Xo3BVqyd3SkA9wEVjCMqyvvRRkshAdOnBp5rw==", + "dev": true + }, + "micromatch": { + "version": "2.3.11", + "resolved": "https://registry.npmjs.org/micromatch/-/micromatch-2.3.11.tgz", + "integrity": "sha512-LnU2XFEk9xxSJ6rfgAry/ty5qwUTyHYOBU0g4R6tIw5ljwgGIBmiKhRWLw5NpMOnrgUNcDJ4WMp8rl3sYVHLNA==", + "dev": true, + "requires": { + "arr-diff": "^2.0.0", + "array-unique": "^0.2.1", + "braces": "^1.8.2", + "expand-brackets": "^0.1.4", + "extglob": "^0.3.1", + "filename-regex": "^2.0.0", + "is-extglob": "^1.0.0", + "is-glob": "^2.0.1", + "kind-of": "^3.0.2", + "normalize-path": "^2.0.1", + "object.omit": "^2.0.0", + "parse-glob": "^3.0.4", + "regex-cache": "^0.4.2" + } + }, + "ms": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/ms/-/ms-2.0.0.tgz", + "integrity": "sha512-Tpp60P6IUJDTuOq/5Z8cdskzJujfwqfOTkrwIwj7IRISpnkJnT6SyJ4PCPnGMoFjC9ddhal5KVIYtAt97ix05A==", + "dev": true + }, + "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" + } + }, + "slash": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/slash/-/slash-1.0.0.tgz", + "integrity": "sha512-3TYDR7xWt4dIqV2JauJr+EJeW356RXijHeUlO+8djJ+uBXPn8/2dpzBc8yQhh583sVvc9CvFAeQVgijsH+PNNg==", + "dev": true + }, + "strip-bom": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/strip-bom/-/strip-bom-3.0.0.tgz", + "integrity": "sha512-vavAMRXOgBVNF6nyEEmL3DBK19iRpDcoIwW+swQ+CbGiu7lju6t+JklA1MHweoWtadgt4ISVUsXLyDq34ddcwA==", + "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" + } + } + } + }, + "jest-snapshot": { + "version": "21.2.1", + "resolved": "https://registry.npmjs.org/jest-snapshot/-/jest-snapshot-21.2.1.tgz", + "integrity": "sha512-bpaeBnDpdqaRTzN8tWg0DqOTo2DvD3StOemxn67CUd1p1Po+BUpvePAp44jdJ7Pxcjfg+42o4NHw1SxdCA2rvg==", + "dev": true, + "requires": { + "chalk": "^2.0.1", + "jest-diff": "^21.2.1", + "jest-matcher-utils": "^21.2.1", + "mkdirp": "^0.5.1", + "natural-compare": "^1.4.0", + "pretty-format": "^21.2.1" + }, + "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" + } + }, + "mkdirp": { + "version": "0.5.6", + "resolved": "https://registry.npmjs.org/mkdirp/-/mkdirp-0.5.6.tgz", + "integrity": "sha512-FP+p8RB8OWpF3YZBCrP5gtADmtXApB5AMLn+vdyA+PyxCjrCs00mjyUozssO33cwDeT3wNGdLxJ5M//YqtHAJw==", + "dev": true, + "requires": { + "minimist": "^1.2.6" + } + }, + "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" + } + } + } + }, + "jest-util": { + "version": "21.2.1", + "resolved": "https://registry.npmjs.org/jest-util/-/jest-util-21.2.1.tgz", + "integrity": "sha512-r20W91rmHY3fnCoO7aOAlyfC51x2yeV3xF+prGsJAUsYhKeV670ZB8NO88Lwm7ASu8SdH0S+U+eFf498kjhA4g==", + "dev": true, + "requires": { + "callsites": "^2.0.0", + "chalk": "^2.0.1", + "graceful-fs": "^4.1.11", + "jest-message-util": "^21.2.1", + "jest-mock": "^21.2.0", + "jest-validate": "^21.2.1", + "mkdirp": "^0.5.1" + }, + "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" + } + }, + "mkdirp": { + "version": "0.5.6", + "resolved": "https://registry.npmjs.org/mkdirp/-/mkdirp-0.5.6.tgz", + "integrity": "sha512-FP+p8RB8OWpF3YZBCrP5gtADmtXApB5AMLn+vdyA+PyxCjrCs00mjyUozssO33cwDeT3wNGdLxJ5M//YqtHAJw==", + "dev": true, + "requires": { + "minimist": "^1.2.6" + } + }, + "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" + } + } + } + }, + "jest-validate": { + "version": "21.2.1", + "resolved": "https://registry.npmjs.org/jest-validate/-/jest-validate-21.2.1.tgz", + "integrity": "sha512-k4HLI1rZQjlU+EC682RlQ6oZvLrE5SCh3brseQc24vbZTxzT/k/3urar5QMCVgjadmSO7lECeGdc6YxnM3yEGg==", + "dev": true, + "requires": { + "chalk": "^2.0.1", + "jest-get-type": "^21.2.0", + "leven": "^2.1.0", + "pretty-format": "^21.2.1" + }, + "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" + } + }, + "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" + } + } + } + }, + "js-base64": { + "version": "2.4.9", + "resolved": "https://registry.npmjs.org/js-base64/-/js-base64-2.4.9.tgz", + "integrity": "sha512-xcinL3AuDJk7VSzsHgb9DvvIXayBbadtMZ4HFPx8rUszbW1MuNMlwYVC4zzCZ6e1sqZpnNS5ZFYOhXqA39T7LQ==" + }, + "js-md5": { + "version": "0.7.3", + "resolved": "https://registry.npmjs.org/js-md5/-/js-md5-0.7.3.tgz", + "integrity": "sha512-ZC41vPSTLKGwIRjqDh8DfXoCrdQIyBgspJVPXHBGu4nZlAEvG3nf+jO9avM9RmLiGakg7vz974ms99nEV0tmTQ==" + }, + "js-tokens": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/js-tokens/-/js-tokens-4.0.0.tgz", + "integrity": "sha512-RdJUflcE3cUzKiMqQgsCu06FPu9UdIJO0beYbPhHN4k6apgJtifcoCtT9bcxOpYBtpD2kCM6Sbzg4CausW/PKQ==" + }, + "js-yaml": { + "version": "3.14.1", + "resolved": "https://registry.npmjs.org/js-yaml/-/js-yaml-3.14.1.tgz", + "integrity": "sha512-okMH7OXXJ7YrN9Ok3/SXrnu4iX9yOk+25nqX4imS2npuvTYDmo/QEZoqwZkYaIDk3jVvBOTOIEgEhaLOynBS9g==", + "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": "sha512-UVU9dibq2JcFWxQPA6KCqj5O42VOmAY3zQUfEKxU0KpTGXwNoCjkX1e13eHNvw/xPynt6pU0rZ1htjWTNTSXsg==" + }, + "jsdom": { + "version": "9.12.0", + "resolved": "https://registry.npmjs.org/jsdom/-/jsdom-9.12.0.tgz", + "integrity": "sha512-Qw4oqNxo4LyzkSqVIyCnEltTc4xV3g1GBaI88AvYTesWzmWHUSoMNmhBjUBa+6ldXIBJS9xoeLNJPfUAykTyxw==", + "dev": true, + "requires": { + "abab": "^1.0.3", + "acorn": "^4.0.4", + "acorn-globals": "^3.1.0", + "array-equal": "^1.0.0", + "content-type-parser": "^1.0.1", + "cssom": ">= 0.3.2 < 0.4.0", + "cssstyle": ">= 0.2.37 < 0.3.0", + "escodegen": "^1.6.1", + "html-encoding-sniffer": "^1.0.1", + "nwmatcher": ">= 1.3.9 < 2.0.0", + "parse5": "^1.5.1", + "request": "^2.79.0", + "sax": "^1.2.1", + "symbol-tree": "^3.2.1", + "tough-cookie": "^2.3.2", + "webidl-conversions": "^4.0.0", + "whatwg-encoding": "^1.0.1", + "whatwg-url": "^4.3.0", + "xml-name-validator": "^2.0.1" + }, + "dependencies": { + "acorn": { + "version": "4.0.13", + "resolved": "https://registry.npmjs.org/acorn/-/acorn-4.0.13.tgz", + "integrity": "sha512-fu2ygVGuMmlzG8ZeRJ0bvR41nsAkxxhbyk8bZ1SS521Z7vmgJFTQQlfz/Mp/nJexGBz+v8sC9bM6+lNgskt4Ug==", + "dev": true + }, + "iconv-lite": { + "version": "0.4.24", + "resolved": "https://registry.npmjs.org/iconv-lite/-/iconv-lite-0.4.24.tgz", + "integrity": "sha512-v3MXnZAcvnywkTUEZomIActle7RXXeedOR31wwl7VlyoXO4Qi9arvSenNQWne1TcRwhCL1HwLI21bEqdpj8/rA==", + "dev": true, + "requires": { + "safer-buffer": ">= 2.1.2 < 3" + } + }, + "parse5": { + "version": "1.5.1", + "resolved": "https://registry.npmjs.org/parse5/-/parse5-1.5.1.tgz", + "integrity": "sha512-w2jx/0tJzvgKwZa58sj2vAYq/S/K1QJfIB3cWYea/Iu1scFPDQQ3IQiVZTHWtRBwAjv2Yd7S/xeZf3XqLDb3bA==", + "dev": true + }, + "whatwg-encoding": { + "version": "1.0.5", + "resolved": "https://registry.npmjs.org/whatwg-encoding/-/whatwg-encoding-1.0.5.tgz", + "integrity": "sha512-b5lim54JOPN9HtzvK9HFXvBma/rnfFeqsic0hSpjtDbVxR3dJKLc+KB4V6GgiGOvl7CY/KNh8rxSo9DKQrnUEw==", + "dev": true, + "requires": { + "iconv-lite": "0.4.24" + } + } + } + }, + "jsesc": { + "version": "3.0.2", + "resolved": "https://registry.npmjs.org/jsesc/-/jsesc-3.0.2.tgz", + "integrity": "sha512-xKqzzWXDttJuOcawBt4KnKHHIf5oQ/Cxax+0PWFG+DFDgHNAdi+TXECADI+RYiFUMmx8792xsMbbgXj4CwnP4g==" + }, + "json-buffer": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/json-buffer/-/json-buffer-3.0.0.tgz", + "integrity": "sha512-CuUqjv0FUZIdXkHPI8MezCnFCdaTAacej1TZYulLoAg1h/PhwkdXFN4V/gzY4g+fMBCOV2xF+rp7t2XD2ns/NQ==" + }, + "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==" + }, + "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==" + }, + "json-schema": { + "version": "0.4.0", + "resolved": "https://registry.npmjs.org/json-schema/-/json-schema-0.4.0.tgz", + "integrity": "sha512-es94M3nTIfsEPisRafak+HDLfHXnKBhV3vU5eqPcS3flIWqcxJWgXHXiey3YrpaNsanY5ei1VoYEbOzijuq9BA==" + }, + "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==" + }, + "json-stable-stringify": { + "version": "1.1.1", + "resolved": "https://registry.npmjs.org/json-stable-stringify/-/json-stable-stringify-1.1.1.tgz", + "integrity": "sha512-SU/971Kt5qVQfJpyDveVhQ/vya+5hvrjClFOcr8c0Fq5aODJjMwutrOfCU+eCnVD5gpx1Q3fEqkyom77zH1iIg==", + "dev": true, + "requires": { + "call-bind": "^1.0.5", + "isarray": "^2.0.5", + "jsonify": "^0.0.1", + "object-keys": "^1.1.1" + } + }, + "json-stable-stringify-without-jsonify": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/json-stable-stringify-without-jsonify/-/json-stable-stringify-without-jsonify-1.0.1.tgz", + "integrity": "sha512-Bdboy+l7tA3OGW6FjyFHWkP5LuByj1Tk33Ljyq0axyzdk9//JSi2u3fP1QSmd1KNwq6VOKYGlAu87CisVir6Pw==", + "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": "sha512-ZClg6AaYvamvYEE82d3Iyd3vSSIjQ+odgjaTzRuO3s7toCdFKczob2i0zCh7JE8kWn17yvAWhUVxvqGwUalsRA==" + }, + "json5": { + "version": "2.2.3", + "resolved": "https://registry.npmjs.org/json5/-/json5-2.2.3.tgz", + "integrity": "sha512-XmOWe7eyHYH14cLdVPoyg+GOH3rYX++KpzrylJwSW98t3Nk+U8XOl8FWKOgwtzdb8lXGf6zYwDUzeHMWfxasyg==" + }, + "jsonfile": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/jsonfile/-/jsonfile-4.0.0.tgz", + "integrity": "sha512-m6F1R3z8jjlf2imQHS2Qez5sjKWQzbuuhuJ/FKYFRZvPE3PuHcSMVZzfsLhGVOkfd20obL5SWEBew5ShlquNxg==", + "requires": { + "graceful-fs": "^4.1.6" + } + }, + "jsonify": { + "version": "0.0.1", + "resolved": "https://registry.npmjs.org/jsonify/-/jsonify-0.0.1.tgz", + "integrity": "sha512-2/Ki0GcmuqSrgFyelQq9M05y7PS0mEwuIzrf3f1fPqkVDVRvZrPZtVSMHxdgo8Aq0sxAOb/cr2aqqA3LeWHVPg==", + "dev": true + }, + "jsprim": { + "version": "1.4.2", + "resolved": "https://registry.npmjs.org/jsprim/-/jsprim-1.4.2.tgz", + "integrity": "sha512-P2bSOMAc/ciLz6DzgjVlGJP9+BrJWu5UDGK70C2iweC5QBIeFf0ZXRvGjEj2uYgrY2MkAAhsSWHDWlFtEroZWw==", + "requires": { + "assert-plus": "1.0.0", + "extsprintf": "1.3.0", + "json-schema": "0.4.0", + "verror": "1.10.0" + } + }, + "jsx-ast-utils": { + "version": "3.3.5", + "resolved": "https://registry.npmjs.org/jsx-ast-utils/-/jsx-ast-utils-3.3.5.tgz", + "integrity": "sha512-ZZow9HBI5O6EPgSJLUb8n2NKgmVWTwCvHGwFuJlMjvLFqlGG6pjirPhtdsseaLZjSibD8eegzmYpUZwoIlj2cQ==", + "dev": true, + "requires": { + "array-includes": "^3.1.6", + "array.prototype.flat": "^1.3.1", + "object.assign": "^4.1.4", + "object.values": "^1.1.6" + } + }, + "jszip": { + "version": "3.10.1", + "resolved": "https://registry.npmjs.org/jszip/-/jszip-3.10.1.tgz", + "integrity": "sha512-xXDvecyTpGLrqFrvkrUSoxxfJI5AH7U8zxxtVclpsUtMCq4JQ290LY8AW5c7Ggnr/Y/oK+bQMbqK2qmtk3pN4g==", + "requires": { + "lie": "~3.3.0", + "pako": "~1.0.2", + "readable-stream": "~2.3.6", + "setimmediate": "^1.0.5" + }, + "dependencies": { + "lie": { + "version": "3.3.0", + "resolved": "https://registry.npmjs.org/lie/-/lie-3.3.0.tgz", + "integrity": "sha512-UaiMJzeWRlEujzAuw5LokY1L5ecNQYZKfmyZ9L7wDHb/p5etKaxXhohBcrw0EYby+G/NA52vRSN4N39dxHAIwQ==", + "requires": { + "immediate": "~3.0.5" + } + } + } + }, + "keymirror": { + "version": "0.1.1", + "resolved": "https://registry.npmjs.org/keymirror/-/keymirror-0.1.1.tgz", + "integrity": "sha512-vIkZAFWoDijgQT/Nvl2AHCMmnegN2ehgTPYuyy2hWQkQSntI0S7ESYqdLkoSe1HyEBFHHkCgSIvVdSEiWwKvCg==" + }, + "keyv": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/keyv/-/keyv-3.0.0.tgz", + "integrity": "sha512-eguHnq22OE3uVoSYG0LVWNP+4ppamWr9+zWBe1bsNcovIMy6huUJFPgy4mGwCd/rnl3vOLGW1MTlu4c57CT1xA==", + "requires": { + "json-buffer": "3.0.0" + } + }, + "killable": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/killable/-/killable-1.0.1.tgz", + "integrity": "sha512-LzqtLKlUwirEUyl/nicirVmNiPvYs7l5n8wOPP7fyJVpUPkvCnW/vuiXGpylGUlnPDnB7311rARzAt3Mhswpjg==", + "dev": true + }, + "kind-of": { + "version": "3.2.2", + "resolved": "https://registry.npmjs.org/kind-of/-/kind-of-3.2.2.tgz", + "integrity": "sha512-NOW9QQXMoZGg/oqnVNoNTTIFEIid1627WCffUBJEdMxYApq7mNE7CpzucIPc+ZQg25Phej7IJSmX3hO+oblOtQ==", + "requires": { + "is-buffer": "^1.1.5" + } + }, + "lcid": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/lcid/-/lcid-1.0.0.tgz", + "integrity": "sha512-YiGkH6EnGrDGqLMITnGjXtGmNtjoXw9SVUzcaos8RBi7Ps0VBylkq+vOcY9QE5poLasPCR849ucFUkl0UzUyOw==", + "requires": { + "invert-kv": "^1.0.0" + } + }, + "leven": { + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/leven/-/leven-2.1.0.tgz", + "integrity": "sha512-nvVPLpIHUxCUoRLrFqTgSxXJ614d8AgQoWl7zPe/2VadE8+1dpU3LBhowRuBAcuwruWtOdD8oYC9jDNJjXDPyA==", + "dev": true + }, + "levn": { + "version": "0.3.0", + "resolved": "https://registry.npmjs.org/levn/-/levn-0.3.0.tgz", + "integrity": "sha512-0OO4y2iOHix2W6ujICbKIaEQXvFQHue65vUG3pb5EUomzPI90z9hsA1VsO/dbIIpC53J8gxM9Q4Oho0jrCM/yA==", + "requires": { + "prelude-ls": "~1.1.2", + "type-check": "~0.3.2" + } + }, + "lie": { + "version": "3.1.1", + "resolved": "https://registry.npmjs.org/lie/-/lie-3.1.1.tgz", + "integrity": "sha512-RiNhHysUjhrDQntfYSfY4MU24coXXdEOgw9WGcKHNeEwffDYbF//u87M1EWaMGzuFoSbqW0C9C6lEEhDOAswfw==", + "requires": { + "immediate": "~3.0.5" + } + }, + "linebreak": { + "version": "0.3.0", + "resolved": "https://registry.npmjs.org/linebreak/-/linebreak-0.3.0.tgz", + "integrity": "sha512-zt8pzlM3oq4moDN8U5mP1SbZ44yKV6dXCu44Ez6iTXmxUl8/jRFWeho2SDqL5YDBv0TBKPgU/XGovZwnXAKlOQ==", + "requires": { + "base64-js": "0.0.8", + "brfs": "^1.3.0", + "unicode-trie": "^0.3.0" + }, + "dependencies": { + "base64-js": { + "version": "0.0.8", + "resolved": "https://registry.npmjs.org/base64-js/-/base64-js-0.0.8.tgz", + "integrity": "sha512-3XSA2cR/h/73EzlXXdU6YNycmYI7+kicTxks4eJg2g39biHR84slg2+des+p7iHYhbRg/udIS4TD53WabcOUkw==" + } + } + }, + "load-json-file": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/load-json-file/-/load-json-file-4.0.0.tgz", + "integrity": "sha512-Kx8hMakjX03tiGTLAIdJ+lL0htKnXjEZN6hk/tozf/WOuYGdZBJrZ+rCJRbVCugsjB3jMLn9746NsQIf5VjBMw==", + "dev": true, + "requires": { + "graceful-fs": "^4.1.2", + "parse-json": "^4.0.0", + "pify": "^3.0.0", + "strip-bom": "^3.0.0" + }, + "dependencies": { + "pify": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/pify/-/pify-3.0.0.tgz", + "integrity": "sha512-C3FsVNH1udSEX48gGX1xfvwTWfsYWj5U+8/uK15BGzIGrKoUpghX8hWZwa/OFnakBiiVNmBvemTJR5mcy7iPcg==", + "dev": true + }, + "strip-bom": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/strip-bom/-/strip-bom-3.0.0.tgz", + "integrity": "sha512-vavAMRXOgBVNF6nyEEmL3DBK19iRpDcoIwW+swQ+CbGiu7lju6t+JklA1MHweoWtadgt4ISVUsXLyDq34ddcwA==", + "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==" + }, + "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==", + "requires": { + "big.js": "^5.2.2", + "emojis-list": "^3.0.0", + "json5": "^1.0.1" + }, + "dependencies": { + "json5": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/json5/-/json5-1.0.2.tgz", + "integrity": "sha512-g1MWMLBiz8FKi1e4w0UyVL3w+iJceWAFBAaBnnGKOpNa5f8TLktkbre1+s6oICydWAm+HRUGTmI+//xv2hvXYA==", + "requires": { + "minimist": "^1.2.0" + } + } + } + }, + "localforage": { + "version": "1.10.0", + "resolved": "https://registry.npmjs.org/localforage/-/localforage-1.10.0.tgz", + "integrity": "sha512-14/H1aX7hzBBmmh7sGPd+AOMkkIrHM3Z1PAyGgZigA1H1p5O5ANnMyWzvpAETtG68/dC4pC0ncy3+PPGzXZHPg==", + "requires": { + "lie": "3.1.1" + } + }, + "locate-path": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/locate-path/-/locate-path-2.0.0.tgz", + "integrity": "sha512-NCI2kiDkyR7VeEKm27Kda/iQHyKJe1Bu0FlTbYp3CqJu+9IFe9bLyAjMxf5ZDDbEg+iMPzB5zYyUTSm8wVTKmA==", + "dev": true, + "requires": { + "p-locate": "^2.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-es": { + "version": "4.17.21", + "resolved": "https://registry.npmjs.org/lodash-es/-/lodash-es-4.17.21.tgz", + "integrity": "sha512-mKnC+QJ9pWVzv+C4/U3rRsHapFfHvQFoFB92e52xeyGMcX6/OlIl78je1u8vePzYZSkkogMPJ2yjxxsb89cxyw==" + }, + "lodash._getnative": { + "version": "3.9.1", + "resolved": "https://registry.npmjs.org/lodash._getnative/-/lodash._getnative-3.9.1.tgz", + "integrity": "sha512-RrL9VxMEPyDMHOd9uFbvMe8X55X16/cGM5IgOKgRElQZutpX89iS6vwl64duTV1/16w5JY7tuFNXqoekmh1EmA==" + }, + "lodash.bindall": { + "version": "4.4.0", + "resolved": "https://registry.npmjs.org/lodash.bindall/-/lodash.bindall-4.4.0.tgz", + "integrity": "sha512-NQ+QvFohS2gPbWpyLfyuiF0ZQA3TTaJ+n0XDID5jwtMZBKE32gN5vSyy7xBVsqvJkvT/UY9dvHXIk9tZmBVF3g==" + }, + "lodash.debounce": { + "version": "4.0.8", + "resolved": "https://registry.npmjs.org/lodash.debounce/-/lodash.debounce-4.0.8.tgz", + "integrity": "sha512-FT1yDzDYEoYWhnSGnpE/4Kj1fLZkDFyqRb7fNt6FdYOSxlUWAtp42Eh6Wb0rGIv/m9Bgo7x4GhQbm5Ys4SG5ow==" + }, + "lodash.defaultsdeep": { + "version": "4.6.1", + "resolved": "https://registry.npmjs.org/lodash.defaultsdeep/-/lodash.defaultsdeep-4.6.1.tgz", + "integrity": "sha512-3j8wdDzYuWO3lM3Reg03MuQR957t287Rpcxp1njpEa8oDrikb+FwGdW3n+FELh/A6qib6yPit0j/pv9G/yeAqA==", + "dev": true + }, + "lodash.escape": { + "version": "4.0.1", + "resolved": "https://registry.npmjs.org/lodash.escape/-/lodash.escape-4.0.1.tgz", + "integrity": "sha512-nXEOnb/jK9g0DYMr1/Xvq6l5xMD7GDG55+GSYIYmS0G4tBk/hURD4JR9WCavs04t33WmJx9kCyp9vJ+mr4BOUw==", + "dev": true + }, + "lodash.flattendeep": { + "version": "4.4.0", + "resolved": "https://registry.npmjs.org/lodash.flattendeep/-/lodash.flattendeep-4.4.0.tgz", + "integrity": "sha512-uHaJFihxmJcEX3kT4I23ABqKKalJ/zDrDg0lsFtc1h+3uw49SIJ5beyhx5ExVRti3AvKoOJngIj7xz3oylPdWQ==", + "dev": true + }, + "lodash.isequal": { + "version": "4.5.0", + "resolved": "https://registry.npmjs.org/lodash.isequal/-/lodash.isequal-4.5.0.tgz", + "integrity": "sha512-pDo3lu8Jhfjqls6GkMgpahsF9kCyayhgykjyLMNFTKWrpVdAQtYyB4muAMWozBB4ig/dtWAmsMxLEI8wuz+DYQ==", + "dev": true + }, + "lodash.isplainobject": { + "version": "4.0.6", + "resolved": "https://registry.npmjs.org/lodash.isplainobject/-/lodash.isplainobject-4.0.6.tgz", + "integrity": "sha512-oSXzaWypCMHkPC3NvBEaPHf0KsA5mvPrOPgQWDsbg8n7orZ290M0BmC/jgRZ4vcJ6DTAhjrsSYgdsW/F+MFOBA==", + "dev": true + }, + "lodash.omit": { + "version": "4.5.0", + "resolved": "https://registry.npmjs.org/lodash.omit/-/lodash.omit-4.5.0.tgz", + "integrity": "sha512-XeqSp49hNGmlkj2EJlfrQFIzQ6lXdNro9sddtQzcJY8QaoC2GO0DT7xaIokHeyM+mIT0mPMlPvkYzg2xCuHdZg==" + }, + "lodash.throttle": { + "version": "4.0.1", + "resolved": "https://registry.npmjs.org/lodash.throttle/-/lodash.throttle-4.0.1.tgz", + "integrity": "sha512-vEeVrketgBFJ268V478NKyLk142uvnlFHuRHUUcu5NhsMQQpTs5EIGZduGNqdJOOhnb+Rwkz0XvfQuwOYzRo1Q==", + "requires": { + "lodash.debounce": "^4.0.0" + } + }, + "lodash.unescape": { + "version": "4.0.1", + "resolved": "https://registry.npmjs.org/lodash.unescape/-/lodash.unescape-4.0.1.tgz", + "integrity": "sha512-DhhGRshNS1aX6s5YdBE3njCCouPgnG29ebyHvImlZzXZf2SHgt+J08DHgytTPnpywNbO1Y8mNUFyQuIDBq2JZg==", + "dev": true + }, + "loglevel": { + "version": "1.9.2", + "resolved": "https://registry.npmjs.org/loglevel/-/loglevel-1.9.2.tgz", + "integrity": "sha512-HgMmCqIJSAKqo68l0rS2AanEWfkxaZ5wNiEFb5ggm08lDs9Xl2KxBlX3PTcaD2chBM1gXAYf491/M2Rv8Jwayg==", + "dev": true + }, + "long": { + "version": "5.2.3", + "resolved": "https://registry.npmjs.org/long/-/long-5.2.3.tgz", + "integrity": "sha512-lcHwpNoggQTObv5apGNCTdJrO69eHOZMi4BNC+rTLER8iHAqGrUVeLh/irVIM7zTw2bOXA8T6uNPeujwOLg/2Q==" + }, + "lookup-closest-locale": { + "version": "6.2.0", + "resolved": "https://registry.npmjs.org/lookup-closest-locale/-/lookup-closest-locale-6.2.0.tgz", + "integrity": "sha512-/c2kL+Vnp1jnV6K6RpDTHK3dgg0Tu2VVp+elEiJpjfS1UyY7AjOYHohRug6wT0OpoX2qFgNORndE9RqesfVxWQ==" + }, + "loose-envify": { + "version": "1.4.0", + "resolved": "https://registry.npmjs.org/loose-envify/-/loose-envify-1.4.0.tgz", + "integrity": "sha512-lyuxPGr/Wfhrlem2CL/UcnUc1zcqKAImBDzukY7Y5F/yQiNdko6+fRLevlw1HgMySw7f611UIY408EtxRSoK3Q==", + "requires": { + "js-tokens": "^3.0.0 || ^4.0.0" + } + }, + "lower-case": { + "version": "2.0.2", + "resolved": "https://registry.npmjs.org/lower-case/-/lower-case-2.0.2.tgz", + "integrity": "sha512-7fm3l3NAF9WfN6W3JOmf5drwpVqX78JtoGJ3A6W0a6ZnldM41w2fV5D490psKFTpMds8TJse/eHLFFsNHHjHgg==", + "dev": true, + "requires": { + "tslib": "^2.0.3" + } + }, + "lowercase-keys": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/lowercase-keys/-/lowercase-keys-1.0.1.tgz", + "integrity": "sha512-G2Lj61tXDnVFFOi8VZds+SoQjtQC3dgokKdDG2mTm1tx4m50NUHBOZSBwQQHyy0V12A0JTG4icfZQH+xPyh8VA==" + }, + "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==", + "requires": { + "yallist": "^3.0.2" + } + }, + "lz-string": { + "version": "1.5.0", + "resolved": "https://registry.npmjs.org/lz-string/-/lz-string-1.5.0.tgz", + "integrity": "sha512-h5bgJWpxJNswbU7qCrV0tIKQCaS3blPDrqKWx+QxzuzL1zGUzij9XCWLrSLsJPu5t+eWA/ycetzYAO5IOMcWAQ==" + }, + "magic-string": { + "version": "0.22.5", + "resolved": "https://registry.npmjs.org/magic-string/-/magic-string-0.22.5.tgz", + "integrity": "sha512-oreip9rJZkzvA8Qzk9HFs8fZGF/u7H/gtrE8EN6RjKJ9kh2HlC+yQ2QezifqTZfGyiuAV0dRv5a+y/8gBb1m9w==", + "requires": { + "vlq": "^0.2.2" + } + }, + "make-dir": { + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/make-dir/-/make-dir-2.1.0.tgz", + "integrity": "sha512-LS9X+dc8KLxXCb8dni79fLIIUA5VyZoyjSMCwTluaXA0o27cCK0bhXkpgw+sTXVpPy/lSO57ilRixqk0vDmtRA==", + "requires": { + "pify": "^4.0.1", + "semver": "^5.6.0" + }, + "dependencies": { + "semver": { + "version": "5.7.2", + "resolved": "https://registry.npmjs.org/semver/-/semver-5.7.2.tgz", + "integrity": "sha512-cBznnQ9KjJqU67B52RMC65CMarK2600WFnbkcaiwWq3xy/5haFJlshgnpjovMVJ+Hff49d8GEn0b87C5pDQ10g==" + } + } + }, + "makeerror": { + "version": "1.0.12", + "resolved": "https://registry.npmjs.org/makeerror/-/makeerror-1.0.12.tgz", + "integrity": "sha512-JmqCvUhmt43madlpFzG4BQzG2Z3m6tvQDNKdClZnO3VbIudJYmxsT0FNJMeiB2+JTSlTQTSbU8QdesVmwJcmLg==", + "dev": true, + "requires": { + "tmpl": "1.0.5" + } + }, + "map-cache": { + "version": "0.2.2", + "resolved": "https://registry.npmjs.org/map-cache/-/map-cache-0.2.2.tgz", + "integrity": "sha512-8y/eV9QQZCiyn1SprXSrCmqJN0yNRATe+PO8ztwqrvrbdRLA3eYJF0yaR0YayLWkMbsQSKWS9N2gPcGEc4UsZg==" + }, + "map-limit": { + "version": "0.0.1", + "resolved": "https://registry.npmjs.org/map-limit/-/map-limit-0.0.1.tgz", + "integrity": "sha512-pJpcfLPnIF/Sk3taPW21G/RQsEEirGaFpCW3oXRwH9dnFHPHNGjNyvh++rdmC2fNqEaTw2MhYJraoJWAHx8kEg==", + "requires": { + "once": "~1.3.0" + }, + "dependencies": { + "once": { + "version": "1.3.3", + "resolved": "https://registry.npmjs.org/once/-/once-1.3.3.tgz", + "integrity": "sha512-6vaNInhu+CHxtONf3zw3vq4SP2DOQhjBvIa3rNcG0+P7eKWlYH6Peu7rHizSloRU2EwMz6GraLieis9Ac9+p1w==", + "requires": { + "wrappy": "1" + } + } + } + }, + "map-visit": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/map-visit/-/map-visit-1.0.0.tgz", + "integrity": "sha512-4y7uGv8bd2WdM9vpQsiQNo41Ln1NvhvDRuVt0k2JZQ+ezN2uaQes7lZeZ+QQUHOLQAtDaBJ+7wCbi+ab/KFs+w==", + "requires": { + "object-visit": "^1.0.0" + } + }, + "matchmediaquery": { + "version": "0.2.1", + "resolved": "https://registry.npmjs.org/matchmediaquery/-/matchmediaquery-0.2.1.tgz", + "integrity": "sha512-9Ssn6kNVoYU970FtX6jS74GAyKc2baQaoifG1X/i6tfqLQgf3aM4ovYYBVWVOk4G14odceUarbwgSjDTLL/Dhw==", + "requires": { + "css-mediaquery": "^0.1.2" + } + }, + "math-random": { + "version": "1.0.4", + "resolved": "https://registry.npmjs.org/math-random/-/math-random-1.0.4.tgz", + "integrity": "sha512-rUxjysqif/BZQH2yhd5Aaq7vXMSx9NdEsQcyA07uEzIvxgI7zIr33gGsh+RU0/XjmQpCW7RsVof1vlkvQVCK5A==", + "dev": true + }, + "mathjs": { + "version": "11.11.1", + "resolved": "https://registry.npmjs.org/mathjs/-/mathjs-11.11.1.tgz", + "integrity": "sha512-uWrwMrhU31TCqHKmm1yFz0C352njGUVr/I1UnpMOxI/VBTTbCktx/mREUXx5Vyg11xrFdg/F3wnMM7Ql/csVsQ==", + "requires": { + "@babel/runtime": "^7.22.15", + "complex.js": "^2.1.1", + "decimal.js": "^10.4.3", + "escape-latex": "^1.2.0", + "fraction.js": "4.3.4", + "javascript-natural-sort": "^0.7.1", + "seedrandom": "^3.0.5", + "tiny-emitter": "^2.1.0", + "typed-function": "^4.1.1" + } + }, + "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==", + "requires": { + "hash-base": "^3.0.0", + "inherits": "^2.0.1", + "safe-buffer": "^5.1.2" + } + }, + "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==" + }, + "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==", + "dev": true + }, + "mem": { + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/mem/-/mem-1.1.0.tgz", + "integrity": "sha512-nOBDrc/wgpkd3X/JOhMqYR+/eLqlfLP4oQfoBA6QExIxEl+GU01oyEkwWyueyO8110pUKijtiHGhEmYoOn88oQ==", + "dev": true, + "requires": { + "mimic-fn": "^1.0.0" + } + }, + "memory-fs": { + "version": "0.2.0", + "resolved": "https://registry.npmjs.org/memory-fs/-/memory-fs-0.2.0.tgz", + "integrity": "sha512-+y4mDxU4rvXXu5UDSGCGNiesFmwCHuefGMoPCO1WYucNYj7DsLqrFaa2fXVI0H+NNiPTwwzKwspn9yTZqUGqng==", + "dev": true + }, + "merge": { + "version": "1.2.1", + "resolved": "https://registry.npmjs.org/merge/-/merge-1.2.1.tgz", + "integrity": "sha512-VjFo4P5Whtj4vsLzsYBu5ayHhoHJ0UqNm7ibvShmbmoz7tGi0vXaoJbGdB+GmDMLUdg8DpQXEIeVDAe8MaABvQ==", + "dev": true + }, + "merge-descriptors": { + "version": "1.0.3", + "resolved": "https://registry.npmjs.org/merge-descriptors/-/merge-descriptors-1.0.3.tgz", + "integrity": "sha512-gaNvAS7TZ897/rVaZ0nMtAyxNyi/pdbjbAwUpFQpN70GqnVfOiXpeUUMKRBmzXaSQ8DdTX4/0ms62r2K+hE6mQ==", + "dev": true + }, + "merge-source-map": { + "version": "1.0.4", + "resolved": "https://registry.npmjs.org/merge-source-map/-/merge-source-map-1.0.4.tgz", + "integrity": "sha512-PGSmS0kfnTnMJCzJ16BLLCEe6oeYCamKFFdQKshi4BmM6FUwipjVOcBFGxqtQtirtAG4iZvHlqST9CpZKqlRjA==", + "requires": { + "source-map": "^0.5.6" + } + }, + "merge2": { + "version": "1.4.1", + "resolved": "https://registry.npmjs.org/merge2/-/merge2-1.4.1.tgz", + "integrity": "sha512-8q7VEgMJW4J8tcfVPy8g09NcQwZdbwFEqhe/WZkoIzjn/3TGDwtOCYtXGxA3O8tPzpczCCDgv+P2P5y00ZJOOg==" + }, + "mersenne-twister": { + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/mersenne-twister/-/mersenne-twister-1.1.0.tgz", + "integrity": "sha512-mUYWsMKNrm4lfygPkL3OfGzOPTR2DBlTkBNHM//F6hGp8cLThY897crAlk3/Jo17LEOOjQUrNAx6DvgO77QJkA==" + }, + "methods": { + "version": "1.1.2", + "resolved": "https://registry.npmjs.org/methods/-/methods-1.1.2.tgz", + "integrity": "sha512-iclAHeNqNm68zFtnZ0e+1L2yUIdvzNoauKU4WBA3VvH/vPFieF7qfRlwUZU+DA9P9bPXIS90ulxoUoCH23sV2w==", + "dev": true + }, + "microee": { + "version": "0.0.6", + "resolved": "https://registry.npmjs.org/microee/-/microee-0.0.6.tgz", + "integrity": "sha512-/LdL3jiBWDJ3oQIRLgRhfeCZNE3patM1LiwCC124+/HHn10sI/G2OAyiMfTNzH5oYWoZBk0tRZADAUOv+0Wt0A==" + }, + "micromatch": { + "version": "3.1.10", + "resolved": "https://registry.npmjs.org/micromatch/-/micromatch-3.1.10.tgz", + "integrity": "sha512-MWikgl9n9M3w+bpsY3He8L+w9eF9338xRl8IAO5viDizwSzziFEyUzo2xrrloB64ADbTf8uA8vRqqttDTOmccg==", + "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" + }, + "dependencies": { + "extend-shallow": { + "version": "3.0.2", + "resolved": "https://registry.npmjs.org/extend-shallow/-/extend-shallow-3.0.2.tgz", + "integrity": "sha512-BwY5b5Ql4+qZoefgMj2NUmx+tehVTH/Kf4k1ZEtOHNFcm2wSxMRo992l6X3TIgni2eZVTZ85xMOjF31fwZAj6Q==", + "requires": { + "assign-symbols": "^1.0.0", + "is-extendable": "^1.0.1" + } + }, + "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==", + "requires": { + "is-plain-object": "^2.0.4" + } + }, + "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==" + } + } + }, + "miller-rabin": { + "version": "4.0.1", + "resolved": "https://registry.npmjs.org/miller-rabin/-/miller-rabin-4.0.1.tgz", + "integrity": "sha512-115fLhvZVqWwHPbClyntxEVfVDfl9DLLTuJvq3g2O/Oxi8AiNouAHvDSzHS0viUJc+V5vm3eq91Xwqn9dp4jRA==", + "requires": { + "bn.js": "^4.0.0", + "brorand": "^1.0.1" + }, + "dependencies": { + "bn.js": { + "version": "4.12.1", + "resolved": "https://registry.npmjs.org/bn.js/-/bn.js-4.12.1.tgz", + "integrity": "sha512-k8TVBiPkPJT9uHLdOKfFpqcfprwBFOAAXXozRubr7R7PfIuKvQlzcI4M0pALeqXN09vdaMbUdUj+pass+uULAg==" + } + } + }, + "mime": { + "version": "1.6.0", + "resolved": "https://registry.npmjs.org/mime/-/mime-1.6.0.tgz", + "integrity": "sha512-x0Vn8spI+wuJ1O6S7gnbaQg8Pxh4NNHb7KSINmEWKiPE4RKOplvijn+NkmYmmRgP68mc70j2EbeTFRsrswaQeg==", + "dev": true + }, + "mime-db": { + "version": "1.53.0", + "resolved": "https://registry.npmjs.org/mime-db/-/mime-db-1.53.0.tgz", + "integrity": "sha512-oHlN/w+3MQ3rba9rqFr6V/ypF10LSkdwUysQL7GkXoTgIWeV+tcXGA852TBxH+gsh8UWoyhR1hKcoMJTuWflpg==" + }, + "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" + }, + "dependencies": { + "mime-db": { + "version": "1.52.0", + "resolved": "https://registry.npmjs.org/mime-db/-/mime-db-1.52.0.tgz", + "integrity": "sha512-sPU4uV7dYlvtWJxwwxHD0PuihVNiE7TyAbQ5SWxDCB9mUYvOgroQOwYQQOKPJ8CIbE+1ETVlOoK1UC2nU3gYvg==" + } + } + }, + "mimic-fn": { + "version": "1.2.0", + "resolved": "https://registry.npmjs.org/mimic-fn/-/mimic-fn-1.2.0.tgz", + "integrity": "sha512-jf84uxzwiuiIVKiOLpfYk7N46TSy8ubTonmneY9vrpHNAnp0QBt2BxWV9dO3/j+BoVAb+a5G6YDPW3M5HOdMWQ==", + "dev": true + }, + "mimic-response": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/mimic-response/-/mimic-response-1.0.1.tgz", + "integrity": "sha512-j5EctnkH7amfV/q5Hgmoal1g2QHFJRraOtmx0JpIqkxhBhI/lJSl1nMpQ45hVarwNETOoWEimndZ4QK0RHxuxQ==" + }, + "min-document": { + "version": "2.19.0", + "resolved": "https://registry.npmjs.org/min-document/-/min-document-2.19.0.tgz", + "integrity": "sha512-9Wy1B3m3f66bPPmU5hdA4DR4PB2OfDU/+GS3yAB7IQozE3tqXaVv2zOjgla7MEGSRv95+ILmOuvhLkOK6wJtCQ==", + "requires": { + "dom-walk": "^0.1.0" + } + }, + "minilog": { + "version": "3.1.0", + "resolved": "https://registry.npmjs.org/minilog/-/minilog-3.1.0.tgz", + "integrity": "sha512-Xfm4jWjWzSAduvEWtuZX/8TMkxfJlCfH7XvikCZe3ptojYTBq1eoEs3rh9/3LNLOckUP86m+8l8+Iw5NU/pBww==", + "requires": { + "microee": "0.0.6" + } + }, + "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==" + }, + "minimalistic-crypto-utils": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/minimalistic-crypto-utils/-/minimalistic-crypto-utils-1.0.1.tgz", + "integrity": "sha512-JIYlbt6g8i5jKfJ3xz7rF0LXmv2TkDxBLUkiBeZ7bAx4GnnNMr8xFpGnOxn6GhTEHx3SjRrZEoU+j04prX1ktg==" + }, + "minimatch": { + "version": "3.1.2", + "resolved": "https://registry.npmjs.org/minimatch/-/minimatch-3.1.2.tgz", + "integrity": "sha512-J7p63hRiAjw1NDEww1W7i37+ByIrOWO5XQQAzZ3VOcL0PNybwpfmV/N05zFAzwQ9USyEcX6t3UO+K5aqBQOIHw==", + "requires": { + "brace-expansion": "^1.1.7" + } + }, + "minimist": { + "version": "1.2.8", + "resolved": "https://registry.npmjs.org/minimist/-/minimist-1.2.8.tgz", + "integrity": "sha512-2yyAR8qBkN3YuheJanUpWC5U3bb5osDywNB8RzDVlDwDHbocAJveqqj1u8+SVD7jkWT4yvsHCpWqqWqAxb0zCA==" + }, + "minipass": { + "version": "3.3.6", + "resolved": "https://registry.npmjs.org/minipass/-/minipass-3.3.6.tgz", + "integrity": "sha512-DxiNidxSEK+tHG6zOIklvNOwm3hvCrbUrdtzY74U6HKTJxvIDfOUL5W5P2Ghd3DTkhhKPYGqeNUIh5qcM4YBfw==", + "requires": { + "yallist": "^4.0.0" + }, + "dependencies": { + "yallist": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/yallist/-/yallist-4.0.0.tgz", + "integrity": "sha512-3wdGidZyq5PB084XLES5TpOSRA3wjXAlIWMhum2kRcv/41Sn2emQ0dycQW4uZXLejwKvg6EsvbdlVL+FYEct7A==" + } + } + }, + "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==", + "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==", + "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==", + "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==", + "requires": { + "minipass": "^3.0.0", + "yallist": "^4.0.0" + }, + "dependencies": { + "yallist": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/yallist/-/yallist-4.0.0.tgz", + "integrity": "sha512-3wdGidZyq5PB084XLES5TpOSRA3wjXAlIWMhum2kRcv/41Sn2emQ0dycQW4uZXLejwKvg6EsvbdlVL+FYEct7A==" + } + } + }, + "mississippi": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/mississippi/-/mississippi-3.0.0.tgz", + "integrity": "sha512-x471SsVjUtBRtcvd4BzKE9kFC+/2TeWgKCgw0bZcw1b9l2X3QX5vCWgF+KaZaYm87Ss//rHnWryupDrgLvmSkA==", + "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==", + "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==", + "requires": { + "is-plain-object": "^2.0.4" + } + } + } + }, + "mkdirp": { + "version": "1.0.3", + "resolved": "https://registry.npmjs.org/mkdirp/-/mkdirp-1.0.3.tgz", + "integrity": "sha512-6uCP4Qc0sWsgMLy1EOqqS/3rjDHOEnsStVr/4vtAIK2Y5i2kA7lFFejYrpIyiN9w0pYf4ckeCYT9f1r1P9KX5g==" + }, + "mkpath": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/mkpath/-/mkpath-1.0.0.tgz", + "integrity": "sha512-PbNHr7Y/9Y/2P5pKFv5XOGBfNQqZ+fdiHWcuf7swLACN5ZW5LU7J5tMU8LSBjpluAxAxKYGD9nnaIbdRy9+m1w==" + }, + "mocha": { + "version": "4.1.0", + "resolved": "https://registry.npmjs.org/mocha/-/mocha-4.1.0.tgz", + "integrity": "sha512-0RVnjg1HJsXY2YFDoTNzcc1NKhYuXKRrBAG2gDygmJJA136Cs2QlRliZG1mA0ap7cuaT30mw16luAeln+4RiNA==", + "requires": { + "browser-stdout": "1.3.0", + "commander": "2.11.0", + "debug": "3.1.0", + "diff": "3.3.1", + "escape-string-regexp": "1.0.5", + "glob": "7.1.2", + "growl": "1.10.3", + "he": "1.1.1", + "mkdirp": "0.5.1", + "supports-color": "4.4.0" + }, + "dependencies": { + "commander": { + "version": "2.11.0", + "resolved": "https://registry.npmjs.org/commander/-/commander-2.11.0.tgz", + "integrity": "sha512-b0553uYA5YAEGgyYIGYROzKQ7X5RAqedkfjiZxwi0kL1g3bOaBNNZfYkzt/CL0umgD5wc9Jec2FbB98CjkMRvQ==" + }, + "debug": { + "version": "3.1.0", + "resolved": "https://registry.npmjs.org/debug/-/debug-3.1.0.tgz", + "integrity": "sha512-OX8XqP7/1a9cqkxYw2yXss15f26NKWBpDXQd0/uK/KPqdQhxbPa994hnzjcE2VqQpDslf55723cKPUOGSmMY3g==", + "requires": { + "ms": "2.0.0" + } + }, + "diff": { + "version": "3.3.1", + "resolved": "https://registry.npmjs.org/diff/-/diff-3.3.1.tgz", + "integrity": "sha512-MKPHZDMB0o6yHyDryUOScqZibp914ksXwAMYMTHj6KO8UeKsRYNJD3oNCKjTqZon+V488P7N/HzXF8t7ZR95ww==" + }, + "glob": { + "version": "7.1.2", + "resolved": "https://registry.npmjs.org/glob/-/glob-7.1.2.tgz", + "integrity": "sha512-MJTUg1kjuLeQCJ+ccE4Vpa6kKVXkPYJ2mOCQyUuKLcLQsdrMCpBPUi8qVE6+YuaJkozeA9NusTAw3hLr8Xe5EQ==", + "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" + } + }, + "has-flag": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/has-flag/-/has-flag-2.0.0.tgz", + "integrity": "sha512-P+1n3MnwjR/Epg9BBo1KT8qbye2g2Ou4sFumihwt6I4tsUX7jnLcX4BTOSKg/B1ZrIYMN9FcEnG4x5a7NB8Eng==" + }, + "he": { + "version": "1.1.1", + "resolved": "https://registry.npmjs.org/he/-/he-1.1.1.tgz", + "integrity": "sha512-z/GDPjlRMNOa2XJiB4em8wJpuuBfrFOlYKTZxtpkdr1uPdibHI8rYA3MY0KDObpVyaes0e/aunid/t88ZI2EKA==" + }, + "minimist": { + "version": "0.0.8", + "resolved": "https://registry.npmjs.org/minimist/-/minimist-0.0.8.tgz", + "integrity": "sha512-miQKw5Hv4NS1Psg2517mV4e4dYNaO3++hjAvLOAzKqZ61rH8NS1SK+vbfBWZ5PY/Me/bEWhUwqMghEW5Fb9T7Q==" + }, + "mkdirp": { + "version": "0.5.1", + "resolved": "https://registry.npmjs.org/mkdirp/-/mkdirp-0.5.1.tgz", + "integrity": "sha512-SknJC52obPfGQPnjIkXbmA6+5H15E+fR+E4iR2oQ3zzCLbd7/ONua69R/Gw7AgkTLsRG+r5fzksYwWe1AgTyWA==", + "requires": { + "minimist": "0.0.8" + } + }, + "ms": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/ms/-/ms-2.0.0.tgz", + "integrity": "sha512-Tpp60P6IUJDTuOq/5Z8cdskzJujfwqfOTkrwIwj7IRISpnkJnT6SyJ4PCPnGMoFjC9ddhal5KVIYtAt97ix05A==" + }, + "supports-color": { + "version": "4.4.0", + "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-4.4.0.tgz", + "integrity": "sha512-rKC3+DyXWgK0ZLKwmRsrkyHVZAjNkfzeehuFWdGGcqGDTZFH73+RH6S/RDAAxl9GusSjZSUWYLmT9N5pzXFOXQ==", + "requires": { + "has-flag": "^2.0.0" + } + } + } + }, + "moo": { + "version": "0.5.2", + "resolved": "https://registry.npmjs.org/moo/-/moo-0.5.2.tgz", + "integrity": "sha512-iSAJLHYKnX41mKcJKjqvnAN9sf0LMDTXDEvFv+ffuRR9a1MIuXLjMNL6EsnDHSkKLTWNqQQ5uo61P4EbU4NU+Q==", + "dev": true + }, + "move-concurrently": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/move-concurrently/-/move-concurrently-1.0.1.tgz", + "integrity": "sha512-hdrFxZOycD/g6A6SoI2bB5NA/5NEqD0569+S47WZhPvm46sD50ZHdYaFmnua5lndde9rCHGjmfK7Z8BuCt/PcQ==", + "requires": { + "aproba": "^1.1.1", + "copy-concurrently": "^1.0.0", + "fs-write-stream-atomic": "^1.0.8", + "mkdirp": "^0.5.1", + "rimraf": "^2.5.4", + "run-queue": "^1.0.3" + }, + "dependencies": { + "mkdirp": { + "version": "0.5.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.1.3", + "resolved": "https://registry.npmjs.org/ms/-/ms-2.1.3.tgz", + "integrity": "sha512-6FlzubTLZG3J2a/NVCAleEhjzq5oxgHyaCU9yYXvcLsvoVaHJq/s5xXI6/XXP6tz7R9xAOtHnSO/tXtF3WRTlA==" + }, + "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": "sha512-cnAsSVxIDsYt0v7HmC0hWZFwwXSh+E6PgCrREDuN/EsjgLwA5XRmlMHhSiDPrt6HxY1gTivEa/Zh7GtODoLevQ==", + "dev": true + }, + "multipipe": { + "version": "0.3.1", + "resolved": "https://registry.npmjs.org/multipipe/-/multipipe-0.3.1.tgz", + "integrity": "sha512-ZUcepNdMeKBRn/ksm2XTxFnhBaqnBJSZNqwajmiem6b7Rp3fNAAq+twYn3kqw9YMY7HJuc7I7OObX9cMgB1ANg==", + "requires": { + "duplexer2": "^0.1.2" + } + }, + "mute-stream": { + "version": "0.0.7", + "resolved": "https://registry.npmjs.org/mute-stream/-/mute-stream-0.0.7.tgz", + "integrity": "sha512-r65nCZhrbXXb6dXOACihYApHw2Q6pV0M3V0PSxd74N0+D8nzAdEAITq2oAjA1jVnKI+tGvEBUpqiMh0+rW6zDQ==", + "dev": true + }, + "nan": { + "version": "2.22.0", + "resolved": "https://registry.npmjs.org/nan/-/nan-2.22.0.tgz", + "integrity": "sha512-nbajikzWTMwsW+eSsNm3QwlOs7het9gGJU5dDZzRTQGk03vyBOauxgI4VakDzE0PtsGTmXPsXTbbjVhRwR5mpw==", + "optional": true + }, + "nanomatch": { + "version": "1.2.13", + "resolved": "https://registry.npmjs.org/nanomatch/-/nanomatch-1.2.13.tgz", + "integrity": "sha512-fpoe2T0RbHwBTBUOftAfBPaDEi06ufaUai0mE6Yn1kacc3SnTErfb/h+X94VXzI64rKFHYImXSvdwGGCmwOqCA==", + "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" + }, + "dependencies": { + "extend-shallow": { + "version": "3.0.2", + "resolved": "https://registry.npmjs.org/extend-shallow/-/extend-shallow-3.0.2.tgz", + "integrity": "sha512-BwY5b5Ql4+qZoefgMj2NUmx+tehVTH/Kf4k1ZEtOHNFcm2wSxMRo992l6X3TIgni2eZVTZ85xMOjF31fwZAj6Q==", + "requires": { + "assign-symbols": "^1.0.0", + "is-extendable": "^1.0.1" + } + }, + "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==", + "requires": { + "is-plain-object": "^2.0.4" + } + }, + "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==" + } + } + }, + "natural-compare": { + "version": "1.4.0", + "resolved": "https://registry.npmjs.org/natural-compare/-/natural-compare-1.4.0.tgz", + "integrity": "sha512-OWND8ei3VtNC9h7V60qff3SVobHr996CTwgxubgyQYEpg290h9J0buyECNNJexkFm5sOajh5G116RYA1c8ZMSw==", + "dev": true + }, + "nearley": { + "version": "2.20.1", + "resolved": "https://registry.npmjs.org/nearley/-/nearley-2.20.1.tgz", + "integrity": "sha512-+Mc8UaAebFzgV+KpI5n7DasuuQCHA89dmwm7JXw3TV43ukfNQ9DnBH3Mdb2g/I4Fdxc26pwimBWvjIw0UAILSQ==", + "dev": true, + "requires": { + "commander": "^2.19.0", + "moo": "^0.5.0", + "railroad-diagrams": "^1.0.0", + "randexp": "0.4.6" + }, + "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 + } + } + }, + "negotiator": { + "version": "0.6.4", + "resolved": "https://registry.npmjs.org/negotiator/-/negotiator-0.6.4.tgz", + "integrity": "sha512-myRT3DiWPHqho5PrJaIRyaMv2kgYf0mUVgBNOYMuCH5Ki1yEiQaf/ZJuQ62nvpc44wL5WDbTX7yGJi1Neevw8w==", + "dev": true + }, + "neo-async": { + "version": "2.6.2", + "resolved": "https://registry.npmjs.org/neo-async/-/neo-async-2.6.2.tgz", + "integrity": "sha512-Yd3UES5mWCSqR+qNT93S3UoYUkqAZ9lLg8a7g9rimsWmYGK8cVToA4/sF3RrshdyV3sAGMXVUmpMYOw+dLpOuw==" + }, + "nice-try": { + "version": "1.0.5", + "resolved": "https://registry.npmjs.org/nice-try/-/nice-try-1.0.5.tgz", + "integrity": "sha512-1nh45deeb5olNY7eX82BkPO7SSxR5SSYJiPTrTdFUVYwAl8CKMA5N9PjTYkHiRjisVcxcQ1HXdLhx2qxxJzLNQ==", + "dev": true + }, + "no-case": { + "version": "3.0.4", + "resolved": "https://registry.npmjs.org/no-case/-/no-case-3.0.4.tgz", + "integrity": "sha512-fgAN3jGAh+RoxUGZHTSOLJIqUc2wmoBwGR4tbpNAKmmovFoWq0OdRkb0VkldReO2a2iBT/OEulG9XSUc10r3zg==", + "dev": true, + "requires": { + "lower-case": "^2.0.2", + "tslib": "^2.0.3" + } + }, + "node-fetch": { + "version": "1.7.3", + "resolved": "https://registry.npmjs.org/node-fetch/-/node-fetch-1.7.3.tgz", + "integrity": "sha512-NhZ4CsKx7cYm2vSrBAr2PvFOe6sWDf0UYLRqA6svUYg7+/TSfVAu49jYC4BvQ4Sms9SZgdqGBgroqfDhJdTyKQ==", + "dev": true, + "requires": { + "encoding": "^0.1.11", + "is-stream": "^1.0.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-int64": { + "version": "0.4.0", + "resolved": "https://registry.npmjs.org/node-int64/-/node-int64-0.4.0.tgz", + "integrity": "sha512-O5lz91xSOeoXP6DulyHfllpq+Eg00MWitZIbtPfoSEvqIHdl5gfcY6hYzDWnj0qD5tz52PI08u9qUvSVeUBeHw==", + "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==", + "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" + } + }, + "node-notifier": { + "version": "5.4.5", + "resolved": "https://registry.npmjs.org/node-notifier/-/node-notifier-5.4.5.tgz", + "integrity": "sha512-tVbHs7DyTLtzOiN78izLA85zRqB9NvEXkAf014Vx3jtSvn/xBl6bR8ZYifj+dFcFrKI21huSQgJZ6ZtL3B4HfQ==", + "dev": true, + "requires": { + "growly": "^1.3.0", + "is-wsl": "^1.1.0", + "semver": "^5.5.0", + "shellwords": "^0.1.1", + "which": "^1.3.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 + } + } + }, + "node-releases": { + "version": "2.0.18", + "resolved": "https://registry.npmjs.org/node-releases/-/node-releases-2.0.18.tgz", + "integrity": "sha512-d9VeXT4SJ7ZeOqGX6R5EM022wpL+eWPooLI+5UpWn2jCT1aosUQEhQP214x33Wkwx3JQMvIm+tIoVOdodFS40g==" + }, + "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==", + "requires": { + "hosted-git-info": "^2.1.4", + "resolve": "^1.10.0", + "semver": "2 || 3 || 4 || 5", + "validate-npm-package-license": "^3.0.1" + }, + "dependencies": { + "semver": { + "version": "5.7.2", + "resolved": "https://registry.npmjs.org/semver/-/semver-5.7.2.tgz", + "integrity": "sha512-cBznnQ9KjJqU67B52RMC65CMarK2600WFnbkcaiwWq3xy/5haFJlshgnpjovMVJ+Hff49d8GEn0b87C5pDQ10g==" + } + } + }, + "normalize-path": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/normalize-path/-/normalize-path-3.0.0.tgz", + "integrity": "sha512-6eZs5Ls3WtCisHWp9S2GUy8dqkpGi4BVSz3GaqiE6ezub0512ESztXUwUB6C6IKbQkY2Pnb/mD4WYojCRwcwLA==" + }, + "normalize-range": { + "version": "0.1.2", + "resolved": "https://registry.npmjs.org/normalize-range/-/normalize-range-0.1.2.tgz", + "integrity": "sha512-bdok/XvKII3nUpklnV6P2hxtMNrCboOjAcyBuQnWEhO665FwrSNRxU+AqpsyvO6LgGYPspN+lu5CLtw4jPRKNA==" + }, + "normalize-url": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/normalize-url/-/normalize-url-2.0.1.tgz", + "integrity": "sha512-D6MUW4K/VzoJ4rJ01JFKxDrtY1v9wrgzCX5f2qj/lzH1m/lW6MhUZFKerVsnyjOhOsYzI9Kqqak+10l4LvLpMw==", + "requires": { + "prepend-http": "^2.0.0", + "query-string": "^5.0.1", + "sort-keys": "^2.0.0" + } + }, + "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==" + }, + "npm-run-path": { + "version": "2.0.2", + "resolved": "https://registry.npmjs.org/npm-run-path/-/npm-run-path-2.0.2.tgz", + "integrity": "sha512-lJxZYlT4DW/bRUtFh1MQIWqmLwQfAxnqWG4HhEdjMlkrJYnJn0Jrr2u3mgxqaWsdiBc76TYkTG/mhrnYTuzfHw==", + "dev": true, + "requires": { + "path-key": "^2.0.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, + "requires": { + "boolbase": "^1.0.0" + } + }, + "num2fraction": { + "version": "1.2.2", + "resolved": "https://registry.npmjs.org/num2fraction/-/num2fraction-1.2.2.tgz", + "integrity": "sha512-Y1wZESM7VUThYY+4W+X4ySH2maqcA+p7UR+w8VWNWVAd6lwuXXWz/w/Cz43J/dI2I+PS6wD5N+bJUF+gjWvIqg==" + }, + "number-is-nan": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/number-is-nan/-/number-is-nan-1.0.1.tgz", + "integrity": "sha512-4jbtZXNAsfZbAHiiqjLPBiCl16dES1zI4Hpzzxw61Tk+loF+sBDBKx1ICKKKwIqQ7M0mFn1TmkN7euSncWgHiQ==" + }, + "nwmatcher": { + "version": "1.4.4", + "resolved": "https://registry.npmjs.org/nwmatcher/-/nwmatcher-1.4.4.tgz", + "integrity": "sha512-3iuY4N5dhgMpCUrOVnuAdGrgxVqV2cJpM+XNccjR2DKOB1RUP0aA+wGXEiNziG/UKboFyGBIoKOaNlJxx8bciQ==", + "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==" + }, + "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-copy": { + "version": "0.1.0", + "resolved": "https://registry.npmjs.org/object-copy/-/object-copy-0.1.0.tgz", + "integrity": "sha512-79LYn6VAb63zgtmAteVOWo9Vdj71ZVBy3Pbse+VqxDpEP83XuujMrGqHIwAXJ5I/aM0zU7dIyIAhifVTPrNItQ==", + "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": "sha512-Rr7ADjQZenceVOAKop6ALkkRAmH1A4Gx9hV/7ZujPUN2rkATqFO0JZLZInbAjpZYoJ1gUx8MRMQVkYemcbMSTA==", + "requires": { + "is-descriptor": "^0.1.0" + } + }, + "is-descriptor": { + "version": "0.1.7", + "resolved": "https://registry.npmjs.org/is-descriptor/-/is-descriptor-0.1.7.tgz", + "integrity": "sha512-C3grZTvObeN1xud4cRWl366OMXZTj0+HGyk4hvfpx4ZHt1Pb60ANSXqCK7pdOTeUQpRzECBSTphqvD7U+l22Eg==", + "requires": { + "is-accessor-descriptor": "^1.0.1", + "is-data-descriptor": "^1.0.1" + } + } + } + }, + "object-inspect": { + "version": "1.13.3", + "resolved": "https://registry.npmjs.org/object-inspect/-/object-inspect-1.13.3.tgz", + "integrity": "sha512-kDCGIbxkDSXE3euJZZXzc6to7fCrKHNI/hSRQnRuQ+BWjFNzZwiFF8fj/6o2t2G9/jTj8PSIYTfCLelLZEeRpA==" + }, + "object-is": { + "version": "1.1.6", + "resolved": "https://registry.npmjs.org/object-is/-/object-is-1.1.6.tgz", + "integrity": "sha512-F8cZ+KfGlSGi09lJT7/Nd6KJZ9ygtvYC0/UYYLI9nmQKLMnydpB9yvbv9K1uSkEu7FU9vYPmVwLg328tX+ot3Q==", + "dev": true, + "requires": { + "call-bind": "^1.0.7", + "define-properties": "^1.2.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==" + }, + "object-visit": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/object-visit/-/object-visit-1.0.1.tgz", + "integrity": "sha512-GBaMwwAVK9qbQN3Scdo0OyvgPW7l3lnaVMj84uTOZlswkX0KpF6fyDBJhtTthf7pymztoN36/KEr1DyhF96zEA==", + "requires": { + "isobject": "^3.0.0" + } + }, + "object.assign": { + "version": "4.1.5", + "resolved": "https://registry.npmjs.org/object.assign/-/object.assign-4.1.5.tgz", + "integrity": "sha512-byy+U7gp+FVwmyzKPYhW2h5l3crpmGsxl7X2s8y43IgxvG4g3QZ6CffDtsNQy1WsmZpQbO+ybo0AlW7TY6DcBQ==", + "requires": { + "call-bind": "^1.0.5", + "define-properties": "^1.2.1", + "has-symbols": "^1.0.3", + "object-keys": "^1.1.1" + } + }, + "object.entries": { + "version": "1.1.8", + "resolved": "https://registry.npmjs.org/object.entries/-/object.entries-1.1.8.tgz", + "integrity": "sha512-cmopxi8VwRIAw/fkijJohSfpef5PdN0pMQJN6VC/ZKvn0LIknWD8KtgY6KlQdEc4tIjcQ3HxSMmnvtzIscdaYQ==", + "dev": true, + "requires": { + "call-bind": "^1.0.7", + "define-properties": "^1.2.1", + "es-object-atoms": "^1.0.0" + } + }, + "object.fromentries": { + "version": "2.0.8", + "resolved": "https://registry.npmjs.org/object.fromentries/-/object.fromentries-2.0.8.tgz", + "integrity": "sha512-k6E21FzySsSK5a21KRADBd/NGneRegFO5pLHfdQLpRDETUNJueLXs3WCzyQ3tFRDYgbq3KHGXfTbi2bs8WQ6rQ==", + "dev": true, + "requires": { + "call-bind": "^1.0.7", + "define-properties": "^1.2.1", + "es-abstract": "^1.23.2", + "es-object-atoms": "^1.0.0" + } + }, + "object.getownpropertydescriptors": { + "version": "2.1.8", + "resolved": "https://registry.npmjs.org/object.getownpropertydescriptors/-/object.getownpropertydescriptors-2.1.8.tgz", + "integrity": "sha512-qkHIGe4q0lSYMv0XI4SsBTJz3WaURhLvd0lKSgtVuOsJ2krg4SgMw3PIRQFMp07yi++UR3se2mkcLqsBNpBb/A==", + "dev": true, + "requires": { + "array.prototype.reduce": "^1.0.6", + "call-bind": "^1.0.7", + "define-properties": "^1.2.1", + "es-abstract": "^1.23.2", + "es-object-atoms": "^1.0.0", + "gopd": "^1.0.1", + "safe-array-concat": "^1.1.2" + } + }, + "object.omit": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/object.omit/-/object.omit-2.0.1.tgz", + "integrity": "sha512-UiAM5mhmIuKLsOvrL+B0U2d1hXHF3bFYWIuH1LMpuV2EJEHG1Ntz06PgLEHjm6VFd87NpH8rastvPoyv6UW2fA==", + "dev": true, + "requires": { + "for-own": "^0.1.4", + "is-extendable": "^0.1.1" + } + }, + "object.pick": { + "version": "1.3.0", + "resolved": "https://registry.npmjs.org/object.pick/-/object.pick-1.3.0.tgz", + "integrity": "sha512-tqa/UMy/CCoYmj+H5qc07qvSL9dqcs/WZENZ1JbtWBlATP+iVOe778gE6MSijnyCnORzDuX6hU+LA4SZ09YjFQ==", + "requires": { + "isobject": "^3.0.1" + } + }, + "object.values": { + "version": "1.2.0", + "resolved": "https://registry.npmjs.org/object.values/-/object.values-1.2.0.tgz", + "integrity": "sha512-yBYjY9QX2hnRmZHAjG/f13MzmBzxzYgQhFrke06TTyKY5zSTEqkOeukBzIdVA3j3ulu8Qa3MbVFShV7T2RmGtQ==", + "dev": true, + "requires": { + "call-bind": "^1.0.7", + "define-properties": "^1.2.1", + "es-object-atoms": "^1.0.0" + } + }, + "obuf": { + "version": "1.1.2", + "resolved": "https://registry.npmjs.org/obuf/-/obuf-1.1.2.tgz", + "integrity": "sha512-PX1wu0AmAdPqOL1mWhqmlOd8kOIZQwGZw6rh7uby9fTc5lhaOWFLX3I6R1hrF9k3zUY40e6igsLGkDXK92LJNg==", + "dev": true + }, + "omggif": { + "version": "1.0.9", + "resolved": "https://registry.npmjs.org/omggif/-/omggif-1.0.9.tgz", + "integrity": "sha512-VYAQRSZo7qoBcwB5G29YqVPLnxvDkWulE3x35kwH3bq4GdH/ZkHrcPPhxVfaOGYGZ5KV2/55UpcjcyNIO1qZoQ==" + }, + "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==", + "dev": true, + "requires": { + "ee-first": "1.1.1" + } + }, + "on-headers": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/on-headers/-/on-headers-1.0.2.tgz", + "integrity": "sha512-pZAE+FJLoyITytdqK0U5s+FIpjN0JP3OzFi/u8Rx+EV5/W+JTWGXG8xFzevE7AjBfDqHv/8vL8qQsIhHnqRkrA==", + "dev": true + }, + "once": { + "version": "1.4.0", + "resolved": "https://registry.npmjs.org/once/-/once-1.4.0.tgz", + "integrity": "sha512-lNaJgI+2Q5URQBkccEKHTQOPaXdUxnZZElQTZY0MFUAuaEqe1E+Nyvgdz/aIyNi6Z9MzO5dv1H8n58/GELp3+w==", + "requires": { + "wrappy": "1" + } + }, + "onetime": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/onetime/-/onetime-2.0.1.tgz", + "integrity": "sha512-oyyPpiMaKARvvcgip+JV+7zci5L8D1W9RZIz2l1o08AM3pfspitVWnPt3mzHcBPp12oYMTy0pqrFs/C+m3EwsQ==", + "dev": true, + "requires": { + "mimic-fn": "^1.0.0" + } + }, + "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" + } + }, + "optionator": { + "version": "0.8.3", + "resolved": "https://registry.npmjs.org/optionator/-/optionator-0.8.3.tgz", + "integrity": "sha512-+IW9pACdk3XWmmTXG8m3upGUJst5XRGzxMRjXzAuJ1XnIFNvfhjjIuYkDvysnPQ7qzqVzLt78BCruntqRhWQbA==", + "requires": { + "deep-is": "~0.1.3", + "fast-levenshtein": "~2.0.6", + "levn": "~0.3.0", + "prelude-ls": "~1.1.2", + "type-check": "~0.3.2", + "word-wrap": "~1.2.3" + } + }, + "os-browserify": { + "version": "0.3.0", + "resolved": "https://registry.npmjs.org/os-browserify/-/os-browserify-0.3.0.tgz", + "integrity": "sha512-gjcpUc3clBf9+210TRaDWbf+rZZZEshZ+DlXMRCeAjp0xhTrnQsKHypIy1J3d5hKdUzj69t708EHtU8P6bUn0A==" + }, + "os-homedir": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/os-homedir/-/os-homedir-1.0.2.tgz", + "integrity": "sha512-B5JU3cabzk8c67mRRd3ECmROafjYMXbuzlwtqdM8IbS8ktlTix8aFGb2bAGKrSRIlnfKwovGUUr72JUPyOb6kQ==", + "dev": true + }, + "os-locale": { + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/os-locale/-/os-locale-2.1.0.tgz", + "integrity": "sha512-3sslG3zJbEYcaC4YVAvDorjGxc7tv6KVATnLPZONiljsUncvihe9BQoVCEs0RZ1kmf4Hk9OBqlZfJZWI4GanKA==", + "dev": true, + "requires": { + "execa": "^0.7.0", + "lcid": "^1.0.0", + "mem": "^1.1.0" + }, + "dependencies": { + "cross-spawn": { + "version": "5.1.0", + "resolved": "https://registry.npmjs.org/cross-spawn/-/cross-spawn-5.1.0.tgz", + "integrity": "sha512-pTgQJ5KC0d2hcY8eyL1IzlBPYjTkyH72XRZPnLyKus2mBfNjQs3klqbJU2VILqZryAZUt9JOb3h/mWMy23/f5A==", + "dev": true, + "requires": { + "lru-cache": "^4.0.1", + "shebang-command": "^1.2.0", + "which": "^1.2.9" + } + }, + "execa": { + "version": "0.7.0", + "resolved": "https://registry.npmjs.org/execa/-/execa-0.7.0.tgz", + "integrity": "sha512-RztN09XglpYI7aBBrJCPW95jEH7YF1UEPOoX9yDhUTPdp7mK+CQvnLTuD10BNXZ3byLTu2uehZ8EcKT/4CGiFw==", + "dev": true, + "requires": { + "cross-spawn": "^5.0.1", + "get-stream": "^3.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" + } + }, + "get-stream": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/get-stream/-/get-stream-3.0.0.tgz", + "integrity": "sha512-GlhdIUuVakc8SJ6kK0zAFbiGzRFzNnY4jUuEbV9UROo4Y+0Ny4fjvcZFVTeDA4odpFyOQzaw6hXukJSq/f28sQ==", + "dev": true + }, + "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==", + "dev": true, + "requires": { + "pseudomap": "^1.0.2", + "yallist": "^2.1.2" + } + }, + "yallist": { + "version": "2.1.2", + "resolved": "https://registry.npmjs.org/yallist/-/yallist-2.1.2.tgz", + "integrity": "sha512-ncTzHV7NvsQZkYe1DW7cbDLm0YpzHmZF5r/iyP3ZnQtMiJ+pjzisCiMNI+Sj+xQF5pXhSHxSB3uDbsBTzY/c2A==", + "dev": true + } + } + }, + "os-tmpdir": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/os-tmpdir/-/os-tmpdir-1.0.2.tgz", + "integrity": "sha512-D2FR03Vir7FIu45XBY20mTb+/ZSWB00sjU9jdQXt83gDrI4Ztz5Fs7/yy74g2N5SVQY4xY1qDr4rNddwYRVX0g==", + "dev": true + }, + "p-cancelable": { + "version": "0.4.1", + "resolved": "https://registry.npmjs.org/p-cancelable/-/p-cancelable-0.4.1.tgz", + "integrity": "sha512-HNa1A8LvB1kie7cERyy21VNeHb2CWJJYqyyC2o3klWFfMGlFmWv2Z7sFgZH8ZiaYL95ydToKTFVXgMV/Os0bBQ==" + }, + "p-event": { + "version": "2.3.1", + "resolved": "https://registry.npmjs.org/p-event/-/p-event-2.3.1.tgz", + "integrity": "sha512-NQCqOFhbpVTMX4qMe8PF8lbGtzZ+LCiN7pcNrb/413Na7+TRoe1xkKUzuWa/YEJdGQ0FvKtj35EEbDoVPO2kbA==", + "requires": { + "p-timeout": "^2.0.1" + } + }, + "p-finally": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/p-finally/-/p-finally-1.0.0.tgz", + "integrity": "sha512-LICb2p9CB7FS+0eR1oqWnHhp0FljGLZCWBE9aix0Uye9W8LTQPwMTYVGWQWIw9RdQiDg4+epXQODwIYJtSJaow==" + }, + "p-is-promise": { + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/p-is-promise/-/p-is-promise-1.1.0.tgz", + "integrity": "sha512-zL7VE4JVS2IFSkR2GQKDSPEVxkoH43/p7oEnwpdCndKYJO0HVeRB7fA8TJwuLOTBREtK0ea8eHaxdwcpob5dmg==" + }, + "p-limit": { + "version": "3.1.0", + "resolved": "https://registry.npmjs.org/p-limit/-/p-limit-3.1.0.tgz", + "integrity": "sha512-TYOanM3wGwNGsZN2cVTYPArw454xnXj5qmWF1bEoAc4+cU/ol7GVh7odevjp1FNHduHc3KZMcFduxU5Xc6uJRQ==", + "requires": { + "yocto-queue": "^0.1.0" + } + }, + "p-locate": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/p-locate/-/p-locate-2.0.0.tgz", + "integrity": "sha512-nQja7m7gSKuewoVRen45CtVfODR3crN3goVQ0DDZ9N3yHxgpkuBhZqsaiotSQRrADUrne346peY7kT3TSACykg==", + "dev": true, + "requires": { + "p-limit": "^1.1.0" + }, + "dependencies": { + "p-limit": { + "version": "1.3.0", + "resolved": "https://registry.npmjs.org/p-limit/-/p-limit-1.3.0.tgz", + "integrity": "sha512-vvcXsLAJ9Dr5rQOPk7toZQZJApBl2K4J6dANSsEuh6QI41JYcsS/qhTGa9ErIUUgK3WNQoJYvylxvjqmiqEA9Q==", + "dev": true, + "requires": { + "p-try": "^1.0.0" + } + }, + "p-try": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/p-try/-/p-try-1.0.0.tgz", + "integrity": "sha512-U1etNYuMJoIz3ZXSrrySFjsXQTWOx2/jdi86L+2pRvph/qMKL6sbcCYdH23fqsbm8TH2Gn0OybpT4eSFlCVHww==", + "dev": true + } + } + }, + "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==", + "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-timeout": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/p-timeout/-/p-timeout-2.0.1.tgz", + "integrity": "sha512-88em58dDVB/KzPEx1X0N3LwFfYZPyDc4B6eF38M1rk9VTZMbxXXgjugz8mmwpS9Ox4BDZ+t6t3QP5+/gazweIA==", + "requires": { + "p-finally": "^1.0.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==" + }, + "pako": { + "version": "1.0.11", + "resolved": "https://registry.npmjs.org/pako/-/pako-1.0.11.tgz", + "integrity": "sha512-4hLB8Py4zZce5s4yd9XzopqwVv/yGNhV1Bl8NTmCq1763HeK2+EwVTv+leGeL13Dnh2wfbqowVPXCIO0z4taYw==" + }, + "papaparse": { + "version": "5.3.0", + "resolved": "https://registry.npmjs.org/papaparse/-/papaparse-5.3.0.tgz", + "integrity": "sha512-Lb7jN/4bTpiuGPrYy4tkKoUS8sTki8zacB5ke1p5zolhcSE4TlWgrlsxjrDTbG/dFVh07ck7X36hUf/b5V68pg==" + }, + "parallel-transform": { + "version": "1.2.0", + "resolved": "https://registry.npmjs.org/parallel-transform/-/parallel-transform-1.2.0.tgz", + "integrity": "sha512-P2vSmIu38uIlvdcU7fDkyrxj33gTUy/ABO5ZUbGowxNCopBq/OoD42bP4UmMrJoPyk4Uqf0mu3mtWBhHCZD8yg==", + "requires": { + "cyclist": "^1.0.1", + "inherits": "^2.0.3", + "readable-stream": "^2.1.5" + } + }, + "param-case": { + "version": "3.0.4", + "resolved": "https://registry.npmjs.org/param-case/-/param-case-3.0.4.tgz", + "integrity": "sha512-RXlj7zCYokReqWpOPH9oYivUzLYZ5vAPIfEmCTNViosC78F8F0H9y7T7gG2M39ymgutxF5gcFEsyZQSph9Bp3A==", + "dev": true, + "requires": { + "dot-case": "^3.0.4", + "tslib": "^2.0.3" + } + }, + "parent-module": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/parent-module/-/parent-module-1.0.1.tgz", + "integrity": "sha512-GQ2EWRpQV8/o+Aw8YqtfZZPfNRWZYkbidE9k5rpl/hC3vtHHBfGm2Ifi6qWV+coDGkrUKZAxE3Lot5kcsRlh+g==", + "dev": true, + "requires": { + "callsites": "^3.0.0" + }, + "dependencies": { + "callsites": { + "version": "3.1.0", + "resolved": "https://registry.npmjs.org/callsites/-/callsites-3.1.0.tgz", + "integrity": "sha512-P8BjAsXvZS+VIDUI11hHCQEv74YT67YUi5JJFNWIqL235sBmjX4+qx9Muvls5ivyNENctx46xQLQ3aTuE7ssaQ==", + "dev": true + } + } + }, + "parse-asn1": { + "version": "5.1.7", + "resolved": "https://registry.npmjs.org/parse-asn1/-/parse-asn1-5.1.7.tgz", + "integrity": "sha512-CTM5kuWR3sx9IFamcl5ErfPl6ea/N8IYwiJ+vpeB2g+1iknv7zBl5uPwbMbRVznRVbrNY6lGuDoE5b30grmbqg==", + "requires": { + "asn1.js": "^4.10.1", + "browserify-aes": "^1.2.0", + "evp_bytestokey": "^1.0.3", + "hash-base": "~3.0", + "pbkdf2": "^3.1.2", + "safe-buffer": "^5.2.1" + } + }, + "parse-color": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/parse-color/-/parse-color-1.0.0.tgz", + "integrity": "sha512-fuDHYgFHJGbpGMgw9skY/bj3HL/Jrn4l/5rSspy00DoT4RyLnDcRvPxdZ+r6OFwIsgAuhDh4I09tAId4mI12bw==", + "requires": { + "color-convert": "~0.5.0" + } + }, + "parse-glob": { + "version": "3.0.4", + "resolved": "https://registry.npmjs.org/parse-glob/-/parse-glob-3.0.4.tgz", + "integrity": "sha512-FC5TeK0AwXzq3tUBFtH74naWkPQCEWs4K+xMxWZBlKDWu0bVHXGZa+KKqxKidd7xwhdZ19ZNuF2uO1M/r196HA==", + "dev": true, + "requires": { + "glob-base": "^0.3.0", + "is-dotfile": "^1.0.0", + "is-extglob": "^1.0.0", + "is-glob": "^2.0.0" + }, + "dependencies": { + "is-extglob": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/is-extglob/-/is-extglob-1.0.0.tgz", + "integrity": "sha512-7Q+VbVafe6x2T+Tu6NcOf6sRklazEPmBoB3IWk3WdGZM2iGUwU/Oe3Wtq5lSEkDTTlpp8yx+5t4pzO/i9Ty1ww==", + "dev": true + }, + "is-glob": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/is-glob/-/is-glob-2.0.1.tgz", + "integrity": "sha512-a1dBeB19NXsf/E0+FHqkagizel/LQw2DjSQpvQrj3zT+jYPpaUCryPnrQajXKFLCMuf4I6FhRpaGtw4lPrG6Eg==", + "dev": true, + "requires": { + "is-extglob": "^1.0.0" + } + } + } + }, + "parse-headers": { + "version": "2.0.5", + "resolved": "https://registry.npmjs.org/parse-headers/-/parse-headers-2.0.5.tgz", + "integrity": "sha512-ft3iAoLOB/MlwbNXgzy43SWGP6sQki2jQvAyBg/zDFAgr9bfNWZIUj42Kw2eJIl8kEi4PbgE6U1Zau/HwI75HA==" + }, + "parse-json": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/parse-json/-/parse-json-4.0.0.tgz", + "integrity": "sha512-aOIos8bujGN93/8Ox/jPLh7RwVnPEysynVFE+fQZyg6jKELEHwzgKdLRFHUgXJL6kylijVSBC4BvN9OmsB48Rw==", + "requires": { + "error-ex": "^1.3.1", + "json-parse-better-errors": "^1.0.1" + } + }, + "parse-passwd": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/parse-passwd/-/parse-passwd-1.0.0.tgz", + "integrity": "sha512-1Y1A//QUXEZK7YKz+rD9WydcE1+EuPr6ZBgKecAB8tmoW6UFv0NREVJe1p+jRxtThkcbbKkfwIbWJe/IeE6m2Q==", + "dev": true + }, + "parse5": { + "version": "7.2.1", + "resolved": "https://registry.npmjs.org/parse5/-/parse5-7.2.1.tgz", + "integrity": "sha512-BuBYQYlv1ckiPdQi/ohiivi9Sagc9JG+Ozs0r7b/0iK3sKmrb0b9FdWdBbOdx6hBCM/F9Ir82ofnBhtZOjCRPQ==", + "dev": true, + "requires": { + "entities": "^4.5.0" + } + }, + "parse5-htmlparser2-tree-adapter": { + "version": "7.1.0", + "resolved": "https://registry.npmjs.org/parse5-htmlparser2-tree-adapter/-/parse5-htmlparser2-tree-adapter-7.1.0.tgz", + "integrity": "sha512-ruw5xyKs6lrpo9x9rCZqZZnIUntICjQAd0Wsmp396Ul9lN/h+ifgVV1x1gZHi8euej6wTfpqX8j+BFQxF0NS/g==", + "dev": true, + "requires": { + "domhandler": "^5.0.3", + "parse5": "^7.0.0" + } + }, + "parse5-parser-stream": { + "version": "7.1.2", + "resolved": "https://registry.npmjs.org/parse5-parser-stream/-/parse5-parser-stream-7.1.2.tgz", + "integrity": "sha512-JyeQc9iwFLn5TbvvqACIF/VXG6abODeB3Fwmv/TGdLk2LfbWkaySGY72at4+Ty7EkPZj854u4CrICqNk2qIbow==", + "dev": true, + "requires": { + "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==", + "dev": true + }, + "pascal-case": { + "version": "3.1.2", + "resolved": "https://registry.npmjs.org/pascal-case/-/pascal-case-3.1.2.tgz", + "integrity": "sha512-uWlGT3YSnK9x3BQJaOdcZwrnV6hPpd8jFH1/ucpiLRPh/2zCVJKS19E4GvYHvaCcACn3foXZ0cLB9Wrx1KGe5g==", + "dev": true, + "requires": { + "no-case": "^3.0.4", + "tslib": "^2.0.3" + } + }, + "pascalcase": { + "version": "0.1.1", + "resolved": "https://registry.npmjs.org/pascalcase/-/pascalcase-0.1.1.tgz", + "integrity": "sha512-XHXfu/yOQRy9vYOtUDVMN60OEJjW013GoObG1o+xwQTpB9eYJX/BjXMsdW13ZDPruFhYYn0AG22w0xgQMwl3Nw==" + }, + "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==" + }, + "path-dirname": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/path-dirname/-/path-dirname-1.0.2.tgz", + "integrity": "sha512-ALzNPpyNq9AqXMBjeymIjFDAkAFH06mHJH/cSBHAgU0s4vfpBn6b2nf8tiRLvagKD8RbTpq2FKTBg7cl9l3c7Q==", + "devOptional": true + }, + "path-exists": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/path-exists/-/path-exists-3.0.0.tgz", + "integrity": "sha512-bpC7GYwiDYQ4wYLe+FA8lhRjhQCMcQGuSgGGqDkg/QerRWw9CmGRT0iSOVRSZJ29NMLZgIzqaljJ63oaL4NIJQ==" + }, + "path-is-absolute": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/path-is-absolute/-/path-is-absolute-1.0.1.tgz", + "integrity": "sha512-AVbw3UJ2e9bq64vSaS9Am0fje1Pa8pbGqTTsmXfaIiMpnr5DlDhfJOuLj9Sf95ZPVDAUerDfEk88MPmPe7UCQg==" + }, + "path-is-inside": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/path-is-inside/-/path-is-inside-1.0.2.tgz", + "integrity": "sha512-DUWJr3+ULp4zXmol/SZkFf3JGsS9/SIv+Y3Rt93/UjPpDpklB5f1er4O3POIbUuUJ3FXgqte2Q7SrU6zAqwk8w==", + "dev": true + }, + "path-key": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/path-key/-/path-key-2.0.1.tgz", + "integrity": "sha512-fEHGKCSmUSDPv4uoj8AlD+joPlq3peND+HRYyxFz4KPw4z926S/b8rIuFs2FYJg3BwsxJf6A9/3eIdLaYC+9Dw==", + "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==" + }, + "path-to-regexp": { + "version": "0.1.10", + "resolved": "https://registry.npmjs.org/path-to-regexp/-/path-to-regexp-0.1.10.tgz", + "integrity": "sha512-7lf7qcQidTku0Gu3YDPc8DJ1q7OOucfa/BSsIwjuh56VU7katFvuM8hULfkwB3Fns/rsVF7PwPKVw1sl5KQS9w==", + "dev": true + }, + "path-type": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/path-type/-/path-type-4.0.0.tgz", + "integrity": "sha512-gDKb8aZMDeD/tZWs9P6+q0J9Mwkdl6xMV8TjnGP3qJVJ06bdMgkbBlLU8IdfOsIsFz2BW1rNVT3XuNEl8zPAvw==" + }, + "pathfinding": { + "version": "0.4.18", + "resolved": "https://registry.npmjs.org/pathfinding/-/pathfinding-0.4.18.tgz", + "integrity": "sha512-R0TGEQ9GRcFCDvAWlJAWC+KGJ9SLbW4c0nuZRcioVlXVTlw+F5RvXQ8SQgSqI9KXWC1ew95vgmIiyaWTlCe9Ag==", + "requires": { + "heap": "0.2.5" + } + }, + "pbkdf2": { + "version": "3.1.2", + "resolved": "https://registry.npmjs.org/pbkdf2/-/pbkdf2-3.1.2.tgz", + "integrity": "sha512-iuh7L6jA7JEGu2WxDwtQP1ddOpaJNC4KlDEFfdQajSGgGPNi4OyDc2R7QnbY2bR9QjBVGwgvTdNJZoE7RaxUMA==", + "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" + } + }, + "pend": { + "version": "1.2.0", + "resolved": "https://registry.npmjs.org/pend/-/pend-1.2.0.tgz", + "integrity": "sha512-F3asv42UuXchdzt+xXqfW1OGlVBe+mxa2mqI0pg5yAHZPvFmY3Y6drSf/GQ1A86WgWEN9Kzh/WrgKa6iGcHXLg==" + }, + "PenguinMod-MarkDown": { + "version": "git+ssh://git@github.com/PenguinMod/PenguinMod-MarkDown.git#ae5971c234a9d13a8886bb3edcec3df5ceffab34", + "from": "PenguinMod-MarkDown@github:PenguinMod/PenguinMod-MarkDown#master", + "requires": { + "slugo": "^0.2.1" + } + }, + "performance-now": { + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/performance-now/-/performance-now-2.1.0.tgz", + "integrity": "sha512-7EAHlyLHI56VEIdK57uwHdHKIaAGbnXPiw0yWbarQZOKaKpvUIgW0jWRVLiatnM+XXlSwsanIBH/hzGMJulMow==" + }, + "picocolors": { + "version": "1.1.1", + "resolved": "https://registry.npmjs.org/picocolors/-/picocolors-1.1.1.tgz", + "integrity": "sha512-xceH2snhtb5M9liqDsmEw56le376mTZkEX/jEb/RxNFyegNul7eNslCXP9FDj/Lcu0X8KEyMceP2ntpaHrDEVA==" + }, + "picomatch": { + "version": "2.3.1", + "resolved": "https://registry.npmjs.org/picomatch/-/picomatch-2.3.1.tgz", + "integrity": "sha512-JU3teHTNjmE2VCGFzuY8EXzCDVwEqB2a8fsIvwaStHhAWJEeVd1o1QD80CU6+ZdEXXSLbSsuLwJjkCBWqRQUVA==" + }, + "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": "sha512-MnUuEycAemtSaeFSjXKW/aroV7akBbY+Sv+RkyqFjgAe73F+MR0TBWKBRDkmfWq/HiFmdavfZ1G7h4SPZXaCSg==" + }, + "pinkie-promise": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/pinkie-promise/-/pinkie-promise-2.0.1.tgz", + "integrity": "sha512-0Gni6D4UcLTbv9c57DfxDGdr41XfgUjqWZu492f0cIGr16zDU06BWP/RAEvOuo7CQ0CNjHaLlM59YJJFm3NWlw==", + "requires": { + "pinkie": "^2.0.0" + } + }, + "pkg-dir": { + "version": "4.2.0", + "resolved": "https://registry.npmjs.org/pkg-dir/-/pkg-dir-4.2.0.tgz", + "integrity": "sha512-HRDzbaKjC+AOWVXxAU/x54COGeIv9eb+6CkDSQoNTt4XyWoIJvuPsXizxu/Fr23EiekbtZwmh1IcIG/l/a10GQ==", + "requires": { + "find-up": "^4.0.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==", + "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==", + "requires": { + "p-locate": "^4.1.0" + } + }, + "p-limit": { + "version": "2.3.0", + "resolved": "https://registry.npmjs.org/p-limit/-/p-limit-2.3.0.tgz", + "integrity": "sha512-//88mFWSJx8lxCzwdAABTJL2MyWB12+eIY7MDL2SqLmAkeKU9qxRvWuSyTjm3FUmpBEMuFfckAIqEaVGUDxb6w==", + "requires": { + "p-try": "^2.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==", + "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==" + } + } + }, + "pkg-up": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/pkg-up/-/pkg-up-2.0.0.tgz", + "integrity": "sha512-fjAPuiws93rm7mPUu21RdBnkeZNrbfCFCwfAhPWY+rR3zG0ubpe5cEReHOw5fIbfmsxEV/g2kSxGTATY3Bpnwg==", + "dev": true, + "requires": { + "find-up": "^2.1.0" + } + }, + "pnpm": { + "version": "7.33.7", + "resolved": "https://registry.npmjs.org/pnpm/-/pnpm-7.33.7.tgz", + "integrity": "sha512-ev4kEGQrOcaY30baTOXHIxpczjYGmNafjPj0IlfUCz5D8jEFOwe43oSf1P+/SnH/V7g1E3d3o1I4jz09p0cgDg==" + }, + "portfinder": { + "version": "1.0.32", + "resolved": "https://registry.npmjs.org/portfinder/-/portfinder-1.0.32.tgz", + "integrity": "sha512-on2ZJVVDXRADWE6jnQaX0ioEylzgBpQk8r55NE4wjXW1ZxO+BgDlY6DXwj20i0V8eB4SenDQ00WEaxfiIQPcxg==", + "dev": true, + "requires": { + "async": "^2.6.4", + "debug": "^3.2.7", + "mkdirp": "^0.5.6" + }, + "dependencies": { + "debug": { + "version": "3.2.7", + "resolved": "https://registry.npmjs.org/debug/-/debug-3.2.7.tgz", + "integrity": "sha512-CFjzYYAi4ThfiQvizrFQevTTXHtnCqWfe7x1AhgEscTz6ZbLbfoLRLPugTQyBth6f8ZERVUSyWHFD/7Wu4t1XQ==", + "dev": true, + "requires": { + "ms": "^2.1.1" + } + }, + "mkdirp": { + "version": "0.5.6", + "resolved": "https://registry.npmjs.org/mkdirp/-/mkdirp-0.5.6.tgz", + "integrity": "sha512-FP+p8RB8OWpF3YZBCrP5gtADmtXApB5AMLn+vdyA+PyxCjrCs00mjyUozssO33cwDeT3wNGdLxJ5M//YqtHAJw==", + "dev": true, + "requires": { + "minimist": "^1.2.6" + } + } + } + }, + "posix-character-classes": { + "version": "0.1.1", + "resolved": "https://registry.npmjs.org/posix-character-classes/-/posix-character-classes-0.1.1.tgz", + "integrity": "sha512-xTgYBc3fuo7Yt7JbiuFxSYGToMoz8fLoE6TC9Wx1P/u+LfeThMOAqmuyECnlBaaJb+u1m9hHiXUEtwW4OzfUJg==" + }, + "possible-typed-array-names": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/possible-typed-array-names/-/possible-typed-array-names-1.0.0.tgz", + "integrity": "sha512-d7Uw+eZoloe0EHDIYoe+bQ5WXnGMOpmiZFTuMWCwpjzzkL2nTjcKiAk4hh8TjnGye2TwWOk3UXucZ+3rbmBa8Q==", + "dev": true + }, + "postcss": { + "version": "7.0.39", + "resolved": "https://registry.npmjs.org/postcss/-/postcss-7.0.39.tgz", + "integrity": "sha512-yioayjNbHn6z1/Bywyb2Y4s3yvDAeXGOyxqD+LnVOinq6Mdmd++SW2wUNVzavyyHxd6+DxzWGIuosg6P1Rj8uA==", + "requires": { + "picocolors": "^0.2.1", + "source-map": "^0.6.1" + }, + "dependencies": { + "picocolors": { + "version": "0.2.1", + "resolved": "https://registry.npmjs.org/picocolors/-/picocolors-0.2.1.tgz", + "integrity": "sha512-cMlDqaLEqfSaW8Z7N5Jw+lyIW869EzT73/F5lhtY9cLGoVxSXznfgfXMO0Z5K0o0Q2TkTXq+0KFsdnSe3jDViA==" + }, + "source-map": { + "version": "0.6.1", + "resolved": "https://registry.npmjs.org/source-map/-/source-map-0.6.1.tgz", + "integrity": "sha512-UjgapumWlbMhkBgzT7Ykc5YXUT46F0iKu8SGXq0bcwP5dz/h0Plj6enJqjz1Zbq2l5WaqYnrVbwWOWMyF3F47g==" + } + } + }, + "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==", + "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==" + } + } + }, + "postcss-load-config": { + "version": "2.1.2", + "resolved": "https://registry.npmjs.org/postcss-load-config/-/postcss-load-config-2.1.2.tgz", + "integrity": "sha512-/rDeGV6vMUo3mwJZmeHfEDvwnTKKqQ0S7OHUi/kJvvtx3aWtyWG2/0ZWnzCt2keEclwN6Tf0DST2v9kITdOKYw==", + "requires": { + "cosmiconfig": "^5.0.0", + "import-cwd": "^2.0.0" + } + }, + "postcss-loader": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/postcss-loader/-/postcss-loader-3.0.0.tgz", + "integrity": "sha512-cLWoDEY5OwHcAjDnkyRQzAXfs2jrKjXpO/HQFcc5b5u/r7aa471wdmChmwfnv7x2u840iat/wi0lQ5nbRgSkUA==", + "requires": { + "loader-utils": "^1.1.0", + "postcss": "^7.0.0", + "postcss-load-config": "^2.0.0", + "schema-utils": "^1.0.0" + }, + "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==", + "requires": { + "ajv": "^6.1.0", + "ajv-errors": "^1.0.0", + "ajv-keywords": "^3.1.0" + } + } + } + }, + "postcss-modules-extract-imports": { + "version": "1.2.1", + "resolved": "https://registry.npmjs.org/postcss-modules-extract-imports/-/postcss-modules-extract-imports-1.2.1.tgz", + "integrity": "sha512-6jt9XZwUhwmRUhb/CkyJY020PYaPJsCyt3UjbaWo6XEbH/94Hmv6MP7fG2C5NDU/BcHzyGYxNtHvM+LTf9HrYw==", + "requires": { + "postcss": "^6.0.1" + }, + "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==", + "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==", + "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==", + "requires": { + "color-name": "1.1.3" + } + }, + "postcss": { + "version": "6.0.23", + "resolved": "https://registry.npmjs.org/postcss/-/postcss-6.0.23.tgz", + "integrity": "sha512-soOk1h6J3VMTZtVeVpv15/Hpdl2cBLX3CAw4TAbkpTJiNPk9YP/zWcD1ND+xEtvyuuvKzbxliTOIyvkSeSJ6ag==", + "requires": { + "chalk": "^2.4.1", + "source-map": "^0.6.1", + "supports-color": "^5.4.0" + } + }, + "source-map": { + "version": "0.6.1", + "resolved": "https://registry.npmjs.org/source-map/-/source-map-0.6.1.tgz", + "integrity": "sha512-UjgapumWlbMhkBgzT7Ykc5YXUT46F0iKu8SGXq0bcwP5dz/h0Plj6enJqjz1Zbq2l5WaqYnrVbwWOWMyF3F47g==" + }, + "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" + } + } + } + }, + "postcss-modules-local-by-default": { + "version": "1.2.0", + "resolved": "https://registry.npmjs.org/postcss-modules-local-by-default/-/postcss-modules-local-by-default-1.2.0.tgz", + "integrity": "sha512-X4cquUPIaAd86raVrBwO8fwRfkIdbwFu7CTfEOjiZQHVQwlHRSkTgH5NLDmMm5+1hQO8u6dZ+TOOJDbay1hYpA==", + "requires": { + "css-selector-tokenizer": "^0.7.0", + "postcss": "^6.0.1" + }, + "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==", + "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==", + "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==", + "requires": { + "color-name": "1.1.3" + } + }, + "postcss": { + "version": "6.0.23", + "resolved": "https://registry.npmjs.org/postcss/-/postcss-6.0.23.tgz", + "integrity": "sha512-soOk1h6J3VMTZtVeVpv15/Hpdl2cBLX3CAw4TAbkpTJiNPk9YP/zWcD1ND+xEtvyuuvKzbxliTOIyvkSeSJ6ag==", + "requires": { + "chalk": "^2.4.1", + "source-map": "^0.6.1", + "supports-color": "^5.4.0" + } + }, + "source-map": { + "version": "0.6.1", + "resolved": "https://registry.npmjs.org/source-map/-/source-map-0.6.1.tgz", + "integrity": "sha512-UjgapumWlbMhkBgzT7Ykc5YXUT46F0iKu8SGXq0bcwP5dz/h0Plj6enJqjz1Zbq2l5WaqYnrVbwWOWMyF3F47g==" + }, + "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" + } + } + } + }, + "postcss-modules-scope": { + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/postcss-modules-scope/-/postcss-modules-scope-1.1.0.tgz", + "integrity": "sha512-LTYwnA4C1He1BKZXIx1CYiHixdSe9LWYVKadq9lK5aCCMkoOkFyZ7aigt+srfjlRplJY3gIol6KUNefdMQJdlw==", + "requires": { + "css-selector-tokenizer": "^0.7.0", + "postcss": "^6.0.1" + }, + "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==", + "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==", + "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==", + "requires": { + "color-name": "1.1.3" + } + }, + "postcss": { + "version": "6.0.23", + "resolved": "https://registry.npmjs.org/postcss/-/postcss-6.0.23.tgz", + "integrity": "sha512-soOk1h6J3VMTZtVeVpv15/Hpdl2cBLX3CAw4TAbkpTJiNPk9YP/zWcD1ND+xEtvyuuvKzbxliTOIyvkSeSJ6ag==", + "requires": { + "chalk": "^2.4.1", + "source-map": "^0.6.1", + "supports-color": "^5.4.0" + } + }, + "source-map": { + "version": "0.6.1", + "resolved": "https://registry.npmjs.org/source-map/-/source-map-0.6.1.tgz", + "integrity": "sha512-UjgapumWlbMhkBgzT7Ykc5YXUT46F0iKu8SGXq0bcwP5dz/h0Plj6enJqjz1Zbq2l5WaqYnrVbwWOWMyF3F47g==" + }, + "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" + } + } + } + }, + "postcss-modules-values": { + "version": "1.3.0", + "resolved": "https://registry.npmjs.org/postcss-modules-values/-/postcss-modules-values-1.3.0.tgz", + "integrity": "sha512-i7IFaR9hlQ6/0UgFuqM6YWaCfA1Ej8WMg8A5DggnH1UGKJvTV/ugqq/KaULixzzOi3T/tF6ClBXcHGCzdd5unA==", + "requires": { + "icss-replace-symbols": "^1.1.0", + "postcss": "^6.0.1" + }, + "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==", + "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==", + "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==", + "requires": { + "color-name": "1.1.3" + } + }, + "postcss": { + "version": "6.0.23", + "resolved": "https://registry.npmjs.org/postcss/-/postcss-6.0.23.tgz", + "integrity": "sha512-soOk1h6J3VMTZtVeVpv15/Hpdl2cBLX3CAw4TAbkpTJiNPk9YP/zWcD1ND+xEtvyuuvKzbxliTOIyvkSeSJ6ag==", + "requires": { + "chalk": "^2.4.1", + "source-map": "^0.6.1", + "supports-color": "^5.4.0" + } + }, + "source-map": { + "version": "0.6.1", + "resolved": "https://registry.npmjs.org/source-map/-/source-map-0.6.1.tgz", + "integrity": "sha512-UjgapumWlbMhkBgzT7Ykc5YXUT46F0iKu8SGXq0bcwP5dz/h0Plj6enJqjz1Zbq2l5WaqYnrVbwWOWMyF3F47g==" + }, + "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" + } + } + } + }, + "postcss-simple-vars": { + "version": "5.0.2", + "resolved": "https://registry.npmjs.org/postcss-simple-vars/-/postcss-simple-vars-5.0.2.tgz", + "integrity": "sha512-xWIufxBoINJv6JiLb7jl5oElgp+6puJwvT5zZHliUSydoLz4DADRB3NDDsYgfKVwojn4TDLiseoC65MuS8oGGg==", + "requires": { + "postcss": "^7.0.14" + } + }, + "postcss-value-parser": { + "version": "4.2.0", + "resolved": "https://registry.npmjs.org/postcss-value-parser/-/postcss-value-parser-4.2.0.tgz", + "integrity": "sha512-1NNCs6uurfkVbeXG4S8JFT9t19m45ICnif8zWLd5oPSZ50QnwMfK+H3jv408d4jw/7Bttv5axS5IiHoLaVNHeQ==" + }, + "prelude-ls": { + "version": "1.1.2", + "resolved": "https://registry.npmjs.org/prelude-ls/-/prelude-ls-1.1.2.tgz", + "integrity": "sha512-ESF23V4SKG6lVSGZgYNpbsiaAkdab6ZgOxe52p7+Kid3W3u3bxR4Vfd/o21dmN7jSt0IwgZ4v5MUd26FEtXE9w==" + }, + "prepend-http": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/prepend-http/-/prepend-http-2.0.0.tgz", + "integrity": "sha512-ravE6m9Atw9Z/jjttRUZ+clIXogdghyZAuWJ3qEzjT+jI/dL1ifAqhZeC5VHzQp1MSt1+jxKkFNemj/iO7tVUA==" + }, + "preserve": { + "version": "0.2.0", + "resolved": "https://registry.npmjs.org/preserve/-/preserve-0.2.0.tgz", + "integrity": "sha512-s/46sYeylUfHNjI+sA/78FAHlmIuKqI9wNnzEOGehAlUUYeObv5C2mOinXBjyUyWmJ2SfcS2/ydApH4hTF4WXQ==", + "dev": true + }, + "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, + "requires": { + "lodash": "^4.17.20", + "renderkid": "^2.0.4" + } + }, + "pretty-format": { + "version": "21.2.1", + "resolved": "https://registry.npmjs.org/pretty-format/-/pretty-format-21.2.1.tgz", + "integrity": "sha512-ZdWPGYAnYfcVP8yKA3zFjCn8s4/17TeYH28MXuC8vTp0o21eXjbFGcOAXZEaDaOFJjc3h2qa7HQNHNshhvoh2A==", + "dev": true, + "requires": { + "ansi-regex": "^3.0.0", + "ansi-styles": "^3.2.0" + }, + "dependencies": { + "ansi-regex": { + "version": "3.0.1", + "resolved": "https://registry.npmjs.org/ansi-regex/-/ansi-regex-3.0.1.tgz", + "integrity": "sha512-+O9Jct8wf++lXxxFc4hc8LsjaSq0HFzzL7cVsw8pRDIPdjKD2mT4ytDZlLuSBZ4cLKZFXIrMGO7DbQCtMJJMKw==", + "dev": true + }, + "ansi-styles": { + "version": "3.2.1", + "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-3.2.1.tgz", + "integrity": "sha512-VT0ZI6kZRdTh8YyJw3SMbYm/u+NqfsAxEpWO0Pf9sq8/e94WxxOpPKx9FR1FlyCtOVDNOQ+8ntlqFxiRc+r5qA==", + "dev": true, + "requires": { + "color-convert": "^1.9.0" + } + }, + "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" + } + } + } + }, + "private": { + "version": "0.1.8", + "resolved": "https://registry.npmjs.org/private/-/private-0.1.8.tgz", + "integrity": "sha512-VvivMrbvd2nKkiG38qjULzlc+4Vx4wm/whI9pQD35YrARNnhxeiRktSOhSukRLFNlzg6Br/cJPet5J/u19r/mg==", + "dev": true + }, + "process": { + "version": "0.11.10", + "resolved": "https://registry.npmjs.org/process/-/process-0.11.10.tgz", + "integrity": "sha512-cdGef/drWFoydD1JsMzuFf8100nZl+GT+yacc2bEced5f9Rjk4z+WtFUTBu9PhOi9j/jfmBPu0mMEY4wIdAF8A==" + }, + "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==" + }, + "progress": { + "version": "2.0.3", + "resolved": "https://registry.npmjs.org/progress/-/progress-2.0.3.tgz", + "integrity": "sha512-7PiHtLll5LdnKIMw100I+8xJXR5gW2QwWYkT6iJva0bXitZKa/XMrSbdmg3r2Xnaidz9Qumd0VPaMrZlF9V9sA==", + "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": "sha512-6zWPyEOFaQBJYcGMHBKTKJ3u6TBsnMFOIZSa6ce1e/ZrrsOlnHRHbabMjLiBYKp+n44X9eUI6VUPaukCXHuG4g==" + }, + "prop-types": { + "version": "15.8.1", + "resolved": "https://registry.npmjs.org/prop-types/-/prop-types-15.8.1.tgz", + "integrity": "sha512-oj87CgZICdulUohogVAR7AjlC0327U4el4L6eAvOqCeudMDVU0NThNaV+b9Df4dXgSP1gXMTnPdhfe/2qDH5cg==", + "requires": { + "loose-envify": "^1.4.0", + "object-assign": "^4.1.1", + "react-is": "^16.13.1" + } + }, + "prop-types-exact": { + "version": "1.2.5", + "resolved": "https://registry.npmjs.org/prop-types-exact/-/prop-types-exact-1.2.5.tgz", + "integrity": "sha512-wHDhA5TSSvU07gdzsdeT/FZg6zay94K4Y7swSK4YsRG3moWB0Qsp9g1Y5BBausP1HF8K4UeVe2Xt7ZFJByKp6A==", + "dev": true, + "requires": { + "call-bind": "^1.0.7", + "es-errors": "^1.3.0", + "hasown": "^2.0.2", + "isarray": "^2.0.5", + "object.assign": "^4.1.5", + "reflect.ownkeys": "^1.1.4" + } + }, + "protobufjs": { + "version": "7.4.0", + "resolved": "https://registry.npmjs.org/protobufjs/-/protobufjs-7.4.0.tgz", + "integrity": "sha512-mRUWCc3KUU4w1jU8sGxICXH/gNS94DvI1gxqDvBzhj1JpcsimQkYiOJfwsPUykUI5ZaspFbSgmBLER8IrQ3tqw==", + "requires": { + "@protobufjs/aspromise": "^1.1.2", + "@protobufjs/base64": "^1.1.2", + "@protobufjs/codegen": "^2.0.4", + "@protobufjs/eventemitter": "^1.1.0", + "@protobufjs/fetch": "^1.1.0", + "@protobufjs/float": "^1.0.2", + "@protobufjs/inquire": "^1.1.0", + "@protobufjs/path": "^1.1.2", + "@protobufjs/pool": "^1.1.0", + "@protobufjs/utf8": "^1.1.0", + "@types/node": ">=13.7.0", + "long": "^5.0.0" + } + }, + "proxy-addr": { + "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==", + "dev": true, + "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==", + "dev": true + }, + "prr": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/prr/-/prr-1.0.1.tgz", + "integrity": "sha512-yPw4Sng1gWghHQWj0B3ZggWUm4qVbPwPFcRG8KyxiU7J2OHFSoEHKS+EZ3fv5l1t9CyCiop6l/ZYeWbrgoQejw==" + }, + "pseudomap": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/pseudomap/-/pseudomap-1.0.2.tgz", + "integrity": "sha512-b/YwNhb8lk1Zz2+bXXpS/LK9OisiZZ1SNsSLxN1x2OXVEhW2Ckr/7mWE5vrC1ZTiJlD9g19jWszTmJsB+oEpFQ==", + "dev": true + }, + "psl": { + "version": "1.10.0", + "resolved": "https://registry.npmjs.org/psl/-/psl-1.10.0.tgz", + "integrity": "sha512-KSKHEbjAnpUuAUserOq0FxGXCUrzC3WniuSJhvdbs102rL55266ZcHBqLWOsG30spQMlPdpy7icATiAQehg/iA==", + "requires": { + "punycode": "^2.3.1" + }, + "dependencies": { + "punycode": { + "version": "2.3.1", + "resolved": "https://registry.npmjs.org/punycode/-/punycode-2.3.1.tgz", + "integrity": "sha512-vYt7UD1U9Wg6138shLtLOvdAu+8DsC/ilFtEVHcH+wydcSpNE20AfSOduf6MkRFahL5FY7X1oU7nKVZFtfq8Fg==" + } + } + }, + "public-encrypt": { + "version": "4.0.3", + "resolved": "https://registry.npmjs.org/public-encrypt/-/public-encrypt-4.0.3.tgz", + "integrity": "sha512-zVpa8oKZSz5bTMTFClc1fQOnyyEzpl5ozpi1B5YcvBrdohMjH2rfsBtyXcuNuwjsDIXmBYlF2N5FlJYhR29t8Q==", + "requires": { + "bn.js": "^4.1.0", + "browserify-rsa": "^4.0.0", + "create-hash": "^1.1.0", + "parse-asn1": "^5.0.0", + "randombytes": "^2.0.1", + "safe-buffer": "^5.1.2" + }, + "dependencies": { + "bn.js": { + "version": "4.12.1", + "resolved": "https://registry.npmjs.org/bn.js/-/bn.js-4.12.1.tgz", + "integrity": "sha512-k8TVBiPkPJT9uHLdOKfFpqcfprwBFOAAXXozRubr7R7PfIuKvQlzcI4M0pALeqXN09vdaMbUdUj+pass+uULAg==" + } + } + }, + "pump": { + "version": "3.0.2", + "resolved": "https://registry.npmjs.org/pump/-/pump-3.0.2.tgz", + "integrity": "sha512-tUPXtzlGM8FE3P0ZL6DVs/3P58k9nk8/jZeQCurTJylQA8qFYzHFfhBJkuqyE0FifOsQ0uKWekiZ5g8wtr28cw==", + "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==", + "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==", + "requires": { + "end-of-stream": "^1.1.0", + "once": "^1.3.1" + } + } + } + }, + "punycode": { + "version": "1.4.1", + "resolved": "https://registry.npmjs.org/punycode/-/punycode-1.4.1.tgz", + "integrity": "sha512-jmYNElW7yvO7TV33CjSmvSiE2yco3bV2czu/OzDKdMNVZQWfxCblURLhf+47syQRBntjfLdd/H0egrzIG+oaFQ==" + }, + "q": { + "version": "1.5.1", + "resolved": "https://registry.npmjs.org/q/-/q-1.5.1.tgz", + "integrity": "sha512-kV/CThkXo6xyFEZUugw/+pIOywXcDbFYgSct5cT3gqlbkBE1SJdwy6UQoZvodiWF/ckQLZyDE/Bu1M6gVu5lVw==" + }, + "qs": { + "version": "6.5.3", + "resolved": "https://registry.npmjs.org/qs/-/qs-6.5.3.tgz", + "integrity": "sha512-qxXIEh4pCGfHICj1mAJQ2/2XVZkjCDTcEgfoSQxc/fYivUZxTkk7L3bDBJSoNrEzXI17oUO5Dp07ktqE5KzczA==" + }, + "query-string": { + "version": "5.1.1", + "resolved": "https://registry.npmjs.org/query-string/-/query-string-5.1.1.tgz", + "integrity": "sha512-gjWOsm2SoGlgLEdAGt7a6slVOk9mGiXmPFMqrEhLQ68rhQuBnpfs3+EmlvqKyxnCo9/PPlF+9MtY02S1aFg+Jw==", + "requires": { + "decode-uri-component": "^0.2.0", + "object-assign": "^4.1.0", + "strict-uri-encode": "^1.0.0" + } + }, + "querystring-es3": { + "version": "0.2.1", + "resolved": "https://registry.npmjs.org/querystring-es3/-/querystring-es3-0.2.1.tgz", + "integrity": "sha512-773xhDQnZBMFobEiztv8LIl70ch5MSF/jUQVlhwFyBILqq96anmoctVIYz+ZRp0qbCKATTn6ev02M3r7Ga5vqA==" + }, + "querystringify": { + "version": "2.2.0", + "resolved": "https://registry.npmjs.org/querystringify/-/querystringify-2.2.0.tgz", + "integrity": "sha512-FIqgj2EUvTa7R50u0rGsyTftzjYmv/a3hO345bZNrqabNqjtgiDMgmo4mkUjd+nzU5oF3dClKqFIPUKybUyqoQ==", + "dev": true + }, + "queue-microtask": { + "version": "1.2.3", + "resolved": "https://registry.npmjs.org/queue-microtask/-/queue-microtask-1.2.3.tgz", + "integrity": "sha512-NuaNSa6flKT5JaSYQzJok04JzTL1CA6aGhv5rfLW3PgqA+M2ChpZQnAC8h8i4ZFkBS8X5RqkDBHA7r4hej3K9A==" + }, + "quote-stream": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/quote-stream/-/quote-stream-1.0.2.tgz", + "integrity": "sha512-kKr2uQ2AokadPjvTyKJQad9xELbZwYzWlNfI3Uz2j/ib5u6H9lDP7fUUR//rMycd0gv4Z5P1qXMfXR8YpIxrjQ==", + "requires": { + "buffer-equal": "0.0.1", + "minimist": "^1.1.3", + "through2": "^2.0.0" + } + }, + "raf": { + "version": "3.4.1", + "resolved": "https://registry.npmjs.org/raf/-/raf-3.4.1.tgz", + "integrity": "sha512-Sq4CW4QhwOHE8ucn6J34MqtZCeWFP2aQSmrlroYgqAV1PjStIhJXxYuTgUIfkEk7zTLjmIjLmU5q+fbD1NnOJA==", + "dev": true, + "requires": { + "performance-now": "^2.1.0" + } + }, + "railroad-diagrams": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/railroad-diagrams/-/railroad-diagrams-1.0.0.tgz", + "integrity": "sha512-cz93DjNeLY0idrCNOH6PviZGRN9GJhsdm9hpn1YCS879fj4W+x5IFJhhkRZcwVgMmFF7R82UA/7Oh+R8lLZg6A==", + "dev": true + }, + "randexp": { + "version": "0.4.6", + "resolved": "https://registry.npmjs.org/randexp/-/randexp-0.4.6.tgz", + "integrity": "sha512-80WNmd9DA0tmZrw9qQa62GPPWfuXJknrmVmLcxvq4uZBdYqb1wYoKTmnlGUchvVWe0XiLupYkBoXVOxz3C8DYQ==", + "dev": true, + "requires": { + "discontinuous-range": "1.0.0", + "ret": "~0.1.10" + } + }, + "randomatic": { + "version": "3.1.1", + "resolved": "https://registry.npmjs.org/randomatic/-/randomatic-3.1.1.tgz", + "integrity": "sha512-TuDE5KxZ0J461RVjrJZCJc+J+zCkTb1MbH9AQUq68sMhOMcy9jLcb3BrZKgp9q9Ncltdg4QVqWrH02W2EFFVYw==", + "dev": true, + "requires": { + "is-number": "^4.0.0", + "kind-of": "^6.0.0", + "math-random": "^1.0.1" + }, + "dependencies": { + "is-number": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/is-number/-/is-number-4.0.0.tgz", + "integrity": "sha512-rSklcAIlf1OmFdyAqbnWTLVelsQ58uvZ66S/ZyawjWqIviTWCjg2PzVGw8WUA+nNuPTqb4wgA+NszrJ+08LlgQ==", + "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 + } + } + }, + "randombytes": { + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/randombytes/-/randombytes-2.1.0.tgz", + "integrity": "sha512-vYl3iOX+4CKUWuxGi9Ukhie6fsqXqS9FE2Zaic4tNFD2N2QQaXOMFbuKK4QmDHC0JO6B1Zp41J0LpT0oR68amQ==", + "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==", + "requires": { + "randombytes": "^2.0.5", + "safe-buffer": "^5.1.0" + } + }, + "range-parser": { + "version": "1.2.1", + "resolved": "https://registry.npmjs.org/range-parser/-/range-parser-1.2.1.tgz", + "integrity": "sha512-Hrgsx+orqoygnmhFbKaHE6c296J+HTAQXoxEF6gNupROmmGJRoyzfG3ccAveqCBrwr/2yxQ5BVd/GTl5agOwSg==", + "dev": true + }, + "raw-body": { + "version": "2.5.2", + "resolved": "https://registry.npmjs.org/raw-body/-/raw-body-2.5.2.tgz", + "integrity": "sha512-8zGqypfENjCIqGhgXToC8aB2r7YrBX+AQAfIPs/Mlk+BtPTztOvTS01NRW/3Eh60J+a48lt8qsCzirQ6loCVfA==", + "dev": true, + "requires": { + "bytes": "3.1.2", + "http-errors": "2.0.0", + "iconv-lite": "0.4.24", + "unpipe": "1.0.0" + }, + "dependencies": { + "iconv-lite": { + "version": "0.4.24", + "resolved": "https://registry.npmjs.org/iconv-lite/-/iconv-lite-0.4.24.tgz", + "integrity": "sha512-v3MXnZAcvnywkTUEZomIActle7RXXeedOR31wwl7VlyoXO4Qi9arvSenNQWne1TcRwhCL1HwLI21bEqdpj8/rA==", + "dev": true, + "requires": { + "safer-buffer": ">= 2.1.2 < 3" + } + } + } + }, + "raw-loader": { + "version": "0.5.1", + "resolved": "https://registry.npmjs.org/raw-loader/-/raw-loader-0.5.1.tgz", + "integrity": "sha512-sf7oGoLuaYAScB4VGr0tzetsYlS8EJH6qnTCfQ/WVEa89hALQ4RQfCKt5xCyPQKPDUbVUAIP1QsxAwfAjlDp7Q==" + }, + "react": { + "version": "16.14.0", + "resolved": "https://registry.npmjs.org/react/-/react-16.14.0.tgz", + "integrity": "sha512-0X2CImDkJGApiAlcf0ODKIneSwBPhqJawOa5wCtKbu7ZECrmS26NvtSILynQ66cgkT/RJ4LidJOc3bUESwmU8g==", + "requires": { + "loose-envify": "^1.1.0", + "object-assign": "^4.1.1", + "prop-types": "^15.6.2" + } + }, + "react-contextmenu": { + "version": "2.9.4", + "resolved": "https://registry.npmjs.org/react-contextmenu/-/react-contextmenu-2.9.4.tgz", + "integrity": "sha512-ma4YQw4J7JNv8L8mMVd1NHHbvH3+gaK/rQ6FC5Tft7OCUweKi7PHqHEE0fDF2009FLSGoV5JnjPnTTEyThqaJg==", + "requires": { + "classnames": "^2.2.5", + "object-assign": "^4.1.0" + } + }, + "react-dom": { + "version": "16.14.0", + "resolved": "https://registry.npmjs.org/react-dom/-/react-dom-16.14.0.tgz", + "integrity": "sha512-1gCeQXDLoIqMgqD3IO2Ah9bnf0w9kzhwN5q4FGnHZ67hBm9yePzB5JJAIQCc8x3pFnNlwFq4RidZggNAAkzWWw==", + "requires": { + "loose-envify": "^1.1.0", + "object-assign": "^4.1.1", + "prop-types": "^15.6.2", + "scheduler": "^0.19.1" + } + }, + "react-draggable": { + "version": "3.0.5", + "resolved": "https://registry.npmjs.org/react-draggable/-/react-draggable-3.0.5.tgz", + "integrity": "sha512-qo76q6+pafyGllbmfc+CgWfOkwY9v3UoJa3jp6xG2vdsRY8uJTN1kqNievLj0uVNjEqCvZ0OFiEBxlAJNj3OTg==", + "requires": { + "classnames": "^2.2.5", + "prop-types": "^15.6.0" + } + }, + "react-ga": { + "version": "2.5.3", + "resolved": "https://registry.npmjs.org/react-ga/-/react-ga-2.5.3.tgz", + "integrity": "sha512-25wvPv1PVLDLhw1gEYP33h0V2sJHahKMfUCAxhq8JPYmNQwx1fcjJAkJk+WmSqGN93lHLhExDkxy3SQizQnx3A==", + "requires": { + "prop-types": "^15.6.0", + "react": "^15.6.2 || ^16.0" + } + }, + "react-intl": { + "version": "2.9.0", + "resolved": "https://registry.npmjs.org/react-intl/-/react-intl-2.9.0.tgz", + "integrity": "sha512-27jnDlb/d2A7mSJwrbOBnUgD+rPep+abmoJE511Tf8BnoONIAUehy/U1zZCHGO17mnOwMWxqN4qC0nW11cD6rA==", + "requires": { + "hoist-non-react-statics": "^3.3.0", + "intl-format-cache": "^2.0.5", + "intl-messageformat": "^2.1.0", + "intl-relativeformat": "^2.1.0", + "invariant": "^2.1.1" + } + }, + "react-intl-redux": { + "version": "0.7.0", + "resolved": "https://registry.npmjs.org/react-intl-redux/-/react-intl-redux-0.7.0.tgz", + "integrity": "sha512-T7I7Yy1UkvD8rOB1B+SCG63LYJBtBcvGJ8FVJ8g8Yjhm4+rEhKzJuh1MaQBhwKZNlVcHlx4SlKdtkw8urdZdrA==", + "requires": { + "prop-types": "^15.6.0" + } + }, + "react-is": { + "version": "16.13.1", + "resolved": "https://registry.npmjs.org/react-is/-/react-is-16.13.1.tgz", + "integrity": "sha512-24e6ynE2H+OKt4kqsOvNd8kBpV65zoxbA4BVsEOB3ARVWQki/DHzaUoC5KuON/BiccDaCCTZBuOcfZs70kR8bQ==" + }, + "react-lifecycles-compat": { + "version": "3.0.4", + "resolved": "https://registry.npmjs.org/react-lifecycles-compat/-/react-lifecycles-compat-3.0.4.tgz", + "integrity": "sha512-fBASbA6LnOU9dOU2eW7aQ8xmYBSXUIWr+UmF9b1efZBazGNO+rcXT/icdKnYm2pTwcRylVUYwW7H1PHfLekVzA==" + }, + "react-modal": { + "version": "3.9.1", + "resolved": "https://registry.npmjs.org/react-modal/-/react-modal-3.9.1.tgz", + "integrity": "sha512-k+TUkhGWpIVHLsEyjNmlyOYL0Uz03fNZvlkhCImd1h+6fhNgTi6H6jexVXPVhD2LMMDzJyfugxMN+APN/em+eQ==", + "requires": { + "exenv": "^1.2.0", + "prop-types": "^15.5.10", + "react-lifecycles-compat": "^3.0.0", + "warning": "^4.0.3" + } + }, + "react-popover": { + "version": "0.5.10", + "resolved": "https://registry.npmjs.org/react-popover/-/react-popover-0.5.10.tgz", + "integrity": "sha512-5SYDTfncywSH00I70oHd4gFRUR8V0rJ4sRADSI/P6G0RVXp9jUgaWloJ0Bk+SFnjpLPuipTKuzQNNd2CTs5Hrw==", + "requires": { + "css-vendor": "^0.3.1", + "debug": "^2.6.8", + "lodash.throttle": "^3.0.3", + "prop-types": "^15.5.10" + }, + "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" + } + }, + "lodash.debounce": { + "version": "3.1.1", + "resolved": "https://registry.npmjs.org/lodash.debounce/-/lodash.debounce-3.1.1.tgz", + "integrity": "sha512-lcmJwMpdPAtChA4hfiwxTtgFeNAaow701wWUgVUqeD0XJF7vMXIN+bu/2FJSGxT0NUbZy9g9VFrlOFfPjl+0Ew==", + "requires": { + "lodash._getnative": "^3.0.0" + } + }, + "lodash.throttle": { + "version": "3.0.4", + "resolved": "https://registry.npmjs.org/lodash.throttle/-/lodash.throttle-3.0.4.tgz", + "integrity": "sha512-dRU/xiF4W8a521NYnQosG5drDqv4+hp3ND6yWNJUMnwO1E87Q/A7oc9M/g6pk29K9U3j/ZWhM3BAQZyr/P6TTQ==", + "requires": { + "lodash.debounce": "^3.0.0" + } + }, + "ms": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/ms/-/ms-2.0.0.tgz", + "integrity": "sha512-Tpp60P6IUJDTuOq/5Z8cdskzJujfwqfOTkrwIwj7IRISpnkJnT6SyJ4PCPnGMoFjC9ddhal5KVIYtAt97ix05A==" + } + } + }, + "react-redux": { + "version": "5.0.7", + "resolved": "https://registry.npmjs.org/react-redux/-/react-redux-5.0.7.tgz", + "integrity": "sha512-5VI8EV5hdgNgyjfmWzBbdrqUkrVRKlyTKk1sGH3jzM2M2Mhj/seQgPXaz6gVAj2lz/nz688AdTqMO18Lr24Zhg==", + "requires": { + "hoist-non-react-statics": "^2.5.0", + "invariant": "^2.0.0", + "lodash": "^4.17.5", + "lodash-es": "^4.17.5", + "loose-envify": "^1.1.0", + "prop-types": "^15.6.0" + }, + "dependencies": { + "hoist-non-react-statics": { + "version": "2.5.5", + "resolved": "https://registry.npmjs.org/hoist-non-react-statics/-/hoist-non-react-statics-2.5.5.tgz", + "integrity": "sha512-rqcy4pJo55FTTLWt+bU8ukscqHeE/e9KWvsOW2b/a3afxQZhwkQdT1rPPCJ0rYXdj4vNcasY8zHTH+jF/qStxw==" + } + } + }, + "react-responsive": { + "version": "4.1.0", + "resolved": "https://registry.npmjs.org/react-responsive/-/react-responsive-4.1.0.tgz", + "integrity": "sha512-ZuDraf0qsJlyiTwzeva+foHx83IP6SIhru9o7BvMwQ4ZHjRIL5WjdgVNNrKSRbmeWO9rEJoMpabei/5lJn8KaA==", + "requires": { + "hyphenate-style-name": "^1.0.0", + "matchmediaquery": "^0.2.1", + "prop-types": "^15.6.1" + } + }, + "react-string-replace": { + "version": "0.4.4", + "resolved": "https://registry.npmjs.org/react-string-replace/-/react-string-replace-0.4.4.tgz", + "integrity": "sha512-FAMkhxmDpCsGTwTZg7p/2v+/GTmxAp73so3fbSvlAcBBX36ujiGRNEaM/1u+jiYQrArhns+7eE92g2pi5E5FUA==", + "requires": { + "lodash": "^4.17.4" + } + }, + "react-style-proptype": { + "version": "3.2.2", + "resolved": "https://registry.npmjs.org/react-style-proptype/-/react-style-proptype-3.2.2.tgz", + "integrity": "sha512-ywYLSjNkxKHiZOqNlso9PZByNEY+FTyh3C+7uuziK0xFXu9xzdyfHwg4S9iyiRRoPCR4k2LqaBBsWVmSBwCWYQ==", + "requires": { + "prop-types": "^15.5.4" + } + }, + "react-tabs": { + "version": "2.3.0", + "resolved": "https://registry.npmjs.org/react-tabs/-/react-tabs-2.3.0.tgz", + "integrity": "sha512-pYaefgVy76/36AMEP+B8YuVVzDHa3C5UFZ3REU78zolk0qMxEhKvUFofvDCXyLZwf0RZjxIfiwok1BEb18nHyA==", + "requires": { + "classnames": "^2.2.0", + "prop-types": "^15.5.0" + } + }, + "react-test-renderer": { + "version": "16.2.0", + "resolved": "https://registry.npmjs.org/react-test-renderer/-/react-test-renderer-16.2.0.tgz", + "integrity": "sha512-Kd4gJFtpNziR9ElOE/C23LeflKLZPRpNQYWP3nQBY43SJ5a+xyEGSeMrm2zxNKXcnCbBS/q1UpD9gqd5Dv+rew==", + "dev": true, + "requires": { + "fbjs": "^0.8.16", + "object-assign": "^4.1.1", + "prop-types": "^15.6.0" + } + }, + "react-tooltip": { + "version": "3.8.0", + "resolved": "https://registry.npmjs.org/react-tooltip/-/react-tooltip-3.8.0.tgz", + "integrity": "sha512-Uj/vVd0uGuqwTkWeRjKS56T2iwOSvsSMbjqTK7AseHZEMND+WCXXUajaF7+ZsJWTZgnpeT9kBnaBFhchzeDTbw==", + "requires": { + "classnames": "^2.2.5", + "prop-types": "^15.6.0" + } + }, + "react-virtualized": { + "version": "9.20.1", + "resolved": "https://registry.npmjs.org/react-virtualized/-/react-virtualized-9.20.1.tgz", + "integrity": "sha512-xIWxBsyNAjceqD3hsE0nw5TcDVxKbIepsHhvS2XneHmNz0KlKxdLdGBmGZBM9ZesEmbZ5EO0Sw70TB1MeCmpbQ==", + "requires": { + "babel-runtime": "^6.26.0", + "classnames": "^2.2.3", + "dom-helpers": "^2.4.0 || ^3.0.0", + "loose-envify": "^1.3.0", + "prop-types": "^15.6.0", + "react-lifecycles-compat": "^3.0.4" + } + }, + "read-cache": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/read-cache/-/read-cache-1.0.0.tgz", + "integrity": "sha512-Owdv/Ft7IjOgm/i0xvNDZ1LrRANRfew4b2prF3OWMQLxLfu3bS8FVhCsrSCMK4lR56Y9ya+AThoTpDCTxCmpRA==", + "requires": { + "pify": "^2.3.0" + }, + "dependencies": { + "pify": { + "version": "2.3.0", + "resolved": "https://registry.npmjs.org/pify/-/pify-2.3.0.tgz", + "integrity": "sha512-udgsAY+fTnvv7kI7aaxbqwWNb0AHiB0qBO89PZKPkoTmGOgdbrHDKD+0B2X4uTfJ/FT1R09r9gTsjUjNJotuog==" + } + } + }, + "read-package-json": { + "version": "2.1.2", + "resolved": "https://registry.npmjs.org/read-package-json/-/read-package-json-2.1.2.tgz", + "integrity": "sha512-D1KmuLQr6ZSJS0tW8hf3WGpRlwszJOXZ3E8Yd/DNRaM5d+1wVRZdHlpGBLAuovjr28LbWvjpWkBHMxpRGGjzNA==", + "requires": { + "glob": "^7.1.1", + "json-parse-even-better-errors": "^2.3.0", + "normalize-package-data": "^2.0.0", + "npm-normalize-package-bin": "^1.0.0" + } + }, + "read-pkg": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/read-pkg/-/read-pkg-3.0.0.tgz", + "integrity": "sha512-BLq/cCO9two+lBgiTYNqD6GdtK8s4NpaWrl6/rCO9w0TUS8oJl7cmToOZfRYllKTISY6nt1U7jQ53brmKqY6BA==", + "dev": true, + "requires": { + "load-json-file": "^4.0.0", + "normalize-package-data": "^2.3.2", + "path-type": "^3.0.0" + }, + "dependencies": { + "path-type": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/path-type/-/path-type-3.0.0.tgz", + "integrity": "sha512-T2ZUsdZFHgA3u4e5PfPbjd7HDDpxPnQb5jN0SrDsjNSuVXHJqtwTnWqG0B1jZrgmJ/7lj1EmVIByWt1gxGkWvg==", + "dev": true, + "requires": { + "pify": "^3.0.0" + } + }, + "pify": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/pify/-/pify-3.0.0.tgz", + "integrity": "sha512-C3FsVNH1udSEX48gGX1xfvwTWfsYWj5U+8/uK15BGzIGrKoUpghX8hWZwa/OFnakBiiVNmBvemTJR5mcy7iPcg==", + "dev": true + } + } + }, + "read-pkg-up": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/read-pkg-up/-/read-pkg-up-3.0.0.tgz", + "integrity": "sha512-YFzFrVvpC6frF1sz8psoHDBGF7fLPc+llq/8NB43oagqWkx8ar5zYtsTORtOjw9W2RHLpWP+zTWwBvf1bCmcSw==", + "dev": true, + "requires": { + "find-up": "^2.0.0", + "read-pkg": "^3.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": { + "isarray": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/isarray/-/isarray-1.0.0.tgz", + "integrity": "sha512-VLghIWNM6ELQzo7zwmcg0NmTVyWKYjvIeM83yjp0wRDTmUnrM678fQbcKBo6n2CJEF0szoG//ytg+TKla89ALQ==" + }, + "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==" + }, + "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" + } + } + } + }, + "readdirp": { + "version": "2.2.1", + "resolved": "https://registry.npmjs.org/readdirp/-/readdirp-2.2.1.tgz", + "integrity": "sha512-1JU/8q+VgFZyxwrJ+SVIOsh+KywWGpds3NTqikiKpDMZWScmAYyKIgqkO+ARvNWJfXeXR1zxz7aHF4u4CyH6vQ==", + "devOptional": true, + "requires": { + "graceful-fs": "^4.1.11", + "micromatch": "^3.1.10", + "readable-stream": "^2.0.2" + } + }, + "readline2": { + "version": "0.1.1", + "resolved": "https://registry.npmjs.org/readline2/-/readline2-0.1.1.tgz", + "integrity": "sha512-qs8GGG+hLGMaDOGjd+mDglDoYcHDkjIY7z5RU0/ApsGT0qypyrWskNeemUqD+UxIXiZoMYT5aLwGp4ehoyZhIg==", + "requires": { + "mute-stream": "0.0.4", + "strip-ansi": "^2.0.1" + }, + "dependencies": { + "ansi-regex": { + "version": "1.1.1", + "resolved": "https://registry.npmjs.org/ansi-regex/-/ansi-regex-1.1.1.tgz", + "integrity": "sha512-q5i8bFLg2wDfsuR56c1NzlJFPzVD+9mxhDrhqOGigEFa87OZHlF+9dWeGWzVTP/0ECiA/JUGzfzRr2t3eYORRw==" + }, + "mute-stream": { + "version": "0.0.4", + "resolved": "https://registry.npmjs.org/mute-stream/-/mute-stream-0.0.4.tgz", + "integrity": "sha512-amvrY4m/7oZamehMoFi1tbwU/kXbVvRTGM2S7F+PZi3n51Jx+9AcSQ3EQsag3tR+hS2higfgOP/Kl8kri/X52A==" + }, + "strip-ansi": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/strip-ansi/-/strip-ansi-2.0.1.tgz", + "integrity": "sha512-2h8q2CP3EeOhDJ+jd932PRMpa3/pOJFGoF22J1U/DNbEK2gSW2DqeF46VjCXsSQXhC+k/l8/gaaRBQKL6hUPfQ==", + "requires": { + "ansi-regex": "^1.0.0" + } + } + } + }, + "redux": { + "version": "3.7.2", + "resolved": "https://registry.npmjs.org/redux/-/redux-3.7.2.tgz", + "integrity": "sha512-pNqnf9q1hI5HHZRBkj3bAngGZW/JMCmexDlOxw4XagXY2o1327nHH54LoTjiPJ0gizoqPDRqWyX/00g0hD6w+A==", + "requires": { + "lodash": "^4.2.1", + "lodash-es": "^4.2.1", + "loose-envify": "^1.1.0", + "symbol-observable": "^1.0.3" + } + }, + "redux-mock-store": { + "version": "1.5.3", + "resolved": "https://registry.npmjs.org/redux-mock-store/-/redux-mock-store-1.5.3.tgz", + "integrity": "sha512-ryhkkb/4D4CUGpAV2ln1GOY/uh51aczjcRz9k2L2bPx/Xja3c5pSGJJPyR25GNVRXtKIExScdAgFdiXp68GmJA==", + "dev": true, + "requires": { + "lodash.isplainobject": "^4.0.6" + } + }, + "redux-throttle": { + "version": "0.1.1", + "resolved": "https://registry.npmjs.org/redux-throttle/-/redux-throttle-0.1.1.tgz", + "integrity": "sha512-24stzg4+1xtlO8ubP4HKudpBdPsG4qvbn0Z9hv8tz6fM6ZcQJe2dKEwYIqTl8+yPMGgjNKHp1lzTwRqjWCxj/Q==", + "requires": { + "lodash.throttle": "4.0.1" + } + }, + "reflect.ownkeys": { + "version": "1.1.4", + "resolved": "https://registry.npmjs.org/reflect.ownkeys/-/reflect.ownkeys-1.1.4.tgz", + "integrity": "sha512-iUNmtLgzudssL+qnTUosCmnq3eczlrVd1wXrgx/GhiI/8FvwrTYWtCJ9PNvWIRX+4ftupj2WUfB5mu5s9t6LnA==", + "dev": true, + "requires": { + "call-bind": "^1.0.2", + "define-properties": "^1.2.0", + "es-abstract": "^1.22.1", + "es-set-tostringtag": "^2.0.1", + "globalthis": "^1.0.3" + } + }, + "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.2.0", + "resolved": "https://registry.npmjs.org/regenerate-unicode-properties/-/regenerate-unicode-properties-10.2.0.tgz", + "integrity": "sha512-DqHn3DwbmmPVzeKj9woBadqmXxLvQoQIwu7nopMc72ztvxVmVk2SBhSnx67zuye5TP+lJsb/TBQsjLKhnDf3MA==", + "dev": true, + "requires": { + "regenerate": "^1.4.2" + } + }, + "regenerator-runtime": { + "version": "0.11.1", + "resolved": "https://registry.npmjs.org/regenerator-runtime/-/regenerator-runtime-0.11.1.tgz", + "integrity": "sha512-MguG95oij0fC3QV3URf4V2SDYGJhJnJGqvIIgdECeODCT98wSWDAJ94SSuVpYQUoTcGUIL6L4yNB7j1DFFHSBg==" + }, + "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-cache": { + "version": "0.4.4", + "resolved": "https://registry.npmjs.org/regex-cache/-/regex-cache-0.4.4.tgz", + "integrity": "sha512-nVIZwtCjkC9YgvWkpM55B5rBhBYRZhAaJbgcFYXXsHnbZ9UZI9nnVWYZpBlCqv9ho2eZryPnWrZGsOdPwVWXWQ==", + "dev": true, + "requires": { + "is-equal-shallow": "^0.1.3" + } + }, + "regex-not": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/regex-not/-/regex-not-1.0.2.tgz", + "integrity": "sha512-J6SDjUgDxQj5NusnOtdFxDwN/+HWykR8GELwctJ7mdqhcyy1xEc4SRFHUXvxTp661YaVKAjfRLZ9cCqS6tn32A==", + "requires": { + "extend-shallow": "^3.0.2", + "safe-regex": "^1.1.0" + }, + "dependencies": { + "extend-shallow": { + "version": "3.0.2", + "resolved": "https://registry.npmjs.org/extend-shallow/-/extend-shallow-3.0.2.tgz", + "integrity": "sha512-BwY5b5Ql4+qZoefgMj2NUmx+tehVTH/Kf4k1ZEtOHNFcm2wSxMRo992l6X3TIgni2eZVTZ85xMOjF31fwZAj6Q==", + "requires": { + "assign-symbols": "^1.0.0", + "is-extendable": "^1.0.1" + } + }, + "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==", + "requires": { + "is-plain-object": "^2.0.4" + } + } + } + }, + "regexp.prototype.flags": { + "version": "1.5.3", + "resolved": "https://registry.npmjs.org/regexp.prototype.flags/-/regexp.prototype.flags-1.5.3.tgz", + "integrity": "sha512-vqlC04+RQoFalODCbCumG2xIOvapzVMHwsyIGM/SIE8fRhFFsXeH8/QQ+s0T0kDAhKc4k30s73/0ydkHQz6HlQ==", + "dev": true, + "requires": { + "call-bind": "^1.0.7", + "define-properties": "^1.2.1", + "es-errors": "^1.3.0", + "set-function-name": "^2.0.2" + } + }, + "regexpp": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/regexpp/-/regexpp-2.0.1.tgz", + "integrity": "sha512-lv0M6+TkDVniA3aD1Eg0DVpfU/booSu7Eev3TDO/mZKHBfVjgCGTV4t4buppESEYDtkArYFOxTJWv6S5C+iaNw==", + "dev": true + }, + "regexpu-core": { + "version": "6.1.1", + "resolved": "https://registry.npmjs.org/regexpu-core/-/regexpu-core-6.1.1.tgz", + "integrity": "sha512-k67Nb9jvwJcJmVpw0jPttR1/zVfnKf8Km0IPatrU/zJ5XeG3+Slx0xLXs9HByJSzXzrlz5EDvN6yLNMDc2qdnw==", + "dev": true, + "requires": { + "regenerate": "^1.4.2", + "regenerate-unicode-properties": "^10.2.0", + "regjsgen": "^0.8.0", + "regjsparser": "^0.11.0", + "unicode-match-property-ecmascript": "^2.0.0", + "unicode-match-property-value-ecmascript": "^2.1.0" + } + }, + "regjsgen": { + "version": "0.8.0", + "resolved": "https://registry.npmjs.org/regjsgen/-/regjsgen-0.8.0.tgz", + "integrity": "sha512-RvwtGe3d7LvWiDQXeQw8p5asZUmfU1G/l6WbUXeHta7Y2PEIvBTwH6E2EfmYUK8pxcxEdEmaomqyp0vZZ7C+3Q==", + "dev": true + }, + "regjsparser": { + "version": "0.11.2", + "resolved": "https://registry.npmjs.org/regjsparser/-/regjsparser-0.11.2.tgz", + "integrity": "sha512-3OGZZ4HoLJkkAZx/48mTXJNlmqTGOzc0o9OWQPuWpkOlXXPbyN6OafCcoXUnBqE2D3f/T5L+pWc1kdEmnfnRsA==", + "dev": true, + "requires": { + "jsesc": "~3.0.2" + } + }, + "relateurl": { + "version": "0.2.7", + "resolved": "https://registry.npmjs.org/relateurl/-/relateurl-0.2.7.tgz", + "integrity": "sha512-G08Dxvm4iDN3MLM0EsP62EDV9IuhXPR6blNz6Utcp7zyV3tr4HVNINt6MpaRWbxoOHT3Q7YN2P+jaHX8vUbgog==", + "dev": true + }, + "remove-trailing-separator": { + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/remove-trailing-separator/-/remove-trailing-separator-1.1.0.tgz", + "integrity": "sha512-/hS+Y0u3aOfIETiaiirUFwDBDzmXPvO+jAfKTitUngIPzdKc6Z0LoFjM/CK5PL4C+eKwHohlHAb6H0VFfmmUsw==", + "devOptional": true + }, + "renderkid": { + "version": "2.0.7", + "resolved": "https://registry.npmjs.org/renderkid/-/renderkid-2.0.7.tgz", + "integrity": "sha512-oCcFyxaMrKsKcTY59qnCAtmDVSLfPbrv6A3tVbPdFMMrv5jaK10V6m40cKsoPNhAqN6rmHW9sswW4o3ruSrwUQ==", + "dev": 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, + "requires": { + "boolbase": "^1.0.0", + "css-what": "^6.0.1", + "domhandler": "^4.3.1", + "domutils": "^2.8.0", + "nth-check": "^2.0.1" + } + }, + "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, + "requires": { + "domelementtype": "^2.0.1", + "domhandler": "^4.2.0", + "entities": "^2.0.0" + } + }, + "domhandler": { + "version": "4.3.1", + "resolved": "https://registry.npmjs.org/domhandler/-/domhandler-4.3.1.tgz", + "integrity": "sha512-GrwoxYN+uWlzO8uhUXRl0P+kHE4GtVPfYzVLcUxPL7KNdHKj66vvlhiweIHqYYXWlw+T8iLMp42Lm67ghw4WMQ==", + "dev": true, + "requires": { + "domelementtype": "^2.2.0" + } + }, + "domutils": { + "version": "2.8.0", + "resolved": "https://registry.npmjs.org/domutils/-/domutils-2.8.0.tgz", + "integrity": "sha512-w96Cjofp72M5IIhpjgobBimYEfoPjx1Vx0BSX9P30WBdZW2WIKU0T1Bd0kz2eNZ9ikjKgHbEyKx8BB6H1L3h3A==", + "dev": true, + "requires": { + "dom-serializer": "^1.0.1", + "domelementtype": "^2.2.0", + "domhandler": "^4.2.0" + } + }, + "entities": { + "version": "2.2.0", + "resolved": "https://registry.npmjs.org/entities/-/entities-2.2.0.tgz", + "integrity": "sha512-p92if5Nz619I0w+akJrLZH0MX0Pb5DX39XOwQTtXSdQQOaYH03S1uIQp4mhOZtAXrxq4ViO67YTiLBo2638o9A==", + "dev": true + }, + "htmlparser2": { + "version": "6.1.0", + "resolved": "https://registry.npmjs.org/htmlparser2/-/htmlparser2-6.1.0.tgz", + "integrity": "sha512-gyyPk6rgonLFEDGoeRgQNaEUvdJ4ktTmmUh/h2t7s+M8oPpIPxgNACWa+6ESR57kXstwqPiCut0V8NRpcwgU7A==", + "dev": true, + "requires": { + "domelementtype": "^2.0.1", + "domhandler": "^4.0.0", + "domutils": "^2.5.2", + "entities": "^2.0.0" + } + } + } + }, + "repeat-element": { + "version": "1.1.4", + "resolved": "https://registry.npmjs.org/repeat-element/-/repeat-element-1.1.4.tgz", + "integrity": "sha512-LFiNfRcSu7KK3evMyYOuCzv3L10TW7yC1G2/+StMjK8Y6Vqd2MG7r/Qjw4ghtuCOjFvlnms/iMmLqpvW/ES/WQ==" + }, + "repeat-string": { + "version": "1.6.1", + "resolved": "https://registry.npmjs.org/repeat-string/-/repeat-string-1.6.1.tgz", + "integrity": "sha512-PV0dzCYDNfRi1jCDbJzpW7jNNDRuCOG/jI5ctQcGKt/clZD+YcPS3yIlWuTJMmESC8aevCFmWJy5wjAFgNqN6w==" + }, + "repeating": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/repeating/-/repeating-2.0.1.tgz", + "integrity": "sha512-ZqtSMuVybkISo2OWvqvm7iHSWngvdaW3IpsT9/uP8v4gMi591LY6h35wdOfvQdWCKFWZWm2Y1Opp4kV7vQKT6A==", + "dev": true, + "requires": { + "is-finite": "^1.0.0" + } + }, + "request": { + "version": "2.88.2", + "resolved": "https://registry.npmjs.org/request/-/request-2.88.2.tgz", + "integrity": "sha512-MsvtOrfG9ZcrOwAW+Qi+F6HbD0CWXEh9ou77uOb7FM2WPhwT7smM833PzanhJLsgXjN89Ir6V2PczXNnMpwKhw==", + "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": { + "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==", + "requires": { + "asynckit": "^0.4.0", + "combined-stream": "^1.0.6", + "mime-types": "^2.1.12" + } + } + } + }, + "require-directory": { + "version": "2.1.1", + "resolved": "https://registry.npmjs.org/require-directory/-/require-directory-2.1.1.tgz", + "integrity": "sha512-fGxEI7+wsG9xrvdjsrlmL22OMTTiHRwAMroiEeMgq8gzoLC/PQr7RsRDSTLUg/bZAZtF+TVIkHc6/4RIKrui+Q==", + "dev": true + }, + "require-main-filename": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/require-main-filename/-/require-main-filename-1.0.1.tgz", + "integrity": "sha512-IqSUtOVP4ksd1C/ej5zeEh/BIP2ajqpn8c5x+q99gvcIG/Qf0cud5raVnE/Dwd0ua9TXYDoDc0RE5hBSdz22Ug==", + "dev": true + }, + "requires-port": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/requires-port/-/requires-port-1.0.0.tgz", + "integrity": "sha512-KigOCHcocU3XODJxsu8i/j8T9tzT4adHiecwORRQ0ZZFcp7ahwXuRU1m+yuO90C5ZUyGeGfocHDI14M3L3yDAQ==", + "dev": true + }, + "resolve": { + "version": "1.22.8", + "resolved": "https://registry.npmjs.org/resolve/-/resolve-1.22.8.tgz", + "integrity": "sha512-oKWePCxqpd6FlLvGV1VU0x7bkPmmCNolxzjMf4NczoDnQcIWrAF+cPtZn5i6n+RfD2d9i0tzpKnG6Yk168yIyw==", + "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": "sha512-ccu8zQTrzVr954472aUVPLEcB3YpKSYR3cg/3lo1okzobPBM+1INXBbBZlDbnI/hbEocnf8j0QVo43hQKrbchg==", + "dev": true, + "requires": { + "resolve-from": "^3.0.0" + }, + "dependencies": { + "resolve-from": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/resolve-from/-/resolve-from-3.0.0.tgz", + "integrity": "sha512-GnlH6vxLymXJNMBo7XP1fJIzBFbdYt49CuTwmB/6N53t+kMPRMFKz783LlQ4tv28XoQfMWinAJX6WCGf2IlaIw==", + "dev": true + } + } + }, + "resolve-dir": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/resolve-dir/-/resolve-dir-1.0.1.tgz", + "integrity": "sha512-R7uiTjECzvOsWSfdM0QKFNBVFcK27aHOUwdvK53BcW8zqnGdYp0Fbj82cy54+2A4P2tFM22J5kRfe1R+lM/1yg==", + "dev": true, + "requires": { + "expand-tilde": "^2.0.0", + "global-modules": "^1.0.0" + }, + "dependencies": { + "global-modules": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/global-modules/-/global-modules-1.0.0.tgz", + "integrity": "sha512-sKzpEkf11GpOFuw0Zzjzmt4B4UZwjOcG757PPvrfhxcLFbq0wpsgpOqxpxtxFiCG4DtG93M6XRVbF2oGdev7bg==", + "dev": true, + "requires": { + "global-prefix": "^1.0.1", + "is-windows": "^1.0.1", + "resolve-dir": "^1.0.0" + } + }, + "global-prefix": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/global-prefix/-/global-prefix-1.0.2.tgz", + "integrity": "sha512-5lsx1NUDHtSjfg0eHlmYvZKv8/nVqX4ckFbM+FrGcQ+04KWcWFo9P5MxPZYSzUvyzmdTbI7Eix8Q4IbELDqzKg==", + "dev": true, + "requires": { + "expand-tilde": "^2.0.2", + "homedir-polyfill": "^1.0.1", + "ini": "^1.3.4", + "is-windows": "^1.0.1", + "which": "^1.2.14" + } + } + } + }, + "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 + }, + "resolve-url": { + "version": "0.2.1", + "resolved": "https://registry.npmjs.org/resolve-url/-/resolve-url-0.2.1.tgz", + "integrity": "sha512-ZuF55hVUQaaczgOIwqWzkEcEidmlD/xl44x1UZnhOXcYuFN2S6+rcxpG+C1N3So0wvNI3DmJICUFfu2SxhBmvg==" + }, + "responselike": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/responselike/-/responselike-1.0.2.tgz", + "integrity": "sha512-/Fpe5guzJk1gPqdJLJR5u7eG/gNY4nImjbRDaVWVMRhne55TCmj2i9Q+54PBRfatRC8v/rIiv9BN0pMd9OV5EQ==", + "requires": { + "lowercase-keys": "^1.0.0" + } + }, + "restore-cursor": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/restore-cursor/-/restore-cursor-2.0.0.tgz", + "integrity": "sha512-6IzJLuGi4+R14vwagDHX+JrXmPVtPpn4mffDJ1UdR7/Edm87fl6yi8mMBIVvFtJaNTUvjughmW4hwLhRG7gC1Q==", + "dev": true, + "requires": { + "onetime": "^2.0.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==" + }, + "retry": { + "version": "0.12.0", + "resolved": "https://registry.npmjs.org/retry/-/retry-0.12.0.tgz", + "integrity": "sha512-9LkiTwjUh6rT555DtE9rTX+BKByPfrMzEAtnlEtdEwr3Nkffwiihqe2bWADg+OQRjt9gl6ICdmB/ZFDCGAtSow==", + "dev": true + }, + "reusify": { + "version": "1.0.4", + "resolved": "https://registry.npmjs.org/reusify/-/reusify-1.0.4.tgz", + "integrity": "sha512-U9nH88a3fc/ekCF1l0/UP1IosiuIjyTh7hBvXVMHYgVcfGvt897Xguj2UOLDeI5BG2m7/uwyaLVT6fbtCwTyzw==" + }, + "rimraf": { + "version": "2.7.1", + "resolved": "https://registry.npmjs.org/rimraf/-/rimraf-2.7.1.tgz", + "integrity": "sha512-uWjbaKIK3T1OSVptzX7Nl6PvQ3qAGtKEtVRjRuazjfL3Bx5eI409VZSqgND+4UNnmzLVdPj9FqFJNPqBZFve4w==", + "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==", + "requires": { + "hash-base": "^3.0.0", + "inherits": "^2.0.1" + } + }, + "rst-selector-parser": { + "version": "2.2.3", + "resolved": "https://registry.npmjs.org/rst-selector-parser/-/rst-selector-parser-2.2.3.tgz", + "integrity": "sha512-nDG1rZeP6oFTLN6yNDV/uiAvs1+FS/KlrEwh7+y7dpuApDBy6bI2HTBcc0/V8lv9OTqfyD34eF7au2pm8aBbhA==", + "dev": true, + "requires": { + "lodash.flattendeep": "^4.4.0", + "nearley": "^2.7.10" + } + }, + "rsvp": { + "version": "3.6.2", + "resolved": "https://registry.npmjs.org/rsvp/-/rsvp-3.6.2.tgz", + "integrity": "sha512-OfWGQTb9vnwRjwtA2QwpG2ICclHC3pgXZO5xt8H2EfgDquO0qVdSb5T88L4qJVAEugbS56pAuV4XZM58UX8ulw==", + "dev": true + }, + "run-async": { + "version": "2.4.1", + "resolved": "https://registry.npmjs.org/run-async/-/run-async-2.4.1.tgz", + "integrity": "sha512-tvVnVv01b8c1RrA6Ep7JkStj85Guv/YrMcwqYQnwjsAS2cTmmPGBBjAjpCW7RrSodNSoE2/qg9O4bceNvUuDgQ==", + "dev": true + }, + "run-parallel": { + "version": "1.2.0", + "resolved": "https://registry.npmjs.org/run-parallel/-/run-parallel-1.2.0.tgz", + "integrity": "sha512-5l4VyZR86LZ/lDxZTR6jqL8AFE2S0IFLMP26AbjsLVADxHdhB/c0GUsH+y39UfCi3dzz8OlQuPmnaJOMoDHQBA==", + "requires": { + "queue-microtask": "^1.2.2" + } + }, + "run-queue": { + "version": "1.0.3", + "resolved": "https://registry.npmjs.org/run-queue/-/run-queue-1.0.3.tgz", + "integrity": "sha512-ntymy489o0/QQplUDnpYAYUsO50K9SBrIVaKCWDOJzYJts0f9WH9RFJkyagebkw5+y1oi00R7ynNW/d12GBumg==", + "requires": { + "aproba": "^1.1.1" + } + }, + "rx": { + "version": "2.5.3", + "resolved": "https://registry.npmjs.org/rx/-/rx-2.5.3.tgz", + "integrity": "sha512-u5qvfulb7NXoY/+OE28920WEgFi6aiDjf5iF9rA2f9tBXejLgTLd0WxkclvIQWjFFHfNJlb7pSTsrjgiDh+Uug==" + }, + "rxjs": { + "version": "6.6.7", + "resolved": "https://registry.npmjs.org/rxjs/-/rxjs-6.6.7.tgz", + "integrity": "sha512-hTdwr+7yYNIT5n4AMYp85KA6yw2Va0FLa3Rguvbpa4W3I5xynaBZo41cM3XM+4Q6fRMj3sBYIR1VAmZMXYJvRQ==", + "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 + } + } + }, + "safe-array-concat": { + "version": "1.1.2", + "resolved": "https://registry.npmjs.org/safe-array-concat/-/safe-array-concat-1.1.2.tgz", + "integrity": "sha512-vj6RsCsWBCf19jIeHEfkRMw8DPiBb+DMXklQ/1SGDHOMlHdPUkZXFQ2YdplS23zESTijAcurb1aSgJA3AgMu1Q==", + "dev": true, + "requires": { + "call-bind": "^1.0.7", + "get-intrinsic": "^1.2.4", + "has-symbols": "^1.0.3", + "isarray": "^2.0.5" + } + }, + "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==" + }, + "safe-regex": { + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/safe-regex/-/safe-regex-1.1.0.tgz", + "integrity": "sha512-aJXcif4xnaNUzvUuC5gcb46oTS7zvg4jpMTnuqtrEPlR3vFr4pxtdTwaF1Qs3Enjn9HK+ZlwQui+a7z0SywIzg==", + "requires": { + "ret": "~0.1.10" + } + }, + "safe-regex-test": { + "version": "1.0.3", + "resolved": "https://registry.npmjs.org/safe-regex-test/-/safe-regex-test-1.0.3.tgz", + "integrity": "sha512-CdASjNJPvRa7roO6Ra/gLYBTzYzzPyyBXxIMdGW3USQLyjWEls2RgW5UBTXaQVp+OrpeCK3bLem8smtmheoRuw==", + "dev": true, + "requires": { + "call-bind": "^1.0.6", + "es-errors": "^1.3.0", + "is-regex": "^1.1.4" + } + }, + "safer-buffer": { + "version": "2.1.2", + "resolved": "https://registry.npmjs.org/safer-buffer/-/safer-buffer-2.1.2.tgz", + "integrity": "sha512-YZo3K82SD7Riyi0E1EQPojLz7kpepnSQI9IyPbHHg1XXXevb5dJI7tpyN2ADxGcQbHG7vcyRHk0cbwqcQriUtg==" + }, + "sane": { + "version": "2.5.2", + "resolved": "https://registry.npmjs.org/sane/-/sane-2.5.2.tgz", + "integrity": "sha512-OuZwD1QJ2R9Dbnhd7Ur8zzD8l+oADp9npyxK63Q9nZ4AjhB2QwDQcQlD8iuUsGm5AZZqtEuCaJvK1rxGRxyQ1Q==", + "dev": true, + "requires": { + "anymatch": "^2.0.0", + "capture-exit": "^1.2.0", + "exec-sh": "^0.2.0", + "fb-watchman": "^2.0.0", + "fsevents": "^1.2.3", + "micromatch": "^3.1.4", + "minimist": "^1.1.1", + "walker": "~1.0.5", + "watch": "~0.18.0" + }, + "dependencies": { + "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" + } + } + } + }, + "sax": { + "version": "1.4.1", + "resolved": "https://registry.npmjs.org/sax/-/sax-1.4.1.tgz", + "integrity": "sha512-+aWOz7yVScEGoKNd4PA10LZ8sk0A/z5+nXQG5giUO5rprX9jgYsTdov9qCchZiPIZezbZH+jRut8nPodFAX4Jg==", + "dev": true + }, + "scheduler": { + "version": "0.19.1", + "resolved": "https://registry.npmjs.org/scheduler/-/scheduler-0.19.1.tgz", + "integrity": "sha512-n/zwRWRYSUj0/3g/otKDRPMh6qv2SYMWNq85IEa8iZyAv8od9zDYpGSnpBEjNgcMNq6Scbu5KfIPxNF72R/2EA==", + "requires": { + "loose-envify": "^1.1.0", + "object-assign": "^4.1.1" + } + }, + "schema-utils": { + "version": "2.7.1", + "resolved": "https://registry.npmjs.org/schema-utils/-/schema-utils-2.7.1.tgz", + "integrity": "sha512-SHiNtMOUGWBQJwzISiVYKu82GiV4QYGePp3odlY1tuKO7gPtphAT5R/py0fA6xtbgLL/RvtJZnU9b8s0F1q0Xg==", + "requires": { + "@types/json-schema": "^7.0.5", + "ajv": "^6.12.4", + "ajv-keywords": "^3.5.2" + } + }, + "scratch-audio": { + "version": "git+ssh://git@github.com/PenguinMod/PenguinMod-Audio.git#0a3f4d98866e5d92fd459d94e5d5c8490de0e66f", + "from": "scratch-audio@github:PenguinMod/PenguinMod-Audio#develop", + "requires": { + "audio-context": "1.0.1", + "minilog": "^3.0.1", + "startaudiocontext": "1.2.1" + } + }, + "scratch-blocks": { + "version": "git+ssh://git@github.com/PenguinMod/PenguinMod-Blocks.git#71a154c4f297e477b92c37de36a0e8f20a105b52", + "from": "scratch-blocks@github:PenguinMod/PenguinMod-Blocks#develop-builds" + }, + "scratch-paint": { + "version": "git+ssh://git@github.com/PenguinMod/PenguinMod-Paint.git#c111ab372e9ce1ac41dd75f237f9b68107009743", + "from": "scratch-paint@github:PenguinMod/PenguinMod-Paint#develop", + "requires": { + "@turbowarp/paper": "^0.12.202407262155", + "classnames": "2.2.5", + "keymirror": "0.1.1", + "lodash.bindall": "4.4.0", + "lodash.omit": "4.5.0", + "minilog": "3.1.0", + "parse-color": "1.0.0", + "prop-types": "^15.5.10" + }, + "dependencies": { + "classnames": { + "version": "2.2.5", + "resolved": "https://registry.npmjs.org/classnames/-/classnames-2.2.5.tgz", + "integrity": "sha512-DTt3GhOUDKhh4ONwIJW4lmhyotQmV2LjNlGK/J2hkwUcqcbKkCLAdJPtxQnxnlc7SR3f1CEXCyMmc7WLUsWbNA==" + } + } + }, + "scratch-parser": { + "version": "git+ssh://git@github.com/PenguinMod/PenguinMod-Parser.git#ee95974b0810ed84a80b3db6163b83098352d721", + "from": "scratch-parser@git+https://github.com/PenguinMod/PenguinMod-Parser.git#master", + "requires": { + "@turbowarp/json": "^0.1.1", + "ajv": "6.3.0", + "jszip": "3.1.5", + "pify": "4.0.1" + }, + "dependencies": { + "ajv": { + "version": "6.3.0", + "resolved": "https://registry.npmjs.org/ajv/-/ajv-6.3.0.tgz", + "integrity": "sha512-6TQywaGYtRub2fqHkSXfVANlhfja2nbF33wCCHnt3aQstOrtd9jsQGiRUTIOlkEqcxpzRd2akfnqvBBPmLxs8g==", + "requires": { + "fast-deep-equal": "^1.0.0", + "fast-json-stable-stringify": "^2.0.0", + "json-schema-traverse": "^0.3.0" + } + }, + "core-js": { + "version": "2.3.0", + "resolved": "https://registry.npmjs.org/core-js/-/core-js-2.3.0.tgz", + "integrity": "sha512-N41UFUZNqoTSGUSyL7kiStAkH31Hxq197A4Gp9MxTZfAd52pXod7VM7kWiRP0J0YpQDeaE4SLsb+2OGgtgvUEw==" + }, + "fast-deep-equal": { + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/fast-deep-equal/-/fast-deep-equal-1.1.0.tgz", + "integrity": "sha512-fueX787WZKCV0Is4/T2cyAdM4+x1S3MXXOAhavE1ys/W42SHAPacLTQhucja22QBYrfGw50M2sRiXPtTGv9Ymw==" + }, + "isarray": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/isarray/-/isarray-1.0.0.tgz", + "integrity": "sha512-VLghIWNM6ELQzo7zwmcg0NmTVyWKYjvIeM83yjp0wRDTmUnrM678fQbcKBo6n2CJEF0szoG//ytg+TKla89ALQ==" + }, + "json-schema-traverse": { + "version": "0.3.1", + "resolved": "https://registry.npmjs.org/json-schema-traverse/-/json-schema-traverse-0.3.1.tgz", + "integrity": "sha512-4JD/Ivzg7PoW8NzdrBSr3UFwC9mHgvI7Z6z3QGBsSHgKaRTUDmyZAAKJo2UbG1kUVfS9WS8bi36N49U1xw43DA==" + }, + "jszip": { + "version": "3.1.5", + "resolved": "https://registry.npmjs.org/jszip/-/jszip-3.1.5.tgz", + "integrity": "sha512-5W8NUaFRFRqTOL7ZDDrx5qWHJyBXy6velVudIzQUSoqAAYqzSh2Z7/m0Rf1QbmQJccegD0r+YZxBjzqoBiEeJQ==", + "requires": { + "core-js": "~2.3.0", + "es6-promise": "~3.0.2", + "lie": "~3.1.0", + "pako": "~1.0.2", + "readable-stream": "~2.0.6" + } + }, + "process-nextick-args": { + "version": "1.0.7", + "resolved": "https://registry.npmjs.org/process-nextick-args/-/process-nextick-args-1.0.7.tgz", + "integrity": "sha512-yN0WQmuCX63LP/TMvAg31nvT6m4vDqJEiiv2CAZqWOGNWutc9DfDk1NPYYmKUFmaVM2UwDowH4u5AHWYP/jxKw==" + }, + "readable-stream": { + "version": "2.0.6", + "resolved": "https://registry.npmjs.org/readable-stream/-/readable-stream-2.0.6.tgz", + "integrity": "sha512-TXcFfb63BQe1+ySzsHZI/5v1aJPCShfqvWJ64ayNImXMsN1Cd0YGk/wm8KB7/OeessgPc9QvS9Zou8QTkFzsLw==", + "requires": { + "core-util-is": "~1.0.0", + "inherits": "~2.0.1", + "isarray": "~1.0.0", + "process-nextick-args": "~1.0.6", + "string_decoder": "~0.10.x", + "util-deprecate": "~1.0.1" + } + }, + "string_decoder": { + "version": "0.10.31", + "resolved": "https://registry.npmjs.org/string_decoder/-/string_decoder-0.10.31.tgz", + "integrity": "sha512-ev2QzSzWPYmy9GuqfIVildA4OdcGLeFZQrq5ys6RtiuF+RQQiZWr8TZNyAcuVXyQRYfEO+MsoB/1BuQVhOJuoQ==" + } + } + }, + "scratch-render": { + "version": "git+ssh://git@github.com/PenguinMod/PenguinMod-Render.git#74c271afe22de5a03ce30de47acdfa9966365f1e", + "from": "scratch-render@github:PenguinMod/PenguinMod-Render#develop", + "requires": { + "grapheme-breaker": "0.3.2", + "hull.js": "0.2.10", + "ify-loader": "1.0.4", + "linebreak": "0.3.0", + "minilog": "3.1.0", + "raw-loader": "^0.5.1", + "scratch-svg-renderer": "git+https://github.com/TurboWarp/scratch-svg-renderer.git", + "twgl.js": "4.4.0" + } + }, + "scratch-render-fonts": { + "version": "git+ssh://git@github.com/PenguinMod/penguinmod-render-fonts.git#615e0cd0fad735c407a8c61566c900946cf2bfb9", + "from": "scratch-render-fonts@github:PenguinMod/penguinmod-render-fonts#master", + "requires": { + "base64-loader": "1.0.0" + } + }, + "scratch-sb1-converter": { + "version": "0.2.7", + "resolved": "https://registry.npmjs.org/scratch-sb1-converter/-/scratch-sb1-converter-0.2.7.tgz", + "integrity": "sha512-MF1NzmRLbgCiq7wiSTuk2C9rQC8uM5Wj7SaYsn1SEMWNK9rtK0uc3LSm8FnEt14QS/1Icx2YgMsUPKR0HaPDdQ==", + "requires": { + "js-md5": "0.7.3", + "minilog": "3.1.0", + "text-encoding": "^0.7.0" + } + }, + "scratch-storage": { + "version": "git+ssh://git@github.com/PenguinMod/PenguinMod-Storage.git#96f45f701dc11648bc88fcc5307193d591afea84", + "from": "scratch-storage@github:PenguinMod/PenguinMod-Storage#develop", + "requires": { + "arraybuffer-loader": "^1.0.3", + "base64-js": "1.3.0", + "fastestsmallesttextencoderdecoder": "^1.0.7", + "js-md5": "0.7.3", + "minilog": "3.1.0", + "worker-loader": "^2.0.0" + }, + "dependencies": { + "base64-js": { + "version": "1.3.0", + "resolved": "https://registry.npmjs.org/base64-js/-/base64-js-1.3.0.tgz", + "integrity": "sha512-ccav/yGvoa80BQDljCxsmmQ3Xvx60/UpBIij5QN21W3wBi/hhIC9OoO+KLpu9IJTS9j4DRVJ3aDDF9cMSoa2lw==" + } + } + }, + "scratch-svg-renderer": { + "version": "git+ssh://git@github.com/TurboWarp/scratch-svg-renderer.git#c6fbe0206ea0705aabbd0315426c952024492fac", + "from": "scratch-svg-renderer@github:TurboWarp/scratch-svg-renderer#develop", + "requires": { + "@turbowarp/nanolog": "^0.2.0", + "base64-js": "1.2.1", + "base64-loader": "1.0.0", + "css-tree": "1.1.3", + "dompurify": "^2.5.6", + "fastestsmallesttextencoderdecoder": "^1.0.22", + "transformation-matrix": "1.15.0" + }, + "dependencies": { + "base64-js": { + "version": "1.2.1", + "resolved": "https://registry.npmjs.org/base64-js/-/base64-js-1.2.1.tgz", + "integrity": "sha512-dwVUVIXsBZXwTuwnXI9RK8sBmgq09NDHzyR9SAph9eqk76gKK2JSQmZARC2zRC81JC2QTtxD0ARU5qTS25gIGw==" + } + } + }, + "scratch-translate-extension-languages": { + "version": "0.0.20191118205314", + "resolved": "https://registry.npmjs.org/scratch-translate-extension-languages/-/scratch-translate-extension-languages-0.0.20191118205314.tgz", + "integrity": "sha512-r0lvpgQjPMjbhI2wROrgoXzBhCvWJdkbAqJMfl2CdNqrwBpUXqLvNNtI3VtNLPJAcp9VfxEylkU9lVZ0gvU46Q==" + }, + "scratch-vm": { + "version": "git+ssh://git@github.com/PenguinMod/PenguinMod-Vm.git#17b9952376cf2b4e4924a5604517ee40ea0875ec", + "from": "scratch-vm@github:PenguinMod/PenguinMod-Vm#develop", + "requires": { + "@turbowarp/json": "^0.1.2", + "@vernier/godirect": "1.5.0", + "arraybuffer-loader": "^1.0.6", + "atob": "2.1.2", + "btoa": "1.2.1", + "cannon-es": "0.20.0", + "canvas-toBlob": "1.0.0", + "decode-html": "2.0.0", + "diff-match-patch": "1.0.4", + "dompurify": "^3.0.9", + "format-message": "6.2.1", + "htmlparser2": "^3.10.0", + "immutable": "3.8.2", + "jszip": "^3.1.5", + "lz-string": "^1.5.0", + "mathjs": "11.11.1", + "mersenne-twister": "^1.1.0", + "minilog": "3.1.0", + "pathfinding": "^0.4.18", + "schema-utils": "^2.7.1", + "scratch-parser": "git+https://github.com/PenguinMod/PenguinMod-Parser.git#master", + "scratch-sb1-converter": "0.2.7", + "scratch-translate-extension-languages": "0.0.20191118205314", + "simplex-noise": "^4.0.1", + "text-encoding": "0.7.0", + "three": "0.153.0", + "three-mesh-bvh": "0.6.0", + "tone": "^14.7.77", + "worker-loader": "^1.1.1" + }, + "dependencies": { + "dom-serializer": { + "version": "0.2.2", + "resolved": "https://registry.npmjs.org/dom-serializer/-/dom-serializer-0.2.2.tgz", + "integrity": "sha512-2/xPb3ORsQ42nHYiSunXkDjPLBaEj/xTwUO4B7XCZQTRk7EBtTOPaygh10YAAh2OI1Qrp6NWfpAhzswj0ydt9g==", + "requires": { + "domelementtype": "^2.0.1", + "entities": "^2.0.0" + }, + "dependencies": { + "domelementtype": { + "version": "2.3.0", + "resolved": "https://registry.npmjs.org/domelementtype/-/domelementtype-2.3.0.tgz", + "integrity": "sha512-OLETBj6w0OsagBwdXnPdN0cnMfF9opN69co+7ZrbfPGrdpPVNBUj02spi6B1N7wChLQiPn4CSH/zJvXw56gmHw==" + }, + "entities": { + "version": "2.2.0", + "resolved": "https://registry.npmjs.org/entities/-/entities-2.2.0.tgz", + "integrity": "sha512-p92if5Nz619I0w+akJrLZH0MX0Pb5DX39XOwQTtXSdQQOaYH03S1uIQp4mhOZtAXrxq4ViO67YTiLBo2638o9A==" + } + } + }, + "domelementtype": { + "version": "1.3.1", + "resolved": "https://registry.npmjs.org/domelementtype/-/domelementtype-1.3.1.tgz", + "integrity": "sha512-BSKB+TSpMpFI/HOxCNr1O8aMOTZ8hT3pM3GQ0w/mWRmkhEDSFJkkyzz4XQsBV44BChwGkrDfMyjVD0eA2aFV3w==" + }, + "domhandler": { + "version": "2.4.2", + "resolved": "https://registry.npmjs.org/domhandler/-/domhandler-2.4.2.tgz", + "integrity": "sha512-JiK04h0Ht5u/80fdLMCEmV4zkNh2BcoMFBmZ/91WtYZ8qVXSKjiw7fXMgFPnHcSZgOo3XdinHvmnDUeMf5R4wA==", + "requires": { + "domelementtype": "1" + } + }, + "dompurify": { + "version": "3.2.0", + "resolved": "https://registry.npmjs.org/dompurify/-/dompurify-3.2.0.tgz", + "integrity": "sha512-AMdOzK44oFWqHEi0wpOqix/fUNY707OmoeFDnbi3Q5I8uOpy21ufUA5cDJPr0bosxrflOVD/H2DMSvuGKJGfmQ==" + }, + "domutils": { + "version": "1.7.0", + "resolved": "https://registry.npmjs.org/domutils/-/domutils-1.7.0.tgz", + "integrity": "sha512-Lgd2XcJ/NjEw+7tFvfKxOzCYKZsdct5lczQ2ZaQY8Djz7pfAD3Gbp8ySJWtreII/vDlMVmxwa6pHmdxIYgttDg==", + "requires": { + "dom-serializer": "0", + "domelementtype": "1" + } + }, + "entities": { + "version": "1.1.2", + "resolved": "https://registry.npmjs.org/entities/-/entities-1.1.2.tgz", + "integrity": "sha512-f2LZMYl1Fzu7YSBKg+RoROelpOaNrcGmE9AZubeDfrCEia483oW4MI4VyFd5VNHIgQ/7qm1I0wUHK1eJnn2y2w==" + }, + "htmlparser2": { + "version": "3.10.1", + "resolved": "https://registry.npmjs.org/htmlparser2/-/htmlparser2-3.10.1.tgz", + "integrity": "sha512-IgieNijUMbkDovyoKObU1DUhm1iwNYE/fuifEoEHfd1oZKZDaONBSkal7Y01shxsM49R4XaMdGez3WnF9UfiCQ==", + "requires": { + "domelementtype": "^1.3.1", + "domhandler": "^2.3.0", + "domutils": "^1.5.1", + "entities": "^1.1.1", + "inherits": "^2.0.1", + "readable-stream": "^3.1.1" + } + }, + "readable-stream": { + "version": "3.6.2", + "resolved": "https://registry.npmjs.org/readable-stream/-/readable-stream-3.6.2.tgz", + "integrity": "sha512-9u/sniCrY3D5WdsERHzHE4G2YCXqoG5FTHUiCC4SIbr6XcLZBY05ya9EKjYek9O5xOAwjGq+1JdGBAS7Q9ScoA==", + "requires": { + "inherits": "^2.0.3", + "string_decoder": "^1.1.1", + "util-deprecate": "^1.0.1" + } + }, + "worker-loader": { + "version": "1.1.1", + "resolved": "https://registry.npmjs.org/worker-loader/-/worker-loader-1.1.1.tgz", + "integrity": "sha512-qJZLVS/jMCBITDzPo/RuweYSIG8VJP5P67mP/71alGyTZRe1LYJFdwLjLalY3T5ifx0bMDRD3OB6P2p1escvlg==", + "requires": { + "loader-utils": "^1.0.0", + "schema-utils": "^0.4.0" + }, + "dependencies": { + "schema-utils": { + "version": "0.4.7", + "resolved": "https://registry.npmjs.org/schema-utils/-/schema-utils-0.4.7.tgz", + "integrity": "sha512-v/iwU6wvwGK8HbU9yi3/nhGzP0yGSuhQMzL6ySiec1FSrZZDkhm4noOSWzrNFo/jEc+SJY6jRTwuwbSXJPDUnQ==", + "requires": { + "ajv": "^6.1.0", + "ajv-keywords": "^3.1.0" + } + } + } + } + } + }, + "seedrandom": { + "version": "3.0.5", + "resolved": "https://registry.npmjs.org/seedrandom/-/seedrandom-3.0.5.tgz", + "integrity": "sha512-8OwmbklUNzwezjGInmZ+2clQmExQPvomqjL7LFqOYqtmuxRgQYqOD3mHaU+MvZn5FLUeVxVfQjwLZW/n/JFuqg==" + }, + "seek-bzip": { + "version": "1.0.6", + "resolved": "https://registry.npmjs.org/seek-bzip/-/seek-bzip-1.0.6.tgz", + "integrity": "sha512-e1QtP3YL5tWww8uKaOCQ18UxIT2laNBXHjV/S2WYCiK4udiv8lkG89KRIoCjUagnAmCBurjF4zEVX2ByBbnCjQ==", + "requires": { + "commander": "^2.8.1" + }, + "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==" + } + } + }, + "select-hose": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/select-hose/-/select-hose-2.0.0.tgz", + "integrity": "sha512-mEugaLK+YfkijB4fx0e6kImuJdCIt2LxCRcbEYPqRGCs4F2ogyfZU5IAZRdjCP8JPq2AtdNoC/Dux63d9Kiryg==", + "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": { + "tmp": { + "version": "0.0.30", + "resolved": "https://registry.npmjs.org/tmp/-/tmp-0.0.30.tgz", + "integrity": "sha512-HXdTB7lvMwcb55XFfrTM8CPr/IYREk4hVBFaQ4b/6nInrluSL86hfHm7vu0luYKCfyBZp2trCjpc8caC3vVM3w==", + "dev": true, + "requires": { + "os-tmpdir": "~1.0.1" + } + } + } + }, + "selfsigned": { + "version": "1.10.14", + "resolved": "https://registry.npmjs.org/selfsigned/-/selfsigned-1.10.14.tgz", + "integrity": "sha512-lkjaiAye+wBZDCBsu5BGi0XiLRxeUlsGod5ZP924CRSEoGuZAw/f7y9RKu28rwTfiHVhdavhB0qH0INV6P1lEA==", + "dev": true, + "requires": { + "node-forge": "^0.10.0" + } + }, + "semver": { + "version": "6.3.1", + "resolved": "https://registry.npmjs.org/semver/-/semver-6.3.1.tgz", + "integrity": "sha512-BR7VvDCVHO+q2xBEWskxS6DJE1qRnb7DxzUrogb71CWoSficBxYsiAGd+Kl0mmq/MprG9yArRkyrQxTO6XjMzA==" + }, + "send": { + "version": "0.19.0", + "resolved": "https://registry.npmjs.org/send/-/send-0.19.0.tgz", + "integrity": "sha512-dW41u5VfLXu8SJh5bwRmyYUbAoSB3c9uQh6L8h/KtsFREPWpbX1lrljJo186Jc4nmci/sGUZ9a0a0J2zgfq2hw==", + "dev": true, + "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": { + "debug": { + "version": "2.6.9", + "resolved": "https://registry.npmjs.org/debug/-/debug-2.6.9.tgz", + "integrity": "sha512-bC7ElrdJaJnPbAP+1EotYvqZsb3ecl5wi6Bfi6BJTUcNowp6cvspg0jXznRTKDjm/E7AdgFBVeAPVMNcKGsHMA==", + "dev": true, + "requires": { + "ms": "2.0.0" + }, + "dependencies": { + "ms": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/ms/-/ms-2.0.0.tgz", + "integrity": "sha512-Tpp60P6IUJDTuOq/5Z8cdskzJujfwqfOTkrwIwj7IRISpnkJnT6SyJ4PCPnGMoFjC9ddhal5KVIYtAt97ix05A==", + "dev": true + } + } + }, + "encodeurl": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/encodeurl/-/encodeurl-1.0.2.tgz", + "integrity": "sha512-TPJXq8JqFaVYm2CWmPvnP2Iyo4ZSM7/QKcSmuMLDObfpH5fi7RUGmd/rTDf+rut/saiDiQEeVTNgAmJEdAOx0w==", + "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==", + "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": "sha512-pXHfKNP4qujrtteMrSBb0rc8HJ9Ms/GrXwcUtUtD5s4ewDJI8bT3Cz2zTVRMKtri49pLx2e0Ya8ziP5Ya2pZZw==", + "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" + } + }, + "depd": { + "version": "1.1.2", + "resolved": "https://registry.npmjs.org/depd/-/depd-1.1.2.tgz", + "integrity": "sha512-7emPTl6Dpo6JRXOXjLRxck+FlLRX5847cLKEn00PLAgc3g2hTZZgr+e4c2v6QpSmLeFP3n5yUo7ft6avBK/5jQ==", + "dev": true + }, + "http-errors": { + "version": "1.6.3", + "resolved": "https://registry.npmjs.org/http-errors/-/http-errors-1.6.3.tgz", + "integrity": "sha512-lks+lVC8dgGyh97jxvxeYTWQFvh4uw4yC12gVl63Cg30sjPX4wuGcdkICVXDAESr6OJGjqGA8Iz5mkeN6zlD7A==", + "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": "sha512-x00IRNXNy63jwGkJmzPigoySHbaqpNuzKbBOmzK+g2OdZpQ9w+sxCN+VSB3ja7IAge2OP2qpfxTjeNcyjmW1uw==", + "dev": true + }, + "ms": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/ms/-/ms-2.0.0.tgz", + "integrity": "sha512-Tpp60P6IUJDTuOq/5Z8cdskzJujfwqfOTkrwIwj7IRISpnkJnT6SyJ4PCPnGMoFjC9ddhal5KVIYtAt97ix05A==", + "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 + }, + "statuses": { + "version": "1.5.0", + "resolved": "https://registry.npmjs.org/statuses/-/statuses-1.5.0.tgz", + "integrity": "sha512-OpZ3zP+jT1PI7I8nemJX4AKmAX070ZkYPVWV/AaKTJl+tXCTGyVdC1a4SL8RUQYEwk/f34ZX8UTykN68FwrqAA==", + "dev": true + } + } + }, + "serve-static": { + "version": "1.16.2", + "resolved": "https://registry.npmjs.org/serve-static/-/serve-static-1.16.2.tgz", + "integrity": "sha512-VqpjJZKadQB/PEbEwvFdO43Ax5dFBZ2UECszz8bQ7pi7wt//PWe1P6MN7eCnjsatYtBT6EuiClbjSWP2WrIoTw==", + "dev": true, + "requires": { + "encodeurl": "~2.0.0", + "escape-html": "~1.0.3", + "parseurl": "~1.3.3", + "send": "0.19.0" + } + }, + "set-blocking": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/set-blocking/-/set-blocking-2.0.0.tgz", + "integrity": "sha512-KiKBS8AnWGEyLzofFfmvKwpdPzqiy16LvQfK3yv/fVH7Bj13/wl3JSR1J+rfgRE9q7xUJK4qvgS8raSOeLUehw==", + "dev": true + }, + "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" + } + }, + "set-function-name": { + "version": "2.0.2", + "resolved": "https://registry.npmjs.org/set-function-name/-/set-function-name-2.0.2.tgz", + "integrity": "sha512-7PGFlmtwsEADb0WYyvCMa1t+yke6daIG4Wirafur5kcf+MhUnPms1UeR0CKQdTZD81yESwMHbtn+TR+dMviakQ==", + "dev": true, + "requires": { + "define-data-property": "^1.1.4", + "es-errors": "^1.3.0", + "functions-have-names": "^1.2.3", + "has-property-descriptors": "^1.0.2" + } + }, + "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==", + "requires": { + "extend-shallow": "^2.0.1", + "is-extendable": "^0.1.1", + "is-plain-object": "^2.0.3", + "split-string": "^3.0.1" + } + }, + "setimmediate": { + "version": "1.0.5", + "resolved": "https://registry.npmjs.org/setimmediate/-/setimmediate-1.0.5.tgz", + "integrity": "sha512-MATJdZp8sLqDl/68LfQmbP8zKPLQNV6BIZoIgrscFDQ+RsvK/BxeDQOgyxKKoh0y/8h3BqVFnCqQ/gd+reiIXA==" + }, + "setprototypeof": { + "version": "1.2.0", + "resolved": "https://registry.npmjs.org/setprototypeof/-/setprototypeof-1.2.0.tgz", + "integrity": "sha512-E5LDX7Wrp85Kil5bhZv46j8jOeboKq5JMmYM3gVGdGH8xFpPWXUMsNrlODCrkoxMEeNi/XZIwuRvY4XNwYMJpw==", + "dev": true + }, + "sha.js": { + "version": "2.4.11", + "resolved": "https://registry.npmjs.org/sha.js/-/sha.js-2.4.11.tgz", + "integrity": "sha512-QMEp5B7cftE7APOjk5Y6xgrbWu+WkLVQwk8JNjZ8nKRciZaByEW6MubieAiToS7+dwvrjGhH8jRXz3MVd0AYqQ==", + "requires": { + "inherits": "^2.0.1", + "safe-buffer": "^5.0.1" + } + }, + "shallow-copy": { + "version": "0.0.1", + "resolved": "https://registry.npmjs.org/shallow-copy/-/shallow-copy-0.0.1.tgz", + "integrity": "sha512-b6i4ZpVuUxB9h5gfCxPiusKYkqTMOjEbBs4wMaFbkfia4yFv92UKZ6Df8WXcKbn08JNL/abvg3FnMAOfakDvUw==" + }, + "shebang-command": { + "version": "1.2.0", + "resolved": "https://registry.npmjs.org/shebang-command/-/shebang-command-1.2.0.tgz", + "integrity": "sha512-EV3L1+UQWGor21OmnvojK36mhg+TyIKDh3iFBKBohr5xeXIhNBcx8oWdgkTEEQ+BEFFYdLRuqMfd5L84N1V5Vg==", + "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": "sha512-wpoSFAxys6b2a2wHZ1XpDSgD7N9iVjg29Ph9uV/uaP9Ex/KXlkTZTeddxDPSYQpgvzKLGJke2UU0AzoGCjNIvQ==", + "dev": true + }, + "shellwords": { + "version": "0.1.1", + "resolved": "https://registry.npmjs.org/shellwords/-/shellwords-0.1.1.tgz", + "integrity": "sha512-vFwSUfQvqybiICwZY5+DAWIPLKsWO31Q91JSKl3UYv+K5c2QRPzn0qzec6QPu1Qc9eHYItiP3NdJqNVqetYAww==", + "dev": true + }, + "should": { + "version": "13.2.3", + "resolved": "https://registry.npmjs.org/should/-/should-13.2.3.tgz", + "integrity": "sha512-ggLesLtu2xp+ZxI+ysJTmNjh2U0TsC+rQ/pfED9bUZZ4DKefP27D+7YJVVTvKsmjLpIi9jAa7itwDGkDDmt1GQ==", + "requires": { + "should-equal": "^2.0.0", + "should-format": "^3.0.3", + "should-type": "^1.4.0", + "should-type-adaptors": "^1.0.1", + "should-util": "^1.0.0" + } + }, + "should-equal": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/should-equal/-/should-equal-2.0.0.tgz", + "integrity": "sha512-ZP36TMrK9euEuWQYBig9W55WPC7uo37qzAEmbjHz4gfyuXrEUgF8cUvQVO+w+d3OMfPvSRQJ22lSm8MQJ43LTA==", + "requires": { + "should-type": "^1.4.0" + } + }, + "should-format": { + "version": "3.0.3", + "resolved": "https://registry.npmjs.org/should-format/-/should-format-3.0.3.tgz", + "integrity": "sha512-hZ58adtulAk0gKtua7QxevgUaXTTXxIi8t41L3zo9AHvjXO1/7sdLECuHeIN2SRtYXpNkmhoUP2pdeWgricQ+Q==", + "requires": { + "should-type": "^1.3.0", + "should-type-adaptors": "^1.0.1" + } + }, + "should-type": { + "version": "1.4.0", + "resolved": "https://registry.npmjs.org/should-type/-/should-type-1.4.0.tgz", + "integrity": "sha512-MdAsTu3n25yDbIe1NeN69G4n6mUnJGtSJHygX3+oN0ZbO3DTiATnf7XnYJdGT42JCXurTb1JI0qOBR65shvhPQ==" + }, + "should-type-adaptors": { + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/should-type-adaptors/-/should-type-adaptors-1.1.0.tgz", + "integrity": "sha512-JA4hdoLnN+kebEp2Vs8eBe9g7uy0zbRo+RMcU0EsNy+R+k049Ki+N5tT5Jagst2g7EAja+euFuoXFCa8vIklfA==", + "requires": { + "should-type": "^1.3.0", + "should-util": "^1.0.0" + } + }, + "should-util": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/should-util/-/should-util-1.0.1.tgz", + "integrity": "sha512-oXF8tfxx5cDk8r2kYqlkUJzZpDBqVY/II2WhvU0n9Y3XYvAYRmeaf1PvvIvTgPnv4KJ+ES5M0PyDq5Jp+Ygy2g==" + }, + "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" + } + }, + "signal-exit": { + "version": "3.0.7", + "resolved": "https://registry.npmjs.org/signal-exit/-/signal-exit-3.0.7.tgz", + "integrity": "sha512-wnD2ZE+l+SPC/uoS0vXeE9L1+0wuaMqKlfz9AMUo38JsyLSBWSFcHR1Rri62LZc12vLr1gb3jl7iwQhgwpAbGQ==", + "dev": true + }, + "simplex-noise": { + "version": "4.0.3", + "resolved": "https://registry.npmjs.org/simplex-noise/-/simplex-noise-4.0.3.tgz", + "integrity": "sha512-qSE2I4AngLQG7BXqoZj51jokT4WUXe8mOBrvfOXpci8+6Yu44+/dD5zqDpOx3Ux792eamTd2lLcI8jqFntk/lg==" + }, + "slash": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/slash/-/slash-2.0.0.tgz", + "integrity": "sha512-ZYKh3Wh2z1PpEXWr0MpSBZ0V6mZHAQfYevttO11c51CaWjGTaadiKZ+wVt1PbMlDV5qhMFslpZCemhwOK7C89A==" + }, + "slice-ansi": { + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/slice-ansi/-/slice-ansi-2.1.0.tgz", + "integrity": "sha512-Qu+VC3EwYLldKa1fCxuuvULvSJOKEgk9pi8dZeCVK7TqBfUNTH4sFkk4joj8afVSfAYgJoSOetjx9QWOJ5mYoQ==", + "dev": true, + "requires": { + "ansi-styles": "^3.2.0", + "astral-regex": "^1.0.0", + "is-fullwidth-code-point": "^2.0.0" + }, + "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" + } + }, + "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" + } + } + } + }, + "slugo": { + "version": "0.2.3", + "resolved": "https://registry.npmjs.org/slugo/-/slugo-0.2.3.tgz", + "integrity": "sha512-4nav6mk321IWKaWxgvygjp2JB0d5sNGgkPUJ+EGQZmmcvuXS+4DwdhhPa9L8WBg6fVQDID3PO+t6wYM1NqVbkA==" + }, + "snapdragon": { + "version": "0.8.2", + "resolved": "https://registry.npmjs.org/snapdragon/-/snapdragon-0.8.2.tgz", + "integrity": "sha512-FtyOnWN/wCHTVXOMwvSv26d+ko5vWlIDD6zoUJ7LW8vh+ZBC8QdljveRP+crNrtBwioEUWy/4dMtbBjA4ioNlg==", + "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==", + "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": "sha512-Rr7ADjQZenceVOAKop6ALkkRAmH1A4Gx9hV/7ZujPUN2rkATqFO0JZLZInbAjpZYoJ1gUx8MRMQVkYemcbMSTA==", + "requires": { + "is-descriptor": "^0.1.0" + } + }, + "is-descriptor": { + "version": "0.1.7", + "resolved": "https://registry.npmjs.org/is-descriptor/-/is-descriptor-0.1.7.tgz", + "integrity": "sha512-C3grZTvObeN1xud4cRWl366OMXZTj0+HGyk4hvfpx4ZHt1Pb60ANSXqCK7pdOTeUQpRzECBSTphqvD7U+l22Eg==", + "requires": { + "is-accessor-descriptor": "^1.0.1", + "is-data-descriptor": "^1.0.1" + } + }, + "ms": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/ms/-/ms-2.0.0.tgz", + "integrity": "sha512-Tpp60P6IUJDTuOq/5Z8cdskzJujfwqfOTkrwIwj7IRISpnkJnT6SyJ4PCPnGMoFjC9ddhal5KVIYtAt97ix05A==" + } + } + }, + "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==", + "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": "sha512-cZTYKFWspt9jZsMscWo8sc/5lbPC9Q0N5nBLgb+Yd915iL3udB1uFgS3B8YCx66UVHq018DAVFoee7x+gxggeA==", + "requires": { + "is-descriptor": "^1.0.0" + } + } + } + }, + "snapdragon-util": { + "version": "3.0.1", + "resolved": "https://registry.npmjs.org/snapdragon-util/-/snapdragon-util-3.0.1.tgz", + "integrity": "sha512-mbKkMdQKsjX4BAL4bRYTj21edOf8cN7XHdYUJEe+Zn99hVEYcMvKPct1IqNe7+AZPirn8BCDOQBHQZknqmKlZQ==", + "requires": { + "kind-of": "^3.2.0" + } + }, + "sockjs": { + "version": "0.3.24", + "resolved": "https://registry.npmjs.org/sockjs/-/sockjs-0.3.24.tgz", + "integrity": "sha512-GJgLTZ7vYb/JtPSSZ10hsOYIvEYsjbNU+zPdIHcUaWVNUEPivzxku31865sSSud0Da0W4lEeOPlmw93zLQchuQ==", + "dev": 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 + } + } + }, + "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, + "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, + "requires": { + "ms": "^2.1.1" + } + } + } + }, + "sort-keys": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/sort-keys/-/sort-keys-2.0.0.tgz", + "integrity": "sha512-/dPCrG1s3ePpWm6yBbxZq5Be1dXGLyLn9Z791chDC3NFrpkVbWGzkBwPN1knaciexFXgRJ7hzdnwZ4stHSDmjg==", + "requires": { + "is-plain-obj": "^1.0.0" + } + }, + "sort-keys-length": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/sort-keys-length/-/sort-keys-length-1.0.1.tgz", + "integrity": "sha512-GRbEOUqCxemTAk/b32F2xa8wDTs+Z1QHOkbhJDQTvv/6G3ZkbJ+frYWsTcc7cBB3Fu4wy4XlLCuNtJuMn7Gsvw==", + "requires": { + "sort-keys": "^1.0.0" + }, + "dependencies": { + "sort-keys": { + "version": "1.1.2", + "resolved": "https://registry.npmjs.org/sort-keys/-/sort-keys-1.1.2.tgz", + "integrity": "sha512-vzn8aSqKgytVik0iwdBEi+zevbTYZogewTUM6dtpmGwEcdzbub/TX4bCzRhebDCRC3QzXgJsLRKB2V/Oof7HXg==", + "requires": { + "is-plain-obj": "^1.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==" + }, + "source-map": { + "version": "0.5.7", + "resolved": "https://registry.npmjs.org/source-map/-/source-map-0.5.7.tgz", + "integrity": "sha512-LbrmJOMUSdEVxIKvdcJzQC+nQhe8FUZQTXQy6+I75skNgn3OoQ0DZA8YnFa7gp8tqtL3KPf1kmo0R5DoApeSGQ==" + }, + "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==", + "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.21", + "resolved": "https://registry.npmjs.org/source-map-support/-/source-map-support-0.5.21.tgz", + "integrity": "sha512-uBHU3L3czsIyYXKX88fdrGovxdSCoTGDRZ6SYXtSRxLZUzHg5P/66Ht6uoUlHu9EZod+inXhKo3qQgwXUT/y1w==", + "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==" + } + } + }, + "source-map-url": { + "version": "0.4.1", + "resolved": "https://registry.npmjs.org/source-map-url/-/source-map-url-0.4.1.tgz", + "integrity": "sha512-cPiFOTLUKvJFIg4SKVScy4ilPPW6rFgMgfuZJPNoDuMs3nC1HbMUycBoJw77xFIp6z1UJQJOfx6C9GMH80DiTw==" + }, + "spdx-correct": { + "version": "3.2.0", + "resolved": "https://registry.npmjs.org/spdx-correct/-/spdx-correct-3.2.0.tgz", + "integrity": "sha512-kN9dJbvnySHULIluDHy32WHRUu3Og7B9sbY7tsFLctQkIqnMh3hErYgdMjTYuqmcXX+lK5T1lnUt3G7zNswmZA==", + "requires": { + "spdx-expression-parse": "^3.0.0", + "spdx-license-ids": "^3.0.0" + } + }, + "spdx-exceptions": { + "version": "2.5.0", + "resolved": "https://registry.npmjs.org/spdx-exceptions/-/spdx-exceptions-2.5.0.tgz", + "integrity": "sha512-PiU42r+xO4UbUS1buo3LPJkjlO7430Xn5SVAhdpzzsPHsjbYVflnnFdATgabnLude+Cqu25p6N+g2lw/PFsa4w==" + }, + "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==", + "requires": { + "spdx-exceptions": "^2.1.0", + "spdx-license-ids": "^3.0.0" + } + }, + "spdx-license-ids": { + "version": "3.0.20", + "resolved": "https://registry.npmjs.org/spdx-license-ids/-/spdx-license-ids-3.0.20.tgz", + "integrity": "sha512-jg25NiDV/1fLtSgEgyvVyDunvaNHbuwF9lfNV17gSmPFAlYzdfNBlLtLzXTevwkPj7DhGbmN9VnmJIgLnhvaBw==" + }, + "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.2", + "resolved": "https://registry.npmjs.org/readable-stream/-/readable-stream-3.6.2.tgz", + "integrity": "sha512-9u/sniCrY3D5WdsERHzHE4G2YCXqoG5FTHUiCC4SIbr6XcLZBY05ya9EKjYek9O5xOAwjGq+1JdGBAS7Q9ScoA==", + "dev": true, + "requires": { + "inherits": "^2.0.3", + "string_decoder": "^1.1.1", + "util-deprecate": "^1.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==", + "requires": { + "extend-shallow": "^3.0.0" + }, + "dependencies": { + "extend-shallow": { + "version": "3.0.2", + "resolved": "https://registry.npmjs.org/extend-shallow/-/extend-shallow-3.0.2.tgz", + "integrity": "sha512-BwY5b5Ql4+qZoefgMj2NUmx+tehVTH/Kf4k1ZEtOHNFcm2wSxMRo992l6X3TIgni2eZVTZ85xMOjF31fwZAj6Q==", + "requires": { + "assign-symbols": "^1.0.0", + "is-extendable": "^1.0.1" + } + }, + "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==", + "requires": { + "is-plain-object": "^2.0.4" + } + } + } + }, + "sprintf-js": { + "version": "1.0.3", + "resolved": "https://registry.npmjs.org/sprintf-js/-/sprintf-js-1.0.3.tgz", + "integrity": "sha512-D9cPgkvLlV3t3IzL0D0YLvGA9Ahk4PcvVwUbN0dSGr1aP0Nrt4AEnTUbuGvquEC0mA64Gqt1fzirlRs5ibXx8g==" + }, + "sshpk": { + "version": "1.18.0", + "resolved": "https://registry.npmjs.org/sshpk/-/sshpk-1.18.0.tgz", + "integrity": "sha512-2p2KJZTSqQ/I3+HX42EpYOa2l3f8Erv8MWKsy2I9uf4wA7yFIkXRffYdsx86y6z4vHtV8u7g+pPlr8/4ouAxsQ==", + "requires": { + "asn1": "~0.2.3", + "assert-plus": "^1.0.0", + "bcrypt-pbkdf": "^1.0.0", + "dashdash": "^1.12.0", + "ecc-jsbn": "~0.1.1", + "getpass": "^0.1.1", + "jsbn": "~0.1.0", + "safer-buffer": "^2.0.2", + "tweetnacl": "~0.14.0" + } + }, + "ssri": { + "version": "8.0.1", + "resolved": "https://registry.npmjs.org/ssri/-/ssri-8.0.1.tgz", + "integrity": "sha512-97qShzy1AiyxvPNIkLWoGua7xoQzzPjQ0HAH4B0rWKo7SZ6USuPcrUiAFrws0UH8RrbWmgq3LMTObhPIHbbBeQ==", + "requires": { + "minipass": "^3.1.1" + } + }, + "standardized-audio-context": { + "version": "25.3.77", + "resolved": "https://registry.npmjs.org/standardized-audio-context/-/standardized-audio-context-25.3.77.tgz", + "integrity": "sha512-Ki9zNz6pKcC5Pi+QPjPyVsD9GwJIJWgryji0XL9cAJXMGyn+dPOf6Qik1AHei0+UNVcc4BOCa0hWLBzlwqsW/A==", + "requires": { + "@babel/runtime": "^7.25.6", + "automation-events": "^7.0.9", + "tslib": "^2.7.0" + } + }, + "startaudiocontext": { + "version": "1.2.1", + "resolved": "https://registry.npmjs.org/startaudiocontext/-/startaudiocontext-1.2.1.tgz", + "integrity": "sha512-ooOQhOAoCwzMIRwWd9j7xF8kAMo1Wv7Zfw+q6dWDW5gxJUKx15HJXWDg89GMDqfdle9xsqPv+uioneX+bI643g==" + }, + "static-eval": { + "version": "2.1.1", + "resolved": "https://registry.npmjs.org/static-eval/-/static-eval-2.1.1.tgz", + "integrity": "sha512-MgWpQ/ZjGieSVB3eOJVs4OA2LT/q1vx98KPCTTQPzq/aLr0YUXTsgryTXr4SLfR0ZfUUCiedM9n/ABeDIyy4mA==", + "requires": { + "escodegen": "^2.1.0" + }, + "dependencies": { + "escodegen": { + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/escodegen/-/escodegen-2.1.0.tgz", + "integrity": "sha512-2NlIDTwUWJN0mRPQOdtQBzbUHvdGY2P1VXSyU83Q3xKxM7WHX2Ql8dKq782Q9TgQUNOLEzEYu9bzLNj1q88I5w==", + "requires": { + "esprima": "^4.0.1", + "estraverse": "^5.2.0", + "esutils": "^2.0.2", + "source-map": "~0.6.1" + } + }, + "estraverse": { + "version": "5.3.0", + "resolved": "https://registry.npmjs.org/estraverse/-/estraverse-5.3.0.tgz", + "integrity": "sha512-MMdARuVEQziNTeJD8DgMqmhwR11BRQ/cBP+pLtYdSTnf3MIO8fFeiINEbX36ZdNlfU/7A9f3gUw49B3oQsvwBA==" + }, + "source-map": { + "version": "0.6.1", + "resolved": "https://registry.npmjs.org/source-map/-/source-map-0.6.1.tgz", + "integrity": "sha512-UjgapumWlbMhkBgzT7Ykc5YXUT46F0iKu8SGXq0bcwP5dz/h0Plj6enJqjz1Zbq2l5WaqYnrVbwWOWMyF3F47g==", + "optional": true + } + } + }, + "static-extend": { + "version": "0.1.2", + "resolved": "https://registry.npmjs.org/static-extend/-/static-extend-0.1.2.tgz", + "integrity": "sha512-72E9+uLc27Mt718pMHt9VMNiAL4LMsmDbBva8mxWUCkT07fSzEGMYUCk0XWY6lp0j6RBAG4cJ3mWuZv2OE3s0g==", + "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": "sha512-Rr7ADjQZenceVOAKop6ALkkRAmH1A4Gx9hV/7ZujPUN2rkATqFO0JZLZInbAjpZYoJ1gUx8MRMQVkYemcbMSTA==", + "requires": { + "is-descriptor": "^0.1.0" + } + }, + "is-descriptor": { + "version": "0.1.7", + "resolved": "https://registry.npmjs.org/is-descriptor/-/is-descriptor-0.1.7.tgz", + "integrity": "sha512-C3grZTvObeN1xud4cRWl366OMXZTj0+HGyk4hvfpx4ZHt1Pb60ANSXqCK7pdOTeUQpRzECBSTphqvD7U+l22Eg==", + "requires": { + "is-accessor-descriptor": "^1.0.1", + "is-data-descriptor": "^1.0.1" + } + } + } + }, + "static-module": { + "version": "2.2.5", + "resolved": "https://registry.npmjs.org/static-module/-/static-module-2.2.5.tgz", + "integrity": "sha512-D8vv82E/Kpmz3TXHKG8PPsCPg+RAX6cbCOyvjM6x04qZtQ47EtJFVwRsdov3n5d6/6ynrOY9XB4JkaZwB2xoRQ==", + "requires": { + "concat-stream": "~1.6.0", + "convert-source-map": "^1.5.1", + "duplexer2": "~0.1.4", + "escodegen": "~1.9.0", + "falafel": "^2.1.0", + "has": "^1.0.1", + "magic-string": "^0.22.4", + "merge-source-map": "1.0.4", + "object-inspect": "~1.4.0", + "quote-stream": "~1.0.2", + "readable-stream": "~2.3.3", + "shallow-copy": "~0.0.1", + "static-eval": "^2.0.0", + "through2": "~2.0.3" + }, + "dependencies": { + "escodegen": { + "version": "1.9.1", + "resolved": "https://registry.npmjs.org/escodegen/-/escodegen-1.9.1.tgz", + "integrity": "sha512-6hTjO1NAWkHnDk3OqQ4YrCuwwmGHL9S3nPlzBOUG/R44rda3wLNrfvQ5fkSGjyhHFKM7ALPKcKGrwvCLe0lC7Q==", + "requires": { + "esprima": "^3.1.3", + "estraverse": "^4.2.0", + "esutils": "^2.0.2", + "optionator": "^0.8.1", + "source-map": "~0.6.1" + } + }, + "esprima": { + "version": "3.1.3", + "resolved": "https://registry.npmjs.org/esprima/-/esprima-3.1.3.tgz", + "integrity": "sha512-AWwVMNxwhN8+NIPQzAQZCm7RkLC4RbM3B1OobMuyp3i+w73X57KCKaVIxaRZb+DYCojq7rspo+fmuQfAboyhFg==" + }, + "object-inspect": { + "version": "1.4.1", + "resolved": "https://registry.npmjs.org/object-inspect/-/object-inspect-1.4.1.tgz", + "integrity": "sha512-wqdhLpfCUbEsoEwl3FXwGyv8ief1k/1aUdIPCqVnupM6e8l63BEJdiF/0swtn04/8p05tG/T0FrpTlfwvljOdw==" + }, + "source-map": { + "version": "0.6.1", + "resolved": "https://registry.npmjs.org/source-map/-/source-map-0.6.1.tgz", + "integrity": "sha512-UjgapumWlbMhkBgzT7Ykc5YXUT46F0iKu8SGXq0bcwP5dz/h0Plj6enJqjz1Zbq2l5WaqYnrVbwWOWMyF3F47g==", + "optional": true + } + } + }, + "statuses": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/statuses/-/statuses-2.0.1.tgz", + "integrity": "sha512-RwNA9Z/7PrK06rYLIzFMlaF+l73iwpzsqRIFgbMLbTcLD6cOao82TaWefPXQvB2fOC4AjuYSEndS7N/mTCbkdQ==", + "dev": true + }, + "stream-browserify": { + "version": "2.0.2", + "resolved": "https://registry.npmjs.org/stream-browserify/-/stream-browserify-2.0.2.tgz", + "integrity": "sha512-nX6hmklHs/gr2FuxYDltq8fJA1GDlxKQCz8O/IM4atRqBH8OORmBNgfvW5gG10GT/qQ9u0CzIvr2X5Pkt6ntqg==", + "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==", + "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==", + "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.3", + "resolved": "https://registry.npmjs.org/stream-shift/-/stream-shift-1.0.3.tgz", + "integrity": "sha512-76ORR0DO1o1hlKwTbi/DM3EXWGf3ZJYO8cXX5RJwnul2DEg2oyoZyjLNoQM8WsvZiFKCRfC1O0J7iCvie3RZmQ==" + }, + "strict-uri-encode": { + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/strict-uri-encode/-/strict-uri-encode-1.1.0.tgz", + "integrity": "sha512-R3f198pcvnB+5IpnBlRkphuE9n46WyVl8I39W/ZUTZLz4nqSP/oLYUrcnJrw462Ds8he4YKMov2efsTIw1BDGQ==" + }, + "string_decoder": { + "version": "1.3.0", + "resolved": "https://registry.npmjs.org/string_decoder/-/string_decoder-1.3.0.tgz", + "integrity": "sha512-hkRX8U1WjJFd8LsDJ2yQ/wWWxaopEsABU1XfkM8A+j0+85JAGppt16cr1Whg6KIbb4okU6Mql6BOj+uup/wKeA==", + "requires": { + "safe-buffer": "~5.2.0" + } + }, + "string-length": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/string-length/-/string-length-2.0.0.tgz", + "integrity": "sha512-Qka42GGrS8Mm3SZ+7cH8UXiIWI867/b/Z/feQSpQx/rbfB8UGknGEZVaUQMOUVj+soY6NpWAxily63HI1OckVQ==", + "dev": true, + "requires": { + "astral-regex": "^1.0.0", + "strip-ansi": "^4.0.0" + }, + "dependencies": { + "ansi-regex": { + "version": "3.0.1", + "resolved": "https://registry.npmjs.org/ansi-regex/-/ansi-regex-3.0.1.tgz", + "integrity": "sha512-+O9Jct8wf++lXxxFc4hc8LsjaSq0HFzzL7cVsw8pRDIPdjKD2mT4ytDZlLuSBZ4cLKZFXIrMGO7DbQCtMJJMKw==", + "dev": true + }, + "strip-ansi": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/strip-ansi/-/strip-ansi-4.0.0.tgz", + "integrity": "sha512-4XaJ2zQdCzROZDivEVIDPkcQn8LMFSa8kj8Gxb/Lnwzv9A8VctNZ+lfivC/sV3ivW8ElJTERXZoPBRrZKkNKow==", + "dev": true, + "requires": { + "ansi-regex": "^3.0.0" + } + } + } + }, + "string-width": { + "version": "2.1.1", + "resolved": "https://registry.npmjs.org/string-width/-/string-width-2.1.1.tgz", + "integrity": "sha512-nOqH59deCq9SRHlxq1Aw85Jnt4w6KvLKqWVik6oA9ZklXLNIOlqg4F2yrT1MVaTjAqvVwdfeZ7w7aCvJD7ugkw==", + "dev": true, + "requires": { + "is-fullwidth-code-point": "^2.0.0", + "strip-ansi": "^4.0.0" + }, + "dependencies": { + "ansi-regex": { + "version": "3.0.1", + "resolved": "https://registry.npmjs.org/ansi-regex/-/ansi-regex-3.0.1.tgz", + "integrity": "sha512-+O9Jct8wf++lXxxFc4hc8LsjaSq0HFzzL7cVsw8pRDIPdjKD2mT4ytDZlLuSBZ4cLKZFXIrMGO7DbQCtMJJMKw==", + "dev": true + }, + "strip-ansi": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/strip-ansi/-/strip-ansi-4.0.0.tgz", + "integrity": "sha512-4XaJ2zQdCzROZDivEVIDPkcQn8LMFSa8kj8Gxb/Lnwzv9A8VctNZ+lfivC/sV3ivW8ElJTERXZoPBRrZKkNKow==", + "dev": true, + "requires": { + "ansi-regex": "^3.0.0" + } + } + } + }, + "string.prototype.matchall": { + "version": "4.0.11", + "resolved": "https://registry.npmjs.org/string.prototype.matchall/-/string.prototype.matchall-4.0.11.tgz", + "integrity": "sha512-NUdh0aDavY2og7IbBPenWqR9exH+E26Sv8e0/eTe1tltDGZL+GtBkDAnnyBtmekfK6/Dq3MkcGtzXFEd1LQrtg==", + "dev": true, + "requires": { + "call-bind": "^1.0.7", + "define-properties": "^1.2.1", + "es-abstract": "^1.23.2", + "es-errors": "^1.3.0", + "es-object-atoms": "^1.0.0", + "get-intrinsic": "^1.2.4", + "gopd": "^1.0.1", + "has-symbols": "^1.0.3", + "internal-slot": "^1.0.7", + "regexp.prototype.flags": "^1.5.2", + "set-function-name": "^2.0.2", + "side-channel": "^1.0.6" + } + }, + "string.prototype.trim": { + "version": "1.2.9", + "resolved": "https://registry.npmjs.org/string.prototype.trim/-/string.prototype.trim-1.2.9.tgz", + "integrity": "sha512-klHuCNxiMZ8MlsOihJhJEBJAiMVqU3Z2nEXWfWnIqjN0gEFS9J9+IxKozWWtQGcgoa1WUZzLjKPTr4ZHNFTFxw==", + "dev": true, + "requires": { + "call-bind": "^1.0.7", + "define-properties": "^1.2.1", + "es-abstract": "^1.23.0", + "es-object-atoms": "^1.0.0" + } + }, + "string.prototype.trimend": { + "version": "1.0.8", + "resolved": "https://registry.npmjs.org/string.prototype.trimend/-/string.prototype.trimend-1.0.8.tgz", + "integrity": "sha512-p73uL5VCHCO2BZZ6krwwQE3kCzM7NKmis8S//xEC6fQonchbum4eP6kR4DLEjQFO3Wnj3Fuo8NM0kOSjVdHjZQ==", + "dev": true, + "requires": { + "call-bind": "^1.0.7", + "define-properties": "^1.2.1", + "es-object-atoms": "^1.0.0" + } + }, + "string.prototype.trimstart": { + "version": "1.0.8", + "resolved": "https://registry.npmjs.org/string.prototype.trimstart/-/string.prototype.trimstart-1.0.8.tgz", + "integrity": "sha512-UXSH262CSZY1tfu3G3Secr6uGLCFVPMhIqHjlgCUtCCcgihYc/xKs9djMTMUOb2j1mVSeU8EU6NWc/iQKU6Gfg==", + "dev": true, + "requires": { + "call-bind": "^1.0.7", + "define-properties": "^1.2.1", + "es-object-atoms": "^1.0.0" + } + }, + "strip-ansi": { + "version": "3.0.1", + "resolved": "https://registry.npmjs.org/strip-ansi/-/strip-ansi-3.0.1.tgz", + "integrity": "sha512-VhumSSbBqDTP8p2ZLKj40UjBCV4+v8bUSEpUb4KjRgWk9pbqGF4REFj6KEagidb2f/M6AzC0EmFyDNGaw9OCzg==", + "requires": { + "ansi-regex": "^2.0.0" + } + }, + "strip-bom": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/strip-bom/-/strip-bom-2.0.0.tgz", + "integrity": "sha512-kwrX1y7czp1E69n2ajbG65mIo9dqvJ+8aBQXOGVxqwvNbsXdFM6Lq37dLAY3mknUwru8CfcCbfOLL/gMo+fi3g==", + "dev": true, + "requires": { + "is-utf8": "^0.2.0" + } + }, + "strip-dirs": { + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/strip-dirs/-/strip-dirs-2.1.0.tgz", + "integrity": "sha512-JOCxOeKLm2CAS73y/U4ZeZPTkE+gNVCzKt7Eox84Iej1LT/2pTWYpZKJuxwQpvX1LiZb1xokNR7RLfuBAa7T3g==", + "requires": { + "is-natural-number": "^4.0.1" + } + }, + "strip-eof": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/strip-eof/-/strip-eof-1.0.0.tgz", + "integrity": "sha512-7FCwGGmx8mD5xQd3RPUvnSpUXHM3BWuzjtpD4TXsfcZ9EL4azvVVUscFYwD9nx8Kh+uCBC00XBtAykoMHwTh8Q==", + "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": "sha512-4gB8na07fecVVkOI6Rs4e7T6NOTki5EmL7TUduTs6bu3EdnSycntVJ4re8kgZA+wx9IueI2Y11bfbgwtzuE0KQ==", + "dev": true + }, + "strip-outer": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/strip-outer/-/strip-outer-1.0.1.tgz", + "integrity": "sha512-k55yxKHwaXnpYGsOzg4Vl8+tDrWylxDEpknGjhTiZB8dFRU5rTo9CAzeycivxV3s+zlTKwrs6WxMxR95n26kwg==", + "requires": { + "escape-string-regexp": "^1.0.2" + } + }, + "style-loader": { + "version": "0.23.1", + "resolved": "https://registry.npmjs.org/style-loader/-/style-loader-0.23.1.tgz", + "integrity": "sha512-XK+uv9kWwhZMZ1y7mysB+zoihsEj4wneFWAS5qoiLwzW0WzSqMrrsIy+a3zkQJq0ipFtBpX5W3MqyRIBF/WFGg==", + "requires": { + "loader-utils": "^1.1.0", + "schema-utils": "^1.0.0" + }, + "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==", + "requires": { + "ajv": "^6.1.0", + "ajv-errors": "^1.0.0", + "ajv-keywords": "^3.1.0" + } + } + } + }, + "supports-color": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-2.0.0.tgz", + "integrity": "sha512-KKNVtd6pCYgPIKU4cp2733HWYCpplQhddZLBUryaAHou723x+FRzQ5Df824Fj+IyyuiQTRoub4SnIFfIcrp70g==" + }, + "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==" + }, + "symbol-observable": { + "version": "1.2.0", + "resolved": "https://registry.npmjs.org/symbol-observable/-/symbol-observable-1.2.0.tgz", + "integrity": "sha512-e900nM8RRtGhlV36KGEU9k65K3mPb1WV70OdjfxlG2EAuM1noi/E/BaW/uMhL7bPEssK8QV57vN3esixjUvcXQ==" + }, + "symbol-tree": { + "version": "3.2.4", + "resolved": "https://registry.npmjs.org/symbol-tree/-/symbol-tree-3.2.4.tgz", + "integrity": "sha512-9QNk5KwDF+Bvz+PyObkmSYjI5ksVUYtjW7AU22r2NKcfLJcXp96hkDWU3+XndOsUb+AQ9QhfzfCT2O+CNWT5Tw==", + "dev": true + }, + "table": { + "version": "5.4.6", + "resolved": "https://registry.npmjs.org/table/-/table-5.4.6.tgz", + "integrity": "sha512-wmEc8m4fjnob4gt5riFRtTu/6+4rSe12TpAELNSqHMfF3IqnA+CH37USM6/YR3qRZv7e56kAEAtd6nKZaxe0Ug==", + "dev": true, + "requires": { + "ajv": "^6.10.2", + "lodash": "^4.17.14", + "slice-ansi": "^2.1.0", + "string-width": "^3.0.0" + }, + "dependencies": { + "ansi-regex": { + "version": "4.1.1", + "resolved": "https://registry.npmjs.org/ansi-regex/-/ansi-regex-4.1.1.tgz", + "integrity": "sha512-ILlv4k/3f6vfQ4OoP2AGvirOktlQ98ZEL1k9FaQjxa3L1abBgbuTDAdPOpvbGncC0BTVQrl+OM8xZGK6tWXt7g==", + "dev": true + }, + "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" + } + }, + "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" + } + } + } + }, + "tapable": { + "version": "0.1.10", + "resolved": "https://registry.npmjs.org/tapable/-/tapable-0.1.10.tgz", + "integrity": "sha512-jX8Et4hHg57mug1/079yitEKWGB3LCwoxByLsNim89LABq8NqgiX+6iYVOsq0vX8uJHkU+DZ5fnq95f800bEsQ==", + "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==", + "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==" + }, + "yallist": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/yallist/-/yallist-4.0.0.tgz", + "integrity": "sha512-3wdGidZyq5PB084XLES5TpOSRA3wjXAlIWMhum2kRcv/41Sn2emQ0dycQW4uZXLejwKvg6EsvbdlVL+FYEct7A==" + } + } + }, + "tar-stream": { + "version": "1.6.2", + "resolved": "https://registry.npmjs.org/tar-stream/-/tar-stream-1.6.2.tgz", + "integrity": "sha512-rzS0heiNf8Xn7/mpdSVVSMAWAoy9bfb1WOTYC78Z0UQKeKa/CWS8FOq0lKGNa8DWKAn9gxjCvMLYc5PGXYlK2A==", + "requires": { + "bl": "^1.0.0", + "buffer-alloc": "^1.2.0", + "end-of-stream": "^1.0.0", + "fs-constants": "^1.0.0", + "readable-stream": "^2.3.0", + "to-buffer": "^1.1.1", + "xtend": "^4.0.0" + } + }, + "tcp-port-used": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/tcp-port-used/-/tcp-port-used-1.0.2.tgz", + "integrity": "sha512-l7ar8lLUD3XS1V2lfoJlCBaeoaWo/2xfYt81hM7VlvR4RrMVFqfmzfhLVk40hAb368uitje5gPtBRL1m/DGvLA==", + "dev": true, + "requires": { + "debug": "4.3.1", + "is2": "^2.0.6" + }, + "dependencies": { + "debug": { + "version": "4.3.1", + "resolved": "https://registry.npmjs.org/debug/-/debug-4.3.1.tgz", + "integrity": "sha512-doEwdvm4PCeK4K3RQN2ZC2BYUBaxwLARCqZmMjtF8a51J2Rb0xpVloFRnCODwqjpwnAoao4pelN8l3RJdv3gRQ==", + "dev": true, + "requires": { + "ms": "2.1.2" + } + }, + "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 + } + } + }, + "terser": { + "version": "4.8.1", + "resolved": "https://registry.npmjs.org/terser/-/terser-4.8.1.tgz", + "integrity": "sha512-4GnLC0x667eJG0ewJTa6z/yXrbLGv80D9Ru6HIpCQmO+Q4PfEtBFi0ObSckqwL6VyQv/7ENJieXHo2ANmdQwgw==", + "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==" + }, + "source-map": { + "version": "0.6.1", + "resolved": "https://registry.npmjs.org/source-map/-/source-map-0.6.1.tgz", + "integrity": "sha512-UjgapumWlbMhkBgzT7Ykc5YXUT46F0iKu8SGXq0bcwP5dz/h0Plj6enJqjz1Zbq2l5WaqYnrVbwWOWMyF3F47g==" + } + } + }, + "terser-webpack-plugin": { + "version": "1.4.6", + "resolved": "https://registry.npmjs.org/terser-webpack-plugin/-/terser-webpack-plugin-1.4.6.tgz", + "integrity": "sha512-2lBVf/VMVIddjSn3GqbT90GvIJ/eYXJkt8cTzU7NbjKqK8fwv18Ftr4PlbF46b/e88743iZFL5Dtr/rC4hjIeA==", + "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" + }, + "dependencies": { + "cacache": { + "version": "12.0.4", + "resolved": "https://registry.npmjs.org/cacache/-/cacache-12.0.4.tgz", + "integrity": "sha512-a0tMB40oefvuInr4Cwb3GerbL9xTj1D5yg0T5xrjGCGyfvbxseIXX7BAO/u/hIXdafzOI5JC3wDwHyf24buOAQ==", + "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==" + }, + "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==", + "requires": { + "commondir": "^1.0.1", + "make-dir": "^2.0.0", + "pkg-dir": "^3.0.0" + } + }, + "find-up": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/find-up/-/find-up-3.0.0.tgz", + "integrity": "sha512-1yD6RmLI1XBfxugvORwlck6f75tYL+iR0jqwsOrOxMZyGYqUuDhJ0l4AXdO1iX/FTs9cBAMEk1gWSEx1kSbylg==", + "requires": { + "locate-path": "^3.0.0" + } + }, + "locate-path": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/locate-path/-/locate-path-3.0.0.tgz", + "integrity": "sha512-7AO748wWnIhNqAuaty2ZWHkQHRSNfPVIsPIfwEOWO22AmaoVrWavlOcMR5nzTLNYvp36X220/maaRsrec1G65A==", + "requires": { + "p-locate": "^3.0.0", + "path-exists": "^3.0.0" + } + }, + "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" + } + }, + "p-limit": { + "version": "2.3.0", + "resolved": "https://registry.npmjs.org/p-limit/-/p-limit-2.3.0.tgz", + "integrity": "sha512-//88mFWSJx8lxCzwdAABTJL2MyWB12+eIY7MDL2SqLmAkeKU9qxRvWuSyTjm3FUmpBEMuFfckAIqEaVGUDxb6w==", + "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==", + "requires": { + "p-limit": "^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==", + "requires": { + "find-up": "^3.0.0" + } + }, + "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==", + "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==", + "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==" + }, + "ssri": { + "version": "6.0.2", + "resolved": "https://registry.npmjs.org/ssri/-/ssri-6.0.2.tgz", + "integrity": "sha512-cepbSq/neFK7xB6A50KHN0xHDotYzq58wWCa5LeWqnPrHG8GzfEjO/4O8kpmcGW+oaxkvhEJCWgbgNk4/ZV93Q==", + "requires": { + "figgy-pudding": "^3.5.1" + } + }, + "webpack-sources": { + "version": "1.4.3", + "resolved": "https://registry.npmjs.org/webpack-sources/-/webpack-sources-1.4.3.tgz", + "integrity": "sha512-lgTS3Xhv1lCOKo7SA5TjKXMjpSM4sBjNV5+q2bqesbSPs5FjGmU6jjtBSkX9b4qW87vDIsCIlUPOEhbZrMdjeQ==", + "requires": { + "source-list-map": "^2.0.0", + "source-map": "~0.6.1" + } + }, + "y18n": { + "version": "4.0.3", + "resolved": "https://registry.npmjs.org/y18n/-/y18n-4.0.3.tgz", + "integrity": "sha512-JKhqTOwSrqNA1NY5lSztJ1GrBiUodLMmIZuLiDaMRJ+itFd+ABVE8XBjOvIWL+rSqNDC74LCSFmlb/U4UZ4hJQ==" + } + } + }, + "test-exclude": { + "version": "4.2.3", + "resolved": "https://registry.npmjs.org/test-exclude/-/test-exclude-4.2.3.tgz", + "integrity": "sha512-SYbXgY64PT+4GAL2ocI3HwPa4Q4TBKm0cwAVeKOt/Aoc0gSpNRjJX8w0pA1LMKZ3LBmd8pYBqApFNQLII9kavA==", + "dev": true, + "requires": { + "arrify": "^1.0.1", + "micromatch": "^2.3.11", + "object-assign": "^4.1.0", + "read-pkg-up": "^1.0.1", + "require-main-filename": "^1.0.1" + }, + "dependencies": { + "arr-diff": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/arr-diff/-/arr-diff-2.0.0.tgz", + "integrity": "sha512-dtXTVMkh6VkEEA7OhXnN1Ecb8aAGFdZ1LFxtOCoqj4qkyOJMt7+qs6Ahdy6p/NQCPYsRSXXivhSB/J5E9jmYKA==", + "dev": true, + "requires": { + "arr-flatten": "^1.0.1" + } + }, + "array-unique": { + "version": "0.2.1", + "resolved": "https://registry.npmjs.org/array-unique/-/array-unique-0.2.1.tgz", + "integrity": "sha512-G2n5bG5fSUCpnsXz4+8FUkYsGPkNfLn9YvS66U5qbTIXI2Ynnlo4Bi42bWv+omKUCqz+ejzfClwne0alJWJPhg==", + "dev": true + }, + "braces": { + "version": "1.8.5", + "resolved": "https://registry.npmjs.org/braces/-/braces-1.8.5.tgz", + "integrity": "sha512-xU7bpz2ytJl1bH9cgIurjpg/n8Gohy9GTw81heDYLJQ4RU60dlyJsa+atVF2pI0yMMvKxI9HkKwjePCj5XI1hw==", + "dev": true, + "requires": { + "expand-range": "^1.8.1", + "preserve": "^0.2.0", + "repeat-element": "^1.1.2" + } + }, + "expand-brackets": { + "version": "0.1.5", + "resolved": "https://registry.npmjs.org/expand-brackets/-/expand-brackets-0.1.5.tgz", + "integrity": "sha512-hxx03P2dJxss6ceIeri9cmYOT4SRs3Zk3afZwWpOsRqLqprhTR8u++SlC+sFGsQr7WGFPdMF7Gjc1njDLDK6UA==", + "dev": true, + "requires": { + "is-posix-bracket": "^0.1.0" + } + }, + "extglob": { + "version": "0.3.2", + "resolved": "https://registry.npmjs.org/extglob/-/extglob-0.3.2.tgz", + "integrity": "sha512-1FOj1LOwn42TMrruOHGt18HemVnbwAmAak7krWk+wa93KXxGbK+2jpezm+ytJYDaBX0/SPLZFHKM7m+tKobWGg==", + "dev": true, + "requires": { + "is-extglob": "^1.0.0" + } + }, + "find-up": { + "version": "1.1.2", + "resolved": "https://registry.npmjs.org/find-up/-/find-up-1.1.2.tgz", + "integrity": "sha512-jvElSjyuo4EMQGoTwo1uJU5pQMwTW5lS1x05zzfJuTIyLR3zwO27LYrxNg+dlvKpGOuGy/MzBdXh80g0ve5+HA==", + "dev": true, + "requires": { + "path-exists": "^2.0.0", + "pinkie-promise": "^2.0.0" + } + }, + "is-extglob": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/is-extglob/-/is-extglob-1.0.0.tgz", + "integrity": "sha512-7Q+VbVafe6x2T+Tu6NcOf6sRklazEPmBoB3IWk3WdGZM2iGUwU/Oe3Wtq5lSEkDTTlpp8yx+5t4pzO/i9Ty1ww==", + "dev": true + }, + "is-glob": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/is-glob/-/is-glob-2.0.1.tgz", + "integrity": "sha512-a1dBeB19NXsf/E0+FHqkagizel/LQw2DjSQpvQrj3zT+jYPpaUCryPnrQajXKFLCMuf4I6FhRpaGtw4lPrG6Eg==", + "dev": true, + "requires": { + "is-extglob": "^1.0.0" + } + }, + "load-json-file": { + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/load-json-file/-/load-json-file-1.1.0.tgz", + "integrity": "sha512-cy7ZdNRXdablkXYNI049pthVeXFurRyb9+hA/dZzerZ0pGTx42z+y+ssxBaVV2l70t1muq5IdKhn4UtcoGUY9A==", + "dev": true, + "requires": { + "graceful-fs": "^4.1.2", + "parse-json": "^2.2.0", + "pify": "^2.0.0", + "pinkie-promise": "^2.0.0", + "strip-bom": "^2.0.0" + } + }, + "micromatch": { + "version": "2.3.11", + "resolved": "https://registry.npmjs.org/micromatch/-/micromatch-2.3.11.tgz", + "integrity": "sha512-LnU2XFEk9xxSJ6rfgAry/ty5qwUTyHYOBU0g4R6tIw5ljwgGIBmiKhRWLw5NpMOnrgUNcDJ4WMp8rl3sYVHLNA==", + "dev": true, + "requires": { + "arr-diff": "^2.0.0", + "array-unique": "^0.2.1", + "braces": "^1.8.2", + "expand-brackets": "^0.1.4", + "extglob": "^0.3.1", + "filename-regex": "^2.0.0", + "is-extglob": "^1.0.0", + "is-glob": "^2.0.1", + "kind-of": "^3.0.2", + "normalize-path": "^2.0.1", + "object.omit": "^2.0.0", + "parse-glob": "^3.0.4", + "regex-cache": "^0.4.2" + } + }, + "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" + } + }, + "parse-json": { + "version": "2.2.0", + "resolved": "https://registry.npmjs.org/parse-json/-/parse-json-2.2.0.tgz", + "integrity": "sha512-QR/GGaKCkhwk1ePQNYDRKYZ3mwU9ypsKhB0XyFnLQdomyEqk3e8wpW3V5Jp88zbxK4n5ST1nqo+g9juTpownhQ==", + "dev": true, + "requires": { + "error-ex": "^1.2.0" + } + }, + "path-exists": { + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/path-exists/-/path-exists-2.1.0.tgz", + "integrity": "sha512-yTltuKuhtNeFJKa1PiRzfLAU5182q1y4Eb4XCJ3PBqyzEDkAZRzBrKKBct682ls9reBVHf9udYLN5Nd+K1B9BQ==", + "dev": true, + "requires": { + "pinkie-promise": "^2.0.0" + } + }, + "path-type": { + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/path-type/-/path-type-1.1.0.tgz", + "integrity": "sha512-S4eENJz1pkiQn9Znv33Q+deTOKmbl+jj1Fl+qiP/vYezj+S8x+J3Uo0ISrx/QoEvIlOaDWJhPaRd1flJ9HXZqg==", + "dev": true, + "requires": { + "graceful-fs": "^4.1.2", + "pify": "^2.0.0", + "pinkie-promise": "^2.0.0" + } + }, + "pify": { + "version": "2.3.0", + "resolved": "https://registry.npmjs.org/pify/-/pify-2.3.0.tgz", + "integrity": "sha512-udgsAY+fTnvv7kI7aaxbqwWNb0AHiB0qBO89PZKPkoTmGOgdbrHDKD+0B2X4uTfJ/FT1R09r9gTsjUjNJotuog==", + "dev": true + }, + "read-pkg": { + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/read-pkg/-/read-pkg-1.1.0.tgz", + "integrity": "sha512-7BGwRHqt4s/uVbuyoeejRn4YmFnYZiFl4AuaeXHlgZf3sONF0SOGlxs2Pw8g6hCKupo08RafIO5YXFNOKTfwsQ==", + "dev": true, + "requires": { + "load-json-file": "^1.0.0", + "normalize-package-data": "^2.3.2", + "path-type": "^1.0.0" + } + }, + "read-pkg-up": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/read-pkg-up/-/read-pkg-up-1.0.1.tgz", + "integrity": "sha512-WD9MTlNtI55IwYUS27iHh9tK3YoIVhxis8yKhLpTqWtml739uXc9NWTpxoHkfZf3+DkCCsXox94/VWZniuZm6A==", + "dev": true, + "requires": { + "find-up": "^1.0.0", + "read-pkg": "^1.0.0" + } + } + } + }, + "text-encoding": { + "version": "0.7.0", + "resolved": "https://registry.npmjs.org/text-encoding/-/text-encoding-0.7.0.tgz", + "integrity": "sha512-oJQ3f1hrOnbRLOcwKz0Liq2IcrvDeZRHXhd9RgLrsT+DjWY/nty1Hi7v3dtkaEYbPYe0mUoOfzRrMwfXXwgPUA==" + }, + "text-table": { + "version": "0.2.0", + "resolved": "https://registry.npmjs.org/text-table/-/text-table-0.2.0.tgz", + "integrity": "sha512-N+8UisAXDGk8PFXP4HAzVR9nbfmVJ3zYLAWiTIoqC5v5isinhr+r5uaO8+7r3BMfuNIufIsA7RdpVgacC2cSpw==", + "dev": true + }, + "theia": { + "version": "git+ssh://git@github.com/FreshPenguin112/theia-pnpm.git#13571e769ea006f4061f0eaf316cf3c7d214bad6", + "from": "theia@github:FreshPenguin112/theia-pnpm#master", + "requires": { + "chalk": "^1.0.0", + "inquirer": "^0.8.2", + "pnpm": "^7.18.2", + "q": "^1.2.0", + "yargs": "^3.7.0" + }, + "dependencies": { + "ansi-regex": { + "version": "1.1.1", + "resolved": "https://registry.npmjs.org/ansi-regex/-/ansi-regex-1.1.1.tgz", + "integrity": "sha512-q5i8bFLg2wDfsuR56c1NzlJFPzVD+9mxhDrhqOGigEFa87OZHlF+9dWeGWzVTP/0ECiA/JUGzfzRr2t3eYORRw==" + }, + "camelcase": { + "version": "2.1.1", + "resolved": "https://registry.npmjs.org/camelcase/-/camelcase-2.1.1.tgz", + "integrity": "sha512-DLIsRzJVBQu72meAKPkWQOLcujdXT32hwdfnkI1frSiSRMK1MofjKHf+MEx0SB6fjEFXL8fBDv1dKymBlOp4Qw==" + }, + "cli-width": { + "version": "1.1.1", + "resolved": "https://registry.npmjs.org/cli-width/-/cli-width-1.1.1.tgz", + "integrity": "sha512-eMU2akIeEIkCxGXUNmDnJq1KzOIiPnJ+rKqRe6hcxE3vIOPvpMrBYOn/Bl7zNlYJj/zQxXquAnozHUCf9Whnsg==" + }, + "figures": { + "version": "1.7.0", + "resolved": "https://registry.npmjs.org/figures/-/figures-1.7.0.tgz", + "integrity": "sha512-UxKlfCRuCBxSXU4C6t9scbDyWZ4VlaFFdojKtzJuSkuOBQ5CNFum+zZXFwHjo+CxBC1t6zlYPgHIgFjL8ggoEQ==", + "requires": { + "escape-string-regexp": "^1.0.5", + "object-assign": "^4.1.0" + } + }, + "inquirer": { + "version": "0.8.5", + "resolved": "https://registry.npmjs.org/inquirer/-/inquirer-0.8.5.tgz", + "integrity": "sha512-+rksrtdqQ8do7yOsmP5YIgbSdbZYuCIrnfH5vjFYGAr1XgJpMksb3rFZMJ3jiKuUyDVEA4MVDYbkA3ribJn3Tg==", + "requires": { + "ansi-regex": "^1.1.1", + "chalk": "^1.0.0", + "cli-width": "^1.0.1", + "figures": "^1.3.5", + "lodash": "^3.3.1", + "readline2": "^0.1.1", + "rx": "^2.4.3", + "through": "^2.3.6" + } + }, + "is-fullwidth-code-point": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/is-fullwidth-code-point/-/is-fullwidth-code-point-1.0.0.tgz", + "integrity": "sha512-1pqUqRjkhPJ9miNq9SwMfdvi6lBJcd6eFxvfaivQhaH3SgisfiuudvFntdKOmxuee/77l+FPjKrQjWvmPjWrRw==", + "requires": { + "number-is-nan": "^1.0.0" + } + }, + "lodash": { + "version": "3.10.1", + "resolved": "https://registry.npmjs.org/lodash/-/lodash-3.10.1.tgz", + "integrity": "sha512-9mDDwqVIma6OZX79ZlDACZl8sBm0TEnkf99zV3iMA4GzkIT/9hiqP5mY0HoT1iNLCrKc/R1HByV+yJfRWVJryQ==" + }, + "os-locale": { + "version": "1.4.0", + "resolved": "https://registry.npmjs.org/os-locale/-/os-locale-1.4.0.tgz", + "integrity": "sha512-PRT7ZORmwu2MEFt4/fv3Q+mEfN4zetKxufQrkShY2oGvUms9r8otu5HfdyIFHkYXjO7laNsoVGmM2MANfuTA8g==", + "requires": { + "lcid": "^1.0.0" + } + }, + "string-width": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/string-width/-/string-width-1.0.2.tgz", + "integrity": "sha512-0XsVpQLnVCXHJfyEs8tC0zpTVIr5PKKsQtkT29IwupnPTjtPmQ3xT/4yCREF9hYkV/3M3kzcUTSAZT6a6h81tw==", + "requires": { + "code-point-at": "^1.0.0", + "is-fullwidth-code-point": "^1.0.0", + "strip-ansi": "^3.0.0" + } + }, + "yargs": { + "version": "3.32.0", + "resolved": "https://registry.npmjs.org/yargs/-/yargs-3.32.0.tgz", + "integrity": "sha512-ONJZiimStfZzhKamYvR/xvmgW3uEkAUFSP91y2caTEPhzF6uP2JfPiVZcq66b/YR0C3uitxSV7+T1x8p5bkmMg==", + "requires": { + "camelcase": "^2.0.1", + "cliui": "^3.0.3", + "decamelize": "^1.1.1", + "os-locale": "^1.4.0", + "string-width": "^1.0.1", + "window-size": "^0.1.4", + "y18n": "^3.2.0" + } + } + } + }, + "three": { + "version": "0.153.0", + "resolved": "https://registry.npmjs.org/three/-/three-0.153.0.tgz", + "integrity": "sha512-OCP2/uQR6GcDpSLnJt/3a4mdS0kNWcbfUXIwLoEMgLzEUIVIYsSDwskpmOii/AkDM+BBwrl6+CKgrjX9+E2aWg==" + }, + "three-mesh-bvh": { + "version": "0.6.0", + "resolved": "https://registry.npmjs.org/three-mesh-bvh/-/three-mesh-bvh-0.6.0.tgz", + "integrity": "sha512-4/oXeqVMLuN9/P0M3L5ezIVrFiXQXKvjVTErkiSYMjSaPoWfNPAwqulSgLf4bIUPn8/Lq3rmIJwxbCuD8qDobA==", + "requires": {} + }, + "throat": { + "version": "4.1.0", + "resolved": "https://registry.npmjs.org/throat/-/throat-4.1.0.tgz", + "integrity": "sha512-wCVxLDcFxw7ujDxaeJC6nfl2XfHJNYs8yUYJnvMgtPEFlttP9tHSfRUv2vBe6C4hkVFPWoP1P6ZccbYjmSEkKA==", + "dev": true + }, + "through": { + "version": "2.3.8", + "resolved": "https://registry.npmjs.org/through/-/through-2.3.8.tgz", + "integrity": "sha512-w89qg7PI8wAdvX60bMDP+bFoD5Dvhm9oLheFp5O4a2QF0cSBGsBX4qZmadPMvVqlLJBBci+WqGGOAPvcDeNSVg==" + }, + "through2": { + "version": "2.0.5", + "resolved": "https://registry.npmjs.org/through2/-/through2-2.0.5.tgz", + "integrity": "sha512-/mrRod8xqpA+IHSLyGCQ2s8SPHiCDEeQJSep1jqLYeEUClOFG2Qsh+4FU6G9VeqpZnGW/Su8LQGc4YKni5rYSQ==", + "requires": { + "readable-stream": "~2.3.6", + "xtend": "~4.0.1" + } + }, + "thunky": { + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/thunky/-/thunky-1.1.0.tgz", + "integrity": "sha512-eHY7nBftgThBqOyHGVN+l8gF0BucP09fMo0oO/Lb0w1OF80dJv+lDVpXG60WMQvkcxAkNybKsrEIE3ZtKGmPrA==", + "dev": true + }, + "timed-out": { + "version": "4.0.1", + "resolved": "https://registry.npmjs.org/timed-out/-/timed-out-4.0.1.tgz", + "integrity": "sha512-G7r3AhovYtr5YKOWQkta8RKAPb+J9IsO4uVmzjl8AZwfhs8UcUwTiD6gcJYSgOtzyjvQKrKYn41syHbUWMkafA==" + }, + "timers-browserify": { + "version": "2.0.12", + "resolved": "https://registry.npmjs.org/timers-browserify/-/timers-browserify-2.0.12.tgz", + "integrity": "sha512-9phl76Cqm6FhSX9Xe1ZUAMLtm1BLkKj2Qd5ApyWkXzsMRaA7dgr81kf4wJmQf/hAvg8EEyJxDo3du/0KlhPiKQ==", + "requires": { + "setimmediate": "^1.0.4" + } + }, + "tiny-emitter": { + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/tiny-emitter/-/tiny-emitter-2.1.0.tgz", + "integrity": "sha512-NB6Dk1A9xgQPMoGqC5CVXn123gWyte215ONT5Pp5a0yt4nlEoO1ZWeCwpncaekPHXO60i47ihFnZPiRPjRMq4Q==" + }, + "tiny-inflate": { + "version": "1.0.3", + "resolved": "https://registry.npmjs.org/tiny-inflate/-/tiny-inflate-1.0.3.tgz", + "integrity": "sha512-pkY1fj1cKHb2seWDy0B16HeWyczlJA9/WW3u3c4z/NiWDsO3DOU5D7nhTLE9CF0yXv/QZFY7sEJmj24dK+Rrqw==" + }, + "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" + } + }, + "tmpl": { + "version": "1.0.5", + "resolved": "https://registry.npmjs.org/tmpl/-/tmpl-1.0.5.tgz", + "integrity": "sha512-3f0uOEAQwIqGuWW2MVzYg8fV/QNnc/IpuJNG837rLuczAaLVHslWHZQj4IGiEl5Hs3kkbhwL9Ab7Hrsmuj+Smw==", + "dev": true + }, + "to-arraybuffer": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/to-arraybuffer/-/to-arraybuffer-1.0.1.tgz", + "integrity": "sha512-okFlQcoGTi4LQBG/PgSYblw9VOyptsz2KJZqc6qtgGdes8VktzUQkj4BI2blit072iS8VODNcMA+tvnS9dnuMA==" + }, + "to-buffer": { + "version": "1.1.1", + "resolved": "https://registry.npmjs.org/to-buffer/-/to-buffer-1.1.1.tgz", + "integrity": "sha512-lx9B5iv7msuFYE3dytT+KE5tap+rNYw+K4jVkb9R/asAb+pbBSM17jtunHplhBe6RRJdZx3Pn2Jph24O32mOVg==" + }, + "to-fast-properties": { + "version": "1.0.3", + "resolved": "https://registry.npmjs.org/to-fast-properties/-/to-fast-properties-1.0.3.tgz", + "integrity": "sha512-lxrWP8ejsq+7E3nNjwYmUBMAgjMTZoTI+sdBOpvNyijeDLa29LUn9QaoXAHv4+Z578hbmHHJKZknzxVtvo77og==", + "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": "sha512-9mWHdnGRuh3onocaHzukyvCZhzvr6tiflAy/JRFXcJX0TjgfWA9pk9t8CMbzmBE4Jfw58pXbkngtBtqYxzNEyg==", + "requires": { + "kind-of": "^3.0.2" + } + }, + "to-regex": { + "version": "3.0.2", + "resolved": "https://registry.npmjs.org/to-regex/-/to-regex-3.0.2.tgz", + "integrity": "sha512-FWtleNAtZ/Ki2qtqej2CXTOayOH9bHDQF+Q48VpWyDXjbYxA4Yz8iDB31zXOBUlOHHKidDbqGVrTUvQMPmBGBw==", + "requires": { + "define-property": "^2.0.2", + "extend-shallow": "^3.0.2", + "regex-not": "^1.0.2", + "safe-regex": "^1.1.0" + }, + "dependencies": { + "extend-shallow": { + "version": "3.0.2", + "resolved": "https://registry.npmjs.org/extend-shallow/-/extend-shallow-3.0.2.tgz", + "integrity": "sha512-BwY5b5Ql4+qZoefgMj2NUmx+tehVTH/Kf4k1ZEtOHNFcm2wSxMRo992l6X3TIgni2eZVTZ85xMOjF31fwZAj6Q==", + "requires": { + "assign-symbols": "^1.0.0", + "is-extendable": "^1.0.1" + } + }, + "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==", + "requires": { + "is-plain-object": "^2.0.4" + } + } + } + }, + "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==", + "requires": { + "is-number": "^3.0.0", + "repeat-string": "^1.6.1" + } + }, + "to-style": { + "version": "1.3.3", + "resolved": "https://registry.npmjs.org/to-style/-/to-style-1.3.3.tgz", + "integrity": "sha512-9K8KYegr9hrdm8yPpu5iZjJp5t6RPAp4gFDU5hD9zR8hwqgF4fsoSitMtkRKQG2qkP5j/uG3wajbgV09rjmIqg==" + }, + "toidentifier": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/toidentifier/-/toidentifier-1.0.1.tgz", + "integrity": "sha512-o5sSPKEkg/DIQNmH43V0/uerLrpzVedkUh8tGNvaeXpfpuwjKenlSox/2O/BTlZUtEe+JG7s5YhEz608PlAHRA==", + "dev": true + }, + "tone": { + "version": "14.9.17", + "resolved": "https://registry.npmjs.org/tone/-/tone-14.9.17.tgz", + "integrity": "sha512-+Qb7M4NMua+tb5Z52+MEVmjye0fjJuIFBePx423pqr9E6/lHDqZAG+fUAvo+Ujm48q0s9bVLRAyT1ETJJglNtg==", + "requires": { + "standardized-audio-context": "^25.3.70", + "tslib": "^2.3.1" + } + }, + "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==", + "requires": { + "psl": "^1.1.28", + "punycode": "^2.1.1" + }, + "dependencies": { + "punycode": { + "version": "2.3.1", + "resolved": "https://registry.npmjs.org/punycode/-/punycode-2.3.1.tgz", + "integrity": "sha512-vYt7UD1U9Wg6138shLtLOvdAu+8DsC/ilFtEVHcH+wydcSpNE20AfSOduf6MkRFahL5FY7X1oU7nKVZFtfq8Fg==" + } + } + }, + "tr46": { + "version": "0.0.3", + "resolved": "https://registry.npmjs.org/tr46/-/tr46-0.0.3.tgz", + "integrity": "sha512-N3WMsuqV66lT30CrXNbEjx4GEwlow3v6rr4mCcv6prnfwhS01rkgyFdjPNBYd9br7LpXV1+Emh01fHnq2Gdgrw==", + "dev": true + }, + "transformation-matrix": { + "version": "1.15.0", + "resolved": "https://registry.npmjs.org/transformation-matrix/-/transformation-matrix-1.15.0.tgz", + "integrity": "sha512-808EqPQbmUD6/IMpWUXLOZcblCHf9xaiB+un0RYNNE9+6VRjoiw6Be8R32tZ0ips1PX/15tlnA2Ev4UUgg827Q==" + }, + "transifex": { + "version": "1.6.6", + "resolved": "https://registry.npmjs.org/transifex/-/transifex-1.6.6.tgz", + "integrity": "sha512-uHeRvhfLfZN+JdH+X0zR1jkQAbMGkgExZgcXm31CzaVVd4kq98YaPr4MCgCU0LwA7cgOuB97d2HZQ/WikOAxlg==", + "requires": { + "commander": "^2.9.0", + "lodash": "^4.17.1", + "mkpath": "^1.0.0", + "mocha": "^4.0.0", + "request": "^2.34.0", + "should": "^13.0.0" + }, + "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==" + } + } + }, + "trim-repeated": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/trim-repeated/-/trim-repeated-1.0.0.tgz", + "integrity": "sha512-pkonvlKk8/ZuR0D5tLW8ljt5I8kmxp2XKymhepUeOdCEfKpZaktSArkLHZt76OB1ZvO9bssUsDty4SWhLvZpLg==", + "requires": { + "escape-string-regexp": "^1.0.2" + } + }, + "trim-right": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/trim-right/-/trim-right-1.0.1.tgz", + "integrity": "sha512-WZGXGstmCWgeevgTL54hrCuw1dyMQIzWy7ZfqRJfSmJZBwklI15egmQytFP6bPidmw3M8d5yEowl1niq4vmqZw==", + "dev": true + }, + "tsconfig-paths": { + "version": "3.15.0", + "resolved": "https://registry.npmjs.org/tsconfig-paths/-/tsconfig-paths-3.15.0.tgz", + "integrity": "sha512-2Ac2RgzDe/cn48GvOe3M+o82pEFewD3UPbyoUHHdKasHwJKjds4fLXWf/Ux5kATBKN20oaFGu+jbElp1pos0mg==", + "dev": true, + "requires": { + "@types/json5": "^0.0.29", + "json5": "^1.0.2", + "minimist": "^1.2.6", + "strip-bom": "^3.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, + "requires": { + "minimist": "^1.2.0" + } + }, + "strip-bom": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/strip-bom/-/strip-bom-3.0.0.tgz", + "integrity": "sha512-vavAMRXOgBVNF6nyEEmL3DBK19iRpDcoIwW+swQ+CbGiu7lju6t+JklA1MHweoWtadgt4ISVUsXLyDq34ddcwA==", + "dev": true + } + } + }, + "tslib": { + "version": "2.8.1", + "resolved": "https://registry.npmjs.org/tslib/-/tslib-2.8.1.tgz", + "integrity": "sha512-oJFu94HQb+KVduSUQL7wnpmqnfmLsOA/nAh6b6EH0wCEoK0/mPeXU6c3wKDV83MkOuHPRHtSXKKU99IBazS/2w==" + }, + "tty-browserify": { + "version": "0.0.0", + "resolved": "https://registry.npmjs.org/tty-browserify/-/tty-browserify-0.0.0.tgz", + "integrity": "sha512-JVa5ijo+j/sOoHGjw0sxw734b1LhBkQ3bvUGNdxnVXDCX81Yx7TFgnZygxrIIWn23hbfTaMYLwRmAxFyDuFmIw==" + }, + "tunnel-agent": { + "version": "0.6.0", + "resolved": "https://registry.npmjs.org/tunnel-agent/-/tunnel-agent-0.6.0.tgz", + "integrity": "sha512-McnNiV1l8RYeY8tBgEpuodCC1mLUdbSN+CYBL7kJsJNInOP8UjDDEwdk6Mw60vdLLrr5NHKZhMAOSrR2NZuQ+w==", + "requires": { + "safe-buffer": "^5.0.1" + } + }, + "tweetnacl": { + "version": "0.14.5", + "resolved": "https://registry.npmjs.org/tweetnacl/-/tweetnacl-0.14.5.tgz", + "integrity": "sha512-KXXFFdAbFXY4geFIwoyNK+f5Z1b7swfXABfL7HXCmoIWMKU3dmS26672A4EeQtDzLKy7SXmfBu51JolvEKwtGA==" + }, + "twgl.js": { + "version": "4.4.0", + "resolved": "https://registry.npmjs.org/twgl.js/-/twgl.js-4.4.0.tgz", + "integrity": "sha512-W+uFP2DyK2dNhE38PcpituNi8CBm+YO5gY6o/IWEILT7NNDTT1wo3YcMmydwiCfUbnT7tz+EcjV7KlZLgE1PlQ==" + }, + "type-check": { + "version": "0.3.2", + "resolved": "https://registry.npmjs.org/type-check/-/type-check-0.3.2.tgz", + "integrity": "sha512-ZCmOJdvOWDBYJlzAoFkC+Q0+bUyEOS1ltgp1MGU03fqHG+dbi9tBFU2Rd9QKiDZFAYrhPh2JUf7rZRIuHRKtOg==", + "requires": { + "prelude-ls": "~1.1.2" + } + }, + "type-is": { + "version": "1.6.18", + "resolved": "https://registry.npmjs.org/type-is/-/type-is-1.6.18.tgz", + "integrity": "sha512-TkRKr9sUTxEH8MdfuCSP7VizJyzRNMjj2J2do2Jr3Kym598JVdEksuzPQCnlFPW4ky9Q+iA+ma9BGm06XQBy8g==", + "dev": true, + "requires": { + "media-typer": "0.3.0", + "mime-types": "~2.1.24" + } + }, + "typed-array-buffer": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/typed-array-buffer/-/typed-array-buffer-1.0.2.tgz", + "integrity": "sha512-gEymJYKZtKXzzBzM4jqa9w6Q1Jjm7x2d+sh19AdsD4wqnMPDYyvwpsIc2Q/835kHuo3BEQ7CjelGhfTsoBb2MQ==", + "dev": true, + "requires": { + "call-bind": "^1.0.7", + "es-errors": "^1.3.0", + "is-typed-array": "^1.1.13" + } + }, + "typed-array-byte-length": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/typed-array-byte-length/-/typed-array-byte-length-1.0.1.tgz", + "integrity": "sha512-3iMJ9q0ao7WE9tWcaYKIptkNBuOIcZCCT0d4MRvuuH88fEoEH62IuQe0OtraD3ebQEoTRk8XCBoknUNc1Y67pw==", + "dev": true, + "requires": { + "call-bind": "^1.0.7", + "for-each": "^0.3.3", + "gopd": "^1.0.1", + "has-proto": "^1.0.3", + "is-typed-array": "^1.1.13" + } + }, + "typed-array-byte-offset": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/typed-array-byte-offset/-/typed-array-byte-offset-1.0.2.tgz", + "integrity": "sha512-Ous0vodHa56FviZucS2E63zkgtgrACj7omjwd/8lTEMEPFFyjfixMZ1ZXenpgCFBBt4EC1J2XsyVS2gkG0eTFA==", + "dev": true, + "requires": { + "available-typed-arrays": "^1.0.7", + "call-bind": "^1.0.7", + "for-each": "^0.3.3", + "gopd": "^1.0.1", + "has-proto": "^1.0.3", + "is-typed-array": "^1.1.13" + } + }, + "typed-array-length": { + "version": "1.0.6", + "resolved": "https://registry.npmjs.org/typed-array-length/-/typed-array-length-1.0.6.tgz", + "integrity": "sha512-/OxDN6OtAk5KBpGb28T+HZc2M+ADtvRxXrKKbUwtsLgdoxgX13hyy7ek6bFRl5+aBs2yZzB0c4CnQfAtVypW/g==", + "dev": true, + "requires": { + "call-bind": "^1.0.7", + "for-each": "^0.3.3", + "gopd": "^1.0.1", + "has-proto": "^1.0.3", + "is-typed-array": "^1.1.13", + "possible-typed-array-names": "^1.0.0" + } + }, + "typed-function": { + "version": "4.2.1", + "resolved": "https://registry.npmjs.org/typed-function/-/typed-function-4.2.1.tgz", + "integrity": "sha512-EGjWssW7Tsk4DGfE+5yluuljS1OGYWiI1J6e8puZz9nTMM51Oug8CD5Zo4gWMsOhq5BI+1bF+rWTm4Vbj3ivRA==" + }, + "typedarray": { + "version": "0.0.6", + "resolved": "https://registry.npmjs.org/typedarray/-/typedarray-0.0.6.tgz", + "integrity": "sha512-/aCDEGatGvZ2BIk+HmLf4ifCJFwvKFNb9/JeZPMulfgFracn9QFcAf5GO8B/mweUjSoblS5In0cWhqpfs/5PQA==" + }, + "ua-parser-js": { + "version": "0.7.39", + "resolved": "https://registry.npmjs.org/ua-parser-js/-/ua-parser-js-0.7.39.tgz", + "integrity": "sha512-IZ6acm6RhQHNibSt7+c09hhvsKy9WUr4DVbeq9U8o71qxyYtJpQeDxQnMrVqnIFMLcQjHO0I9wgfO2vIahht4w==", + "dev": true + }, + "uglify-es": { + "version": "3.3.9", + "resolved": "https://registry.npmjs.org/uglify-es/-/uglify-es-3.3.9.tgz", + "integrity": "sha512-r+MU0rfv4L/0eeW3xZrd16t4NZfK8Ld4SWVglYBb7ez5uXFWHuVRs6xCTrf1yirs9a4j4Y27nn7SRfO6v67XsQ==", + "dev": true, + "requires": { + "commander": "~2.13.0", + "source-map": "~0.6.1" + }, + "dependencies": { + "commander": { + "version": "2.13.0", + "resolved": "https://registry.npmjs.org/commander/-/commander-2.13.0.tgz", + "integrity": "sha512-MVuS359B+YzaWqjCL/c+22gfryv+mCBPHAv3zyVI2GN8EY6IRP8VwtasXn8jyyhvvq84R4ImN1OKRtcbIasjYA==", + "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 + } + } + }, + "uglify-js": { + "version": "3.19.3", + "resolved": "https://registry.npmjs.org/uglify-js/-/uglify-js-3.19.3.tgz", + "integrity": "sha512-v3Xu+yuwBXisp6QYTcH4UbH+xYJXqnq2m/LtQVWKWzYc1iehYnLixoQDN9FH6/j9/oybfd6W9Ghwkl8+UMKTKQ==", + "dev": true, + "optional": true + }, + "uglifyjs-webpack-plugin": { + "version": "1.3.0", + "resolved": "https://registry.npmjs.org/uglifyjs-webpack-plugin/-/uglifyjs-webpack-plugin-1.3.0.tgz", + "integrity": "sha512-ovHIch0AMlxjD/97j9AYovZxG5wnHOPkL7T1GKochBADp/Zwc44pEWNqpKl1Loupp1WhFg7SlYmHZRUfdAacgw==", + "dev": true, + "requires": { + "cacache": "^10.0.4", + "find-cache-dir": "^1.0.0", + "schema-utils": "^0.4.5", + "serialize-javascript": "^1.4.0", + "source-map": "^0.6.1", + "uglify-es": "^3.3.4", + "webpack-sources": "^1.1.0", + "worker-farm": "^1.5.2" + }, + "dependencies": { + "cacache": { + "version": "10.0.4", + "resolved": "https://registry.npmjs.org/cacache/-/cacache-10.0.4.tgz", + "integrity": "sha512-Dph0MzuH+rTQzGPNT9fAnrPmMmjKfST6trxJeK7NQuHRaVw24VzPRWTmg9MpcwOVQZO0E1FBICUlFeNaKPIfHA==", + "dev": true, + "requires": { + "bluebird": "^3.5.1", + "chownr": "^1.0.1", + "glob": "^7.1.2", + "graceful-fs": "^4.1.11", + "lru-cache": "^4.1.1", + "mississippi": "^2.0.0", + "mkdirp": "^0.5.1", + "move-concurrently": "^1.0.1", + "promise-inflight": "^1.0.1", + "rimraf": "^2.6.2", + "ssri": "^5.2.4", + "unique-filename": "^1.1.0", + "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 + }, + "find-cache-dir": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/find-cache-dir/-/find-cache-dir-1.0.0.tgz", + "integrity": "sha512-46TFiBOzX7xq/PcSWfFwkyjpemdRnMe31UQF+os0y+1W3k95f6R4SEt02Hj4p3X0Mir9gfrkmOtshFidS0VPUg==", + "dev": true, + "requires": { + "commondir": "^1.0.1", + "make-dir": "^1.0.0", + "pkg-dir": "^2.0.0" + } + }, + "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==", + "dev": true, + "requires": { + "pseudomap": "^1.0.2", + "yallist": "^2.1.2" + } + }, + "make-dir": { + "version": "1.3.0", + "resolved": "https://registry.npmjs.org/make-dir/-/make-dir-1.3.0.tgz", + "integrity": "sha512-2w31R7SJtieJJnQtGc7RVL2StM2vGYVfqUOvUDxH6bC6aJTxPxTF0GnIgCyu7tjockiUWAYQRbxa7vKn34s5sQ==", + "dev": true, + "requires": { + "pify": "^3.0.0" + } + }, + "mississippi": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/mississippi/-/mississippi-2.0.0.tgz", + "integrity": "sha512-zHo8v+otD1J10j/tC+VNoGK9keCuByhKovAvdn74dmxJl9+mWHnx6EMsDN4lgRoMI/eYo2nchAxniIbUPb5onw==", + "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": "^2.0.1", + "pumpify": "^1.3.3", + "stream-each": "^1.1.0", + "through2": "^2.0.0" + } + }, + "mkdirp": { + "version": "0.5.6", + "resolved": "https://registry.npmjs.org/mkdirp/-/mkdirp-0.5.6.tgz", + "integrity": "sha512-FP+p8RB8OWpF3YZBCrP5gtADmtXApB5AMLn+vdyA+PyxCjrCs00mjyUozssO33cwDeT3wNGdLxJ5M//YqtHAJw==", + "dev": true, + "requires": { + "minimist": "^1.2.6" + } + }, + "pify": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/pify/-/pify-3.0.0.tgz", + "integrity": "sha512-C3FsVNH1udSEX48gGX1xfvwTWfsYWj5U+8/uK15BGzIGrKoUpghX8hWZwa/OFnakBiiVNmBvemTJR5mcy7iPcg==", + "dev": true + }, + "pkg-dir": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/pkg-dir/-/pkg-dir-2.0.0.tgz", + "integrity": "sha512-ojakdnUgL5pzJYWw2AIDEupaQCX5OPbM688ZevubICjdIX01PRSYKqm33fJoCOJBRseYCTUlQRnBNX+Pchaejw==", + "dev": true, + "requires": { + "find-up": "^2.1.0" + } + }, + "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" + } + }, + "schema-utils": { + "version": "0.4.7", + "resolved": "https://registry.npmjs.org/schema-utils/-/schema-utils-0.4.7.tgz", + "integrity": "sha512-v/iwU6wvwGK8HbU9yi3/nhGzP0yGSuhQMzL6ySiec1FSrZZDkhm4noOSWzrNFo/jEc+SJY6jRTwuwbSXJPDUnQ==", + "dev": true, + "requires": { + "ajv": "^6.1.0", + "ajv-keywords": "^3.1.0" + } + }, + "serialize-javascript": { + "version": "1.9.1", + "resolved": "https://registry.npmjs.org/serialize-javascript/-/serialize-javascript-1.9.1.tgz", + "integrity": "sha512-0Vb/54WJ6k5v8sSWN09S0ora+Hnr+cX40r9F170nT+mSkaxltoE/7R3OrIdBSUv1OoiobH1QoWQbCnAO+e8J1A==", + "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 + }, + "ssri": { + "version": "5.3.0", + "resolved": "https://registry.npmjs.org/ssri/-/ssri-5.3.0.tgz", + "integrity": "sha512-XRSIPqLij52MtgoQavH/x/dU1qVKtWUAAZeOHsR9c2Ddi4XerFy3mc1alf+dLJKl9EUIm/Ht+EowFkTUOA6GAQ==", + "dev": true, + "requires": { + "safe-buffer": "^5.1.1" + } + }, + "webpack-sources": { + "version": "1.4.3", + "resolved": "https://registry.npmjs.org/webpack-sources/-/webpack-sources-1.4.3.tgz", + "integrity": "sha512-lgTS3Xhv1lCOKo7SA5TjKXMjpSM4sBjNV5+q2bqesbSPs5FjGmU6jjtBSkX9b4qW87vDIsCIlUPOEhbZrMdjeQ==", + "dev": true, + "requires": { + "source-list-map": "^2.0.0", + "source-map": "~0.6.1" + } + }, + "y18n": { + "version": "4.0.3", + "resolved": "https://registry.npmjs.org/y18n/-/y18n-4.0.3.tgz", + "integrity": "sha512-JKhqTOwSrqNA1NY5lSztJ1GrBiUodLMmIZuLiDaMRJ+itFd+ABVE8XBjOvIWL+rSqNDC74LCSFmlb/U4UZ4hJQ==", + "dev": true + }, + "yallist": { + "version": "2.1.2", + "resolved": "https://registry.npmjs.org/yallist/-/yallist-2.1.2.tgz", + "integrity": "sha512-ncTzHV7NvsQZkYe1DW7cbDLm0YpzHmZF5r/iyP3ZnQtMiJ+pjzisCiMNI+Sj+xQF5pXhSHxSB3uDbsBTzY/c2A==", + "dev": true + } + } + }, + "unbox-primitive": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/unbox-primitive/-/unbox-primitive-1.0.2.tgz", + "integrity": "sha512-61pPlCD9h51VoreyJ0BReideM3MDKMKnh6+V9L08331ipq6Q8OFXZYiqP6n/tbHx4s5I9uRhcye6BrbkizkBDw==", + "dev": true, + "requires": { + "call-bind": "^1.0.2", + "has-bigints": "^1.0.2", + "has-symbols": "^1.0.3", + "which-boxed-primitive": "^1.0.2" + } + }, + "unbzip2-stream": { + "version": "1.4.3", + "resolved": "https://registry.npmjs.org/unbzip2-stream/-/unbzip2-stream-1.4.3.tgz", + "integrity": "sha512-mlExGW4w71ebDJviH16lQLtZS32VKqsSfk80GCfUlwT/4/hNRFsoscrF/c++9xinkMzECL1uL9DDwXqFWkruPg==", + "requires": { + "buffer": "^5.2.1", + "through": "^2.3.8" + }, + "dependencies": { + "buffer": { + "version": "5.7.1", + "resolved": "https://registry.npmjs.org/buffer/-/buffer-5.7.1.tgz", + "integrity": "sha512-EHcyIPBQ4BSGlvjB16k5KgAJ27CIsHY/2JBmCRReo48y9rQ3MaUzWX3KVlBa4U7MyX02HdVj0K7C3WaB3ju7FQ==", + "requires": { + "base64-js": "^1.3.1", + "ieee754": "^1.1.13" + } + } + } + }, + "undici": { + "version": "6.21.0", + "resolved": "https://registry.npmjs.org/undici/-/undici-6.21.0.tgz", + "integrity": "sha512-BUgJXc752Kou3oOIuU1i+yZZypyZRqNPW0vqoMPl8VaoalSfeR0D8/t4iAS3yirs79SSMTxTag+ZC86uswv+Cw==", + "dev": true + }, + "undici-types": { + "version": "6.19.8", + "resolved": "https://registry.npmjs.org/undici-types/-/undici-types-6.19.8.tgz", + "integrity": "sha512-ve2KP6f/JnbPBFyobGHuerC9g1FYGn/F8n1LWTwNxCEzd6IfqTwUQcNXgEtmmQ6DlRrC1hrSrBnCZPokRrDHjw==" + }, + "unicode-canonical-property-names-ecmascript": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/unicode-canonical-property-names-ecmascript/-/unicode-canonical-property-names-ecmascript-2.0.1.tgz", + "integrity": "sha512-dA8WbNeb2a6oQzAQ55YlT5vQAWGV9WXOsi3SskE3bcCdM0P4SDd+24zS/OCacdRq5BkdsRj9q3Pg6YyQoxIGqg==", + "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.2.0", + "resolved": "https://registry.npmjs.org/unicode-match-property-value-ecmascript/-/unicode-match-property-value-ecmascript-2.2.0.tgz", + "integrity": "sha512-4IehN3V/+kkr5YeSSDDQG8QLqO26XpL2XP3GQtqwlT/QYSECAwFztxVHjlbh0+gjJ3XmNLS0zDsbgs9jWKExLg==", + "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 + }, + "unicode-trie": { + "version": "0.3.1", + "resolved": "https://registry.npmjs.org/unicode-trie/-/unicode-trie-0.3.1.tgz", + "integrity": "sha512-WgVuO0M2jDl7hVfbPgXv2LUrD81HM0bQj/bvLGiw6fJ4Zo8nNFnDrA0/hU2Te/wz6pjxCm5cxJwtLjo2eyV51Q==", + "requires": { + "pako": "^0.2.5", + "tiny-inflate": "^1.0.0" + }, + "dependencies": { + "pako": { + "version": "0.2.9", + "resolved": "https://registry.npmjs.org/pako/-/pako-0.2.9.tgz", + "integrity": "sha512-NUcwaKxUxWrZLpDG+z/xZaCgQITkA/Dv4V/T6bw7VON6l1Xz/VnrBqrYjZQ12TamKHzITTfOEIYUj48y2KXImA==" + } + } + }, + "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==", + "requires": { + "arr-union": "^3.1.0", + "get-value": "^2.0.6", + "is-extendable": "^0.1.1", + "set-value": "^2.0.1" + } + }, + "unique-filename": { + "version": "1.1.1", + "resolved": "https://registry.npmjs.org/unique-filename/-/unique-filename-1.1.1.tgz", + "integrity": "sha512-Vmp0jIp2ln35UTXuryvjzkjGdRyf9b2lTXuSYUiPmzRcl3FDtYqAwOnTJkAngD9SWhnoJzDbTKwaOrZ+STtxNQ==", + "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==", + "requires": { + "imurmurhash": "^0.1.4" + } + }, + "universalify": { + "version": "0.1.2", + "resolved": "https://registry.npmjs.org/universalify/-/universalify-0.1.2.tgz", + "integrity": "sha512-rBJeI5CXAlmy1pV+617WB9J63U6XcazHHF2f2dbJix4XzpUF0RS3Zbj0FGIOCAva5P/d/GBOYaACQ1w+0azUkg==" + }, + "unpipe": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/unpipe/-/unpipe-1.0.0.tgz", + "integrity": "sha512-pjy2bYhSsufwWlKwPc+l3cN7+wuJlK6uz0YdJEOlQDbl6jo/YlPi4mb8agUkVC8BF7V8NuzeyPNqRksA3hztKQ==", + "dev": true + }, + "unset-value": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/unset-value/-/unset-value-1.0.0.tgz", + "integrity": "sha512-PcA2tsuGSF9cnySLHTLSh2qrQiJ70mn+r+Glzxv2TWZblxsxCC52BDlZoPCsz7STd9pN7EZetkWZBAvk4cgZdQ==", + "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": "sha512-gpG936j8/MzaeID5Yif+577c17TxaDmhuyVgSwtnL/q8UUTySg8Mecb+8Cf1otgLoD7DDH75axp86ER7LFsf3Q==", + "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": "sha512-+OUdGJlgjOBZDfxnDjYYG6zp487z0JGNQq3cYQYg5f5hKR+syHMsaztzGeml/4kGG55CSpKSpWTY+jYGgsHLgA==", + "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": "sha512-J8S0cEdWuQbqD9//tlZxiMuMNmxB8PlEwvYwuxsTmR1G5RXUePEX/SJn7aD0GMLieuZYSwNH0cQuJGwnYunXRQ==" + }, + "isarray": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/isarray/-/isarray-1.0.0.tgz", + "integrity": "sha512-VLghIWNM6ELQzo7zwmcg0NmTVyWKYjvIeM83yjp0wRDTmUnrM678fQbcKBo6n2CJEF0szoG//ytg+TKla89ALQ==" + } + } + }, + "upath": { + "version": "1.2.0", + "resolved": "https://registry.npmjs.org/upath/-/upath-1.2.0.tgz", + "integrity": "sha512-aZwGpamFO61g3OlfT7OQCHqhGnW43ieH9WZeP7QxN/G/jS4jfqUkZxoryvJgVPEcrl5NL/ggHsSmLMHuH64Lhg==", + "devOptional": true + }, + "update-browserslist-db": { + "version": "1.1.1", + "resolved": "https://registry.npmjs.org/update-browserslist-db/-/update-browserslist-db-1.1.1.tgz", + "integrity": "sha512-R8UzCaa9Az+38REPiJ1tXlImTJXlVfgHZsglwBD/k6nj76ctsH1E3q4doGrukiLQd3sGQYu56r5+lo5r94l29A==", + "requires": { + "escalade": "^3.2.0", + "picocolors": "^1.1.0" + } + }, + "uri-js": { + "version": "4.4.1", + "resolved": "https://registry.npmjs.org/uri-js/-/uri-js-4.4.1.tgz", + "integrity": "sha512-7rKUyy33Q1yc98pQ1DAmLtwX109F7TIfWlW1Ydo8Wl1ii1SeHieeh0HHfPeL2fMXK6z0s8ecKs9frCuLJvndBg==", + "requires": { + "punycode": "^2.1.0" + }, + "dependencies": { + "punycode": { + "version": "2.3.1", + "resolved": "https://registry.npmjs.org/punycode/-/punycode-2.3.1.tgz", + "integrity": "sha512-vYt7UD1U9Wg6138shLtLOvdAu+8DsC/ilFtEVHcH+wydcSpNE20AfSOduf6MkRFahL5FY7X1oU7nKVZFtfq8Fg==" + } + } + }, + "urix": { + "version": "0.1.0", + "resolved": "https://registry.npmjs.org/urix/-/urix-0.1.0.tgz", + "integrity": "sha512-Am1ousAhSLBeB9cG/7k7r2R0zj50uDRlZHPGbazid5s9rlF1F/QKYObEKSIunSjIOkJZqwRRLpvewjEkM7pSqg==" + }, + "url": { + "version": "0.11.4", + "resolved": "https://registry.npmjs.org/url/-/url-0.11.4.tgz", + "integrity": "sha512-oCwdVC7mTuWiPyjLUz/COz5TLk6wgp0RCsN+wHZ2Ekneac9w8uuV0njcbbie2ME+Vs+d6duwmYuR3HgQXs1fOg==", + "requires": { + "punycode": "^1.4.1", + "qs": "^6.12.3" + }, + "dependencies": { + "qs": { + "version": "6.13.0", + "resolved": "https://registry.npmjs.org/qs/-/qs-6.13.0.tgz", + "integrity": "sha512-+38qI9SOr8tfZ4QmJNplMUxqjbe7LKvvZgWdExBOmd+egZTtjLB67Gu0HRX3u/XOq7UU2Nx6nsjvS16Z9uwfpg==", + "requires": { + "side-channel": "^1.0.6" + } + } + } + }, + "url-loader": { + "version": "4.1.1", + "resolved": "https://registry.npmjs.org/url-loader/-/url-loader-4.1.1.tgz", + "integrity": "sha512-3BTV812+AVHHOJQO8O5MkWgZ5aosP7GnROJwvzLS9hWDj00lZ6Z0wNak423Lp9PBZN05N+Jk/N5Si8jRAlGyWA==", + "dev": true, + "requires": { + "loader-utils": "^2.0.0", + "mime-types": "^2.1.27", + "schema-utils": "^3.0.0" + }, + "dependencies": { + "loader-utils": { + "version": "2.0.4", + "resolved": "https://registry.npmjs.org/loader-utils/-/loader-utils-2.0.4.tgz", + "integrity": "sha512-xXqpXoINfFhgua9xiqD8fPFHgkoq1mmmpE92WlDbm9rNRd/EbRb+Gqf908T2DMfuHjjJlksiK2RbHVOdD/MqSw==", + "dev": true, + "requires": { + "big.js": "^5.2.2", + "emojis-list": "^3.0.0", + "json5": "^2.1.2" + } + }, + "schema-utils": { + "version": "3.3.0", + "resolved": "https://registry.npmjs.org/schema-utils/-/schema-utils-3.3.0.tgz", + "integrity": "sha512-pN/yOAvcC+5rQ5nERGuwrjLlYvLTbCibnZ1I7B1LaiAz9BRBlE9GMgE/eqV30P7aJQUf7Ddimy/RsbYO/GrVGg==", + "dev": true, + "requires": { + "@types/json-schema": "^7.0.8", + "ajv": "^6.12.5", + "ajv-keywords": "^3.5.2" + } + } + } + }, + "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" + } + }, + "url-parse-lax": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/url-parse-lax/-/url-parse-lax-3.0.0.tgz", + "integrity": "sha512-NjFKA0DidqPa5ciFcSrXnAltTtzz84ogy+NebPvfEgAck0+TNg4UJ4IN+fB7zRZfbgUf0syOo9MDxFkDSMuFaQ==", + "requires": { + "prepend-http": "^2.0.0" + } + }, + "url-to-options": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/url-to-options/-/url-to-options-1.0.1.tgz", + "integrity": "sha512-0kQLIzG4fdk/G5NONku64rSH/x32NOA39LVQqlK8Le6lvTF6GGRJpqaQFGgU+CLwySIqBSMdwYM0sYcW9f6P4A==" + }, + "use": { + "version": "3.1.1", + "resolved": "https://registry.npmjs.org/use/-/use-3.1.1.tgz", + "integrity": "sha512-cwESVXlO3url9YWlFW/TA9cshCEhtu7IKJ/p5soJ/gGpj7vbvFrAY/eIioQ6Dw23KjZhYgiIo8HOs1nQ2vr/oQ==" + }, + "util": { + "version": "0.11.1", + "resolved": "https://registry.npmjs.org/util/-/util-0.11.1.tgz", + "integrity": "sha512-HShAsny+zS2TZfaXxD9tYj4HQGlBezXZMZuM/S5PKLLoZkShZiGk9o5CzukI1LVHZvjdvZ2Sj1aW/Ndn2NB/HQ==", + "requires": { + "inherits": "2.0.3" + }, + "dependencies": { + "inherits": { + "version": "2.0.3", + "resolved": "https://registry.npmjs.org/inherits/-/inherits-2.0.3.tgz", + "integrity": "sha512-x00IRNXNy63jwGkJmzPigoySHbaqpNuzKbBOmzK+g2OdZpQ9w+sxCN+VSB3ja7IAge2OP2qpfxTjeNcyjmW1uw==" + } + } + }, + "util-deprecate": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/util-deprecate/-/util-deprecate-1.0.2.tgz", + "integrity": "sha512-EPD5q1uXyFxJpCrLnCc1nHnq3gOa6DZBocAIiI2TaSCA7VCJ1UJDMagCzIkXNsUYfD1daK//LTEQ8xiIbrHtcw==" + }, + "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, + "requires": { + "define-properties": "^1.1.2", + "object.getownpropertydescriptors": "^2.0.3" + } + }, + "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 + }, + "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==", + "dev": true + }, + "uuid": { + "version": "3.4.0", + "resolved": "https://registry.npmjs.org/uuid/-/uuid-3.4.0.tgz", + "integrity": "sha512-HjSDRw6gZE5JMggctHBcjVak08+KEVhSIiDzFnT9S9aegmp85S/bReBVTb4QTFaRNptJ9kuYaNhnbNEOkbKb/A==" + }, + "v8-compile-cache": { + "version": "2.4.0", + "resolved": "https://registry.npmjs.org/v8-compile-cache/-/v8-compile-cache-2.4.0.tgz", + "integrity": "sha512-ocyWc3bAHBB/guyqJQVI5o4BZkPhznPYUG2ea80Gond/BgNWpap8TOmLSeeQG7bnh2KMISxskdADG59j7zruhw==", + "dev": true + }, + "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==", + "requires": { + "spdx-correct": "^3.0.0", + "spdx-expression-parse": "^3.0.0" + } + }, + "vary": { + "version": "1.1.2", + "resolved": "https://registry.npmjs.org/vary/-/vary-1.1.2.tgz", + "integrity": "sha512-BNGbWLfd0eUPabhkXUVm0j8uuvREyTh5ovRa/dyow/BqAbZJyC+5fU+IzQOzmAKzYqYRAISoRhdQr3eIZ/PXqg==", + "dev": true + }, + "verror": { + "version": "1.10.0", + "resolved": "https://registry.npmjs.org/verror/-/verror-1.10.0.tgz", + "integrity": "sha512-ZZKSmDAEFOijERBLkmYfJ+vmk3w+7hOLYDNkRCuRuMJGEmqYNCNLyBBFwWKVMhfwaEF3WOd0Zlw86U/WC/+nYw==", + "requires": { + "assert-plus": "^1.0.0", + "core-util-is": "1.0.2", + "extsprintf": "^1.2.0" + }, + "dependencies": { + "core-util-is": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/core-util-is/-/core-util-is-1.0.2.tgz", + "integrity": "sha512-3lqz5YjWTYnW6dlDa5TLaTCcShfar1e40rmcJVwCBJC6mWlFuj0eCHIElmG1g5kyuJ/GD+8Wn4FFCcz4gJPfaQ==" + } + } + }, + "vlq": { + "version": "0.2.3", + "resolved": "https://registry.npmjs.org/vlq/-/vlq-0.2.3.tgz", + "integrity": "sha512-DRibZL6DsNhIgYQ+wNdWDL2SL3bKPlVrRiBqV5yuMm++op8W4kGFtaQfCs4KEJn0wBZcHVHJ3eoywX8983k1ow==" + }, + "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==" + }, + "walker": { + "version": "1.0.8", + "resolved": "https://registry.npmjs.org/walker/-/walker-1.0.8.tgz", + "integrity": "sha512-ts/8E8l5b7kY0vlWLewOkDXMmPdLcVV4GmOQLyxuSswIJsweeFZtAsMF7k1Nszz+TYBQrlYRmzOnr398y1JemQ==", + "dev": true, + "requires": { + "makeerror": "1.0.12" + } + }, + "warning": { + "version": "4.0.3", + "resolved": "https://registry.npmjs.org/warning/-/warning-4.0.3.tgz", + "integrity": "sha512-rpJyN222KWIvHJ/F53XSZv0Zl/accqHR8et1kpaMTD/fLCRxtV8iX8czMzY7sVZupTI3zcUTg8eycS2kNF9l6w==", + "requires": { + "loose-envify": "^1.0.0" + } + }, + "watch": { + "version": "0.18.0", + "resolved": "https://registry.npmjs.org/watch/-/watch-0.18.0.tgz", + "integrity": "sha512-oUcoHFG3UF2pBlHcMORAojsN09BfqSfWYWlR3eSSjUFR7eBEx53WT2HX/vZeVTTIVCGShcazb+t6IcBRCNXqvA==", + "dev": true, + "requires": { + "exec-sh": "^0.2.0", + "minimist": "^1.2.0" + } + }, + "watchpack": { + "version": "1.7.5", + "resolved": "https://registry.npmjs.org/watchpack/-/watchpack-1.7.5.tgz", + "integrity": "sha512-9P3MWk6SrKjHsGkLT2KHXdQ/9SNkyoJbabxnKOoJepsvJjJG8uYTR3yTPxPQvNDI3w4Nz1xnE0TLHK4RIVe/MQ==", + "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==", + "optional": true, + "requires": { + "chokidar": "^2.1.8" + }, + "dependencies": { + "chokidar": { + "version": "2.1.8", + "resolved": "https://registry.npmjs.org/chokidar/-/chokidar-2.1.8.tgz", + "integrity": "sha512-ZmZUazfOzf0Nve7duiCKD23PFSCs4JPoYyccjUFF3aQkQadqBhfzhjkwBH2mNOG9cTBwhamM37EIsIkZw3nRgg==", + "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" + } + }, + "fsevents": { + "version": "1.2.13", + "resolved": "https://registry.npmjs.org/fsevents/-/fsevents-1.2.13.tgz", + "integrity": "sha512-oWb1Z6mkHIskLzEJ/XWX0srkpkTQ7vaopMQkyaEIoq0fmtFVxOthb8cCxeT+p3ynTdkk/RZwbgG4brR5BeWECw==", + "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": "sha512-E8Ak/2+dZY6fnzlR7+ueWvhsH1SjHr4jjss4YS/h4py44jY9MhK/VFdaZJAWDz6BbL21KeteKxFSFpq8OS5gVA==", + "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": "sha512-UFpDDrPgM6qpnFNI+rh/p3bUaq9hKLZN8bMUWzxmcnZVS3omf4IPK+BrewlnWjO1WmUsMYuSjKh4UJuV4+Lqmw==", + "optional": true, + "requires": { + "is-extglob": "^2.1.0" + } + } + } + } + } + }, + "wav-encoder": { + "version": "1.3.0", + "resolved": "https://registry.npmjs.org/wav-encoder/-/wav-encoder-1.3.0.tgz", + "integrity": "sha512-FXJdEu2qDOI+wbVYZpu21CS1vPEg5NaxNskBr4SaULpOJMrLE6xkH8dECa7PiS+ZoeyvP7GllWUAxPN3AvFSEw==" + }, + "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" + } + }, + "web-audio-test-api": { + "version": "0.5.2", + "resolved": "https://registry.npmjs.org/web-audio-test-api/-/web-audio-test-api-0.5.2.tgz", + "integrity": "sha512-RevLfVjp+wwe/dBPe361IpmNpeXXW6JVmlp8dk0YIxLwAh7evn6JpEQQalVgX4PH/jA8tpLpjD/8tFNUYTf88w==", + "dev": true + }, + "webidl-conversions": { + "version": "4.0.2", + "resolved": "https://registry.npmjs.org/webidl-conversions/-/webidl-conversions-4.0.2.tgz", + "integrity": "sha512-YQ+BmxuTgd6UXZW3+ICGfyqRyHXVlD5GtQr5+qjiNW7bF0cqrzX500HVXPBOvgXb5YnzDd+h0zqyv61KUD7+Sg==", + "dev": true + }, + "webpack": { + "version": "4.46.0", + "resolved": "https://registry.npmjs.org/webpack/-/webpack-4.46.0.tgz", + "integrity": "sha512-6jJuJjg8znb/xRItk7bkT0+Q7AHCYjjFnvKIWQPkNIOyRqoCGvkOs0ipeQzrqz4l5FtN5ZI/ukEHroeX/o1/5Q==", + "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": { + "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==", + "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==", + "requires": { + "errno": "^0.1.3", + "readable-stream": "^2.0.1" + } + } + } + }, + "memory-fs": { + "version": "0.4.1", + "resolved": "https://registry.npmjs.org/memory-fs/-/memory-fs-0.4.1.tgz", + "integrity": "sha512-cda4JKCxReDXFXRqOHPQscuIYg1PvxbE2S2GP45rnwfEK+vZaXC8C1OFvdHIbgw0DLzowXGVoxLaAmlgRy14GQ==", + "requires": { + "errno": "^0.1.3", + "readable-stream": "^2.0.1" + } + }, + "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" + } + }, + "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==", + "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==" + }, + "tapable": { + "version": "1.1.3", + "resolved": "https://registry.npmjs.org/tapable/-/tapable-1.1.3.tgz", + "integrity": "sha512-4WK/bYZmj8xLr+HUCODHGF1ZFzsYffasLUgEiMBY4fgtltdO6B4WJtlSbPaDTLpYTcGVwM2qLnFTICEcNxs3kA==" + }, + "webpack-sources": { + "version": "1.4.3", + "resolved": "https://registry.npmjs.org/webpack-sources/-/webpack-sources-1.4.3.tgz", + "integrity": "sha512-lgTS3Xhv1lCOKo7SA5TjKXMjpSM4sBjNV5+q2bqesbSPs5FjGmU6jjtBSkX9b4qW87vDIsCIlUPOEhbZrMdjeQ==", + "requires": { + "source-list-map": "^2.0.0", + "source-map": "~0.6.1" + } + } + } + }, + "webpack-cli": { + "version": "3.3.12", + "resolved": "https://registry.npmjs.org/webpack-cli/-/webpack-cli-3.3.12.tgz", + "integrity": "sha512-NVWBaz9k839ZH/sinurM+HcDvJOTXwSjYp1ku+5XKeOC03z8v5QitnK/x+lAxGXFyhdayoIf/GOpv85z3/xPag==", + "dev": true, + "requires": { + "chalk": "^2.4.2", + "cross-spawn": "^6.0.5", + "enhanced-resolve": "^4.1.1", + "findup-sync": "^3.0.0", + "global-modules": "^2.0.0", + "import-local": "^2.0.0", + "interpret": "^1.4.0", + "loader-utils": "^1.4.0", + "supports-color": "^6.1.0", + "v8-compile-cache": "^2.1.1", + "yargs": "^13.3.2" + }, + "dependencies": { + "ansi-regex": { + "version": "4.1.1", + "resolved": "https://registry.npmjs.org/ansi-regex/-/ansi-regex-4.1.1.tgz", + "integrity": "sha512-ILlv4k/3f6vfQ4OoP2AGvirOktlQ98ZEL1k9FaQjxa3L1abBgbuTDAdPOpvbGncC0BTVQrl+OM8xZGK6tWXt7g==", + "dev": true + }, + "ansi-styles": { + "version": "3.2.1", + "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-3.2.1.tgz", + "integrity": "sha512-VT0ZI6kZRdTh8YyJw3SMbYm/u+NqfsAxEpWO0Pf9sq8/e94WxxOpPKx9FR1FlyCtOVDNOQ+8ntlqFxiRc+r5qA==", + "dev": true, + "requires": { + "color-convert": "^1.9.0" + } + }, + "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": "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" + }, + "dependencies": { + "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" + } + } + } + }, + "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" + } + }, + "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" + } + }, + "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" + } + }, + "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" + } + }, + "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 + }, + "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" + } + }, + "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" + } + }, + "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" + } + }, + "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 + }, + "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" + } + }, + "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" + } + }, + "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 + }, + "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" + } + }, + "y18n": { + "version": "4.0.3", + "resolved": "https://registry.npmjs.org/y18n/-/y18n-4.0.3.tgz", + "integrity": "sha512-JKhqTOwSrqNA1NY5lSztJ1GrBiUodLMmIZuLiDaMRJ+itFd+ABVE8XBjOvIWL+rSqNDC74LCSFmlb/U4UZ4hJQ==", + "dev": true + }, + "yargs": { + "version": "13.3.2", + "resolved": "https://registry.npmjs.org/yargs/-/yargs-13.3.2.tgz", + "integrity": "sha512-AX3Zw5iPruN5ie6xGRIDgqkT+ZhnRlZMLMHAs8tg7nRruy2Nb+i5o9bwghAogtM08q1dpr2LVoS8KSTMYpWXUw==", + "dev": true, + "requires": { + "cliui": "^5.0.0", + "find-up": "^3.0.0", + "get-caller-file": "^2.0.1", + "require-directory": "^2.1.1", + "require-main-filename": "^2.0.0", + "set-blocking": "^2.0.0", + "string-width": "^3.0.0", + "which-module": "^2.0.0", + "y18n": "^4.0.0", + "yargs-parser": "^13.1.2" + } + }, + "yargs-parser": { + "version": "13.1.2", + "resolved": "https://registry.npmjs.org/yargs-parser/-/yargs-parser-13.1.2.tgz", + "integrity": "sha512-3lbsNRf/j+A4QuSZfDRA7HRSfWrzO0YjqTJd5kjAq37Zep1CEgaYmrH9Q3GwPiB9cHyd1Y1UwggGhJGoxipbzg==", + "dev": true, + "requires": { + "camelcase": "^5.0.0", + "decamelize": "^1.2.0" + } + } + } + }, + "webpack-dev-middleware": { + "version": "3.7.3", + "resolved": "https://registry.npmjs.org/webpack-dev-middleware/-/webpack-dev-middleware-3.7.3.tgz", + "integrity": "sha512-djelc/zGiz9nZj/U7PTBi2ViorGJXEWo/3ltkPbDyxCXhhEXkW0ce99falaok4TPj+AsxLiXJR0EBOb0zh9fKQ==", + "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": { + "memory-fs": { + "version": "0.4.1", + "resolved": "https://registry.npmjs.org/memory-fs/-/memory-fs-0.4.1.tgz", + "integrity": "sha512-cda4JKCxReDXFXRqOHPQscuIYg1PvxbE2S2GP45rnwfEK+vZaXC8C1OFvdHIbgw0DLzowXGVoxLaAmlgRy14GQ==", + "dev": true, + "requires": { + "errno": "^0.1.3", + "readable-stream": "^2.0.1" + } + }, + "mime": { + "version": "2.6.0", + "resolved": "https://registry.npmjs.org/mime/-/mime-2.6.0.tgz", + "integrity": "sha512-USPkMeET31rOMiarsBNIHZKLGgvKc/LrjofAnBlOttf5ajRvqiRA8QsenbcooctK6d6Ts6aqZXBA+XbkKthiQg==", + "dev": true + }, + "mkdirp": { + "version": "0.5.6", + "resolved": "https://registry.npmjs.org/mkdirp/-/mkdirp-0.5.6.tgz", + "integrity": "sha512-FP+p8RB8OWpF3YZBCrP5gtADmtXApB5AMLn+vdyA+PyxCjrCs00mjyUozssO33cwDeT3wNGdLxJ5M//YqtHAJw==", + "dev": true, + "requires": { + "minimist": "^1.2.6" + } + } + } + }, + "webpack-dev-server": { + "version": "3.11.2", + "resolved": "https://registry.npmjs.org/webpack-dev-server/-/webpack-dev-server-3.11.2.tgz", + "integrity": "sha512-A80BkuHRQfCiNtGBS1EMf2ChTUs0x+B3wGDFmOeT4rmJOHhHTCH2naNxIHhmkr0/UillP4U3yeIyv1pNp+QDLQ==", + "dev": true, + "requires": { + "ansi-html": "0.0.7", + "bonjour": "^3.5.0", + "chokidar": "^2.1.8", + "compression": "^1.7.4", + "connect-history-api-fallback": "^1.6.0", + "debug": "^4.1.1", + "del": "^4.1.1", + "express": "^4.17.1", + "html-entities": "^1.3.1", + "http-proxy-middleware": "0.19.1", + "import-local": "^2.0.0", + "internal-ip": "^4.3.0", + "ip": "^1.1.5", + "is-absolute-url": "^3.0.3", + "killable": "^1.0.1", + "loglevel": "^1.6.8", + "opn": "^5.5.0", + "p-retry": "^3.0.1", + "portfinder": "^1.0.26", + "schema-utils": "^1.0.0", + "selfsigned": "^1.10.8", + "semver": "^6.3.0", + "serve-index": "^1.9.1", + "sockjs": "^0.3.21", + "sockjs-client": "^1.5.0", + "spdy": "^4.0.2", + "strip-ansi": "^3.0.1", + "supports-color": "^6.1.0", + "url": "^0.11.0", + "webpack-dev-middleware": "^3.7.2", + "webpack-log": "^2.0.0", + "ws": "^6.2.1", + "yargs": "^13.3.2" + }, + "dependencies": { + "ansi-regex": { + "version": "4.1.1", + "resolved": "https://registry.npmjs.org/ansi-regex/-/ansi-regex-4.1.1.tgz", + "integrity": "sha512-ILlv4k/3f6vfQ4OoP2AGvirOktlQ98ZEL1k9FaQjxa3L1abBgbuTDAdPOpvbGncC0BTVQrl+OM8xZGK6tWXt7g==", + "dev": true + }, + "ansi-styles": { + "version": "3.2.1", + "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-3.2.1.tgz", + "integrity": "sha512-VT0ZI6kZRdTh8YyJw3SMbYm/u+NqfsAxEpWO0Pf9sq8/e94WxxOpPKx9FR1FlyCtOVDNOQ+8ntlqFxiRc+r5qA==", + "dev": true, + "requires": { + "color-convert": "^1.9.0" + } + }, + "array-union": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/array-union/-/array-union-1.0.2.tgz", + "integrity": "sha512-Dxr6QJj/RdU/hCaBjOfxW+q6lyuVE6JFWIrAUpuOOhoJJoQ99cUn3igRaHVB5P9WrgFVN0FfArM3x0cueOU8ng==", + "dev": true, + "requires": { + "array-uniq": "^1.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 + }, + "chokidar": { + "version": "2.1.8", + "resolved": "https://registry.npmjs.org/chokidar/-/chokidar-2.1.8.tgz", + "integrity": "sha512-ZmZUazfOzf0Nve7duiCKD23PFSCs4JPoYyccjUFF3aQkQadqBhfzhjkwBH2mNOG9cTBwhamM37EIsIkZw3nRgg==", + "dev": true, + "requires": { + "anymatch": "^2.0.0", + "async-each": "^1.0.1", + "braces": "^2.3.2", + "fsevents": "^1.2.7", + "glob-parent": "^3.1.0", + "inherits": "^2.0.3", + "is-binary-path": "^1.0.0", + "is-glob": "^4.0.0", + "normalize-path": "^3.0.0", + "path-is-absolute": "^1.0.0", + "readdirp": "^2.2.1", + "upath": "^1.1.1" + } + }, + "cliui": { + "version": "5.0.0", + "resolved": "https://registry.npmjs.org/cliui/-/cliui-5.0.0.tgz", + "integrity": "sha512-PYeGSEmmHM6zvoef2w8TPzlrnNpXIjTipYK780YswmIP9vjxmd6Y2a3CB2Ks6/AU8NHjZugXvo8w3oWM2qnwXA==", + "dev": true, + "requires": { + "string-width": "^3.1.0", + "strip-ansi": "^5.2.0", + "wrap-ansi": "^5.1.0" + }, + "dependencies": { + "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" + } + } + } + }, + "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" + } + }, + "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" + } + }, + "find-up": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/find-up/-/find-up-3.0.0.tgz", + "integrity": "sha512-1yD6RmLI1XBfxugvORwlck6f75tYL+iR0jqwsOrOxMZyGYqUuDhJ0l4AXdO1iX/FTs9cBAMEk1gWSEx1kSbylg==", + "dev": true, + "requires": { + "locate-path": "^3.0.0" + } + }, + "fsevents": { + "version": "1.2.13", + "resolved": "https://registry.npmjs.org/fsevents/-/fsevents-1.2.13.tgz", + "integrity": "sha512-oWb1Z6mkHIskLzEJ/XWX0srkpkTQ7vaopMQkyaEIoq0fmtFVxOthb8cCxeT+p3ynTdkk/RZwbgG4brR5BeWECw==", + "dev": true, + "optional": true, + "requires": { + "bindings": "^1.5.0", + "nan": "^2.12.1" + } + }, + "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 + }, + "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" + } + } + } + }, + "globby": { + "version": "6.1.0", + "resolved": "https://registry.npmjs.org/globby/-/globby-6.1.0.tgz", + "integrity": "sha512-KVbFv2TQtbzCoxAnfD6JcHZTYCzyliEaaeM/gH8qQdkKr5s0OP9scEgvdcngyk7AVdY6YVW/TJHd+lQ/Df3Daw==", + "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": "sha512-udgsAY+fTnvv7kI7aaxbqwWNb0AHiB0qBO89PZKPkoTmGOgdbrHDKD+0B2X4uTfJ/FT1R09r9gTsjUjNJotuog==", + "dev": true + } + } + }, + "locate-path": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/locate-path/-/locate-path-3.0.0.tgz", + "integrity": "sha512-7AO748wWnIhNqAuaty2ZWHkQHRSNfPVIsPIfwEOWO22AmaoVrWavlOcMR5nzTLNYvp36X220/maaRsrec1G65A==", + "dev": true, + "requires": { + "p-locate": "^3.0.0", + "path-exists": "^3.0.0" + } + }, + "p-limit": { + "version": "2.3.0", + "resolved": "https://registry.npmjs.org/p-limit/-/p-limit-2.3.0.tgz", + "integrity": "sha512-//88mFWSJx8lxCzwdAABTJL2MyWB12+eIY7MDL2SqLmAkeKU9qxRvWuSyTjm3FUmpBEMuFfckAIqEaVGUDxb6w==", + "dev": true, + "requires": { + "p-try": "^2.0.0" + } + }, + "p-locate": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/p-locate/-/p-locate-3.0.0.tgz", + "integrity": "sha512-x+12w/To+4GFfgJhBEpiDcLozRJGegY+Ei7/z0tSLkMmxGZNybVMSfWj9aJn8Z5Fc7dBUNJOOVgPv2H7IwulSQ==", + "dev": true, + "requires": { + "p-limit": "^2.0.0" + } + }, + "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 + }, + "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 + }, + "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" + } + }, + "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": { + "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" + } + } + } + }, + "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" + } + }, + "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": { + "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" + } + } + } + }, + "y18n": { + "version": "4.0.3", + "resolved": "https://registry.npmjs.org/y18n/-/y18n-4.0.3.tgz", + "integrity": "sha512-JKhqTOwSrqNA1NY5lSztJ1GrBiUodLMmIZuLiDaMRJ+itFd+ABVE8XBjOvIWL+rSqNDC74LCSFmlb/U4UZ4hJQ==", + "dev": true + }, + "yargs": { + "version": "13.3.2", + "resolved": "https://registry.npmjs.org/yargs/-/yargs-13.3.2.tgz", + "integrity": "sha512-AX3Zw5iPruN5ie6xGRIDgqkT+ZhnRlZMLMHAs8tg7nRruy2Nb+i5o9bwghAogtM08q1dpr2LVoS8KSTMYpWXUw==", + "dev": true, + "requires": { + "cliui": "^5.0.0", + "find-up": "^3.0.0", + "get-caller-file": "^2.0.1", + "require-directory": "^2.1.1", + "require-main-filename": "^2.0.0", + "set-blocking": "^2.0.0", + "string-width": "^3.0.0", + "which-module": "^2.0.0", + "y18n": "^4.0.0", + "yargs-parser": "^13.1.2" + } + }, + "yargs-parser": { + "version": "13.1.2", + "resolved": "https://registry.npmjs.org/yargs-parser/-/yargs-parser-13.1.2.tgz", + "integrity": "sha512-3lbsNRf/j+A4QuSZfDRA7HRSfWrzO0YjqTJd5kjAq37Zep1CEgaYmrH9Q3GwPiB9cHyd1Y1UwggGhJGoxipbzg==", + "dev": true, + "requires": { + "camelcase": "^5.0.0", + "decamelize": "^1.2.0" + } + } + } + }, + "webpack-log": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/webpack-log/-/webpack-log-2.0.0.tgz", + "integrity": "sha512-cX8G2vR/85UYG59FgkoMamwHUIkSSlV3bBMRsbxVXVUk2j6NleCKjQ/WE9eYg9WY4w25O9w8wKP4rzNZFmUcUg==", + "dev": true, + "requires": { + "ansi-colors": "^3.0.0", + "uuid": "^3.3.2" + } + }, + "webpack-sources": { + "version": "3.2.3", + "resolved": "https://registry.npmjs.org/webpack-sources/-/webpack-sources-3.2.3.tgz", + "integrity": "sha512-/DyMEOrDgLKKIG0fmvtz+4dUX/3Ghozwgm6iPp8KRhvn+eQf9+Q7GWxVNMk3+uCPWfdXYC4ExGBckIXdFEfH1w==", + "dev": true + }, + "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-encoding": { + "version": "3.1.1", + "resolved": "https://registry.npmjs.org/whatwg-encoding/-/whatwg-encoding-3.1.1.tgz", + "integrity": "sha512-6qN4hJdMwfYBtE3YBTTHhoeuUrDBPZmbQaxWAqSALV/MeEnR5z1xd8UKud2RAkFoPkmB+hli1TZSnyi84xz1vQ==", + "dev": true, + "requires": { + "iconv-lite": "0.6.3" + } + }, + "whatwg-fetch": { + "version": "3.6.20", + "resolved": "https://registry.npmjs.org/whatwg-fetch/-/whatwg-fetch-3.6.20.tgz", + "integrity": "sha512-EqhiFU6daOA8kpjOWTL0olhVOF3i7OrFzSYiGsEMB8GcXS+RrzauAERX65xMeNWVqxA6HXH2m69Z9LaKKdisfg==", + "dev": true + }, + "whatwg-mimetype": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/whatwg-mimetype/-/whatwg-mimetype-4.0.0.tgz", + "integrity": "sha512-QaKxh0eNIi2mE9p2vEdzfagOKHCcj1pJ56EEHGQOVxp8r9/iszLUUV7v89x9O1p/T+NlTM5W7jW6+cz4Fq1YVg==", + "dev": true + }, + "whatwg-url": { + "version": "4.8.0", + "resolved": "https://registry.npmjs.org/whatwg-url/-/whatwg-url-4.8.0.tgz", + "integrity": "sha512-nUvUPuenPFtPfy/X+dAYh/TfRbTBlnXTM5iIfLseJFkkQewmpG9pGR6i87E9qL+lZaJzv+99kkQWoGOtLfkZQQ==", + "dev": true, + "requires": { + "tr46": "~0.0.3", + "webidl-conversions": "^3.0.0" + }, + "dependencies": { + "webidl-conversions": { + "version": "3.0.1", + "resolved": "https://registry.npmjs.org/webidl-conversions/-/webidl-conversions-3.0.1.tgz", + "integrity": "sha512-2JAn3z8AR6rjK8Sm8orRC0h/bcl/DqL7tRPdGZ4I1CjdF+EaMLmYxBHyXuKL849eucPFhvBoxMsflfOb8kxaeQ==", + "dev": true + } + } + }, + "which": { + "version": "1.3.1", + "resolved": "https://registry.npmjs.org/which/-/which-1.3.1.tgz", + "integrity": "sha512-HxJdYWq1MTIQbJ3nw0cqssHoTNU267KlrDuGZ1WYlxDStUtKUhOaJmh112/TZmHxxUfuJqPXSOm7tDyas0OSIQ==", + "dev": true, + "requires": { + "isexe": "^2.0.0" + } + }, + "which-boxed-primitive": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/which-boxed-primitive/-/which-boxed-primitive-1.0.2.tgz", + "integrity": "sha512-bwZdv0AKLpplFY2KZRX6TvyuN7ojjr7lwkg6ml0roIy9YeuSr7JS372qlNW18UQYzgYK9ziGcerWqZOmEn9VNg==", + "dev": true, + "requires": { + "is-bigint": "^1.0.1", + "is-boolean-object": "^1.1.0", + "is-number-object": "^1.0.4", + "is-string": "^1.0.5", + "is-symbol": "^1.0.3" + } + }, + "which-module": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/which-module/-/which-module-2.0.1.tgz", + "integrity": "sha512-iBdZ57RDvnOR9AGBhML2vFZf7h8vmBjhoaZqODJBFWHVtKkDmKuHai3cx5PgVMrX5YDNp27AofYbAwctSS+vhQ==", + "dev": true + }, + "which-typed-array": { + "version": "1.1.15", + "resolved": "https://registry.npmjs.org/which-typed-array/-/which-typed-array-1.1.15.tgz", + "integrity": "sha512-oV0jmFtUky6CXfkqehVvBP/LSWJ2sy4vWMioiENyJLePrBO/yKyV9OyJySfAKosh+RYkIl5zJCNZ8/4JncrpdA==", + "dev": true, + "requires": { + "available-typed-arrays": "^1.0.7", + "call-bind": "^1.0.7", + "for-each": "^0.3.3", + "gopd": "^1.0.1", + "has-tostringtag": "^1.0.2" + } + }, + "window-size": { + "version": "0.1.4", + "resolved": "https://registry.npmjs.org/window-size/-/window-size-0.1.4.tgz", + "integrity": "sha512-2thx4pB0cV3h+Bw7QmMXcEbdmOzv9t0HFplJH/Lz6yu60hXYy5RT8rUu+wlIreVxWsGN20mo+MHeCSfUpQBwPw==" + }, + "word-wrap": { + "version": "1.2.5", + "resolved": "https://registry.npmjs.org/word-wrap/-/word-wrap-1.2.5.tgz", + "integrity": "sha512-BN22B5eaMMI9UMtjrGd5g5eCYPpCPDUy0FJXbYsaT5zYxjFOckS53SQDE3pWkVoWpHXVb3BrYcEN4Twa55B5cA==" + }, + "wordwrap": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/wordwrap/-/wordwrap-1.0.0.tgz", + "integrity": "sha512-gvVzJFlPycKc5dZN4yPkP8w7Dc37BtP1yczEneOb4uq34pXZcvrtRTmWV8W+Ume+XCxKgbjM+nevkyFPMybd4Q==", + "dev": true + }, + "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==", + "requires": { + "errno": "~0.1.7" + } + }, + "worker-loader": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/worker-loader/-/worker-loader-2.0.0.tgz", + "integrity": "sha512-tnvNp4K3KQOpfRnD20m8xltE3eWh89Ye+5oj7wXEEHKac1P4oZ6p9oTj8/8ExqoSBnk9nu5Pr4nKfQ1hn2APJw==", + "requires": { + "loader-utils": "^1.0.0", + "schema-utils": "^0.4.0" + }, + "dependencies": { + "schema-utils": { + "version": "0.4.7", + "resolved": "https://registry.npmjs.org/schema-utils/-/schema-utils-0.4.7.tgz", + "integrity": "sha512-v/iwU6wvwGK8HbU9yi3/nhGzP0yGSuhQMzL6ySiec1FSrZZDkhm4noOSWzrNFo/jEc+SJY6jRTwuwbSXJPDUnQ==", + "requires": { + "ajv": "^6.1.0", + "ajv-keywords": "^3.1.0" + } + } + } + }, + "wrap-ansi": { + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/wrap-ansi/-/wrap-ansi-2.1.0.tgz", + "integrity": "sha512-vAaEaDM946gbNpH5pLVNR+vX2ht6n0Bt3GXwVB1AuAqZosOvHNF3P7wDnh8KLkSqgUh0uh77le7Owgoz+Z9XBw==", + "requires": { + "string-width": "^1.0.1", + "strip-ansi": "^3.0.1" + }, + "dependencies": { + "is-fullwidth-code-point": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/is-fullwidth-code-point/-/is-fullwidth-code-point-1.0.0.tgz", + "integrity": "sha512-1pqUqRjkhPJ9miNq9SwMfdvi6lBJcd6eFxvfaivQhaH3SgisfiuudvFntdKOmxuee/77l+FPjKrQjWvmPjWrRw==", + "requires": { + "number-is-nan": "^1.0.0" + } + }, + "string-width": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/string-width/-/string-width-1.0.2.tgz", + "integrity": "sha512-0XsVpQLnVCXHJfyEs8tC0zpTVIr5PKKsQtkT29IwupnPTjtPmQ3xT/4yCREF9hYkV/3M3kzcUTSAZT6a6h81tw==", + "requires": { + "code-point-at": "^1.0.0", + "is-fullwidth-code-point": "^1.0.0", + "strip-ansi": "^3.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==" + }, + "write": { + "version": "1.0.3", + "resolved": "https://registry.npmjs.org/write/-/write-1.0.3.tgz", + "integrity": "sha512-/lg70HAjtkUgWPVZhZcm+T4hkL8Zbtp1nFNOn3lRrxnlv50SRBv7cR7RqR+GMsd3hUXy9hWBo4CHTbFTcOYwig==", + "dev": true, + "requires": { + "mkdirp": "^0.5.1" + }, + "dependencies": { + "mkdirp": { + "version": "0.5.6", + "resolved": "https://registry.npmjs.org/mkdirp/-/mkdirp-0.5.6.tgz", + "integrity": "sha512-FP+p8RB8OWpF3YZBCrP5gtADmtXApB5AMLn+vdyA+PyxCjrCs00mjyUozssO33cwDeT3wNGdLxJ5M//YqtHAJw==", + "dev": true, + "requires": { + "minimist": "^1.2.6" + } + } + } + }, + "write-file-atomic": { + "version": "2.4.3", + "resolved": "https://registry.npmjs.org/write-file-atomic/-/write-file-atomic-2.4.3.tgz", + "integrity": "sha512-GaETH5wwsX+GcnzhPgKcKjJ6M2Cq3/iZp1WyY/X1CSqrW+jVNM9Y7D8EC2sM4ZG/V8wZlSniJnCKWPmBYAucRQ==", + "dev": true, + "requires": { + "graceful-fs": "^4.1.11", + "imurmurhash": "^0.1.4", + "signal-exit": "^3.0.2" + } + }, + "ws": { + "version": "6.2.3", + "resolved": "https://registry.npmjs.org/ws/-/ws-6.2.3.tgz", + "integrity": "sha512-jmTjYU0j60B+vHey6TfR3Z7RD61z/hmxBS3VMSGIrroOWXQEneK1zNuotOUrGyBHQj0yrpsLHPWtigEFd13ndA==", + "dev": true, + "requires": { + "async-limiter": "~1.0.0" + } + }, + "xhr": { + "version": "2.5.0", + "resolved": "https://registry.npmjs.org/xhr/-/xhr-2.5.0.tgz", + "integrity": "sha512-4nlO/14t3BNUZRXIXfXe+3N6w3s1KoxcJUUURctd64BLRe67E4gRwp4PjywtDY72fXpZ1y6Ch0VZQRY/gMPzzQ==", + "requires": { + "global": "~4.3.0", + "is-function": "^1.0.1", + "parse-headers": "^2.0.0", + "xtend": "^4.0.0" + }, + "dependencies": { + "global": { + "version": "4.3.2", + "resolved": "https://registry.npmjs.org/global/-/global-4.3.2.tgz", + "integrity": "sha512-/4AybdwIDU4HkCUbJkZdWpe4P6vuw/CUtu+0I1YlLIPe7OlUO7KNJ+q/rO70CW2/NW6Jc6I62++Hzsf5Alu6rQ==", + "requires": { + "min-document": "^2.19.0", + "process": "~0.5.1" + } + }, + "process": { + "version": "0.5.2", + "resolved": "https://registry.npmjs.org/process/-/process-0.5.2.tgz", + "integrity": "sha512-oNpcutj+nYX2FjdEW7PGltWhXulAnFlM0My/k48L90hARCOJtvBbQXc/6itV2jDvU5xAAtonP+r6wmQgCcbAUA==" + } + } + }, + "xml": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/xml/-/xml-1.0.1.tgz", + "integrity": "sha512-huCv9IH9Tcf95zuYCsQraZtWnJvBtLVE0QHMOs8bWyZAFZNDcYjsPq1nEx8jKA9y+Beo9v+7OBPRisQTjinQMw==", + "dev": true + }, + "xml-name-validator": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/xml-name-validator/-/xml-name-validator-2.0.1.tgz", + "integrity": "sha512-jRKe/iQYMyVJpzPH+3HL97Lgu5HrCfii+qSo+TfjKHtOnvbnvdVfMYrn9Q34YV81M2e5sviJlI6Ko9y+nByzvA==", + "dev": true + }, + "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 + }, + "xtend": { + "version": "4.0.2", + "resolved": "https://registry.npmjs.org/xtend/-/xtend-4.0.2.tgz", + "integrity": "sha512-LKYU1iAXJXUgAXn9URjiu+MWhyUXHsvfp7mcuYm9dSUKK0/CjtrUwFAxD82/mCWbtLsGjFIad0wIsod4zrTAEQ==" + }, + "y18n": { + "version": "3.2.2", + "resolved": "https://registry.npmjs.org/y18n/-/y18n-3.2.2.tgz", + "integrity": "sha512-uGZHXkHnhF0XeeAPgnKfPv1bgKAYyVvmNL1xlKsPYZPaIHxGti2hHqvOCQv71XMsLxu1QjergkqogUnms5D3YQ==" + }, + "yallist": { + "version": "3.1.1", + "resolved": "https://registry.npmjs.org/yallist/-/yallist-3.1.1.tgz", + "integrity": "sha512-a4UGQaWPH59mOXUYnAG2ewncQS4i4F43Tv3JoAM+s2VDAmS9NsK8GpDMLrCHPksFT7h3K6TOoUNn2pb7RoXx4g==" + }, + "yargs": { + "version": "9.0.1", + "resolved": "https://registry.npmjs.org/yargs/-/yargs-9.0.1.tgz", + "integrity": "sha512-XS0NJoM9Iz0azh1cdgfLF5VFK6BSWfrrqA0V2tIx3fV6aGrWCseVDwOkIBg746ev0hes59od5ZvQAfdET4H0pw==", + "dev": true, + "requires": { + "camelcase": "^4.1.0", + "cliui": "^3.2.0", + "decamelize": "^1.1.1", + "get-caller-file": "^1.0.1", + "os-locale": "^2.0.0", + "read-pkg-up": "^2.0.0", + "require-directory": "^2.1.1", + "require-main-filename": "^1.0.1", + "set-blocking": "^2.0.0", + "string-width": "^2.0.0", + "which-module": "^2.0.0", + "y18n": "^3.2.1", + "yargs-parser": "^7.0.0" + }, + "dependencies": { + "load-json-file": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/load-json-file/-/load-json-file-2.0.0.tgz", + "integrity": "sha512-3p6ZOGNbiX4CdvEd1VcE6yi78UrGNpjHO33noGwHCnT/o2fyllJDepsm8+mFFv/DvtwFHht5HIHSyOy5a+ChVQ==", + "dev": true, + "requires": { + "graceful-fs": "^4.1.2", + "parse-json": "^2.2.0", + "pify": "^2.0.0", + "strip-bom": "^3.0.0" + } + }, + "parse-json": { + "version": "2.2.0", + "resolved": "https://registry.npmjs.org/parse-json/-/parse-json-2.2.0.tgz", + "integrity": "sha512-QR/GGaKCkhwk1ePQNYDRKYZ3mwU9ypsKhB0XyFnLQdomyEqk3e8wpW3V5Jp88zbxK4n5ST1nqo+g9juTpownhQ==", + "dev": true, + "requires": { + "error-ex": "^1.2.0" + } + }, + "path-type": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/path-type/-/path-type-2.0.0.tgz", + "integrity": "sha512-dUnb5dXUf+kzhC/W/F4e5/SkluXIFf5VUHolW1Eg1irn1hGWjPGdsRcvYJ1nD6lhk8Ir7VM0bHJKsYTx8Jx9OQ==", + "dev": true, + "requires": { + "pify": "^2.0.0" + } + }, + "pify": { + "version": "2.3.0", + "resolved": "https://registry.npmjs.org/pify/-/pify-2.3.0.tgz", + "integrity": "sha512-udgsAY+fTnvv7kI7aaxbqwWNb0AHiB0qBO89PZKPkoTmGOgdbrHDKD+0B2X4uTfJ/FT1R09r9gTsjUjNJotuog==", + "dev": true + }, + "read-pkg": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/read-pkg/-/read-pkg-2.0.0.tgz", + "integrity": "sha512-eFIBOPW7FGjzBuk3hdXEuNSiTZS/xEMlH49HxMyzb0hyPfu4EhVjT2DH32K1hSSmVq4sebAWnZuuY5auISUTGA==", + "dev": true, + "requires": { + "load-json-file": "^2.0.0", + "normalize-package-data": "^2.3.2", + "path-type": "^2.0.0" + } + }, + "read-pkg-up": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/read-pkg-up/-/read-pkg-up-2.0.0.tgz", + "integrity": "sha512-1orxQfbWGUiTn9XsPlChs6rLie/AV9jwZTGmu2NZw/CUDJQchXJFYE0Fq5j7+n558T1JhDWLdhyd1Zj+wLY//w==", + "dev": true, + "requires": { + "find-up": "^2.0.0", + "read-pkg": "^2.0.0" + } + }, + "strip-bom": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/strip-bom/-/strip-bom-3.0.0.tgz", + "integrity": "sha512-vavAMRXOgBVNF6nyEEmL3DBK19iRpDcoIwW+swQ+CbGiu7lju6t+JklA1MHweoWtadgt4ISVUsXLyDq34ddcwA==", + "dev": true + } + } + }, + "yargs-parser": { + "version": "7.0.0", + "resolved": "https://registry.npmjs.org/yargs-parser/-/yargs-parser-7.0.0.tgz", + "integrity": "sha512-WhzC+xgstid9MbVUktco/bf+KJG+Uu6vMX0LN1sLJvwmbCQVxb4D8LzogobonKycNasCZLdOzTAk1SK7+K7swg==", + "dev": true, + "requires": { + "camelcase": "^4.1.0" + } + }, + "yauzl": { + "version": "2.10.0", + "resolved": "https://registry.npmjs.org/yauzl/-/yauzl-2.10.0.tgz", + "integrity": "sha512-p4a9I6X6nu6IhoGmBqAcbJy1mlC4j27vEPZX9F4L4/vZT3Lyq1VkFHw/V/PUcB9Buo+DG3iHkT0x3Qya58zc3g==", + "requires": { + "buffer-crc32": "~0.2.3", + "fd-slicer": "~1.1.0" + } + }, + "yocto-queue": { + "version": "0.1.0", + "resolved": "https://registry.npmjs.org/yocto-queue/-/yocto-queue-0.1.0.tgz", + "integrity": "sha512-rVksvsnNCdJ/ohGc6xgPwyN8eheCxsiLM8mxuE/t/mOVqJewPuO1miLpTHQiRgTKCLexL4MeAFVagts7HmNZ2Q==" + } + } +} diff --git a/package.json b/package.json new file mode 100644 index 0000000000000000000000000000000000000000..c93bc85df6541e95df052a1c3bf612141c98b3c7 --- /dev/null +++ b/package.json @@ -0,0 +1,157 @@ +{ + "name": "scratch-gui", + "version": "0.1.0", + "description": "GraphicaL User Interface for creating and running Scratch 3.0 projects", + "main": "./dist/scratch-gui.js", + "scripts": { + "buildall": "npm run build && npm run deploy", + "build": "webpack --colors --bail", + "clean": "rimraf ./build && mkdirp build && rimraf ./dist && mkdirp dist", + "deploy": "npm uni gh-pages && npm i gh-pages -g && gh-pages -d src", + "prune": "./prune-gh-pages.sh", + "i18n:push": "tx-push-src scratch-editor interface translations/en.json", + "i18n:src": "rimraf ./translations/messages/src && babel src > tmp.js && rimraf tmp.js && build-i18n-src ./translations/messages/src ./translations/ && npm run i18n:push", + "start": "webpack-dev-server --host 0.0.0.0 --port 3000 --disable-host-check", + "test": "npm run test:lint && npm run test:unit && npm run build && npm run test:integration", + "test:integration": "jest --maxWorkers=4 test[\\\\/]integration", + "test:lint": "eslint . --ext .js,.jsx", + "test:unit": "jest test[\\\\/]unit", + "test:smoke": "jest --runInBand test[\\\\/]smoke", + "watch": "webpack --colors --watch" + }, + "author": "Massachusetts Institute of Technology", + "license": "GPL-3.0", + "private": true, + "homepage": "https://github.com/LLK/scratch-gui#readme", + "repository": { + "type": "git", + "url": "git+ssh://git@github.com/LLK/scratch-gui.git" + }, + "dependencies": { + "@turbowarp/scratch-l10n": "^3.1000.20230326022803", + "arraybuffer-loader": "^1.0.8", + "autoprefixer": "^9.8.8", + "base64-loader": "1.0.0", + "bowser": "1.9.4", + "classnames": "2.2.6", + "computed-style-to-inline-style": "3.0.0", + "copy-webpack-plugin": "6.4.1", + "core-js": "2.5.7", + "css-loader": "^1.0.1", + "es6-object-assign": "1.1.0", + "file-loader": "2.0.0", + "get-float-time-domain-data": "0.1.0", + "get-user-media-promise": "1.1.4", + "immutable": "3.8.2", + "intl": "1.2.5", + "intl-messageformat": "^2.2.0", + "js-base64": "2.4.9", + "keymirror": "0.1.1", + "localforage": "^1.10.0", + "lodash.bindall": "4.4.0", + "lodash.debounce": "4.0.8", + "lodash.omit": "4.5.0", + "lodash.throttle": "4.0.1", + "minilog": "3.1.0", + "omggif": "1.0.9", + "papaparse": "5.3.0", + "PenguinMod-MarkDown": "github:PenguinMod/PenguinMod-MarkDown#master", + "postcss-import": "^12.0.1", + "postcss-loader": "^3.0.0", + "postcss-simple-vars": "^5.0.2", + "prop-types": "^15.8.1", + "protobufjs": "^7.3.2", + "query-string": "^5.1.1", + "raw-loader": "^0.5.1", + "react": "^16.14.0", + "react-contextmenu": "2.9.4", + "react-dom": "^16.14.0", + "react-draggable": "3.0.5", + "react-ga": "2.5.3", + "react-intl": "2.9.0", + "react-intl-redux": "0.7.0", + "react-modal": "3.9.1", + "react-popover": "0.5.10", + "react-redux": "5.0.7", + "react-responsive": "^4.1.0", + "react-string-replace": "^0.4.4", + "react-style-proptype": "3.2.2", + "react-tabs": "2.3.0", + "react-tooltip": "3.8.0", + "react-virtualized": "9.20.1", + "redux": "3.7.2", + "redux-throttle": "0.1.1", + "scratch-audio": "github:PenguinMod/PenguinMod-Audio#develop", + "scratch-blocks": "github:PenguinMod/PenguinMod-Blocks#develop-builds", + "scratch-paint": "github:PenguinMod/PenguinMod-Paint#develop", + "scratch-render": "github:PenguinMod/PenguinMod-Render#develop", + "scratch-render-fonts": "github:PenguinMod/penguinmod-render-fonts#master", + "scratch-storage": "github:PenguinMod/PenguinMod-Storage#develop", + "scratch-svg-renderer": "github:TurboWarp/scratch-svg-renderer#develop", + "scratch-vm": "github:PenguinMod/PenguinMod-Vm#develop", + "startaudiocontext": "1.2.1", + "style-loader": "^0.23.1", + "text-encoding": "0.7.0", + "theia": "github:FreshPenguin112/theia-pnpm#master", + "to-style": "1.3.3", + "wav-encoder": "1.3.0", + "xhr": "2.5.0" + }, + "peerDependencies": { + "react": "^16.0.0", + "react-dom": "^16.0.0" + }, + "devDependencies": { + "@babel/cli": "7.14.8", + "@babel/core": "7.14.8", + "@babel/plugin-proposal-object-rest-spread": "7.14.7", + "@babel/plugin-syntax-dynamic-import": "7.2.0", + "@babel/plugin-transform-async-to-generator": "7.14.5", + "@babel/preset-env": "7.14.8", + "@babel/preset-react": "7.14.5", + "babel-core": "7.0.0-bridge.0", + "babel-eslint": "10.0.3", + "babel-loader": "8.2.2", + "chromedriver": "105.0.0", + "enzyme": "3.10.0", + "enzyme-adapter-react-16": "1.3.0", + "eslint": "5.16.0", + "eslint-config-scratch": "6.0.0", + "eslint-import-resolver-webpack": "0.11.1", + "eslint-plugin-import": "2.23.4", + "eslint-plugin-jest": "22.17.0", + "eslint-plugin-react": "7.24.0", + "gh-pages": "3.2.3", + "html-webpack-plugin": "^4.5.2", + "jest": "21.2.1", + "jest-junit": "7.0.0", + "lodash.defaultsdeep": "4.6.1", + "mkdirp": "1.0.3", + "raf": "3.4.1", + "react-test-renderer": "16.2.0", + "redux-mock-store": "1.5.3", + "rimraf": "2.7.1", + "selenium-webdriver": "3.6.0", + "uglifyjs-webpack-plugin": "1.3.0", + "url-loader": "^4.1.1", + "web-audio-test-api": "0.5.2", + "webpack": "4.46.0", + "webpack-cli": "3.3.12", + "webpack-dev-server": "3.11.2", + "webpack-sources": "3.2.3" + }, + "jest": { + "setupFiles": [ + "raf/polyfill", + "/test/helpers/enzyme-setup.js" + ], + "testPathIgnorePatterns": [ + "src/test.js" + ], + "moduleNameMapper": { + "\\.(jpg|jpeg|png|gif|eot|otf|webp|svg|ttf|woff|woff2|mp4|webm|wav|mp3|m4a|aac|oga)$": "/test/__mocks__/fileMock.js", + "\\.(css|less)$": "/test/__mocks__/styleMock.js", + "editor-msgs(\\.js)?$": "/test/__mocks__/editor-msgs-mock.js" + } + } +} diff --git a/pauseplay/ignore.txt b/pauseplay/ignore.txt new file mode 100644 index 0000000000000000000000000000000000000000..63950b1acbecc8977b5d54e440bb4b3d4b59abc9 --- /dev/null +++ b/pauseplay/ignore.txt @@ -0,0 +1 @@ +these contents will be deleted to make way for two new icons diff --git a/pauseplay/pause.svg b/pauseplay/pause.svg new file mode 100644 index 0000000000000000000000000000000000000000..477970339b7ddadb937ef34b8c0e15255af87506 Binary files /dev/null and b/pauseplay/pause.svg differ diff --git a/pauseplay/play.svg b/pauseplay/play.svg new file mode 100644 index 0000000000000000000000000000000000000000..04ee2092b687c45a717d31d02558322141a5892d Binary files /dev/null and b/pauseplay/play.svg differ diff --git a/pnpm-lock.yaml b/pnpm-lock.yaml new file mode 100644 index 0000000000000000000000000000000000000000..b2f90dda495b487a8725a624392a585a82399d86 --- /dev/null +++ b/pnpm-lock.yaml @@ -0,0 +1,11776 @@ +lockfileVersion: '6.0' + +settings: + autoInstallPeers: true + excludeLinksFromLockfile: false + +dependencies: + '@turbowarp/scratch-l10n': + specifier: ^3.1000.20230326022803 + version: 3.1000.20230326022803 + PenguinMod-MarkDown: + specifier: github:PenguinMod/PenguinMod-MarkDown#master + version: github.com/PenguinMod/PenguinMod-MarkDown/af23e940551a5ea30f8c6aa118c84a791ecf0f02 + arraybuffer-loader: + specifier: ^1.0.8 + version: 1.0.8 + autoprefixer: + specifier: ^9.8.8 + version: 9.8.8 + base64-loader: + specifier: 1.0.0 + version: 1.0.0 + bowser: + specifier: 1.9.4 + version: 1.9.4 + classnames: + specifier: 2.2.6 + version: 2.2.6 + computed-style-to-inline-style: + specifier: 3.0.0 + version: 3.0.0 + copy-webpack-plugin: + specifier: 6.4.1 + version: 6.4.1(webpack@4.46.0) + core-js: + specifier: 2.5.7 + version: 2.5.7 + css-loader: + specifier: ^1.0.1 + version: 1.0.1(webpack@4.46.0) + es6-object-assign: + specifier: 1.1.0 + version: 1.1.0 + file-loader: + specifier: 2.0.0 + version: 2.0.0(webpack@4.46.0) + get-float-time-domain-data: + specifier: 0.1.0 + version: 0.1.0 + get-user-media-promise: + specifier: 1.1.4 + version: 1.1.4 + immutable: + specifier: 3.8.2 + version: 3.8.2 + intl: + specifier: 1.2.5 + version: 1.2.5 + intl-messageformat: + specifier: ^2.2.0 + version: 2.2.0 + js-base64: + specifier: 2.4.9 + version: 2.4.9 + keymirror: + specifier: 0.1.1 + version: 0.1.1 + localforage: + specifier: ^1.10.0 + version: 1.10.0 + lodash.bindall: + specifier: 4.4.0 + version: 4.4.0 + lodash.debounce: + specifier: 4.0.8 + version: 4.0.8 + lodash.omit: + specifier: 4.5.0 + version: 4.5.0 + lodash.throttle: + specifier: 4.0.1 + version: 4.0.1 + minilog: + specifier: 3.1.0 + version: 3.1.0 + omggif: + specifier: 1.0.9 + version: 1.0.9 + papaparse: + specifier: 5.3.0 + version: 5.3.0 + postcss-import: + specifier: ^12.0.1 + version: 12.0.1 + postcss-loader: + specifier: ^3.0.0 + version: 3.0.0 + postcss-simple-vars: + specifier: ^5.0.2 + version: 5.0.2 + prop-types: + specifier: ^15.8.1 + version: 15.8.1 + query-string: + specifier: ^5.1.1 + version: 5.1.1 + raw-loader: + specifier: ^0.5.1 + version: 0.5.1 + react: + specifier: ^16.14.0 + version: 16.14.0 + react-contextmenu: + specifier: 2.9.4 + version: 2.9.4(prop-types@15.8.1)(react-dom@16.14.0)(react@16.14.0) + react-dom: + specifier: ^16.14.0 + version: 16.14.0(react@16.14.0) + react-draggable: + specifier: 3.0.5 + version: 3.0.5(react-dom@16.14.0)(react@16.14.0) + react-ga: + specifier: 2.5.3 + version: 2.5.3 + react-intl: + specifier: 2.9.0 + version: 2.9.0(prop-types@15.8.1)(react@16.14.0) + react-intl-redux: + specifier: 0.7.0 + version: 0.7.0(react-intl@2.9.0)(react-redux@5.0.7) + react-modal: + specifier: 3.9.1 + version: 3.9.1(react-dom@16.14.0)(react@16.14.0) + react-popover: + specifier: 0.5.10 + version: 0.5.10 + react-redux: + specifier: 5.0.7 + version: 5.0.7(react@16.14.0)(redux@3.7.2) + react-responsive: + specifier: ^4.1.0 + version: 4.1.0(react@16.14.0) + react-string-replace: + specifier: ^0.4.4 + version: 0.4.4 + react-style-proptype: + specifier: 3.2.2 + version: 3.2.2 + react-tabs: + specifier: 2.3.0 + version: 2.3.0(react@16.14.0) + react-tooltip: + specifier: 3.8.0 + version: 3.8.0(react-dom@16.14.0)(react@16.14.0) + react-virtualized: + specifier: 9.20.1 + version: 9.20.1(react-dom@16.14.0)(react@16.14.0) + redux: + specifier: 3.7.2 + version: 3.7.2 + redux-throttle: + specifier: 0.1.1 + version: 0.1.1 + scratch-audio: + specifier: github:PenguinMod/PenguinMod-Audio#develop + version: github.com/PenguinMod/PenguinMod-Audio/67c441461c16fed75c471abb1213b7b919badb6c + scratch-blocks: + specifier: github:PenguinMod/PenguinMod-Blocks#develop-builds + version: github.com/PenguinMod/PenguinMod-Blocks/898ffafdb69df711e56e3362686badd3e4553bfb + scratch-paint: + specifier: github:PenguinMod/PenguinMod-Paint#develop + version: github.com/PenguinMod/PenguinMod-Paint/e4bd0050300d2597f5037e75ea3697d970e7baf7(react-dom@16.14.0)(react-intl-redux@0.7.0)(react-intl@2.9.0)(react-popover@0.5.10)(react-redux@5.0.7)(react-responsive@4.1.0)(react-style-proptype@3.2.2)(react-tooltip@3.8.0)(react@16.14.0)(redux@3.7.2)(scratch-render-fonts@1.0.0-prerelease.20210401210003) + scratch-render: + specifier: github:PenguinMod/PenguinMod-Render#develop + version: github.com/PenguinMod/PenguinMod-Render/f73221d7efde3d39077470ecb5431bf9a6a33a53(scratch-render-fonts@1.0.0-prerelease.20210401210003) + scratch-render-fonts: + specifier: 1.0.0-prerelease.20210401210003 + version: 1.0.0-prerelease.20210401210003 + scratch-storage: + specifier: github:PenguinMod/PenguinMod-Storage#develop + version: github.com/PenguinMod/PenguinMod-Storage/96f45f701dc11648bc88fcc5307193d591afea84(webpack@4.46.0) + scratch-svg-renderer: + specifier: github:TurboWarp/scratch-svg-renderer#develop + version: github.com/TurboWarp/scratch-svg-renderer/62fe825405a451ab981c33d601d5c6c3581ced69(scratch-render-fonts@1.0.0-prerelease.20210401210003) + scratch-vm: + specifier: github:PenguinMod/PenguinMod-Vm#develop + version: github.com/PenguinMod/PenguinMod-Vm/e4dc0bbbdda4b5546beadd482cd3cbef8c7525c0(@turbowarp/scratch-svg-renderer@1.0.0)(webpack@4.46.0) + startaudiocontext: + specifier: 1.2.1 + version: 1.2.1 + style-loader: + specifier: ^0.23.1 + version: 0.23.1 + text-encoding: + specifier: 0.7.0 + version: 0.7.0 + theia: + specifier: github:FreshPenguin112/theia-pnpm#master + version: github.com/FreshPenguin112/theia-pnpm/13571e769ea006f4061f0eaf316cf3c7d214bad6 + to-style: + specifier: 1.3.3 + version: 1.3.3 + wav-encoder: + specifier: 1.3.0 + version: 1.3.0 + xhr: + specifier: 2.5.0 + version: 2.5.0 + +devDependencies: + '@babel/cli': + specifier: 7.14.8 + version: 7.14.8(@babel/core@7.14.8) + '@babel/core': + specifier: 7.14.8 + version: 7.14.8 + '@babel/plugin-proposal-object-rest-spread': + specifier: 7.14.7 + version: 7.14.7(@babel/core@7.14.8) + '@babel/plugin-syntax-dynamic-import': + specifier: 7.2.0 + version: 7.2.0(@babel/core@7.14.8) + '@babel/plugin-transform-async-to-generator': + specifier: 7.14.5 + version: 7.14.5(@babel/core@7.14.8) + '@babel/preset-env': + specifier: 7.14.8 + version: 7.14.8(@babel/core@7.14.8) + '@babel/preset-react': + specifier: 7.14.5 + version: 7.14.5(@babel/core@7.14.8) + babel-core: + specifier: 7.0.0-bridge.0 + version: 7.0.0-bridge.0(@babel/core@7.14.8) + babel-eslint: + specifier: 10.0.3 + version: 10.0.3(eslint@5.16.0) + babel-loader: + specifier: 8.2.2 + version: 8.2.2(@babel/core@7.14.8)(webpack@4.46.0) + chromedriver: + specifier: 105.0.0 + version: 105.0.0 + enzyme: + specifier: 3.10.0 + version: 3.10.0 + enzyme-adapter-react-16: + specifier: 1.3.0 + version: 1.3.0(enzyme@3.10.0)(react-dom@16.14.0)(react@16.14.0) + eslint: + specifier: 5.16.0 + version: 5.16.0 + eslint-config-scratch: + specifier: 6.0.0 + version: 6.0.0(babel-eslint@10.0.3)(eslint@5.16.0) + eslint-import-resolver-webpack: + specifier: 0.11.1 + version: 0.11.1(eslint-plugin-import@2.23.4)(webpack@4.46.0) + eslint-plugin-import: + specifier: 2.23.4 + version: 2.23.4(eslint-import-resolver-webpack@0.11.1)(eslint@5.16.0) + eslint-plugin-jest: + specifier: 22.17.0 + version: 22.17.0(eslint@5.16.0) + eslint-plugin-react: + specifier: 7.24.0 + version: 7.24.0(eslint@5.16.0) + gh-pages: + specifier: 3.2.3 + version: 3.2.3 + gh-pages-webpack-plugin: + specifier: github:FreshPenguin112/gh-pages-webpack-plugin + version: github.com/FreshPenguin112/gh-pages-webpack-plugin/af8291f79f5e90f62c4f312d1fc5e4a8a2aec5b0 + html-webpack-plugin: + specifier: ^4.5.2 + version: 4.5.2(webpack@4.46.0) + jest: + specifier: 21.2.1 + version: 21.2.1 + jest-junit: + specifier: 7.0.0 + version: 7.0.0 + lodash.defaultsdeep: + specifier: 4.6.1 + version: 4.6.1 + mkdirp: + specifier: 1.0.3 + version: 1.0.3 + raf: + specifier: 3.4.1 + version: 3.4.1 + react-test-renderer: + specifier: 16.2.0 + version: 16.2.0(react@16.14.0) + redux-mock-store: + specifier: 1.5.3 + version: 1.5.3 + rimraf: + specifier: 2.7.1 + version: 2.7.1 + selenium-webdriver: + specifier: 3.6.0 + version: 3.6.0 + uglifyjs-webpack-plugin: + specifier: 1.3.0 + version: 1.3.0(webpack@4.46.0) + url-loader: + specifier: ^4.1.1 + version: 4.1.1(file-loader@2.0.0)(webpack@4.46.0) + web-audio-test-api: + specifier: 0.5.2 + version: 0.5.2 + webpack: + specifier: 4.46.0 + version: 4.46.0(webpack-cli@3.3.12) + webpack-cli: + specifier: 3.3.12 + version: 3.3.12(webpack@4.46.0) + webpack-dev-server: + specifier: 3.11.2 + version: 3.11.2(webpack-cli@3.3.12)(webpack@4.46.0) + webpack-sources: + specifier: 3.2.3 + version: 3.2.3 + +packages: + + /@babel/cli@7.14.8(@babel/core@7.14.8): + resolution: {integrity: sha512-lcy6Lymft9Rpfqmrqdd4oTDdUx9ZwaAhAfywVrHG4771Pa6PPT0danJ1kDHBXYqh4HHSmIdA+nlmfxfxSDPtBg==} + engines: {node: '>=6.9.0'} + hasBin: true + peerDependencies: + '@babel/core': ^7.0.0-0 + dependencies: + '@babel/core': 7.14.8 + commander: 4.1.1 + convert-source-map: 1.9.0 + fs-readdir-recursive: 1.1.0 + glob: 7.2.3 + make-dir: 2.1.0 + slash: 2.0.0 + source-map: 0.5.7 + optionalDependencies: + '@nicolo-ribaudo/chokidar-2': 2.1.8-no-fsevents.2 + chokidar: 3.5.3 + transitivePeerDependencies: + - supports-color + + /@babel/code-frame@7.23.5: + resolution: {integrity: sha512-CgH3s1a96LipHCmSUmYFPwY7MNx8C3avkq7i4Wl3cfa662ldtUe4VM1TPXX70pfmrlWTb6jLqTYrZyT2ZTJBgA==} + engines: {node: '>=6.9.0'} + dependencies: + '@babel/highlight': 7.23.4 + chalk: 2.4.2 + + /@babel/compat-data@7.23.5: + resolution: {integrity: sha512-uU27kfDRlhfKl+w1U6vp16IuvSLtjAxdArVXPa9BvLkrr7CYIsxH5adpHObeAGY/41+syctUWOZ140a2Rvkgjw==} + engines: {node: '>=6.9.0'} + + /@babel/core@7.14.8: + resolution: {integrity: sha512-/AtaeEhT6ErpDhInbXmjHcUQXH0L0TEgscfcxk1qbOvLuKCa5aZT0SOOtDKFY96/CLROwbLSKyFor6idgNaU4Q==} + engines: {node: '>=6.9.0'} + dependencies: + '@babel/code-frame': 7.23.5 + '@babel/generator': 7.23.6 + '@babel/helper-compilation-targets': 7.23.6 + '@babel/helper-module-transforms': 7.23.3(@babel/core@7.14.8) + '@babel/helpers': 7.23.7 + '@babel/parser': 7.23.6 + '@babel/template': 7.22.15 + '@babel/traverse': 7.23.7 + '@babel/types': 7.23.6 + convert-source-map: 1.9.0 + debug: 4.3.4(supports-color@6.1.0) + gensync: 1.0.0-beta.2 + json5: 2.2.3 + semver: 6.3.1 + source-map: 0.5.7 + transitivePeerDependencies: + - supports-color + + /@babel/generator@7.23.6: + resolution: {integrity: sha512-qrSfCYxYQB5owCmGLbl8XRpX1ytXlpueOb0N0UmQwA073KZxejgQTzAmJezxvpwQD9uGtK2shHdi55QT+MbjIw==} + engines: {node: '>=6.9.0'} + dependencies: + '@babel/types': 7.23.6 + '@jridgewell/gen-mapping': 0.3.3 + '@jridgewell/trace-mapping': 0.3.20 + jsesc: 2.5.2 + + /@babel/helper-annotate-as-pure@7.22.5: + resolution: {integrity: sha512-LvBTxu8bQSQkcyKOU+a1btnNFQ1dMAd0R6PyW3arXes06F6QLWLIrd681bxRPIXlrMGR3XYnW9JyML7dP3qgxg==} + engines: {node: '>=6.9.0'} + dependencies: + '@babel/types': 7.23.6 + dev: true + + /@babel/helper-builder-binary-assignment-operator-visitor@7.22.15: + resolution: {integrity: sha512-QkBXwGgaoC2GtGZRoma6kv7Szfv06khvhFav67ZExau2RaXzy8MpHSMO2PNoP2XtmQphJQRHFfg77Bq731Yizw==} + engines: {node: '>=6.9.0'} + dependencies: + '@babel/types': 7.23.6 + dev: true + + /@babel/helper-compilation-targets@7.23.6: + resolution: {integrity: sha512-9JB548GZoQVmzrFgp8o7KxdgkTGm6xs9DW0o/Pim72UDjzr5ObUQ6ZzYPqA+g9OTS2bBQoctLJrky0RDCAWRgQ==} + engines: {node: '>=6.9.0'} + dependencies: + '@babel/compat-data': 7.23.5 + '@babel/helper-validator-option': 7.23.5 + browserslist: 4.22.2 + lru-cache: 5.1.1 + semver: 6.3.1 + + /@babel/helper-create-class-features-plugin@7.23.7(@babel/core@7.14.8): + resolution: {integrity: sha512-xCoqR/8+BoNnXOY7RVSgv6X+o7pmT5q1d+gGcRlXYkI+9B31glE4jeejhKVpA04O1AtzOt7OSQ6VYKP5FcRl9g==} + engines: {node: '>=6.9.0'} + peerDependencies: + '@babel/core': ^7.0.0 + dependencies: + '@babel/core': 7.14.8 + '@babel/helper-annotate-as-pure': 7.22.5 + '@babel/helper-environment-visitor': 7.22.20 + '@babel/helper-function-name': 7.23.0 + '@babel/helper-member-expression-to-functions': 7.23.0 + '@babel/helper-optimise-call-expression': 7.22.5 + '@babel/helper-replace-supers': 7.22.20(@babel/core@7.14.8) + '@babel/helper-skip-transparent-expression-wrappers': 7.22.5 + '@babel/helper-split-export-declaration': 7.22.6 + semver: 6.3.1 + dev: true + + /@babel/helper-create-regexp-features-plugin@7.22.15(@babel/core@7.14.8): + resolution: {integrity: sha512-29FkPLFjn4TPEa3RE7GpW+qbE8tlsu3jntNYNfcGsc49LphF1PQIiD+vMZ1z1xVOKt+93khA9tc2JBs3kBjA7w==} + engines: {node: '>=6.9.0'} + peerDependencies: + '@babel/core': ^7.0.0 + dependencies: + '@babel/core': 7.14.8 + '@babel/helper-annotate-as-pure': 7.22.5 + regexpu-core: 5.3.2 + semver: 6.3.1 + dev: true + + /@babel/helper-define-polyfill-provider@0.2.4(@babel/core@7.14.8): + resolution: {integrity: sha512-OrpPZ97s+aPi6h2n1OXzdhVis1SGSsMU2aMHgLcOKfsp4/v1NWpx3CWT3lBj5eeBq9cDkPkh+YCfdF7O12uNDQ==} + peerDependencies: + '@babel/core': ^7.4.0-0 + dependencies: + '@babel/core': 7.14.8 + '@babel/helper-compilation-targets': 7.23.6 + '@babel/helper-module-imports': 7.22.15 + '@babel/helper-plugin-utils': 7.22.5 + '@babel/traverse': 7.23.7 + debug: 4.3.4(supports-color@6.1.0) + lodash.debounce: 4.0.8 + resolve: 1.22.8 + semver: 6.3.1 + transitivePeerDependencies: + - supports-color + dev: true + + /@babel/helper-environment-visitor@7.22.20: + resolution: {integrity: sha512-zfedSIzFhat/gFhWfHtgWvlec0nqB9YEIVrpuwjruLlXfUSnA8cJB0miHKwqDnQ7d32aKo2xt88/xZptwxbfhA==} + engines: {node: '>=6.9.0'} + + /@babel/helper-function-name@7.23.0: + resolution: {integrity: sha512-OErEqsrxjZTJciZ4Oo+eoZqeW9UIiOcuYKRJA4ZAgV9myA+pOXhhmpfNCKjEH/auVfEYVFJ6y1Tc4r0eIApqiw==} + engines: {node: '>=6.9.0'} + dependencies: + '@babel/template': 7.22.15 + '@babel/types': 7.23.6 + + /@babel/helper-hoist-variables@7.22.5: + resolution: {integrity: sha512-wGjk9QZVzvknA6yKIUURb8zY3grXCcOZt+/7Wcy8O2uctxhplmUPkOdlgoNhmdVee2c92JXbf1xpMtVNbfoxRw==} + engines: {node: '>=6.9.0'} + dependencies: + '@babel/types': 7.23.6 + + /@babel/helper-member-expression-to-functions@7.23.0: + resolution: {integrity: sha512-6gfrPwh7OuT6gZyJZvd6WbTfrqAo7vm4xCzAXOusKqq/vWdKXphTpj5klHKNmRUU6/QRGlBsyU9mAIPaWHlqJA==} + engines: {node: '>=6.9.0'} + dependencies: + '@babel/types': 7.23.6 + dev: true + + /@babel/helper-module-imports@7.22.15: + resolution: {integrity: sha512-0pYVBnDKZO2fnSPCrgM/6WMc7eS20Fbok+0r88fp+YtWVLZrp4CkafFGIp+W0VKw4a22sgebPT99y+FDNMdP4w==} + engines: {node: '>=6.9.0'} + dependencies: + '@babel/types': 7.23.6 + + /@babel/helper-module-transforms@7.23.3(@babel/core@7.14.8): + resolution: {integrity: sha512-7bBs4ED9OmswdfDzpz4MpWgSrV7FXlc3zIagvLFjS5H+Mk7Snr21vQ6QwrsoCGMfNC4e4LQPdoULEt4ykz0SRQ==} + engines: {node: '>=6.9.0'} + peerDependencies: + '@babel/core': ^7.0.0 + dependencies: + '@babel/core': 7.14.8 + '@babel/helper-environment-visitor': 7.22.20 + '@babel/helper-module-imports': 7.22.15 + '@babel/helper-simple-access': 7.22.5 + '@babel/helper-split-export-declaration': 7.22.6 + '@babel/helper-validator-identifier': 7.22.20 + + /@babel/helper-optimise-call-expression@7.22.5: + resolution: {integrity: sha512-HBwaojN0xFRx4yIvpwGqxiV2tUfl7401jlok564NgB9EHS1y6QT17FmKWm4ztqjeVdXLuC4fSvHc5ePpQjoTbw==} + engines: {node: '>=6.9.0'} + dependencies: + '@babel/types': 7.23.6 + dev: true + + /@babel/helper-plugin-utils@7.22.5: + resolution: {integrity: sha512-uLls06UVKgFG9QD4OeFYLEGteMIAa5kpTPcFL28yuCIIzsf6ZyKZMllKVOCZFhiZ5ptnwX4mtKdWCBE/uT4amg==} + engines: {node: '>=6.9.0'} + + /@babel/helper-remap-async-to-generator@7.22.20(@babel/core@7.14.8): + resolution: {integrity: sha512-pBGyV4uBqOns+0UvhsTO8qgl8hO89PmiDYv+/COyp1aeMcmfrfruz+/nCMFiYyFF/Knn0yfrC85ZzNFjembFTw==} + engines: {node: '>=6.9.0'} + peerDependencies: + '@babel/core': ^7.0.0 + dependencies: + '@babel/core': 7.14.8 + '@babel/helper-annotate-as-pure': 7.22.5 + '@babel/helper-environment-visitor': 7.22.20 + '@babel/helper-wrap-function': 7.22.20 + dev: true + + /@babel/helper-replace-supers@7.22.20(@babel/core@7.14.8): + resolution: {integrity: sha512-qsW0In3dbwQUbK8kejJ4R7IHVGwHJlV6lpG6UA7a9hSa2YEiAib+N1T2kr6PEeUT+Fl7najmSOS6SmAwCHK6Tw==} + engines: {node: '>=6.9.0'} + peerDependencies: + '@babel/core': ^7.0.0 + dependencies: + '@babel/core': 7.14.8 + '@babel/helper-environment-visitor': 7.22.20 + '@babel/helper-member-expression-to-functions': 7.23.0 + '@babel/helper-optimise-call-expression': 7.22.5 + dev: true + + /@babel/helper-simple-access@7.22.5: + resolution: {integrity: sha512-n0H99E/K+Bika3++WNL17POvo4rKWZ7lZEp1Q+fStVbUi8nxPQEBOlTmCOxW/0JsS56SKKQ+ojAe2pHKJHN35w==} + engines: {node: '>=6.9.0'} + dependencies: + '@babel/types': 7.23.6 + + /@babel/helper-skip-transparent-expression-wrappers@7.22.5: + resolution: {integrity: sha512-tK14r66JZKiC43p8Ki33yLBVJKlQDFoA8GYN67lWCDCqoL6EMMSuM9b+Iff2jHaM/RRFYl7K+iiru7hbRqNx8Q==} + engines: {node: '>=6.9.0'} + dependencies: + '@babel/types': 7.23.6 + dev: true + + /@babel/helper-split-export-declaration@7.22.6: + resolution: {integrity: sha512-AsUnxuLhRYsisFiaJwvp1QF+I3KjD5FOxut14q/GzovUe6orHLesW2C7d754kRm53h5gqrz6sFl6sxc4BVtE/g==} + engines: {node: '>=6.9.0'} + dependencies: + '@babel/types': 7.23.6 + + /@babel/helper-string-parser@7.23.4: + resolution: {integrity: sha512-803gmbQdqwdf4olxrX4AJyFBV/RTr3rSmOj0rKwesmzlfhYNDEs+/iOcznzpNWlJlIlTJC2QfPFcHB6DlzdVLQ==} + engines: {node: '>=6.9.0'} + + /@babel/helper-validator-identifier@7.22.20: + resolution: {integrity: sha512-Y4OZ+ytlatR8AI+8KZfKuL5urKp7qey08ha31L8b3BwewJAoJamTzyvxPR/5D+KkdJCGPq/+8TukHBlY10FX9A==} + engines: {node: '>=6.9.0'} + + /@babel/helper-validator-option@7.23.5: + resolution: {integrity: sha512-85ttAOMLsr53VgXkTbkx8oA6YTfT4q7/HzXSLEYmjcSTJPMPQtvq1BD79Byep5xMUYbGRzEpDsjUf3dyp54IKw==} + engines: {node: '>=6.9.0'} + + /@babel/helper-wrap-function@7.22.20: + resolution: {integrity: sha512-pms/UwkOpnQe/PDAEdV/d7dVCoBbB+R4FvYoHGZz+4VPcg7RtYy2KP7S2lbuWM6FCSgob5wshfGESbC/hzNXZw==} + engines: {node: '>=6.9.0'} + dependencies: + '@babel/helper-function-name': 7.23.0 + '@babel/template': 7.22.15 + '@babel/types': 7.23.6 + dev: true + + /@babel/helpers@7.23.7: + resolution: {integrity: sha512-6AMnjCoC8wjqBzDHkuqpa7jAKwvMo4dC+lr/TFBz+ucfulO1XMpDnwWPGBNwClOKZ8h6xn5N81W/R5OrcKtCbQ==} + engines: {node: '>=6.9.0'} + dependencies: + '@babel/template': 7.22.15 + '@babel/traverse': 7.23.7 + '@babel/types': 7.23.6 + transitivePeerDependencies: + - supports-color + + /@babel/highlight@7.23.4: + resolution: {integrity: sha512-acGdbYSfp2WheJoJm/EBBBLh/ID8KDc64ISZ9DYtBmC8/Q204PZJLHyzeB5qMzJ5trcOkybd78M4x2KWsUq++A==} + engines: {node: '>=6.9.0'} + dependencies: + '@babel/helper-validator-identifier': 7.22.20 + chalk: 2.4.2 + js-tokens: 4.0.0 + + /@babel/parser@7.23.6: + resolution: {integrity: sha512-Z2uID7YJ7oNvAI20O9X0bblw7Qqs8Q2hFy0R9tAfnfLkp5MW0UH9eUvnDSnFwKZ0AvgS1ucqR4KzvVHgnke1VQ==} + engines: {node: '>=6.0.0'} + hasBin: true + dependencies: + '@babel/types': 7.23.6 + + /@babel/plugin-bugfix-v8-spread-parameters-in-optional-chaining@7.23.3(@babel/core@7.14.8): + resolution: {integrity: sha512-WwlxbfMNdVEpQjZmK5mhm7oSwD3dS6eU+Iwsi4Knl9wAletWem7kaRsGOG+8UEbRyqxY4SS5zvtfXwX+jMxUwQ==} + engines: {node: '>=6.9.0'} + peerDependencies: + '@babel/core': ^7.13.0 + dependencies: + '@babel/core': 7.14.8 + '@babel/helper-plugin-utils': 7.22.5 + '@babel/helper-skip-transparent-expression-wrappers': 7.22.5 + '@babel/plugin-transform-optional-chaining': 7.23.4(@babel/core@7.14.8) + dev: true + + /@babel/plugin-proposal-async-generator-functions@7.20.7(@babel/core@7.14.8): + resolution: {integrity: sha512-xMbiLsn/8RK7Wq7VeVytytS2L6qE69bXPB10YCmMdDZbKF4okCqY74pI/jJQ/8U0b/F6NrT2+14b8/P9/3AMGA==} + engines: {node: '>=6.9.0'} + 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. + peerDependencies: + '@babel/core': ^7.0.0-0 + dependencies: + '@babel/core': 7.14.8 + '@babel/helper-environment-visitor': 7.22.20 + '@babel/helper-plugin-utils': 7.22.5 + '@babel/helper-remap-async-to-generator': 7.22.20(@babel/core@7.14.8) + '@babel/plugin-syntax-async-generators': 7.8.4(@babel/core@7.14.8) + dev: true + + /@babel/plugin-proposal-class-properties@7.18.6(@babel/core@7.14.8): + resolution: {integrity: sha512-cumfXOF0+nzZrrN8Rf0t7M+tF6sZc7vhQwYQck9q1/5w2OExlD+b4v4RpMJFaV1Z7WcDRgO6FqvxqxGlwo+RHQ==} + engines: {node: '>=6.9.0'} + 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. + peerDependencies: + '@babel/core': ^7.0.0-0 + dependencies: + '@babel/core': 7.14.8 + '@babel/helper-create-class-features-plugin': 7.23.7(@babel/core@7.14.8) + '@babel/helper-plugin-utils': 7.22.5 + dev: true + + /@babel/plugin-proposal-class-static-block@7.21.0(@babel/core@7.14.8): + resolution: {integrity: sha512-XP5G9MWNUskFuP30IfFSEFB0Z6HzLIUcjYM4bYOPHXl7eiJ9HFv8tWj6TXTN5QODiEhDZAeI4hLok2iHFFV4hw==} + engines: {node: '>=6.9.0'} + deprecated: This proposal has been merged to the ECMAScript standard and thus this plugin is no longer maintained. Please use @babel/plugin-transform-class-static-block instead. + peerDependencies: + '@babel/core': ^7.12.0 + dependencies: + '@babel/core': 7.14.8 + '@babel/helper-create-class-features-plugin': 7.23.7(@babel/core@7.14.8) + '@babel/helper-plugin-utils': 7.22.5 + '@babel/plugin-syntax-class-static-block': 7.14.5(@babel/core@7.14.8) + dev: true + + /@babel/plugin-proposal-dynamic-import@7.18.6(@babel/core@7.14.8): + resolution: {integrity: sha512-1auuwmK+Rz13SJj36R+jqFPMJWyKEDd7lLSdOj4oJK0UTgGueSAtkrCvz9ewmgyU/P941Rv2fQwZJN8s6QruXw==} + engines: {node: '>=6.9.0'} + 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. + peerDependencies: + '@babel/core': ^7.0.0-0 + dependencies: + '@babel/core': 7.14.8 + '@babel/helper-plugin-utils': 7.22.5 + '@babel/plugin-syntax-dynamic-import': 7.8.3(@babel/core@7.14.8) + dev: true + + /@babel/plugin-proposal-export-namespace-from@7.18.9(@babel/core@7.14.8): + resolution: {integrity: sha512-k1NtHyOMvlDDFeb9G5PhUXuGj8m/wiwojgQVEhJ/fsVsMCpLyOP4h0uGEjYJKrRI+EVPlb5Jk+Gt9P97lOGwtA==} + engines: {node: '>=6.9.0'} + 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. + peerDependencies: + '@babel/core': ^7.0.0-0 + dependencies: + '@babel/core': 7.14.8 + '@babel/helper-plugin-utils': 7.22.5 + '@babel/plugin-syntax-export-namespace-from': 7.8.3(@babel/core@7.14.8) + dev: true + + /@babel/plugin-proposal-json-strings@7.18.6(@babel/core@7.14.8): + resolution: {integrity: sha512-lr1peyn9kOdbYc0xr0OdHTZ5FMqS6Di+H0Fz2I/JwMzGmzJETNeOFq2pBySw6X/KFL5EWDjlJuMsUGRFb8fQgQ==} + engines: {node: '>=6.9.0'} + 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. + peerDependencies: + '@babel/core': ^7.0.0-0 + dependencies: + '@babel/core': 7.14.8 + '@babel/helper-plugin-utils': 7.22.5 + '@babel/plugin-syntax-json-strings': 7.8.3(@babel/core@7.14.8) + dev: true + + /@babel/plugin-proposal-logical-assignment-operators@7.20.7(@babel/core@7.14.8): + resolution: {integrity: sha512-y7C7cZgpMIjWlKE5T7eJwp+tnRYM89HmRvWM5EQuB5BoHEONjmQ8lSNmBUwOyy/GFRsohJED51YBF79hE1djug==} + engines: {node: '>=6.9.0'} + 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. + peerDependencies: + '@babel/core': ^7.0.0-0 + dependencies: + '@babel/core': 7.14.8 + '@babel/helper-plugin-utils': 7.22.5 + '@babel/plugin-syntax-logical-assignment-operators': 7.10.4(@babel/core@7.14.8) + dev: true + + /@babel/plugin-proposal-nullish-coalescing-operator@7.18.6(@babel/core@7.14.8): + resolution: {integrity: sha512-wQxQzxYeJqHcfppzBDnm1yAY0jSRkUXR2z8RePZYrKwMKgMlE8+Z6LUno+bd6LvbGh8Gltvy74+9pIYkr+XkKA==} + engines: {node: '>=6.9.0'} + 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. + peerDependencies: + '@babel/core': ^7.0.0-0 + dependencies: + '@babel/core': 7.14.8 + '@babel/helper-plugin-utils': 7.22.5 + '@babel/plugin-syntax-nullish-coalescing-operator': 7.8.3(@babel/core@7.14.8) + dev: true + + /@babel/plugin-proposal-numeric-separator@7.18.6(@babel/core@7.14.8): + resolution: {integrity: sha512-ozlZFogPqoLm8WBr5Z8UckIoE4YQ5KESVcNudyXOR8uqIkliTEgJ3RoketfG6pmzLdeZF0H/wjE9/cCEitBl7Q==} + engines: {node: '>=6.9.0'} + 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. + peerDependencies: + '@babel/core': ^7.0.0-0 + dependencies: + '@babel/core': 7.14.8 + '@babel/helper-plugin-utils': 7.22.5 + '@babel/plugin-syntax-numeric-separator': 7.10.4(@babel/core@7.14.8) + dev: true + + /@babel/plugin-proposal-object-rest-spread@7.14.7(@babel/core@7.14.8): + resolution: {integrity: sha512-082hsZz+sVabfmDWo1Oct1u1AgbKbUAyVgmX4otIc7bdsRgHBXwTwb3DpDmD4Eyyx6DNiuz5UAATT655k+kL5g==} + engines: {node: '>=6.9.0'} + 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. + peerDependencies: + '@babel/core': ^7.0.0-0 + dependencies: + '@babel/compat-data': 7.23.5 + '@babel/core': 7.14.8 + '@babel/helper-compilation-targets': 7.23.6 + '@babel/helper-plugin-utils': 7.22.5 + '@babel/plugin-syntax-object-rest-spread': 7.8.3(@babel/core@7.14.8) + '@babel/plugin-transform-parameters': 7.23.3(@babel/core@7.14.8) + dev: true + + /@babel/plugin-proposal-optional-catch-binding@7.18.6(@babel/core@7.14.8): + resolution: {integrity: sha512-Q40HEhs9DJQyaZfUjjn6vE8Cv4GmMHCYuMGIWUnlxH6400VGxOuwWsPt4FxXxJkC/5eOzgn0z21M9gMT4MOhbw==} + engines: {node: '>=6.9.0'} + 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. + peerDependencies: + '@babel/core': ^7.0.0-0 + dependencies: + '@babel/core': 7.14.8 + '@babel/helper-plugin-utils': 7.22.5 + '@babel/plugin-syntax-optional-catch-binding': 7.8.3(@babel/core@7.14.8) + dev: true + + /@babel/plugin-proposal-optional-chaining@7.21.0(@babel/core@7.14.8): + resolution: {integrity: sha512-p4zeefM72gpmEe2fkUr/OnOXpWEf8nAgk7ZYVqqfFiyIG7oFfVZcCrU64hWn5xp4tQ9LkV4bTIa5rD0KANpKNA==} + engines: {node: '>=6.9.0'} + 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. + peerDependencies: + '@babel/core': ^7.0.0-0 + dependencies: + '@babel/core': 7.14.8 + '@babel/helper-plugin-utils': 7.22.5 + '@babel/helper-skip-transparent-expression-wrappers': 7.22.5 + '@babel/plugin-syntax-optional-chaining': 7.8.3(@babel/core@7.14.8) + dev: true + + /@babel/plugin-proposal-private-methods@7.18.6(@babel/core@7.14.8): + resolution: {integrity: sha512-nutsvktDItsNn4rpGItSNV2sz1XwS+nfU0Rg8aCx3W3NOKVzdMjJRu0O5OkgDp3ZGICSTbgRpxZoWsxoKRvbeA==} + engines: {node: '>=6.9.0'} + 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. + peerDependencies: + '@babel/core': ^7.0.0-0 + dependencies: + '@babel/core': 7.14.8 + '@babel/helper-create-class-features-plugin': 7.23.7(@babel/core@7.14.8) + '@babel/helper-plugin-utils': 7.22.5 + dev: true + + /@babel/plugin-proposal-private-property-in-object@7.21.11(@babel/core@7.14.8): + resolution: {integrity: sha512-0QZ8qP/3RLDVBwBFoWAwCtgcDZJVwA5LUJRZU8x2YFfKNuFq161wK3cuGrALu5yiPu+vzwTAg/sMWVNeWeNyaw==} + engines: {node: '>=6.9.0'} + deprecated: This proposal has been merged to the ECMAScript standard and thus this plugin is no longer maintained. Please use @babel/plugin-transform-private-property-in-object instead. + peerDependencies: + '@babel/core': ^7.0.0-0 + dependencies: + '@babel/core': 7.14.8 + '@babel/helper-annotate-as-pure': 7.22.5 + '@babel/helper-create-class-features-plugin': 7.23.7(@babel/core@7.14.8) + '@babel/helper-plugin-utils': 7.22.5 + '@babel/plugin-syntax-private-property-in-object': 7.14.5(@babel/core@7.14.8) + dev: true + + /@babel/plugin-proposal-unicode-property-regex@7.18.6(@babel/core@7.14.8): + resolution: {integrity: sha512-2BShG/d5yoZyXZfVePH91urL5wTG6ASZU9M4o03lKK8u8UW1y08OMttBSOADTcJrnPMpvDXRG3G8fyLh4ovs8w==} + engines: {node: '>=4'} + 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. + peerDependencies: + '@babel/core': ^7.0.0-0 + dependencies: + '@babel/core': 7.14.8 + '@babel/helper-create-regexp-features-plugin': 7.22.15(@babel/core@7.14.8) + '@babel/helper-plugin-utils': 7.22.5 + dev: true + + /@babel/plugin-syntax-async-generators@7.8.4(@babel/core@7.14.8): + resolution: {integrity: sha512-tycmZxkGfZaxhMRbXlPXuVFpdWlXpir2W4AMhSJgRKzk/eDlIXOhb2LHWoLpDF7TEHylV5zNhykX6KAgHJmTNw==} + peerDependencies: + '@babel/core': ^7.0.0-0 + dependencies: + '@babel/core': 7.14.8 + '@babel/helper-plugin-utils': 7.22.5 + dev: true + + /@babel/plugin-syntax-class-properties@7.12.13(@babel/core@7.14.8): + resolution: {integrity: sha512-fm4idjKla0YahUNgFNLCB0qySdsoPiZP3iQE3rky0mBUtMZ23yDJ9SJdg6dXTSDnulOVqiF3Hgr9nbXvXTQZYA==} + peerDependencies: + '@babel/core': ^7.0.0-0 + dependencies: + '@babel/core': 7.14.8 + '@babel/helper-plugin-utils': 7.22.5 + dev: true + + /@babel/plugin-syntax-class-static-block@7.14.5(@babel/core@7.14.8): + resolution: {integrity: sha512-b+YyPmr6ldyNnM6sqYeMWE+bgJcJpO6yS4QD7ymxgH34GBPNDM/THBh8iunyvKIZztiwLH4CJZ0RxTk9emgpjw==} + engines: {node: '>=6.9.0'} + peerDependencies: + '@babel/core': ^7.0.0-0 + dependencies: + '@babel/core': 7.14.8 + '@babel/helper-plugin-utils': 7.22.5 + dev: true + + /@babel/plugin-syntax-dynamic-import@7.2.0(@babel/core@7.14.8): + resolution: {integrity: sha512-mVxuJ0YroI/h/tbFTPGZR8cv6ai+STMKNBq0f8hFxsxWjl94qqhsb+wXbpNMDPU3cfR1TIsVFzU3nXyZMqyK4w==} + peerDependencies: + '@babel/core': ^7.0.0-0 + dependencies: + '@babel/core': 7.14.8 + '@babel/helper-plugin-utils': 7.22.5 + dev: true + + /@babel/plugin-syntax-dynamic-import@7.8.3(@babel/core@7.14.8): + resolution: {integrity: sha512-5gdGbFon+PszYzqs83S3E5mpi7/y/8M9eC90MRTZfduQOYW76ig6SOSPNe41IG5LoP3FGBn2N0RjVDSQiS94kQ==} + peerDependencies: + '@babel/core': ^7.0.0-0 + dependencies: + '@babel/core': 7.14.8 + '@babel/helper-plugin-utils': 7.22.5 + dev: true + + /@babel/plugin-syntax-export-namespace-from@7.8.3(@babel/core@7.14.8): + resolution: {integrity: sha512-MXf5laXo6c1IbEbegDmzGPwGNTsHZmEy6QGznu5Sh2UCWvueywb2ee+CCE4zQiZstxU9BMoQO9i6zUFSY0Kj0Q==} + peerDependencies: + '@babel/core': ^7.0.0-0 + dependencies: + '@babel/core': 7.14.8 + '@babel/helper-plugin-utils': 7.22.5 + dev: true + + /@babel/plugin-syntax-json-strings@7.8.3(@babel/core@7.14.8): + resolution: {integrity: sha512-lY6kdGpWHvjoe2vk4WrAapEuBR69EMxZl+RoGRhrFGNYVK8mOPAW8VfbT/ZgrFbXlDNiiaxQnAtgVCZ6jv30EA==} + peerDependencies: + '@babel/core': ^7.0.0-0 + dependencies: + '@babel/core': 7.14.8 + '@babel/helper-plugin-utils': 7.22.5 + dev: true + + /@babel/plugin-syntax-jsx@7.23.3(@babel/core@7.14.8): + resolution: {integrity: sha512-EB2MELswq55OHUoRZLGg/zC7QWUKfNLpE57m/S2yr1uEneIgsTgrSzXP3NXEsMkVn76OlaVVnzN+ugObuYGwhg==} + engines: {node: '>=6.9.0'} + peerDependencies: + '@babel/core': ^7.0.0-0 + dependencies: + '@babel/core': 7.14.8 + '@babel/helper-plugin-utils': 7.22.5 + dev: true + + /@babel/plugin-syntax-logical-assignment-operators@7.10.4(@babel/core@7.14.8): + resolution: {integrity: sha512-d8waShlpFDinQ5MtvGU9xDAOzKH47+FFoney2baFIoMr952hKOLp1HR7VszoZvOsV/4+RRszNY7D17ba0te0ig==} + peerDependencies: + '@babel/core': ^7.0.0-0 + dependencies: + '@babel/core': 7.14.8 + '@babel/helper-plugin-utils': 7.22.5 + dev: true + + /@babel/plugin-syntax-nullish-coalescing-operator@7.8.3(@babel/core@7.14.8): + resolution: {integrity: sha512-aSff4zPII1u2QD7y+F8oDsz19ew4IGEJg9SVW+bqwpwtfFleiQDMdzA/R+UlWDzfnHFCxxleFT0PMIrR36XLNQ==} + peerDependencies: + '@babel/core': ^7.0.0-0 + dependencies: + '@babel/core': 7.14.8 + '@babel/helper-plugin-utils': 7.22.5 + dev: true + + /@babel/plugin-syntax-numeric-separator@7.10.4(@babel/core@7.14.8): + resolution: {integrity: sha512-9H6YdfkcK/uOnY/K7/aA2xpzaAgkQn37yzWUMRK7OaPOqOpGS1+n0H5hxT9AUw9EsSjPW8SVyMJwYRtWs3X3ug==} + peerDependencies: + '@babel/core': ^7.0.0-0 + dependencies: + '@babel/core': 7.14.8 + '@babel/helper-plugin-utils': 7.22.5 + dev: true + + /@babel/plugin-syntax-object-rest-spread@7.8.3(@babel/core@7.14.8): + resolution: {integrity: sha512-XoqMijGZb9y3y2XskN+P1wUGiVwWZ5JmoDRwx5+3GmEplNyVM2s2Dg8ILFQm8rWM48orGy5YpI5Bl8U1y7ydlA==} + peerDependencies: + '@babel/core': ^7.0.0-0 + dependencies: + '@babel/core': 7.14.8 + '@babel/helper-plugin-utils': 7.22.5 + dev: true + + /@babel/plugin-syntax-optional-catch-binding@7.8.3(@babel/core@7.14.8): + resolution: {integrity: sha512-6VPD0Pc1lpTqw0aKoeRTMiB+kWhAoT24PA+ksWSBrFtl5SIRVpZlwN3NNPQjehA2E/91FV3RjLWoVTglWcSV3Q==} + peerDependencies: + '@babel/core': ^7.0.0-0 + dependencies: + '@babel/core': 7.14.8 + '@babel/helper-plugin-utils': 7.22.5 + dev: true + + /@babel/plugin-syntax-optional-chaining@7.8.3(@babel/core@7.14.8): + resolution: {integrity: sha512-KoK9ErH1MBlCPxV0VANkXW2/dw4vlbGDrFgz8bmUsBGYkFRcbRwMh6cIJubdPrkxRwuGdtCk0v/wPTKbQgBjkg==} + peerDependencies: + '@babel/core': ^7.0.0-0 + dependencies: + '@babel/core': 7.14.8 + '@babel/helper-plugin-utils': 7.22.5 + dev: true + + /@babel/plugin-syntax-private-property-in-object@7.14.5(@babel/core@7.14.8): + resolution: {integrity: sha512-0wVnp9dxJ72ZUJDV27ZfbSj6iHLoytYZmh3rFcxNnvsJF3ktkzLDZPy/mA17HGsaQT3/DQsWYX1f1QGWkCoVUg==} + engines: {node: '>=6.9.0'} + peerDependencies: + '@babel/core': ^7.0.0-0 + dependencies: + '@babel/core': 7.14.8 + '@babel/helper-plugin-utils': 7.22.5 + dev: true + + /@babel/plugin-syntax-top-level-await@7.14.5(@babel/core@7.14.8): + resolution: {integrity: sha512-hx++upLv5U1rgYfwe1xBQUhRmU41NEvpUvrp8jkrSCdvGSnM5/qdRMtylJ6PG5OFkBaHkbTAKTnd3/YyESRHFw==} + engines: {node: '>=6.9.0'} + peerDependencies: + '@babel/core': ^7.0.0-0 + dependencies: + '@babel/core': 7.14.8 + '@babel/helper-plugin-utils': 7.22.5 + dev: true + + /@babel/plugin-transform-arrow-functions@7.23.3(@babel/core@7.14.8): + resolution: {integrity: sha512-NzQcQrzaQPkaEwoTm4Mhyl8jI1huEL/WWIEvudjTCMJ9aBZNpsJbMASx7EQECtQQPS/DcnFpo0FIh3LvEO9cxQ==} + engines: {node: '>=6.9.0'} + peerDependencies: + '@babel/core': ^7.0.0-0 + dependencies: + '@babel/core': 7.14.8 + '@babel/helper-plugin-utils': 7.22.5 + dev: true + + /@babel/plugin-transform-async-to-generator@7.14.5(@babel/core@7.14.8): + resolution: {integrity: sha512-szkbzQ0mNk0rpu76fzDdqSyPu0MuvpXgC+6rz5rpMb5OIRxdmHfQxrktL8CYolL2d8luMCZTR0DpIMIdL27IjA==} + engines: {node: '>=6.9.0'} + peerDependencies: + '@babel/core': ^7.0.0-0 + dependencies: + '@babel/core': 7.14.8 + '@babel/helper-module-imports': 7.22.15 + '@babel/helper-plugin-utils': 7.22.5 + '@babel/helper-remap-async-to-generator': 7.22.20(@babel/core@7.14.8) + dev: true + + /@babel/plugin-transform-block-scoped-functions@7.23.3(@babel/core@7.14.8): + resolution: {integrity: sha512-vI+0sIaPIO6CNuM9Kk5VmXcMVRiOpDh7w2zZt9GXzmE/9KD70CUEVhvPR/etAeNK/FAEkhxQtXOzVF3EuRL41A==} + engines: {node: '>=6.9.0'} + peerDependencies: + '@babel/core': ^7.0.0-0 + dependencies: + '@babel/core': 7.14.8 + '@babel/helper-plugin-utils': 7.22.5 + dev: true + + /@babel/plugin-transform-block-scoping@7.23.4(@babel/core@7.14.8): + resolution: {integrity: sha512-0QqbP6B6HOh7/8iNR4CQU2Th/bbRtBp4KS9vcaZd1fZ0wSh5Fyssg0UCIHwxh+ka+pNDREbVLQnHCMHKZfPwfw==} + engines: {node: '>=6.9.0'} + peerDependencies: + '@babel/core': ^7.0.0-0 + dependencies: + '@babel/core': 7.14.8 + '@babel/helper-plugin-utils': 7.22.5 + dev: true + + /@babel/plugin-transform-classes@7.23.5(@babel/core@7.14.8): + resolution: {integrity: sha512-jvOTR4nicqYC9yzOHIhXG5emiFEOpappSJAl73SDSEDcybD+Puuze8Tnpb9p9qEyYup24tq891gkaygIFvWDqg==} + engines: {node: '>=6.9.0'} + peerDependencies: + '@babel/core': ^7.0.0-0 + dependencies: + '@babel/core': 7.14.8 + '@babel/helper-annotate-as-pure': 7.22.5 + '@babel/helper-compilation-targets': 7.23.6 + '@babel/helper-environment-visitor': 7.22.20 + '@babel/helper-function-name': 7.23.0 + '@babel/helper-optimise-call-expression': 7.22.5 + '@babel/helper-plugin-utils': 7.22.5 + '@babel/helper-replace-supers': 7.22.20(@babel/core@7.14.8) + '@babel/helper-split-export-declaration': 7.22.6 + globals: 11.12.0 + dev: true + + /@babel/plugin-transform-computed-properties@7.23.3(@babel/core@7.14.8): + resolution: {integrity: sha512-dTj83UVTLw/+nbiHqQSFdwO9CbTtwq1DsDqm3CUEtDrZNET5rT5E6bIdTlOftDTDLMYxvxHNEYO4B9SLl8SLZw==} + engines: {node: '>=6.9.0'} + peerDependencies: + '@babel/core': ^7.0.0-0 + dependencies: + '@babel/core': 7.14.8 + '@babel/helper-plugin-utils': 7.22.5 + '@babel/template': 7.22.15 + dev: true + + /@babel/plugin-transform-destructuring@7.23.3(@babel/core@7.14.8): + resolution: {integrity: sha512-n225npDqjDIr967cMScVKHXJs7rout1q+tt50inyBCPkyZ8KxeI6d+GIbSBTT/w/9WdlWDOej3V9HE5Lgk57gw==} + engines: {node: '>=6.9.0'} + peerDependencies: + '@babel/core': ^7.0.0-0 + dependencies: + '@babel/core': 7.14.8 + '@babel/helper-plugin-utils': 7.22.5 + dev: true + + /@babel/plugin-transform-dotall-regex@7.23.3(@babel/core@7.14.8): + resolution: {integrity: sha512-vgnFYDHAKzFaTVp+mneDsIEbnJ2Np/9ng9iviHw3P/KVcgONxpNULEW/51Z/BaFojG2GI2GwwXck5uV1+1NOYQ==} + engines: {node: '>=6.9.0'} + peerDependencies: + '@babel/core': ^7.0.0-0 + dependencies: + '@babel/core': 7.14.8 + '@babel/helper-create-regexp-features-plugin': 7.22.15(@babel/core@7.14.8) + '@babel/helper-plugin-utils': 7.22.5 + dev: true + + /@babel/plugin-transform-duplicate-keys@7.23.3(@babel/core@7.14.8): + resolution: {integrity: sha512-RrqQ+BQmU3Oyav3J+7/myfvRCq7Tbz+kKLLshUmMwNlDHExbGL7ARhajvoBJEvc+fCguPPu887N+3RRXBVKZUA==} + engines: {node: '>=6.9.0'} + peerDependencies: + '@babel/core': ^7.0.0-0 + dependencies: + '@babel/core': 7.14.8 + '@babel/helper-plugin-utils': 7.22.5 + dev: true + + /@babel/plugin-transform-exponentiation-operator@7.23.3(@babel/core@7.14.8): + resolution: {integrity: sha512-5fhCsl1odX96u7ILKHBj4/Y8vipoqwsJMh4csSA8qFfxrZDEA4Ssku2DyNvMJSmZNOEBT750LfFPbtrnTP90BQ==} + engines: {node: '>=6.9.0'} + peerDependencies: + '@babel/core': ^7.0.0-0 + dependencies: + '@babel/core': 7.14.8 + '@babel/helper-builder-binary-assignment-operator-visitor': 7.22.15 + '@babel/helper-plugin-utils': 7.22.5 + dev: true + + /@babel/plugin-transform-for-of@7.23.6(@babel/core@7.14.8): + resolution: {integrity: sha512-aYH4ytZ0qSuBbpfhuofbg/e96oQ7U2w1Aw/UQmKT+1l39uEhUPoFS3fHevDc1G0OvewyDudfMKY1OulczHzWIw==} + engines: {node: '>=6.9.0'} + peerDependencies: + '@babel/core': ^7.0.0-0 + dependencies: + '@babel/core': 7.14.8 + '@babel/helper-plugin-utils': 7.22.5 + '@babel/helper-skip-transparent-expression-wrappers': 7.22.5 + dev: true + + /@babel/plugin-transform-function-name@7.23.3(@babel/core@7.14.8): + resolution: {integrity: sha512-I1QXp1LxIvt8yLaib49dRW5Okt7Q4oaxao6tFVKS/anCdEOMtYwWVKoiOA1p34GOWIZjUK0E+zCp7+l1pfQyiw==} + engines: {node: '>=6.9.0'} + peerDependencies: + '@babel/core': ^7.0.0-0 + dependencies: + '@babel/core': 7.14.8 + '@babel/helper-compilation-targets': 7.23.6 + '@babel/helper-function-name': 7.23.0 + '@babel/helper-plugin-utils': 7.22.5 + dev: true + + /@babel/plugin-transform-literals@7.23.3(@babel/core@7.14.8): + resolution: {integrity: sha512-wZ0PIXRxnwZvl9AYpqNUxpZ5BiTGrYt7kueGQ+N5FiQ7RCOD4cm8iShd6S6ggfVIWaJf2EMk8eRzAh52RfP4rQ==} + engines: {node: '>=6.9.0'} + peerDependencies: + '@babel/core': ^7.0.0-0 + dependencies: + '@babel/core': 7.14.8 + '@babel/helper-plugin-utils': 7.22.5 + dev: true + + /@babel/plugin-transform-member-expression-literals@7.23.3(@babel/core@7.14.8): + resolution: {integrity: sha512-sC3LdDBDi5x96LA+Ytekz2ZPk8i/Ck+DEuDbRAll5rknJ5XRTSaPKEYwomLcs1AA8wg9b3KjIQRsnApj+q51Ag==} + engines: {node: '>=6.9.0'} + peerDependencies: + '@babel/core': ^7.0.0-0 + dependencies: + '@babel/core': 7.14.8 + '@babel/helper-plugin-utils': 7.22.5 + dev: true + + /@babel/plugin-transform-modules-amd@7.23.3(@babel/core@7.14.8): + resolution: {integrity: sha512-vJYQGxeKM4t8hYCKVBlZX/gtIY2I7mRGFNcm85sgXGMTBcoV3QdVtdpbcWEbzbfUIUZKwvgFT82mRvaQIebZzw==} + engines: {node: '>=6.9.0'} + peerDependencies: + '@babel/core': ^7.0.0-0 + dependencies: + '@babel/core': 7.14.8 + '@babel/helper-module-transforms': 7.23.3(@babel/core@7.14.8) + '@babel/helper-plugin-utils': 7.22.5 + dev: true + + /@babel/plugin-transform-modules-commonjs@7.23.3(@babel/core@7.14.8): + resolution: {integrity: sha512-aVS0F65LKsdNOtcz6FRCpE4OgsP2OFnW46qNxNIX9h3wuzaNcSQsJysuMwqSibC98HPrf2vCgtxKNwS0DAlgcA==} + engines: {node: '>=6.9.0'} + peerDependencies: + '@babel/core': ^7.0.0-0 + dependencies: + '@babel/core': 7.14.8 + '@babel/helper-module-transforms': 7.23.3(@babel/core@7.14.8) + '@babel/helper-plugin-utils': 7.22.5 + '@babel/helper-simple-access': 7.22.5 + dev: true + + /@babel/plugin-transform-modules-systemjs@7.23.3(@babel/core@7.14.8): + resolution: {integrity: sha512-ZxyKGTkF9xT9YJuKQRo19ewf3pXpopuYQd8cDXqNzc3mUNbOME0RKMoZxviQk74hwzfQsEe66dE92MaZbdHKNQ==} + engines: {node: '>=6.9.0'} + peerDependencies: + '@babel/core': ^7.0.0-0 + dependencies: + '@babel/core': 7.14.8 + '@babel/helper-hoist-variables': 7.22.5 + '@babel/helper-module-transforms': 7.23.3(@babel/core@7.14.8) + '@babel/helper-plugin-utils': 7.22.5 + '@babel/helper-validator-identifier': 7.22.20 + dev: true + + /@babel/plugin-transform-modules-umd@7.23.3(@babel/core@7.14.8): + resolution: {integrity: sha512-zHsy9iXX2nIsCBFPud3jKn1IRPWg3Ing1qOZgeKV39m1ZgIdpJqvlWVeiHBZC6ITRG0MfskhYe9cLgntfSFPIg==} + engines: {node: '>=6.9.0'} + peerDependencies: + '@babel/core': ^7.0.0-0 + dependencies: + '@babel/core': 7.14.8 + '@babel/helper-module-transforms': 7.23.3(@babel/core@7.14.8) + '@babel/helper-plugin-utils': 7.22.5 + dev: true + + /@babel/plugin-transform-named-capturing-groups-regex@7.22.5(@babel/core@7.14.8): + resolution: {integrity: sha512-YgLLKmS3aUBhHaxp5hi1WJTgOUb/NCuDHzGT9z9WTt3YG+CPRhJs6nprbStx6DnWM4dh6gt7SU3sZodbZ08adQ==} + engines: {node: '>=6.9.0'} + peerDependencies: + '@babel/core': ^7.0.0 + dependencies: + '@babel/core': 7.14.8 + '@babel/helper-create-regexp-features-plugin': 7.22.15(@babel/core@7.14.8) + '@babel/helper-plugin-utils': 7.22.5 + dev: true + + /@babel/plugin-transform-new-target@7.23.3(@babel/core@7.14.8): + resolution: {integrity: sha512-YJ3xKqtJMAT5/TIZnpAR3I+K+WaDowYbN3xyxI8zxx/Gsypwf9B9h0VB+1Nh6ACAAPRS5NSRje0uVv5i79HYGQ==} + engines: {node: '>=6.9.0'} + peerDependencies: + '@babel/core': ^7.0.0-0 + dependencies: + '@babel/core': 7.14.8 + '@babel/helper-plugin-utils': 7.22.5 + dev: true + + /@babel/plugin-transform-object-super@7.23.3(@babel/core@7.14.8): + resolution: {integrity: sha512-BwQ8q0x2JG+3lxCVFohg+KbQM7plfpBwThdW9A6TMtWwLsbDA01Ek2Zb/AgDN39BiZsExm4qrXxjk+P1/fzGrA==} + engines: {node: '>=6.9.0'} + peerDependencies: + '@babel/core': ^7.0.0-0 + dependencies: + '@babel/core': 7.14.8 + '@babel/helper-plugin-utils': 7.22.5 + '@babel/helper-replace-supers': 7.22.20(@babel/core@7.14.8) + dev: true + + /@babel/plugin-transform-optional-chaining@7.23.4(@babel/core@7.14.8): + resolution: {integrity: sha512-ZU8y5zWOfjM5vZ+asjgAPwDaBjJzgufjES89Rs4Lpq63O300R/kOz30WCLo6BxxX6QVEilwSlpClnG5cZaikTA==} + engines: {node: '>=6.9.0'} + peerDependencies: + '@babel/core': ^7.0.0-0 + dependencies: + '@babel/core': 7.14.8 + '@babel/helper-plugin-utils': 7.22.5 + '@babel/helper-skip-transparent-expression-wrappers': 7.22.5 + '@babel/plugin-syntax-optional-chaining': 7.8.3(@babel/core@7.14.8) + dev: true + + /@babel/plugin-transform-parameters@7.23.3(@babel/core@7.14.8): + resolution: {integrity: sha512-09lMt6UsUb3/34BbECKVbVwrT9bO6lILWln237z7sLaWnMsTi7Yc9fhX5DLpkJzAGfaReXI22wP41SZmnAA3Vw==} + engines: {node: '>=6.9.0'} + peerDependencies: + '@babel/core': ^7.0.0-0 + dependencies: + '@babel/core': 7.14.8 + '@babel/helper-plugin-utils': 7.22.5 + dev: true + + /@babel/plugin-transform-property-literals@7.23.3(@babel/core@7.14.8): + resolution: {integrity: sha512-jR3Jn3y7cZp4oEWPFAlRsSWjxKe4PZILGBSd4nis1TsC5qeSpb+nrtihJuDhNI7QHiVbUaiXa0X2RZY3/TI6Nw==} + engines: {node: '>=6.9.0'} + peerDependencies: + '@babel/core': ^7.0.0-0 + dependencies: + '@babel/core': 7.14.8 + '@babel/helper-plugin-utils': 7.22.5 + dev: true + + /@babel/plugin-transform-react-display-name@7.23.3(@babel/core@7.14.8): + resolution: {integrity: sha512-GnvhtVfA2OAtzdX58FJxU19rhoGeQzyVndw3GgtdECQvQFXPEZIOVULHVZGAYmOgmqjXpVpfocAbSjh99V/Fqw==} + engines: {node: '>=6.9.0'} + peerDependencies: + '@babel/core': ^7.0.0-0 + dependencies: + '@babel/core': 7.14.8 + '@babel/helper-plugin-utils': 7.22.5 + dev: true + + /@babel/plugin-transform-react-jsx-development@7.22.5(@babel/core@7.14.8): + resolution: {integrity: sha512-bDhuzwWMuInwCYeDeMzyi7TaBgRQei6DqxhbyniL7/VG4RSS7HtSL2QbY4eESy1KJqlWt8g3xeEBGPuo+XqC8A==} + engines: {node: '>=6.9.0'} + peerDependencies: + '@babel/core': ^7.0.0-0 + dependencies: + '@babel/core': 7.14.8 + '@babel/plugin-transform-react-jsx': 7.23.4(@babel/core@7.14.8) + dev: true + + /@babel/plugin-transform-react-jsx@7.23.4(@babel/core@7.14.8): + resolution: {integrity: sha512-5xOpoPguCZCRbo/JeHlloSkTA8Bld1J/E1/kLfD1nsuiW1m8tduTA1ERCgIZokDflX/IBzKcqR3l7VlRgiIfHA==} + engines: {node: '>=6.9.0'} + peerDependencies: + '@babel/core': ^7.0.0-0 + dependencies: + '@babel/core': 7.14.8 + '@babel/helper-annotate-as-pure': 7.22.5 + '@babel/helper-module-imports': 7.22.15 + '@babel/helper-plugin-utils': 7.22.5 + '@babel/plugin-syntax-jsx': 7.23.3(@babel/core@7.14.8) + '@babel/types': 7.23.6 + dev: true + + /@babel/plugin-transform-react-pure-annotations@7.23.3(@babel/core@7.14.8): + resolution: {integrity: sha512-qMFdSS+TUhB7Q/3HVPnEdYJDQIk57jkntAwSuz9xfSE4n+3I+vHYCli3HoHawN1Z3RfCz/y1zXA/JXjG6cVImQ==} + engines: {node: '>=6.9.0'} + peerDependencies: + '@babel/core': ^7.0.0-0 + dependencies: + '@babel/core': 7.14.8 + '@babel/helper-annotate-as-pure': 7.22.5 + '@babel/helper-plugin-utils': 7.22.5 + dev: true + + /@babel/plugin-transform-regenerator@7.23.3(@babel/core@7.14.8): + resolution: {integrity: sha512-KP+75h0KghBMcVpuKisx3XTu9Ncut8Q8TuvGO4IhY+9D5DFEckQefOuIsB/gQ2tG71lCke4NMrtIPS8pOj18BQ==} + engines: {node: '>=6.9.0'} + peerDependencies: + '@babel/core': ^7.0.0-0 + dependencies: + '@babel/core': 7.14.8 + '@babel/helper-plugin-utils': 7.22.5 + regenerator-transform: 0.15.2 + dev: true + + /@babel/plugin-transform-reserved-words@7.23.3(@babel/core@7.14.8): + resolution: {integrity: sha512-QnNTazY54YqgGxwIexMZva9gqbPa15t/x9VS+0fsEFWplwVpXYZivtgl43Z1vMpc1bdPP2PP8siFeVcnFvA3Cg==} + engines: {node: '>=6.9.0'} + peerDependencies: + '@babel/core': ^7.0.0-0 + dependencies: + '@babel/core': 7.14.8 + '@babel/helper-plugin-utils': 7.22.5 + dev: true + + /@babel/plugin-transform-shorthand-properties@7.23.3(@babel/core@7.14.8): + resolution: {integrity: sha512-ED2fgqZLmexWiN+YNFX26fx4gh5qHDhn1O2gvEhreLW2iI63Sqm4llRLCXALKrCnbN4Jy0VcMQZl/SAzqug/jg==} + engines: {node: '>=6.9.0'} + peerDependencies: + '@babel/core': ^7.0.0-0 + dependencies: + '@babel/core': 7.14.8 + '@babel/helper-plugin-utils': 7.22.5 + dev: true + + /@babel/plugin-transform-spread@7.23.3(@babel/core@7.14.8): + resolution: {integrity: sha512-VvfVYlrlBVu+77xVTOAoxQ6mZbnIq5FM0aGBSFEcIh03qHf+zNqA4DC/3XMUozTg7bZV3e3mZQ0i13VB6v5yUg==} + engines: {node: '>=6.9.0'} + peerDependencies: + '@babel/core': ^7.0.0-0 + dependencies: + '@babel/core': 7.14.8 + '@babel/helper-plugin-utils': 7.22.5 + '@babel/helper-skip-transparent-expression-wrappers': 7.22.5 + dev: true + + /@babel/plugin-transform-sticky-regex@7.23.3(@babel/core@7.14.8): + resolution: {integrity: sha512-HZOyN9g+rtvnOU3Yh7kSxXrKbzgrm5X4GncPY1QOquu7epga5MxKHVpYu2hvQnry/H+JjckSYRb93iNfsioAGg==} + engines: {node: '>=6.9.0'} + peerDependencies: + '@babel/core': ^7.0.0-0 + dependencies: + '@babel/core': 7.14.8 + '@babel/helper-plugin-utils': 7.22.5 + dev: true + + /@babel/plugin-transform-template-literals@7.23.3(@babel/core@7.14.8): + resolution: {integrity: sha512-Flok06AYNp7GV2oJPZZcP9vZdszev6vPBkHLwxwSpaIqx75wn6mUd3UFWsSsA0l8nXAKkyCmL/sR02m8RYGeHg==} + engines: {node: '>=6.9.0'} + peerDependencies: + '@babel/core': ^7.0.0-0 + dependencies: + '@babel/core': 7.14.8 + '@babel/helper-plugin-utils': 7.22.5 + dev: true + + /@babel/plugin-transform-typeof-symbol@7.23.3(@babel/core@7.14.8): + resolution: {integrity: sha512-4t15ViVnaFdrPC74be1gXBSMzXk3B4Us9lP7uLRQHTFpV5Dvt33pn+2MyyNxmN3VTTm3oTrZVMUmuw3oBnQ2oQ==} + engines: {node: '>=6.9.0'} + peerDependencies: + '@babel/core': ^7.0.0-0 + dependencies: + '@babel/core': 7.14.8 + '@babel/helper-plugin-utils': 7.22.5 + dev: true + + /@babel/plugin-transform-unicode-escapes@7.23.3(@babel/core@7.14.8): + resolution: {integrity: sha512-OMCUx/bU6ChE3r4+ZdylEqAjaQgHAgipgW8nsCfu5pGqDcFytVd91AwRvUJSBZDz0exPGgnjoqhgRYLRjFZc9Q==} + engines: {node: '>=6.9.0'} + peerDependencies: + '@babel/core': ^7.0.0-0 + dependencies: + '@babel/core': 7.14.8 + '@babel/helper-plugin-utils': 7.22.5 + dev: true + + /@babel/plugin-transform-unicode-regex@7.23.3(@babel/core@7.14.8): + resolution: {integrity: sha512-wMHpNA4x2cIA32b/ci3AfwNgheiva2W0WUKWTK7vBHBhDKfPsc5cFGNWm69WBqpwd86u1qwZ9PWevKqm1A3yAw==} + engines: {node: '>=6.9.0'} + peerDependencies: + '@babel/core': ^7.0.0-0 + dependencies: + '@babel/core': 7.14.8 + '@babel/helper-create-regexp-features-plugin': 7.22.15(@babel/core@7.14.8) + '@babel/helper-plugin-utils': 7.22.5 + dev: true + + /@babel/preset-env@7.14.8(@babel/core@7.14.8): + resolution: {integrity: sha512-a9aOppDU93oArQ51H+B8M1vH+tayZbuBqzjOhntGetZVa+4tTu5jp+XTwqHGG2lxslqomPYVSjIxQkFwXzgnxg==} + engines: {node: '>=6.9.0'} + peerDependencies: + '@babel/core': ^7.0.0-0 + dependencies: + '@babel/compat-data': 7.23.5 + '@babel/core': 7.14.8 + '@babel/helper-compilation-targets': 7.23.6 + '@babel/helper-plugin-utils': 7.22.5 + '@babel/helper-validator-option': 7.23.5 + '@babel/plugin-bugfix-v8-spread-parameters-in-optional-chaining': 7.23.3(@babel/core@7.14.8) + '@babel/plugin-proposal-async-generator-functions': 7.20.7(@babel/core@7.14.8) + '@babel/plugin-proposal-class-properties': 7.18.6(@babel/core@7.14.8) + '@babel/plugin-proposal-class-static-block': 7.21.0(@babel/core@7.14.8) + '@babel/plugin-proposal-dynamic-import': 7.18.6(@babel/core@7.14.8) + '@babel/plugin-proposal-export-namespace-from': 7.18.9(@babel/core@7.14.8) + '@babel/plugin-proposal-json-strings': 7.18.6(@babel/core@7.14.8) + '@babel/plugin-proposal-logical-assignment-operators': 7.20.7(@babel/core@7.14.8) + '@babel/plugin-proposal-nullish-coalescing-operator': 7.18.6(@babel/core@7.14.8) + '@babel/plugin-proposal-numeric-separator': 7.18.6(@babel/core@7.14.8) + '@babel/plugin-proposal-object-rest-spread': 7.14.7(@babel/core@7.14.8) + '@babel/plugin-proposal-optional-catch-binding': 7.18.6(@babel/core@7.14.8) + '@babel/plugin-proposal-optional-chaining': 7.21.0(@babel/core@7.14.8) + '@babel/plugin-proposal-private-methods': 7.18.6(@babel/core@7.14.8) + '@babel/plugin-proposal-private-property-in-object': 7.21.11(@babel/core@7.14.8) + '@babel/plugin-proposal-unicode-property-regex': 7.18.6(@babel/core@7.14.8) + '@babel/plugin-syntax-async-generators': 7.8.4(@babel/core@7.14.8) + '@babel/plugin-syntax-class-properties': 7.12.13(@babel/core@7.14.8) + '@babel/plugin-syntax-class-static-block': 7.14.5(@babel/core@7.14.8) + '@babel/plugin-syntax-dynamic-import': 7.8.3(@babel/core@7.14.8) + '@babel/plugin-syntax-export-namespace-from': 7.8.3(@babel/core@7.14.8) + '@babel/plugin-syntax-json-strings': 7.8.3(@babel/core@7.14.8) + '@babel/plugin-syntax-logical-assignment-operators': 7.10.4(@babel/core@7.14.8) + '@babel/plugin-syntax-nullish-coalescing-operator': 7.8.3(@babel/core@7.14.8) + '@babel/plugin-syntax-numeric-separator': 7.10.4(@babel/core@7.14.8) + '@babel/plugin-syntax-object-rest-spread': 7.8.3(@babel/core@7.14.8) + '@babel/plugin-syntax-optional-catch-binding': 7.8.3(@babel/core@7.14.8) + '@babel/plugin-syntax-optional-chaining': 7.8.3(@babel/core@7.14.8) + '@babel/plugin-syntax-private-property-in-object': 7.14.5(@babel/core@7.14.8) + '@babel/plugin-syntax-top-level-await': 7.14.5(@babel/core@7.14.8) + '@babel/plugin-transform-arrow-functions': 7.23.3(@babel/core@7.14.8) + '@babel/plugin-transform-async-to-generator': 7.14.5(@babel/core@7.14.8) + '@babel/plugin-transform-block-scoped-functions': 7.23.3(@babel/core@7.14.8) + '@babel/plugin-transform-block-scoping': 7.23.4(@babel/core@7.14.8) + '@babel/plugin-transform-classes': 7.23.5(@babel/core@7.14.8) + '@babel/plugin-transform-computed-properties': 7.23.3(@babel/core@7.14.8) + '@babel/plugin-transform-destructuring': 7.23.3(@babel/core@7.14.8) + '@babel/plugin-transform-dotall-regex': 7.23.3(@babel/core@7.14.8) + '@babel/plugin-transform-duplicate-keys': 7.23.3(@babel/core@7.14.8) + '@babel/plugin-transform-exponentiation-operator': 7.23.3(@babel/core@7.14.8) + '@babel/plugin-transform-for-of': 7.23.6(@babel/core@7.14.8) + '@babel/plugin-transform-function-name': 7.23.3(@babel/core@7.14.8) + '@babel/plugin-transform-literals': 7.23.3(@babel/core@7.14.8) + '@babel/plugin-transform-member-expression-literals': 7.23.3(@babel/core@7.14.8) + '@babel/plugin-transform-modules-amd': 7.23.3(@babel/core@7.14.8) + '@babel/plugin-transform-modules-commonjs': 7.23.3(@babel/core@7.14.8) + '@babel/plugin-transform-modules-systemjs': 7.23.3(@babel/core@7.14.8) + '@babel/plugin-transform-modules-umd': 7.23.3(@babel/core@7.14.8) + '@babel/plugin-transform-named-capturing-groups-regex': 7.22.5(@babel/core@7.14.8) + '@babel/plugin-transform-new-target': 7.23.3(@babel/core@7.14.8) + '@babel/plugin-transform-object-super': 7.23.3(@babel/core@7.14.8) + '@babel/plugin-transform-parameters': 7.23.3(@babel/core@7.14.8) + '@babel/plugin-transform-property-literals': 7.23.3(@babel/core@7.14.8) + '@babel/plugin-transform-regenerator': 7.23.3(@babel/core@7.14.8) + '@babel/plugin-transform-reserved-words': 7.23.3(@babel/core@7.14.8) + '@babel/plugin-transform-shorthand-properties': 7.23.3(@babel/core@7.14.8) + '@babel/plugin-transform-spread': 7.23.3(@babel/core@7.14.8) + '@babel/plugin-transform-sticky-regex': 7.23.3(@babel/core@7.14.8) + '@babel/plugin-transform-template-literals': 7.23.3(@babel/core@7.14.8) + '@babel/plugin-transform-typeof-symbol': 7.23.3(@babel/core@7.14.8) + '@babel/plugin-transform-unicode-escapes': 7.23.3(@babel/core@7.14.8) + '@babel/plugin-transform-unicode-regex': 7.23.3(@babel/core@7.14.8) + '@babel/preset-modules': 0.1.6(@babel/core@7.14.8) + '@babel/types': 7.23.6 + babel-plugin-polyfill-corejs2: 0.2.3(@babel/core@7.14.8) + babel-plugin-polyfill-corejs3: 0.2.5(@babel/core@7.14.8) + babel-plugin-polyfill-regenerator: 0.2.3(@babel/core@7.14.8) + core-js-compat: 3.35.0 + semver: 6.3.1 + transitivePeerDependencies: + - supports-color + dev: true + + /@babel/preset-modules@0.1.6(@babel/core@7.14.8): + resolution: {integrity: sha512-ID2yj6K/4lKfhuU3+EX4UvNbIt7eACFbHmNUjzA+ep+B5971CknnA/9DEWKbRokfbbtblxxxXFJJrH47UEAMVg==} + peerDependencies: + '@babel/core': ^7.0.0-0 || ^8.0.0-0 <8.0.0 + dependencies: + '@babel/core': 7.14.8 + '@babel/helper-plugin-utils': 7.22.5 + '@babel/plugin-proposal-unicode-property-regex': 7.18.6(@babel/core@7.14.8) + '@babel/plugin-transform-dotall-regex': 7.23.3(@babel/core@7.14.8) + '@babel/types': 7.23.6 + esutils: 2.0.3 + dev: true + + /@babel/preset-react@7.14.5(@babel/core@7.14.8): + resolution: {integrity: sha512-XFxBkjyObLvBaAvkx1Ie95Iaq4S/GUEIrejyrntQ/VCMKUYvKLoyKxOBzJ2kjA3b6rC9/KL6KXfDC2GqvLiNqQ==} + engines: {node: '>=6.9.0'} + peerDependencies: + '@babel/core': ^7.0.0-0 + dependencies: + '@babel/core': 7.14.8 + '@babel/helper-plugin-utils': 7.22.5 + '@babel/helper-validator-option': 7.23.5 + '@babel/plugin-transform-react-display-name': 7.23.3(@babel/core@7.14.8) + '@babel/plugin-transform-react-jsx': 7.23.4(@babel/core@7.14.8) + '@babel/plugin-transform-react-jsx-development': 7.22.5(@babel/core@7.14.8) + '@babel/plugin-transform-react-pure-annotations': 7.23.3(@babel/core@7.14.8) + dev: true + + /@babel/regjsgen@0.8.0: + resolution: {integrity: sha512-x/rqGMdzj+fWZvCOYForTghzbtqPDZ5gPwaoNGHdgDfF2QA/XZbCBp4Moo5scrkAMPhB7z26XM/AaHuIJdgauA==} + dev: true + + /@babel/runtime@7.23.7: + resolution: {integrity: sha512-w06OXVOFso7LcbzMiDGt+3X7Rh7Ho8MmgPoWU3rarH+8upf+wSU/grlGbWzQyr3DkdN6ZeuMFjpdwW0Q+HxobA==} + engines: {node: '>=6.9.0'} + dependencies: + regenerator-runtime: 0.14.1 + + /@babel/template@7.22.15: + resolution: {integrity: sha512-QPErUVm4uyJa60rkI73qneDacvdvzxshT3kksGqlGWYdOTIUOwJ7RDUL8sGqslY1uXWSL6xMFKEXDS3ox2uF0w==} + engines: {node: '>=6.9.0'} + dependencies: + '@babel/code-frame': 7.23.5 + '@babel/parser': 7.23.6 + '@babel/types': 7.23.6 + + /@babel/traverse@7.23.7: + resolution: {integrity: sha512-tY3mM8rH9jM0YHFGyfC0/xf+SB5eKUu7HPj7/k3fpi9dAlsMc5YbQvDi0Sh2QTPXqMhyaAtzAr807TIyfQrmyg==} + engines: {node: '>=6.9.0'} + dependencies: + '@babel/code-frame': 7.23.5 + '@babel/generator': 7.23.6 + '@babel/helper-environment-visitor': 7.22.20 + '@babel/helper-function-name': 7.23.0 + '@babel/helper-hoist-variables': 7.22.5 + '@babel/helper-split-export-declaration': 7.22.6 + '@babel/parser': 7.23.6 + '@babel/types': 7.23.6 + debug: 4.3.4(supports-color@6.1.0) + globals: 11.12.0 + transitivePeerDependencies: + - supports-color + + /@babel/types@7.23.6: + resolution: {integrity: sha512-+uarb83brBzPKN38NX1MkB6vb6+mwvR6amUulqAE7ccQw1pEl+bCia9TbdG1lsnFP7lZySvUn37CHyXQdfTwzg==} + engines: {node: '>=6.9.0'} + dependencies: + '@babel/helper-string-parser': 7.23.4 + '@babel/helper-validator-identifier': 7.22.20 + to-fast-properties: 2.0.0 + + /@gar/promisify@1.1.3: + resolution: {integrity: sha512-k2Ty1JcVojjJFwrg/ThKi2ujJ7XNLYaFGNB/bWT9wGR+oSMJHMa5w+CUq6p/pVrKeNNgA7pCqEcjSnHVoqJQFw==} + dev: false + + /@jest/types@24.9.0: + resolution: {integrity: sha512-XKK7ze1apu5JWQ5eZjHITP66AX+QsLlbaJRBGYr8pNzwcAE2JVkwnf0yqjHTsDRcjR0mujy/NmZMXw5kl+kGBw==} + engines: {node: '>= 6'} + dependencies: + '@types/istanbul-lib-coverage': 2.0.6 + '@types/istanbul-reports': 1.1.2 + '@types/yargs': 13.0.12 + dev: true + + /@jridgewell/gen-mapping@0.3.3: + resolution: {integrity: sha512-HLhSWOLRi875zjjMG/r+Nv0oCW8umGb0BgEhyX3dDX3egwZtB8PqLnjz3yedt8R5StBrzcg4aBpnh8UA9D1BoQ==} + engines: {node: '>=6.0.0'} + dependencies: + '@jridgewell/set-array': 1.1.2 + '@jridgewell/sourcemap-codec': 1.4.15 + '@jridgewell/trace-mapping': 0.3.20 + + /@jridgewell/resolve-uri@3.1.1: + resolution: {integrity: sha512-dSYZh7HhCDtCKm4QakX0xFpsRDqjjtZf/kjI/v3T3Nwt5r8/qz/M19F9ySyOqU94SXBmeG9ttTul+YnR4LOxFA==} + engines: {node: '>=6.0.0'} + + /@jridgewell/set-array@1.1.2: + resolution: {integrity: sha512-xnkseuNADM0gt2bs+BvhO0p78Mk762YnZdsuzFV018NoG1Sj1SCQvpSqa7XUaTam5vAGasABV9qXASMKnFMwMw==} + engines: {node: '>=6.0.0'} + + /@jridgewell/sourcemap-codec@1.4.15: + resolution: {integrity: sha512-eF2rxCRulEKXHTRiDrDy6erMYWqNw4LPdQ8UQA4huuxaQsVeRPFl2oM8oDGxMFhJUWZf9McpLtJasDDZb/Bpeg==} + + /@jridgewell/trace-mapping@0.3.20: + resolution: {integrity: sha512-R8LcPeWZol2zR8mmH3JeKQ6QRCFb7XgUhV9ZlGhHLGyg4wpPiPZNQOOWhFZhxKw8u//yTbNGI42Bx/3paXEQ+Q==} + dependencies: + '@jridgewell/resolve-uri': 3.1.1 + '@jridgewell/sourcemap-codec': 1.4.15 + + /@nicolo-ribaudo/chokidar-2@2.1.8-no-fsevents.2: + resolution: {integrity: sha512-Fb8WxUFOBQVl+CX4MWet5o7eCc6Pj04rXIwVKZ6h1NnqTo45eOQW6aWyhG25NIODvWFwTDMwBsYxrQ3imxpetg==} + requiresBuild: true + dependencies: + anymatch: 2.0.0(supports-color@6.1.0) + async-each: 1.0.6 + braces: 2.3.2(supports-color@6.1.0) + glob-parent: 5.1.2 + inherits: 2.0.4 + is-binary-path: 1.0.1 + is-glob: 4.0.3 + normalize-path: 3.0.0 + path-is-absolute: 1.0.1 + readdirp: 2.2.1(supports-color@6.1.0) + upath: 1.2.0 + transitivePeerDependencies: + - supports-color + optional: true + + /@nodelib/fs.scandir@2.1.5: + resolution: {integrity: sha512-vq24Bq3ym5HEQm2NKCr3yXDwjc7vTsEThRDnkp2DK9p1uqLR+DHurm/NOTo0KG7HYHU7eppKZj3MyqYuMBf62g==} + engines: {node: '>= 8'} + dependencies: + '@nodelib/fs.stat': 2.0.5 + run-parallel: 1.2.0 + + /@nodelib/fs.stat@2.0.5: + resolution: {integrity: sha512-RkhPPp2zrqDAQA/2jNhnztcPAlv64XdhIp7a7454A5ovI7Bukxgt7MX7udwAu3zg1DcpPU0rz3VV1SeaqvY4+A==} + engines: {node: '>= 8'} + + /@nodelib/fs.walk@1.2.8: + resolution: {integrity: sha512-oGB+UxlgWcgQkgwo8GcEGwemoTFt3FIO9ababBmaGwXIoBKZ+GTy0pP185beGg7Llih/NSHSV2XAs1lnznocSg==} + engines: {node: '>= 8'} + dependencies: + '@nodelib/fs.scandir': 2.1.5 + fastq: 1.16.0 + + /@npmcli/fs@1.1.1: + resolution: {integrity: sha512-8KG5RD0GVP4ydEzRn/I4BNDuxDtqVbOdm8675T49OIG/NGhaK0pjPX7ZcDlvKYbA+ulvVK3ztfcF4uBdOxuJbQ==} + dependencies: + '@gar/promisify': 1.1.3 + semver: 7.5.4 + dev: false + + /@npmcli/move-file@1.1.2: + resolution: {integrity: sha512-1SUf/Cg2GzGDyaf15aR9St9TWlb+XvbZXWpDx8YKs7MLzMH/BCeopv+y9vzrzgkfykCGuWOlSu3mZhj2+FQcrg==} + engines: {node: '>=10'} + deprecated: This functionality has been moved to @npmcli/fs + dependencies: + mkdirp: 1.0.4 + rimraf: 3.0.2 + dev: false + + /@scratch/paper@0.11.20200728195508: + resolution: {integrity: sha512-cphYw/y/l36UJ8fv/LXyK+lHlxMXtoydJUsgA4u5QnaUaSZYepuSHik6PewJGT4qvaPwT5ImvHWwX2kElWXvoQ==} + engines: {node: '>=8.0.0'} + dev: false + + /@sindresorhus/is@0.7.0: + resolution: {integrity: sha512-ONhaKPIufzzrlNbqtWFFd+jlnemX6lJAgq9ZeiZtS7I1PIf/la7CW4m83rTXRnVnsMbW2k56pGYu7AUFJD9Pow==} + engines: {node: '>=4'} + dev: false + + /@testim/chrome-version@1.1.4: + resolution: {integrity: sha512-kIhULpw9TrGYnHp/8VfdcneIcxKnLixmADtukQRtJUmsVlMg0niMkwV0xZmi8hqa57xqilIHjWFA0GKvEjVU5g==} + dev: true + + /@transifex/api@4.2.5: + resolution: {integrity: sha512-br8ubTnKohECW3dPrR3h1casERTn3EvaV+gpHkWDZf3rlurkksAvEh/i9U+fIUzBF6ooYI0SG1JjRzuKkeaSZg==} + engines: {node: '>=14.0.0'} + dependencies: + core-js: 3.35.0 + dev: false + + /@turbowarp/json@0.1.2: + resolution: {integrity: sha512-9nWywp+0SH7ROVzQPQQO9gMWBikahsqyMWp1Ku8VV0q+q6bnx6dS0aNPTjqTtF2GHAY55hcREsqKzaoUdWBSwg==} + dev: false + + /@turbowarp/scratch-l10n@3.1000.20230326022803: + resolution: {integrity: sha512-DLgjLKL+w6ggSHtWYtV0Yr21CeWLn4ujwLJ03Gqzpov4FtijhjaHwJjo++JFILqvPteGO/uIhHz9xv5gnR9XTg==} + hasBin: true + dependencies: + '@babel/cli': 7.14.8(@babel/core@7.14.8) + '@babel/core': 7.14.8 + '@transifex/api': 4.2.5 + babel-plugin-react-intl: 3.5.1 + download: 8.0.0 + transifex: 1.6.6 + transitivePeerDependencies: + - supports-color + dev: false + + /@types/babel__core@7.20.5: + resolution: {integrity: sha512-qoQprZvz5wQFJwMDqeseRXWv3rqMvhgpbXFfVyWhbx9X47POIA6i/+dXefEmZKoAgOaTdaIgNSMqMIU61yRyzA==} + dependencies: + '@babel/parser': 7.23.6 + '@babel/types': 7.23.6 + '@types/babel__generator': 7.6.8 + '@types/babel__template': 7.4.4 + '@types/babel__traverse': 7.20.5 + dev: false + + /@types/babel__generator@7.6.8: + resolution: {integrity: sha512-ASsj+tpEDsEiFr1arWrlN6V3mdfjRMZt6LtK/Vp/kreFLnr5QH5+DhvD5nINYZXzwJvXeGq+05iUXcAzVrqWtw==} + dependencies: + '@babel/types': 7.23.6 + dev: false + + /@types/babel__template@7.4.4: + resolution: {integrity: sha512-h/NUaSyG5EyxBIp8YRxo4RMe2/qQgvyowRwVMzhYhBCONbW8PUsg4lkFMrhgZhUe5z3L3MiLDuvyJ/CaPa2A8A==} + dependencies: + '@babel/parser': 7.23.6 + '@babel/types': 7.23.6 + dev: false + + /@types/babel__traverse@7.20.5: + resolution: {integrity: sha512-WXCyOcRtH37HAUkpXhUduaxdm82b4GSlyTqajXviN4EfiuPgNYR109xMCKvpl6zPIpua0DGlMEDCq+g8EdoheQ==} + dependencies: + '@babel/types': 7.23.6 + dev: false + + /@types/glob@7.2.0: + resolution: {integrity: sha512-ZUxbzKl0IfJILTS6t7ip5fQQM/J3TJYubDm3nMbgubNNYS62eXeUpoLUC8/7fJNiFYHTrGPQn7hspDUzIHX3UA==} + dependencies: + '@types/minimatch': 5.1.2 + '@types/node': 20.10.6 + dev: true + + /@types/html-minifier-terser@5.1.2: + resolution: {integrity: sha512-h4lTMgMJctJybDp8CQrxTUiiYmedihHWkjnF/8Pxseu2S6Nlfcy8kwboQ8yejh456rP2yWoEVm1sS/FVsfM48w==} + dev: true + + /@types/istanbul-lib-coverage@2.0.6: + resolution: {integrity: sha512-2QF/t/auWm0lsy8XtKVPG19v3sSOQlJe/YHZgfjb/KBBHOGSV+J2q/S671rcq9uTBrLAXmZpqJiaQbMT+zNU1w==} + dev: true + + /@types/istanbul-lib-report@3.0.3: + resolution: {integrity: sha512-NQn7AHQnk/RSLOxrBbGyJM/aVQ+pjj5HCgasFxc0K/KhoATfQ/47AyUl15I2yBUpihjmas+a+VJBOqecrFH+uA==} + dependencies: + '@types/istanbul-lib-coverage': 2.0.6 + dev: true + + /@types/istanbul-reports@1.1.2: + resolution: {integrity: sha512-P/W9yOX/3oPZSpaYOCQzGqgCQRXn0FFO/V8bWrCQs+wLmvVVxk6CRBXALEvNs9OHIatlnlFokfhuDo2ug01ciw==} + dependencies: + '@types/istanbul-lib-coverage': 2.0.6 + '@types/istanbul-lib-report': 3.0.3 + dev: true + + /@types/json-schema@7.0.15: + resolution: {integrity: sha512-5+fP8P8MFNC+AyZCDxrB2pkZFPGzqQWUzpSeuuVLvm8VMcorNYavBqoFcxK8bQz4Qsbn4oUEEem4wDLfcysGHA==} + + /@types/json5@0.0.29: + resolution: {integrity: sha512-dRLjCWHYg4oaA77cxO64oO+7JwCwnIzkZPdrrC71jQmQtlhM556pwKo5bUzqvZndkVbeFLIIi+9TC40JNF5hNQ==} + dev: true + + /@types/keyv@3.1.4: + resolution: {integrity: sha512-BQ5aZNSCpj7D6K2ksrRCTmKRLEpnPvWDiLPfoGyhZ++8YtiK9d/3DBKPJgry359X/P1PfruyYwvnvwFjuEiEIg==} + dependencies: + '@types/node': 20.10.6 + dev: false + + /@types/minimatch@5.1.2: + resolution: {integrity: sha512-K0VQKziLUWkVKiRVrx4a40iPaxTUefQmjtkQofBkYRcoaaL/8rhwDWww9qWbrgicNOgnpIsMxyNIUM4+n6dUIA==} + dev: true + + /@types/node@20.10.6: + resolution: {integrity: sha512-Vac8H+NlRNNlAmDfGUP7b5h/KA+AtWIzuXy0E6OyP8f1tCLYAtPvKRRDJjAPqhpCb0t6U2j7/xqAuLEebW2kiw==} + dependencies: + undici-types: 5.26.5 + + /@types/responselike@1.0.3: + resolution: {integrity: sha512-H/+L+UkTV33uf49PH5pCAUBVPNj2nDBXTN+qS1dOwyyg24l3CcicicCA7ca+HMvJBZcFgl5r8e+RR6elsb4Lyw==} + dependencies: + '@types/node': 20.10.6 + dev: false + + /@types/source-list-map@0.1.6: + resolution: {integrity: sha512-5JcVt1u5HDmlXkwOD2nslZVllBBc7HDuOICfiZah2Z0is8M8g+ddAEawbmd3VjedfDHBzxCaXLs07QEmb7y54g==} + dev: true + + /@types/tapable@1.0.12: + resolution: {integrity: sha512-bTHG8fcxEqv1M9+TD14P8ok8hjxoOCkfKc8XXLaaD05kI7ohpeI956jtDOD3XHKBQrlyPughUtzm1jtVhHpA5Q==} + dev: true + + /@types/uglify-js@3.17.4: + resolution: {integrity: sha512-Hm/T0kV3ywpJyMGNbsItdivRhYNCQQf1IIsYsXnoVPES4t+FMLyDe0/K+Ea7ahWtMtSNb22ZdY7MIyoD9rqARg==} + dependencies: + source-map: 0.6.1 + dev: true + + /@types/webpack-sources@3.2.3: + resolution: {integrity: sha512-4nZOdMwSPHZ4pTEZzSp0AsTM4K7Qmu40UKW4tJDiOVs20UzYF9l+qUe4s0ftfN0pin06n+5cWWDJXH+sbhAiDw==} + dependencies: + '@types/node': 20.10.6 + '@types/source-list-map': 0.1.6 + source-map: 0.7.4 + dev: true + + /@types/webpack@4.41.38: + resolution: {integrity: sha512-oOW7E931XJU1mVfCnxCVgv8GLFL768pDO5u2Gzk82i8yTIgX6i7cntyZOkZYb/JtYM8252SN9bQp9tgkVDSsRw==} + dependencies: + '@types/node': 20.10.6 + '@types/tapable': 1.0.12 + '@types/uglify-js': 3.17.4 + '@types/webpack-sources': 3.2.3 + anymatch: 3.1.3 + source-map: 0.6.1 + dev: true + + /@types/yargs-parser@21.0.3: + resolution: {integrity: sha512-I4q9QU9MQv4oEOz4tAHJtNz1cwuLxn2F3xcc2iV5WdqLPpUnj30aUuxt1mAxYTG+oe8CZMV/+6rU4S4gRDzqtQ==} + dev: true + + /@types/yargs@13.0.12: + resolution: {integrity: sha512-qCxJE1qgz2y0hA4pIxjBR+PelCH0U5CK1XJXFwCNqfmliatKp47UCXXE9Dyk1OXBDLvsCF57TqQEJaeLfDYEOQ==} + dependencies: + '@types/yargs-parser': 21.0.3 + dev: true + + /@types/yauzl@2.10.3: + resolution: {integrity: sha512-oJoftv0LSuaDZE3Le4DbKX+KS9G36NzOeSap90UIK0yMA/NhKJhqlSGtNDORNRaIbQfzjXDrQa0ytJ6mNRGz/Q==} + requiresBuild: true + dependencies: + '@types/node': 20.10.6 + dev: true + optional: true + + /@typescript-eslint/experimental-utils@1.13.0(eslint@5.16.0): + resolution: {integrity: sha512-zmpS6SyqG4ZF64ffaJ6uah6tWWWgZ8m+c54XXgwFtUv0jNz8aJAVx8chMCvnk7yl6xwn8d+d96+tWp7fXzTuDg==} + engines: {node: ^6.14.0 || ^8.10.0 || >=9.10.0} + peerDependencies: + eslint: '*' + dependencies: + '@types/json-schema': 7.0.15 + '@typescript-eslint/typescript-estree': 1.13.0 + eslint: 5.16.0 + eslint-scope: 4.0.3 + dev: true + + /@typescript-eslint/typescript-estree@1.13.0: + resolution: {integrity: sha512-b5rCmd2e6DCC6tCTN9GSUAuxdYwCM/k/2wdjHGrIRGPSJotWMCe/dGpi66u42bhuh8q3QBzqM4TMA1GUUCJvdw==} + engines: {node: '>=6.14.0'} + dependencies: + lodash.unescape: 4.0.1 + semver: 5.5.0 + dev: true + + /@vernier/godirect@1.5.0: + resolution: {integrity: sha512-vMS0fQubI3WSSLg1Ry3aey/qWCl9XoCsFzgwOWYkeJs45YxjPel+42pLh5pO7uP6oF47sjZUKx8kGOoTiiiirA==} + dev: false + + /@webassemblyjs/ast@1.9.0: + resolution: {integrity: sha512-C6wW5L+b7ogSDVqymbkkvuW9kruN//YisMED04xzeBBqjHa2FYnmvOlS6Xj68xWQRgWvI9cIglsjFowH/RJyEA==} + dependencies: + '@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@1.9.0: + resolution: {integrity: sha512-TG5qcFsS8QB4g4MhrxK5TqfdNe7Ey/7YL/xN+36rRjl/BlGE/NcBvJcqsRgCP6Z92mRE+7N50pRIi8SmKUbcQA==} + + /@webassemblyjs/helper-api-error@1.9.0: + resolution: {integrity: sha512-NcMLjoFMXpsASZFxJ5h2HZRcEhDkvnNFOAKneP5RbKRzaWJN36NC4jqQHKwStIhGXu5mUWlUUk7ygdtrO8lbmw==} + + /@webassemblyjs/helper-buffer@1.9.0: + resolution: {integrity: sha512-qZol43oqhq6yBPx7YM3m9Bv7WMV9Eevj6kMi6InKOuZxhw+q9hOkvq5e/PpKSiLfyetpaBnogSbNCfBwyB00CA==} + + /@webassemblyjs/helper-code-frame@1.9.0: + resolution: {integrity: sha512-ERCYdJBkD9Vu4vtjUYe8LZruWuNIToYq/ME22igL+2vj2dQ2OOujIZr3MEFvfEaqKoVqpsFKAGsRdBSBjrIvZA==} + dependencies: + '@webassemblyjs/wast-printer': 1.9.0 + + /@webassemblyjs/helper-fsm@1.9.0: + resolution: {integrity: sha512-OPRowhGbshCb5PxJ8LocpdX9Kl0uB4XsAjl6jH/dWKlk/mzsANvhwbiULsaiqT5GZGT9qinTICdj6PLuM5gslw==} + + /@webassemblyjs/helper-module-context@1.9.0: + resolution: {integrity: sha512-MJCW8iGC08tMk2enck1aPW+BE5Cw8/7ph/VGZxwyvGbJwjktKkDK7vy7gAmMDx88D7mhDTCNKAW5tED+gZ0W8g==} + dependencies: + '@webassemblyjs/ast': 1.9.0 + + /@webassemblyjs/helper-wasm-bytecode@1.9.0: + resolution: {integrity: sha512-R7FStIzyNcd7xKxCZH5lE0Bqy+hGTwS3LJjuv1ZVxd9O7eHCedSdrId/hMOd20I+v8wDXEn+bjfKDLzTepoaUw==} + + /@webassemblyjs/helper-wasm-section@1.9.0: + resolution: {integrity: sha512-XnMB8l3ek4tvrKUUku+IVaXNHz2YsJyOOmz+MMkZvh8h1uSJpSen6vYnw3IoQ7WwEuAhL8Efjms1ZWjqh2agvw==} + 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 + + /@webassemblyjs/ieee754@1.9.0: + resolution: {integrity: sha512-dcX8JuYU/gvymzIHc9DgxTzUUTLexWwt8uCTWP3otys596io0L5aW02Gb1RjYpx2+0Jus1h4ZFqjla7umFniTg==} + dependencies: + '@xtuc/ieee754': 1.2.0 + + /@webassemblyjs/leb128@1.9.0: + resolution: {integrity: sha512-ENVzM5VwV1ojs9jam6vPys97B/S65YQtv/aanqnU7D8aSoHFX8GyhGg0CMfyKNIHBuAVjy3tlzd5QMMINa7wpw==} + dependencies: + '@xtuc/long': 4.2.2 + + /@webassemblyjs/utf8@1.9.0: + resolution: {integrity: sha512-GZbQlWtopBTP0u7cHrEx+73yZKrQoBMpwkGEIqlacljhXCkVM1kMQge/Mf+csMJAjEdSwhOyLAS0AoR3AG5P8w==} + + /@webassemblyjs/wasm-edit@1.9.0: + resolution: {integrity: sha512-FgHzBm80uwz5M8WKnMTn6j/sVbqilPdQXTWraSjBwFXSYGirpkSWE2R9Qvz9tNiTKQvoKILpCuTjBKzOIm0nxw==} + 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 + + /@webassemblyjs/wasm-gen@1.9.0: + resolution: {integrity: sha512-cPE3o44YzOOHvlsb4+E9qSqjc9Qf9Na1OO/BHFy4OI91XDE14MjFN4lTMezzaIWdPqHnsTodGGNP+iRSYfGkjA==} + 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 + + /@webassemblyjs/wasm-opt@1.9.0: + resolution: {integrity: sha512-Qkjgm6Anhm+OMbIL0iokO7meajkzQD71ioelnfPEj6r4eOFuqm4YC3VBPqXjFyyNwowzbMD+hizmprP/Fwkl2A==} + dependencies: + '@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@1.9.0: + resolution: {integrity: sha512-9+wkMowR2AmdSWQzsPEjFU7njh8HTO5MqO8vjwEHuM+AMHioNqSBONRdr0NQQ3dVQrzp0s8lTcYqzUdb7YgELA==} + 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 + + /@webassemblyjs/wast-parser@1.9.0: + resolution: {integrity: sha512-qsqSAP3QQ3LyZjNC/0jBJ/ToSxfYJ8kYyuiGvtn/8MK89VrNEfwj7BPQzJVHi0jGTRK2dGdJ5PRqhtjzoww+bw==} + 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 + + /@webassemblyjs/wast-printer@1.9.0: + resolution: {integrity: sha512-2J0nE95rHXHyQ24cWjMKJ1tqB/ds8z/cyeOZxJhcb+rW+SQASVjuznUSmdz5GpVJTzU8JkhYut0D3siFDD6wsA==} + dependencies: + '@webassemblyjs/ast': 1.9.0 + '@webassemblyjs/wast-parser': 1.9.0 + '@xtuc/long': 4.2.2 + + /@xtuc/ieee754@1.2.0: + resolution: {integrity: sha512-DX8nKgqcGwsc0eJSqYt5lwP4DH5FlHnmuWWBRy7X0NcaGR0ZtuyeESgMwTYVEtxmsNGY+qit4QYT/MIYTOTPeA==} + + /@xtuc/long@4.2.2: + resolution: {integrity: sha512-NuHqBY1PB/D8xU6s/thBgOAiAP7HOYDQ32+BFZILJ8ivkUkAHQnWfn6WhL79Owj1qmUnoN/YPhktdIoucipkAQ==} + + /abab@1.0.4: + resolution: {integrity: sha512-I+Wi+qiE2kUXyrRhNsWv6XsjUTBJjSoVSctKNBfLG5zG/Xe7Rjbxf13+vqYHNTwHaFU+FtSlVxOCTiMEVtPv0A==} + deprecated: Use your platform's native atob() and btoa() methods instead + dev: true + + /accepts@1.3.8: + resolution: {integrity: sha512-PYAthTa2m2VKxuvSD3DPC/Gy+U+sOA1LAuT8mkmRuvw+NACSaeXEQ+NHcVF7rONl6qcaxV3Uuemwawk+7+SJLw==} + engines: {node: '>= 0.6'} + dependencies: + mime-types: 2.1.35 + negotiator: 0.6.3 + dev: true + + /acorn-globals@3.1.0: + resolution: {integrity: sha512-uWttZCk96+7itPxK8xCzY86PnxKTMrReKDqrHzv42VQY0K30PUO8WY13WMOuI+cOdX4EIdzdvQ8k6jkuGRFMYw==} + dependencies: + acorn: 4.0.13 + dev: true + + /acorn-jsx@5.3.2(acorn@6.4.2): + resolution: {integrity: sha512-rq9s+JNhf0IChjtDXxllJ7g41oZk5SlXtp0LHwyA5cejwn7vKmKp4pPri6YEePv2PU65sAsegbXtIinmDFDXgQ==} + peerDependencies: + acorn: ^6.0.0 || ^7.0.0 || ^8.0.0 + dependencies: + acorn: 6.4.2 + dev: true + + /acorn@4.0.13: + resolution: {integrity: sha512-fu2ygVGuMmlzG8ZeRJ0bvR41nsAkxxhbyk8bZ1SS521Z7vmgJFTQQlfz/Mp/nJexGBz+v8sC9bM6+lNgskt4Ug==} + engines: {node: '>=0.4.0'} + hasBin: true + dev: true + + /acorn@6.4.2: + resolution: {integrity: sha512-XtGIhXwF8YM8bJhGxG5kXgjkEuNGLTkoYqVE+KMR+aspr4KGYmKYg7yUe3KghyQ9yheNwLnjmzh/7+gfDBmHCQ==} + engines: {node: '>=0.4.0'} + hasBin: true + + /acorn@7.4.1: + resolution: {integrity: sha512-nQyp0o1/mNdbTO1PO6kHkwSrmgZ0MT/jCCpNiwbUjGoRN4dlBhqJtoQuCnEOKzgTVwg0ZWiCoQy6SxMebQVh8A==} + engines: {node: '>=0.4.0'} + hasBin: true + dev: false + + /acorn@8.11.3: + resolution: {integrity: sha512-Y9rRfJG5jcKOE0CLisYbojUjIrIEE7AGMzA/Sm4BslANhbS+cDMpgBdcPT91oJ7OuJ9hYJBx59RjbhxVnrF8Xg==} + engines: {node: '>=0.4.0'} + hasBin: true + + /agent-base@6.0.2: + resolution: {integrity: sha512-RZNwNclF7+MS/8bDg70amg32dyeZGZxiDuQmZxKLAlQjr3jGyLx+4Kkk58UO7D2QdgFIQCovuSuZESne6RG6XQ==} + engines: {node: '>= 6.0.0'} + dependencies: + debug: 4.3.4(supports-color@6.1.0) + transitivePeerDependencies: + - supports-color + dev: true + + /aggregate-error@3.1.0: + resolution: {integrity: sha512-4I7Td01quW/RpocfNayFdFVk1qSuoh0E7JrbRJ16nH01HhKFQ88INq9Sd+nd72zqRySlr9BmDA8xlEJ6vJMrYA==} + engines: {node: '>=8'} + dependencies: + clean-stack: 2.2.0 + indent-string: 4.0.0 + + /airbnb-prop-types@2.16.0(react@16.14.0): + resolution: {integrity: sha512-7WHOFolP/6cS96PhKNrslCLMYAI8yB1Pp6u6XmxozQOiZbsI5ycglZr5cHhBFfuRcQQjzCMith5ZPZdYiJCxUg==} + peerDependencies: + react: ^0.14 || ^15.0.0 || ^16.0.0-alpha + dependencies: + array.prototype.find: 2.2.2 + function.prototype.name: 1.1.6 + is-regex: 1.1.4 + object-is: 1.1.5 + object.assign: 4.1.5 + object.entries: 1.1.7 + prop-types: 15.8.1 + prop-types-exact: 1.2.0 + react: 16.14.0 + react-is: 16.13.1 + dev: true + + /ajv-errors@1.0.1(ajv@6.12.6): + resolution: {integrity: sha512-DCRfO/4nQ+89p/RK43i8Ezd41EqdGIU4ld7nGF8OQ14oc/we5rEntLCUa7+jrn3nn83BosfwZA0wb4pon2o8iQ==} + peerDependencies: + ajv: '>=5.0.0' + dependencies: + ajv: 6.12.6 + + /ajv-keywords@3.5.2(ajv@6.12.6): + resolution: {integrity: sha512-5p6WTN0DdTGVQk6VjcEju19IgaHudalcfabD7yhDGeA6bcQnmL+CpveLJq/3hvfwd1aof6L386Ougkx6RfyMIQ==} + peerDependencies: + ajv: ^6.9.1 + dependencies: + ajv: 6.12.6 + + /ajv@6.12.6: + resolution: {integrity: sha512-j3fVLgvTo527anyYyJOGTYJbG+vnnQYvE0m5mmkc1TK+nxAppkCLMIL0aZ4dblVCNoGShhm+kzE4ZUykBoMg4g==} + dependencies: + fast-deep-equal: 3.1.3 + fast-json-stable-stringify: 2.1.0 + json-schema-traverse: 0.4.1 + uri-js: 4.4.1 + + /ajv@6.3.0: + resolution: {integrity: sha512-6TQywaGYtRub2fqHkSXfVANlhfja2nbF33wCCHnt3aQstOrtd9jsQGiRUTIOlkEqcxpzRd2akfnqvBBPmLxs8g==} + dependencies: + fast-deep-equal: 1.1.0 + fast-json-stable-stringify: 2.1.0 + json-schema-traverse: 0.3.1 + dev: false + + /ansi-colors@3.2.4: + resolution: {integrity: sha512-hHUXGagefjN2iRrID63xckIvotOXOojhQKWIPUZ4mNUZ9nLZW+7FMNoE1lOkEhNWYsx/7ysGIuJYCiMAA9FnrA==} + engines: {node: '>=6'} + dev: true + + /ansi-escapes@3.2.0: + resolution: {integrity: sha512-cBhpre4ma+U0T1oM5fXg7Dy1Jw7zzwv7lt/GoCpr+hDQJoYnKVPLL4dCvSEFMmQurOQvSrwT7SL/DAlhBI97RQ==} + engines: {node: '>=4'} + dev: true + + /ansi-html@0.0.7: + resolution: {integrity: sha512-JoAxEa1DfP9m2xfB/y2r/aKcwXNlltr4+0QSBC4TrLfcxyvepX2Pv0t/xpgGV5bGsDzCYV8SzjWgyCW0T9yYbA==} + engines: {'0': node >= 0.8.0} + hasBin: true + dev: true + + /ansi-regex@1.1.1: + resolution: {integrity: sha512-q5i8bFLg2wDfsuR56c1NzlJFPzVD+9mxhDrhqOGigEFa87OZHlF+9dWeGWzVTP/0ECiA/JUGzfzRr2t3eYORRw==} + engines: {node: '>=0.10.0'} + dev: false + + /ansi-regex@2.1.1: + resolution: {integrity: sha512-TIGnTpdo+E3+pCyAluZvtED5p5wCqLdezCyhPZzKPcxvFplEt4i+W7OONCKgeZFT3+y5NZZfOOS/Bdcanm1MYA==} + engines: {node: '>=0.10.0'} + + /ansi-regex@3.0.1: + resolution: {integrity: sha512-+O9Jct8wf++lXxxFc4hc8LsjaSq0HFzzL7cVsw8pRDIPdjKD2mT4ytDZlLuSBZ4cLKZFXIrMGO7DbQCtMJJMKw==} + engines: {node: '>=4'} + dev: true + + /ansi-regex@4.1.1: + resolution: {integrity: sha512-ILlv4k/3f6vfQ4OoP2AGvirOktlQ98ZEL1k9FaQjxa3L1abBgbuTDAdPOpvbGncC0BTVQrl+OM8xZGK6tWXt7g==} + engines: {node: '>=6'} + + /ansi-styles@2.2.1: + resolution: {integrity: sha512-kmCevFghRiWM7HB5zTPULl4r9bVFSWjz62MhqizDGUrq2NWuNMQyuv4tHHoKJHs69M/MF64lEcHdYIocrdWQYA==} + engines: {node: '>=0.10.0'} + + /ansi-styles@3.2.1: + resolution: {integrity: sha512-VT0ZI6kZRdTh8YyJw3SMbYm/u+NqfsAxEpWO0Pf9sq8/e94WxxOpPKx9FR1FlyCtOVDNOQ+8ntlqFxiRc+r5qA==} + engines: {node: '>=4'} + dependencies: + color-convert: 1.9.3 + + /anymatch@2.0.0(supports-color@6.1.0): + resolution: {integrity: sha512-5teOsQWABXHHBFP9y3skS5P3d/WfWXpv3FUpy+LorMrNYaT9pI4oLMQX7jzQ2KklNpGpWHzdCXTDT2Y3XGlZBw==} + dependencies: + micromatch: 3.1.10(supports-color@6.1.0) + normalize-path: 2.1.1 + transitivePeerDependencies: + - supports-color + + /anymatch@3.1.3: + resolution: {integrity: sha512-KMReFUr0B4t+D+OBkjR3KYqvocp2XaSzO55UcB6mgQMd3KbcE+mWTyvVV7D/zsdEbNnV6acZUutkiHQXvTr1Rw==} + engines: {node: '>= 8'} + dependencies: + normalize-path: 3.0.0 + picomatch: 2.3.1 + + /append-transform@0.4.0: + resolution: {integrity: sha512-Yisb7ew0ZEyDtRYQ+b+26o9KbiYPFxwcsxKzbssigzRRMJ9LpExPVUg6Fos7eP7yP3q7///tzze4nm4lTptPBw==} + engines: {node: '>=0.10.0'} + dependencies: + default-require-extensions: 1.0.0 + dev: true + + /aproba@1.2.0: + resolution: {integrity: sha512-Y9J6ZjXtoYh8RnXVCMOU/ttDmk1aBjunq9vO0ta5x85WDQiQfUF9sIPBITdbiiIVcBo03Hi3jMxigBtsddlXRw==} + + /archive-type@4.0.0: + resolution: {integrity: sha512-zV4Ky0v1F8dBrdYElwTvQhweQ0P7Kwc1aluqJsYtOBP01jXcWCyW2IEfI1YiqsG+Iy7ZR+o5LF1N+PGECBxHWA==} + engines: {node: '>=4'} + dependencies: + file-type: 4.4.0 + dev: false + + /argparse@1.0.10: + resolution: {integrity: sha512-o5Roy6tNG4SL/FOkCAN6RzjiakZS25RLYFrcMttJqbdd8BWrnA+fGz57iN5Pb06pvBGvl5gQ0B48dJlslXvoTg==} + dependencies: + sprintf-js: 1.0.3 + + /arr-diff@2.0.0: + resolution: {integrity: sha512-dtXTVMkh6VkEEA7OhXnN1Ecb8aAGFdZ1LFxtOCoqj4qkyOJMt7+qs6Ahdy6p/NQCPYsRSXXivhSB/J5E9jmYKA==} + engines: {node: '>=0.10.0'} + dependencies: + arr-flatten: 1.1.0 + dev: true + + /arr-diff@4.0.0: + resolution: {integrity: sha512-YVIQ82gZPGBebQV/a8dar4AitzCQs0jjXwMPZllpXMaGjXPYVUawSxQrRsjhjupyVxEvbHgUmIhKVlND+j02kA==} + engines: {node: '>=0.10.0'} + + /arr-flatten@1.1.0: + resolution: {integrity: sha512-L3hKV5R/p5o81R7O02IGnwpDmkp6E982XhtbuwSe3O4qOtMMMtodicASA1Cny2U+aCXcNpml+m4dPsvsJ3jatg==} + engines: {node: '>=0.10.0'} + + /arr-union@3.1.0: + resolution: {integrity: sha512-sKpyeERZ02v1FeCZT8lrfJq5u6goHCtpTAzPwJYe7c8SPFOboNjNg1vz2L4VTn9T4PQxEx13TbXLmYUcS6Ug7Q==} + engines: {node: '>=0.10.0'} + + /array-buffer-byte-length@1.0.0: + resolution: {integrity: sha512-LPuwb2P+NrQw3XhxGc36+XSvuBPopovXYTR9Ew++Du9Yb/bx5AzBfrIsBoj0EZUifjQU+sHL21sseZ3jerWO/A==} + dependencies: + call-bind: 1.0.5 + is-array-buffer: 3.0.2 + dev: true + + /array-equal@1.0.2: + resolution: {integrity: sha512-gUHx76KtnhEgB3HOuFYiCm3FIdEs6ocM2asHvNTkfu/Y09qQVrrVVaOKENmS2KkSaGoxgXNqC+ZVtR/n0MOkSA==} + dev: true + + /array-find@1.0.0: + resolution: {integrity: sha512-kO/vVCacW9mnpn3WPWbTVlEnOabK2L7LWi2HViURtCM46y1zb6I8UMjx4LgbiqadTgHnLInUronwn3ampNTJtQ==} + dev: true + + /array-flatten@1.1.1: + resolution: {integrity: sha512-PCVAQswWemu6UdxsDFFX/+gVeYqKAod3D3UVm91jHwynguOwAvYPhx8nNlM++NqRcK6CxxpUafjmhIdKiHibqg==} + dev: true + + /array-flatten@2.1.2: + resolution: {integrity: sha512-hNfzcOV8W4NdualtqBFPyVO+54DSJuZGY9qT4pRroB6S9e3iiido2ISIC5h9R2sPJ8H3FHCIiEnsv1lPXO3KtQ==} + dev: true + + /array-includes@3.1.7: + resolution: {integrity: sha512-dlcsNBIiWhPkHdOEEKnehA+RNUWDc4UqFtnIXU4uuYDPtA4LDkr7qip2p0VvFAEXNDr0yWZ9PJyIRiGjRLQzwQ==} + engines: {node: '>= 0.4'} + dependencies: + call-bind: 1.0.5 + define-properties: 1.2.1 + es-abstract: 1.22.3 + get-intrinsic: 1.2.2 + is-string: 1.0.7 + dev: true + + /array-union@1.0.2: + resolution: {integrity: sha512-Dxr6QJj/RdU/hCaBjOfxW+q6lyuVE6JFWIrAUpuOOhoJJoQ99cUn3igRaHVB5P9WrgFVN0FfArM3x0cueOU8ng==} + engines: {node: '>=0.10.0'} + dependencies: + array-uniq: 1.0.3 + dev: true + + /array-union@2.1.0: + resolution: {integrity: sha512-HGyxoOTYUyCM6stUe6EJgnd4EoewAI7zMdfqO+kGjnlZmBDz/cR5pf8r/cR4Wq60sL/p0IkcjUEEPwS3GFrIyw==} + engines: {node: '>=8'} + + /array-uniq@1.0.3: + resolution: {integrity: sha512-MNha4BWQ6JbwhFhj03YK552f7cb3AzoE8SzeljgChvL1dl3IcvggXVz1DilzySZkCja+CXuZbdW7yATchWn8/Q==} + engines: {node: '>=0.10.0'} + dev: true + + /array-unique@0.2.1: + resolution: {integrity: sha512-G2n5bG5fSUCpnsXz4+8FUkYsGPkNfLn9YvS66U5qbTIXI2Ynnlo4Bi42bWv+omKUCqz+ejzfClwne0alJWJPhg==} + engines: {node: '>=0.10.0'} + dev: true + + /array-unique@0.3.2: + resolution: {integrity: sha512-SleRWjh9JUud2wH1hPs9rZBZ33H6T9HOiL0uwGnGx9FpE6wKGyfWugmbkEOIs6qWrZhg0LWeLziLrEwQJhs5mQ==} + engines: {node: '>=0.10.0'} + + /array.prototype.filter@1.0.3: + resolution: {integrity: sha512-VizNcj/RGJiUyQBgzwxzE5oHdeuXY5hSbbmKMlphj1cy1Vl7Pn2asCGbSrru6hSQjmCzqTBPVWAF/whmEOVHbw==} + engines: {node: '>= 0.4'} + dependencies: + call-bind: 1.0.5 + define-properties: 1.2.1 + es-abstract: 1.22.3 + es-array-method-boxes-properly: 1.0.0 + is-string: 1.0.7 + dev: true + + /array.prototype.find@2.2.2: + resolution: {integrity: sha512-DRumkfW97iZGOfn+lIXbkVrXL04sfYKX+EfOodo8XboR5sxPDVvOjZTF/rysusa9lmhmSOeD6Vp6RKQP+eP4Tg==} + dependencies: + call-bind: 1.0.5 + define-properties: 1.2.1 + es-abstract: 1.22.3 + es-shim-unscopables: 1.0.2 + dev: true + + /array.prototype.flat@1.3.2: + resolution: {integrity: sha512-djYB+Zx2vLewY8RWlNCUdHjDXs2XOgm602S9E7P/UpHgfeHL00cRiIF+IN/G/aUJ7kGPb6yO/ErDI5V2s8iycA==} + engines: {node: '>= 0.4'} + dependencies: + call-bind: 1.0.5 + define-properties: 1.2.1 + es-abstract: 1.22.3 + es-shim-unscopables: 1.0.2 + dev: true + + /array.prototype.flatmap@1.3.2: + resolution: {integrity: sha512-Ewyx0c9PmpcsByhSW4r+9zDU7sGjFc86qf/kKtuSCRdhfbk0SNLLkaT5qvcHnRGgc5NP/ly/y+qkXkqONX54CQ==} + engines: {node: '>= 0.4'} + dependencies: + call-bind: 1.0.5 + define-properties: 1.2.1 + es-abstract: 1.22.3 + es-shim-unscopables: 1.0.2 + dev: true + + /array.prototype.reduce@1.0.6: + resolution: {integrity: sha512-UW+Mz8LG/sPSU8jRDCjVr6J/ZKAGpHfwrZ6kWTG5qCxIEiXdVshqGnu5vEZA8S1y6X4aCSbQZ0/EEsfvEvBiSg==} + engines: {node: '>= 0.4'} + dependencies: + call-bind: 1.0.5 + define-properties: 1.2.1 + es-abstract: 1.22.3 + es-array-method-boxes-properly: 1.0.0 + is-string: 1.0.7 + dev: true + + /arraybuffer-loader@1.0.8: + resolution: {integrity: sha512-CwUVCcxCgcgZUu2w741OV6Xj1tvRVQebq22RCyGXiLgJOJ4e4M/59EPYdtK2MLfIN28t1TDvuh2ojstNq3Kh5g==} + engines: {node: '>= 4.0.0'} + dependencies: + loader-utils: 1.4.2 + dev: false + + /arraybuffer.prototype.slice@1.0.2: + resolution: {integrity: sha512-yMBKppFur/fbHu9/6USUe03bZ4knMYiwFBcyiaXB8Go0qNehwX6inYPzK9U0NeQvGxKthcmHcaR8P5MStSRBAw==} + engines: {node: '>= 0.4'} + dependencies: + array-buffer-byte-length: 1.0.0 + call-bind: 1.0.5 + define-properties: 1.2.1 + es-abstract: 1.22.3 + get-intrinsic: 1.2.2 + is-array-buffer: 3.0.2 + is-shared-array-buffer: 1.0.2 + dev: true + + /arrify@1.0.1: + resolution: {integrity: sha512-3CYzex9M9FGQjCGMGyi6/31c8GJbgb0qGyrx5HWxPd0aCwh4cB2YjMb2Xf9UuoogrMrlO9cTqnB5rI5GHZTcUA==} + engines: {node: '>=0.10.0'} + dev: true + + /asap@2.0.6: + resolution: {integrity: sha512-BSHWgDSAiKs50o2Re8ppvp3seVHXSRM44cdSsT9FfNEUUZLOGWVCsiWaRPWM1Znn+mqZ1OfVZ3z3DWEzSp7hRA==} + dev: true + + /asn1.js@5.4.1: + resolution: {integrity: sha512-+I//4cYPccV8LdmBLiX8CYvf9Sp3vQsrqu2QNXRcrbiWvcx/UdlFiqUJJzxRQxgsZmvhXhn4cSKeSmoFjVdupA==} + dependencies: + bn.js: 4.12.0 + inherits: 2.0.4 + minimalistic-assert: 1.0.1 + safer-buffer: 2.1.2 + + /asn1@0.2.6: + resolution: {integrity: sha512-ix/FxPn0MDjeyJ7i/yoHGFt/EX6LyNbxSEhPPXODPL+KB0VPk86UYfL0lMdy+KCnv+fmvIzySwaK5COwqVbWTQ==} + dependencies: + safer-buffer: 2.1.2 + + /assert-plus@1.0.0: + resolution: {integrity: sha512-NfJ4UzBCcQGLDlQq7nHxH+tv3kyZ0hHQqF5BO6J7tNJeP5do1llPr8dZ8zHonfhAu0PHAdMkSo+8o0wxg9lZWw==} + engines: {node: '>=0.8'} + + /assert@1.5.1: + resolution: {integrity: sha512-zzw1uCAgLbsKwBfFc8CX78DDg+xZeBksSO3vwVIDDN5i94eOrPsSSyiVhmsSABFDM/OcpE2aagCat9dnWQLG1A==} + dependencies: + object.assign: 4.1.5 + util: 0.10.4 + + /assign-symbols@1.0.0: + resolution: {integrity: sha512-Q+JC7Whu8HhmTdBph/Tq59IoRtoy6KAm5zzPv00WdujX82lbAL8K7WVjne7vdCsAmbF4AYaDOPyO3k0kl8qIrw==} + engines: {node: '>=0.10.0'} + + /astral-regex@1.0.0: + resolution: {integrity: sha512-+Ryf6g3BKoRc7jfp7ad8tM4TtMiaWvbF/1/sQcZPkkS7ag3D5nMBCe2UfOTONtAkaG0tO0ij3C5Lwmf1EiyjHg==} + engines: {node: '>=4'} + dev: true + + /async-each@1.0.6: + resolution: {integrity: sha512-c646jH1avxr+aVpndVMeAfYw7wAa6idufrlN3LPA4PmKS0QEGp6PIC9nwz0WQkkvBGAMEki3pFdtxaF39J9vvg==} + + /async-limiter@1.0.1: + resolution: {integrity: sha512-csOlWGAcRFJaI6m+F2WKdnMKr4HhdhFVBk0H/QbJFMCr+uO2kwohwXQPxw/9OCxp05r5ghVBFSyioixx3gfkNQ==} + dev: true + + /async@2.6.1: + resolution: {integrity: sha512-fNEiL2+AZt6AlAw/29Cr0UDe4sRAHCpEHh54WMz+Bb7QfNcFw4h3loofyJpLeQs4Yx7yuqu/2dLgM5hKOs6HlQ==} + dependencies: + lodash: 4.17.21 + dev: true + + /async@2.6.4: + resolution: {integrity: sha512-mzo5dfJYwAn29PeiJ0zvwTo04zj8HDJj0Mn8TD7sno7q12prdbnasKJHhkm2c1LgrhlJ0teaea8860oxi51mGA==} + dependencies: + lodash: 4.17.21 + dev: true + + /asynckit@0.4.0: + resolution: {integrity: sha512-Oei9OH4tRh0YqU3GxhX79dM/mwVgvbZJaSNaRk+bshkj0S5cfHcgYakreBjrHwatXKbz+IoIdYLxrKim2MjW0Q==} + + /atob@2.1.2: + resolution: {integrity: sha512-Wm6ukoaOGJi/73p/cl2GvLjTI5JM1k/O14isD73YML8StrH/7/lRFgmg8nICZgD3bZZvjwCGxtMOD3wWNAu8cg==} + engines: {node: '>= 4.5.0'} + hasBin: true + + /audio-context@1.0.1: + resolution: {integrity: sha512-b7ZmHGyjcAI3KmshPa4YSPxPbjglZQtKfZtzqhUfE3VeoANTsNffywkmujI32Sj31Aku/aB9s3BW4r3nmTF88g==} + deprecated: Depends on Web-Audio-API implementation. Use either web-audio-api, web-audio-js or web-audio-engine package. + dependencies: + global: 4.4.0 + dev: false + + /automation-events@6.0.13: + resolution: {integrity: sha512-V1D19taPDEB7LUph6FpJv9m2i+UpLR096sAbPKt92sRChCOA6Jt2bcofU/YAwG8F8/qZp3GrrscJ1FzaEHd68w==} + engines: {node: '>=16.1.0'} + dependencies: + '@babel/runtime': 7.23.7 + tslib: 2.6.2 + dev: false + + /autoprefixer@9.8.8: + resolution: {integrity: sha512-eM9d/swFopRt5gdJ7jrpCwgvEMIayITpojhkkSMRsFHYuH5bkSQ4p/9qTEHtmNudUZh22Tehu7I6CxAW0IXTKA==} + hasBin: true + dependencies: + browserslist: 4.22.2 + caniuse-lite: 1.0.30001574 + normalize-range: 0.1.2 + num2fraction: 1.2.2 + picocolors: 0.2.1 + postcss: 7.0.39 + postcss-value-parser: 4.2.0 + dev: false + + /available-typed-arrays@1.0.5: + resolution: {integrity: sha512-DMD0KiN46eipeziST1LPP/STfDU0sufISXmjSgvVsoU2tqxctQeASejWcfNtxYKqETM1UxQ8sp2OrSBWpHY6sw==} + engines: {node: '>= 0.4'} + dev: true + + /aws-sign2@0.7.0: + resolution: {integrity: sha512-08kcGqnYf/YmjoRhfxyu+CLxBjUtHLXLXX/vUfx9l2LYzG3c1m61nrpyFUZI6zeS+Li/wWMMidD9KgrqtGq3mA==} + + /aws4@1.12.0: + resolution: {integrity: sha512-NmWvPnx0F1SfrQbYwOi7OeaNGokp9XhzNioJ/CSBs8Qa4vxug81mhJEAVZwxXuBmYB5KDRfMq/F3RR0BIU7sWg==} + + /axios@0.27.2: + resolution: {integrity: sha512-t+yRIyySRTp/wua5xEr+z1q60QmLq8ABsS5O9Me1AsE5dfKqgnCFzwiCZZ/cGNd1lq4/7akDWMxdhVlucjmnOQ==} + dependencies: + follow-redirects: 1.15.4(debug@4.3.4) + form-data: 4.0.0 + transitivePeerDependencies: + - debug + dev: true + + /babel-code-frame@6.26.0: + resolution: {integrity: sha512-XqYMR2dfdGMW+hd0IUZ2PwK+fGeFkOxZJ0wY+JaQAHzt1Zx8LcvpiZD2NiGkEG8qx0CfkAOr5xt76d1e8vG90g==} + dependencies: + chalk: 1.1.3 + esutils: 2.0.3 + js-tokens: 3.0.2 + + /babel-core@6.26.3: + resolution: {integrity: sha512-6jyFLuDmeidKmUEb3NM+/yawG0M2bDZ9Z1qbZP59cyHLz8kYGKYwpJP0UwUKKUiTRNvxfLesJnTedqczP7cTDA==} + dependencies: + babel-code-frame: 6.26.0 + babel-generator: 6.26.1 + babel-helpers: 6.24.1 + babel-messages: 6.23.0 + babel-register: 6.26.0 + babel-runtime: 6.26.0 + babel-template: 6.26.0 + babel-traverse: 6.26.0 + babel-types: 6.26.0 + babylon: 6.18.0 + convert-source-map: 1.9.0 + debug: 2.6.9(supports-color@6.1.0) + json5: 0.5.1 + lodash: 4.17.21 + minimatch: 3.1.2 + path-is-absolute: 1.0.1 + private: 0.1.8 + slash: 1.0.0 + source-map: 0.5.7 + transitivePeerDependencies: + - supports-color + dev: true + + /babel-core@7.0.0-bridge.0(@babel/core@7.14.8): + resolution: {integrity: sha512-poPX9mZH/5CSanm50Q+1toVci6pv5KSRv/5TWCwtzQS5XEwn40BcCrgIeMFWP9CKKIniKXNxoIOnOq4VVlGXhg==} + peerDependencies: + '@babel/core': ^7.0.0-0 + dependencies: + '@babel/core': 7.14.8 + dev: true + + /babel-eslint@10.0.3(eslint@5.16.0): + resolution: {integrity: sha512-z3U7eMY6r/3f3/JB9mTsLjyxrv0Yb1zb8PCWCLpguxfCzBIZUwy23R1t/XKewP+8mEN2Ck8Dtr4q20z6ce6SoA==} + engines: {node: '>=6'} + deprecated: babel-eslint is now @babel/eslint-parser. This package will no longer receive updates. + peerDependencies: + eslint: '>= 4.12.1' + dependencies: + '@babel/code-frame': 7.23.5 + '@babel/parser': 7.23.6 + '@babel/traverse': 7.23.7 + '@babel/types': 7.23.6 + eslint: 5.16.0 + eslint-visitor-keys: 1.3.0 + resolve: 1.22.8 + transitivePeerDependencies: + - supports-color + dev: true + + /babel-generator@6.26.1: + resolution: {integrity: sha512-HyfwY6ApZj7BYTcJURpM5tznulaBvyio7/0d4zFOeMPUmfxkCjHocCuoLa2SAGzBI8AREcH3eP3758F672DppA==} + dependencies: + babel-messages: 6.23.0 + babel-runtime: 6.26.0 + babel-types: 6.26.0 + detect-indent: 4.0.0 + jsesc: 1.3.0 + lodash: 4.17.21 + source-map: 0.5.7 + trim-right: 1.0.1 + dev: true + + /babel-helpers@6.24.1: + resolution: {integrity: sha512-n7pFrqQm44TCYvrCDb0MqabAF+JUBq+ijBvNMUxpkLjJaAu32faIexewMumrH5KLLJ1HDyT0PTEqRyAe/GwwuQ==} + dependencies: + babel-runtime: 6.26.0 + babel-template: 6.26.0 + transitivePeerDependencies: + - supports-color + dev: true + + /babel-jest@21.2.0(babel-core@6.26.3): + resolution: {integrity: sha512-O0W2qLoWu1QOoOGgxiR2JID4O6WSpxPiQanrkyi9SSlM0PJ60Ptzlck47lhtnr9YZO3zYOsxHwnyeWJ6AffoBQ==} + peerDependencies: + babel-core: ^6.0.0 || ^7.0.0-alpha || ^7.0.0-beta || ^7.0.0 + dependencies: + babel-core: 6.26.3 + babel-plugin-istanbul: 4.1.6 + babel-preset-jest: 21.2.0 + transitivePeerDependencies: + - supports-color + dev: true + + /babel-loader@8.2.2(@babel/core@7.14.8)(webpack@4.46.0): + resolution: {integrity: sha512-JvTd0/D889PQBtUXJ2PXaKU/pjZDMtHA9V2ecm+eNRmmBCMR09a+fmpGTNwnJtFmFl5Ei7Vy47LjBb+L0wQ99g==} + engines: {node: '>= 8.9'} + peerDependencies: + '@babel/core': ^7.0.0 + webpack: '>=2' + dependencies: + '@babel/core': 7.14.8 + find-cache-dir: 3.3.2 + loader-utils: 1.4.2 + make-dir: 3.1.0 + schema-utils: 2.7.1 + webpack: 4.46.0(webpack-cli@3.3.12) + dev: true + + /babel-messages@6.23.0: + resolution: {integrity: sha512-Bl3ZiA+LjqaMtNYopA9TYE9HP1tQ+E5dLxE0XrAzcIJeK2UqF0/EaqXwBn9esd4UmTfEab+P+UYQ1GnioFIb/w==} + dependencies: + babel-runtime: 6.26.0 + dev: true + + /babel-plugin-istanbul@4.1.6: + resolution: {integrity: sha512-PWP9FQ1AhZhS01T/4qLSKoHGY/xvkZdVBGlKM/HuxxS3+sC66HhTNR7+MpbO/so/cz/wY94MeSWJuP1hXIPfwQ==} + dependencies: + babel-plugin-syntax-object-rest-spread: 6.13.0 + find-up: 2.1.0 + istanbul-lib-instrument: 1.10.2 + test-exclude: 4.2.3 + transitivePeerDependencies: + - supports-color + dev: true + + /babel-plugin-jest-hoist@21.2.0: + resolution: {integrity: sha512-yi5QuiVyyvhBUDLP4ButAnhYzkdrUwWDtvUJv71hjH3fclhnZg4HkDeqaitcR2dZZx/E67kGkRcPVjtVu+SJfQ==} + dev: true + + /babel-plugin-polyfill-corejs2@0.2.3(@babel/core@7.14.8): + resolution: {integrity: sha512-NDZ0auNRzmAfE1oDDPW2JhzIMXUk+FFe2ICejmt5T4ocKgiQx3e0VCRx9NCAidcMtL2RUZaWtXnmjTCkx0tcbA==} + peerDependencies: + '@babel/core': ^7.0.0-0 + dependencies: + '@babel/compat-data': 7.23.5 + '@babel/core': 7.14.8 + '@babel/helper-define-polyfill-provider': 0.2.4(@babel/core@7.14.8) + semver: 6.3.1 + transitivePeerDependencies: + - supports-color + dev: true + + /babel-plugin-polyfill-corejs3@0.2.5(@babel/core@7.14.8): + resolution: {integrity: sha512-ninF5MQNwAX9Z7c9ED+H2pGt1mXdP4TqzlHKyPIYmJIYz0N+++uwdM7RnJukklhzJ54Q84vA4ZJkgs7lu5vqcw==} + peerDependencies: + '@babel/core': ^7.0.0-0 + dependencies: + '@babel/core': 7.14.8 + '@babel/helper-define-polyfill-provider': 0.2.4(@babel/core@7.14.8) + core-js-compat: 3.35.0 + transitivePeerDependencies: + - supports-color + dev: true + + /babel-plugin-polyfill-regenerator@0.2.3(@babel/core@7.14.8): + resolution: {integrity: sha512-JVE78oRZPKFIeUqFGrSORNzQnrDwZR16oiWeGM8ZyjBn2XAT5OjP+wXx5ESuo33nUsFUEJYjtklnsKbxW5L+7g==} + peerDependencies: + '@babel/core': ^7.0.0-0 + dependencies: + '@babel/core': 7.14.8 + '@babel/helper-define-polyfill-provider': 0.2.4(@babel/core@7.14.8) + transitivePeerDependencies: + - supports-color + dev: true + + /babel-plugin-react-intl@3.5.1: + resolution: {integrity: sha512-1jlEJCSmLaJM4tjIKpu64UZ833COCHmwR77bFJDOye+zlwf80uR1b8p41l4tClx1QsrfI+qV6w/5AiPYQgaMUQ==} + deprecated: this package has been renamed to babel-plugin-formatjs + dependencies: + '@babel/core': 7.14.8 + '@babel/helper-plugin-utils': 7.22.5 + '@types/babel__core': 7.20.5 + fs-extra: 8.1.0 + intl-messageformat-parser: 1.8.1 + transitivePeerDependencies: + - supports-color + dev: false + + /babel-plugin-syntax-object-rest-spread@6.13.0: + resolution: {integrity: sha512-C4Aq+GaAj83pRQ0EFgTvw5YO6T3Qz2KGrNRwIj9mSoNHVvdZY4KO2uA6HNtNXCw993iSZnckY1aLW8nOi8i4+w==} + dev: true + + /babel-preset-jest@21.2.0: + resolution: {integrity: sha512-hm9cBnr2h3J7yXoTtAVV0zg+3vg0Q/gT2GYuzlreTU0EPkJRtlNgKJJ3tBKEn0+VjAi3JykV6xCJkuUYttEEfA==} + dependencies: + babel-plugin-jest-hoist: 21.2.0 + babel-plugin-syntax-object-rest-spread: 6.13.0 + dev: true + + /babel-register@6.26.0: + resolution: {integrity: sha512-veliHlHX06wjaeY8xNITbveXSiI+ASFnOqvne/LaIJIqOWi2Ogmj91KOugEz/hoh/fwMhXNBJPCv8Xaz5CyM4A==} + dependencies: + babel-core: 6.26.3 + babel-runtime: 6.26.0 + core-js: 2.5.7 + home-or-tmp: 2.0.0 + lodash: 4.17.21 + mkdirp: 0.5.6 + source-map-support: 0.4.18 + transitivePeerDependencies: + - supports-color + dev: true + + /babel-runtime@6.26.0: + resolution: {integrity: sha512-ITKNuq2wKlW1fJg9sSW52eepoYgZBggvOAHC0u/CYu/qxQ9EVzThCgR69BnSXLHjy2f7SY5zaQ4yt7H9ZVxY2g==} + dependencies: + core-js: 2.5.7 + regenerator-runtime: 0.11.1 + + /babel-template@6.26.0: + resolution: {integrity: sha512-PCOcLFW7/eazGUKIoqH97sO9A2UYMahsn/yRQ7uOk37iutwjq7ODtcTNF+iFDSHNfkctqsLRjLP7URnOx0T1fg==} + dependencies: + babel-runtime: 6.26.0 + babel-traverse: 6.26.0 + babel-types: 6.26.0 + babylon: 6.18.0 + lodash: 4.17.21 + transitivePeerDependencies: + - supports-color + dev: true + + /babel-traverse@6.26.0: + resolution: {integrity: sha512-iSxeXx7apsjCHe9c7n8VtRXGzI2Bk1rBSOJgCCjfyXb6v1aCqE1KSEpq/8SXuVN8Ka/Rh1WDTF0MDzkvTA4MIA==} + dependencies: + babel-code-frame: 6.26.0 + babel-messages: 6.23.0 + babel-runtime: 6.26.0 + babel-types: 6.26.0 + babylon: 6.18.0 + debug: 2.6.9(supports-color@6.1.0) + globals: 9.18.0 + invariant: 2.2.4 + lodash: 4.17.21 + transitivePeerDependencies: + - supports-color + dev: true + + /babel-types@6.26.0: + resolution: {integrity: sha512-zhe3V/26rCWsEZK8kZN+HaQj5yQ1CilTObixFzKW1UWjqG7618Twz6YEsCnjfg5gBcJh02DrpCkS9h98ZqDY+g==} + dependencies: + babel-runtime: 6.26.0 + esutils: 2.0.3 + lodash: 4.17.21 + to-fast-properties: 1.0.3 + dev: true + + /babylon@6.18.0: + resolution: {integrity: sha512-q/UEjfGJ2Cm3oKV71DJz9d25TPnq5rhBVL2Q4fA5wcC3jcrdn7+SssEybFIxwAvvP+YCsCYNKughoF33GxgycQ==} + hasBin: true + dev: true + + /balanced-match@1.0.2: + resolution: {integrity: sha512-3oSeUO0TMV67hN1AmbXsK4yaqU7tjiHlbxRDZOpH0KW9+CeX4bRAaX0Anxt0tx2MrpRpWwQaPwIlISEJhYU5Pw==} + + /base64-js@0.0.8: + resolution: {integrity: sha512-3XSA2cR/h/73EzlXXdU6YNycmYI7+kicTxks4eJg2g39biHR84slg2+des+p7iHYhbRg/udIS4TD53WabcOUkw==} + engines: {node: '>= 0.4'} + dev: false + + /base64-js@1.2.1: + resolution: {integrity: sha512-dwVUVIXsBZXwTuwnXI9RK8sBmgq09NDHzyR9SAph9eqk76gKK2JSQmZARC2zRC81JC2QTtxD0ARU5qTS25gIGw==} + dev: false + + /base64-js@1.3.0: + resolution: {integrity: sha512-ccav/yGvoa80BQDljCxsmmQ3Xvx60/UpBIij5QN21W3wBi/hhIC9OoO+KLpu9IJTS9j4DRVJ3aDDF9cMSoa2lw==} + dev: false + + /base64-js@1.5.1: + resolution: {integrity: sha512-AKpaYlHn8t4SVbOHCy+b5+KKgvR4vrsD8vbvrbiQJps7fKDTkjkDry6ji0rUJjC0kzbNePLwzxq8iypo41qeWA==} + + /base64-loader@1.0.0: + resolution: {integrity: sha512-p32+F8dg+ANGx7s8QsZS74ZPHfIycmC2yZcoerzFgbersIYWitPbbF39G6SBx3gyvzyLH5nt1ooocxr0IHuWKA==} + dev: false + + /base@0.11.2: + resolution: {integrity: sha512-5T6P4xPgpp0YDFvSWwEZ4NoE3aM4QBQXDzmVbraCkFj8zHM+mba8SyqB5DbZWyR7mYHo6Y7BdQo3MoA4m0TeQg==} + engines: {node: '>=0.10.0'} + dependencies: + cache-base: 1.0.1 + class-utils: 0.3.6 + component-emitter: 1.3.1 + define-property: 1.0.0 + isobject: 3.0.1 + mixin-deep: 1.3.2 + pascalcase: 0.1.1 + + /batch@0.6.1: + resolution: {integrity: sha512-x+VAiMRL6UPkx+kudNvxTl6hB2XNNCG2r+7wixVfIYwu/2HKRXimwQyaumLjMveWvT2Hkd/cAJw+QBMfJ/EKVw==} + dev: true + + /bcrypt-pbkdf@1.0.2: + resolution: {integrity: sha512-qeFIXtP4MSoi6NLqO12WfqARWWuCKi2Rn/9hJLEmtB5yTNr9DqFWkJRCf2qShWzPeAMRnOgCrq0sg/KLv5ES9w==} + dependencies: + tweetnacl: 0.14.5 + + /big.js@5.2.2: + resolution: {integrity: sha512-vyL2OymJxmarO8gxMr0mhChsO9QGwhynfuu4+MHTAW6czfq9humCB7rKpUjDd9YUiDPU4mzpyupFSvOClAwbmQ==} + + /binary-extensions@1.13.1: + resolution: {integrity: sha512-Un7MIEDdUC5gNpcGDV97op1Ywk748MpHcFTHoYs6qnj1Z3j7I53VG3nwZhKzoBZmbdRNnb6WRdFlwl7tSDuZGw==} + engines: {node: '>=0.10.0'} + requiresBuild: true + + /binary-extensions@2.2.0: + resolution: {integrity: sha512-jDctJ/IVQbZoJykoeHbhXpOlNBqGNcwXJKJog42E5HDPUwQTSdjCHdihjj0DlnheQ7blbT6dHOafNAiS8ooQKA==} + engines: {node: '>=8'} + requiresBuild: true + optional: true + + /bindings@1.5.0: + resolution: {integrity: sha512-p2q/t/mhvuOj/UeLlV6566GD/guowlr0hHxClI0W9m7MWYkL1F0hLo+0Aexs9HSPCtR1SXQ0TD3MMKrXZajbiQ==} + requiresBuild: true + dependencies: + file-uri-to-path: 1.0.0 + optional: true + + /bl@1.2.3: + resolution: {integrity: sha512-pvcNpa0UU69UT341rO6AYy4FVAIkUHuZXRIWbq+zHnsVcRzDDjIAhGuuYoi0d//cwIwtt4pkpKycWEfjdV+vww==} + dependencies: + readable-stream: 2.3.8 + safe-buffer: 5.2.1 + dev: false + + /bluebird@3.7.2: + resolution: {integrity: sha512-XpNj6GDQzdfW+r2Wnn7xiSAd7TM3jzkxGXBGTtWKuSXv1xUV+azxAm8jdWZN06QTQk+2N2XB9jRDkvbmQmcRtg==} + + /bn.js@4.12.0: + resolution: {integrity: sha512-c98Bf3tPniI+scsdk237ku1Dc3ujXQTSgyiPUDEOe7tRkhrqridvh8klBv0HCEso1OLOYcHuCv/cS6DNxKH+ZA==} + + /bn.js@5.2.1: + resolution: {integrity: sha512-eXRvHzWyYPBuB4NBy0cmYQjGitUrtqwbvlzP3G6VFnNRbsZQIxQ10PbKKHt8gZ/HW/D/747aDl+QkDqg3KQLMQ==} + + /body-parser@1.20.1(supports-color@6.1.0): + resolution: {integrity: sha512-jWi7abTbYwajOytWCQc37VulmWiRae5RyTpaCyDcS5/lMdtwSz5lOpDE67srw/HYe35f1z3fDQw+3txg7gNtWw==} + engines: {node: '>= 0.8', npm: 1.2.8000 || >= 1.4.16} + dependencies: + bytes: 3.1.2 + content-type: 1.0.5 + debug: 2.6.9(supports-color@6.1.0) + 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.1 + type-is: 1.6.18 + unpipe: 1.0.0 + transitivePeerDependencies: + - supports-color + dev: true + + /bonjour@3.5.0: + resolution: {integrity: sha512-RaVTblr+OnEli0r/ud8InrU7D+G0y6aJhlxaLa6Pwty4+xoxboF1BsUI45tujvRpbj9dQVoglChqonGAsjEBYg==} + dependencies: + array-flatten: 2.1.2 + deep-equal: 1.1.2 + dns-equal: 1.0.0 + dns-txt: 2.0.2 + multicast-dns: 6.2.3 + multicast-dns-service-types: 1.1.0 + dev: true + + /boolbase@1.0.0: + resolution: {integrity: sha512-JZOSA7Mo9sNGB8+UjSgzdLtokWAky1zbztM3WRLCbZ70/3cTANmQmOdR7y2g+J0e2WXywy1yS468tY+IruqEww==} + dev: true + + /bowser@1.9.4: + resolution: {integrity: sha512-9IdMmj2KjigRq6oWhmwv1W36pDuA4STQZ8q6YO9um+x07xgYNCD3Oou+WP/3L1HNz7iqythGet3/p4wvc8AAwQ==} + dev: false + + /brace-expansion@1.1.11: + resolution: {integrity: sha512-iCuPHDFgrHX7H2vEI/5xpz07zSHB00TpugqhmYtVmMO6518mCuRMoOYFldEBl0g187ufozdaHgWKcYFb61qGiA==} + dependencies: + balanced-match: 1.0.2 + concat-map: 0.0.1 + + /braces@1.8.5: + resolution: {integrity: sha512-xU7bpz2ytJl1bH9cgIurjpg/n8Gohy9GTw81heDYLJQ4RU60dlyJsa+atVF2pI0yMMvKxI9HkKwjePCj5XI1hw==} + engines: {node: '>=0.10.0'} + dependencies: + expand-range: 1.8.2 + preserve: 0.2.0 + repeat-element: 1.1.4 + dev: true + + /braces@2.3.2(supports-color@6.1.0): + resolution: {integrity: sha512-aNdbnj9P8PjdXU4ybaWLK2IF3jc/EoDYbC7AazW6to3TRsfXxscC9UXOB5iDiEQrkyIbWp2SLQda4+QAa7nc3w==} + engines: {node: '>=0.10.0'} + 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.4 + snapdragon: 0.8.2(supports-color@6.1.0) + snapdragon-node: 2.1.1 + split-string: 3.1.0 + to-regex: 3.0.2 + transitivePeerDependencies: + - supports-color + + /braces@3.0.2: + resolution: {integrity: sha512-b8um+L1RzM3WDSzvhm6gIz1yfTbBt6YTlcEKAvsmqCZZFw46z626lVj9j1yEPW33H5H+lBQpZMP1k8l+78Ha0A==} + engines: {node: '>=8'} + dependencies: + fill-range: 7.0.1 + + /brfs@1.6.1: + resolution: {integrity: sha512-OfZpABRQQf+Xsmju8XE9bDjs+uU4vLREGolP7bDgcpsI17QREyZ4Bl+2KLxxx1kCgA0fAIhKQBaBYh+PEcCqYQ==} + hasBin: true + dependencies: + quote-stream: 1.0.2 + resolve: 1.22.8 + static-module: 2.2.5 + through2: 2.0.5 + dev: false + + /brorand@1.1.0: + resolution: {integrity: sha512-cKV8tMCEpQs4hK/ik71d6LrPOnpkpGBR0wzxqr68g2m/LB2GxVYQroAjMJZRVM1Y4BCjCKc3vAamxSzOY2RP+w==} + + /browser-resolve@1.11.3: + resolution: {integrity: sha512-exDi1BYWB/6raKHmDTCicQfTkqwN5fioMFV4j8BsfMU4R2DK/QfZfK7kOVkmWCNANf0snkBzqGqAJBao9gZMdQ==} + dependencies: + resolve: 1.1.7 + dev: true + + /browser-stdout@1.3.0: + resolution: {integrity: sha512-7Rfk377tpSM9TWBEeHs0FlDZGoAIei2V/4MdZJoFMBFAK6BqLpxAIUepGRHGdPFgGsLb02PXovC4qddyHvQqTg==} + dev: false + + /browserify-aes@1.2.0: + resolution: {integrity: sha512-+7CHXqGuspUn/Sl5aO7Ea0xWGAtETPXNSAjHo48JfLdPWcMng33Xe4znFvQweqc/uzk5zSOI3H52CYnjCfb5hA==} + dependencies: + buffer-xor: 1.0.3 + cipher-base: 1.0.4 + create-hash: 1.2.0 + evp_bytestokey: 1.0.3 + inherits: 2.0.4 + safe-buffer: 5.2.1 + + /browserify-cipher@1.0.1: + resolution: {integrity: sha512-sPhkz0ARKbf4rRQt2hTpAHqn47X3llLkUGn+xEJzLjwY8LRs2p0v7ljvI5EyoRO/mexrNunNECisZs+gw2zz1w==} + dependencies: + browserify-aes: 1.2.0 + browserify-des: 1.0.2 + evp_bytestokey: 1.0.3 + + /browserify-des@1.0.2: + resolution: {integrity: sha512-BioO1xf3hFwz4kc6iBhI3ieDFompMhrMlnDFC4/0/vd5MokpuAc3R+LYbwTA9A5Yc9pq9UYPqffKpW2ObuwX5A==} + dependencies: + cipher-base: 1.0.4 + des.js: 1.1.0 + inherits: 2.0.4 + safe-buffer: 5.2.1 + + /browserify-rsa@4.1.0: + resolution: {integrity: sha512-AdEER0Hkspgno2aR97SAf6vi0y0k8NuOpGnVH3O99rcA5Q6sh8QxcngtHuJ6uXwnfAXNM4Gn1Gb7/MV1+Ymbog==} + dependencies: + bn.js: 5.2.1 + randombytes: 2.1.0 + + /browserify-sign@4.2.2: + resolution: {integrity: sha512-1rudGyeYY42Dk6texmv7c4VcQ0EsvVbLwZkA+AQB7SxvXxmcD93jcHie8bzecJ+ChDlmAm2Qyu0+Ccg5uhZXCg==} + engines: {node: '>= 4'} + dependencies: + bn.js: 5.2.1 + browserify-rsa: 4.1.0 + create-hash: 1.2.0 + create-hmac: 1.1.7 + elliptic: 6.5.4 + inherits: 2.0.4 + parse-asn1: 5.1.6 + readable-stream: 3.6.2 + safe-buffer: 5.2.1 + + /browserify-zlib@0.2.0: + resolution: {integrity: sha512-Z942RysHXmJrhqk88FmKBVq/v5tqmSkDz7p54G/MGyjMnCFFnC79XWNbg+Vta8W6Wb2qtSZTSxIGkJrRpCFEiA==} + dependencies: + pako: 1.0.11 + + /browserslist@4.22.2: + resolution: {integrity: sha512-0UgcrvQmBDvZHFGdYUehrCNIazki7/lUP3kkoi/r3YB2amZbFM9J43ZRkJTXBUZK4gmx56+Sqk9+Vs9mwZx9+A==} + engines: {node: ^6 || ^7 || ^8 || ^9 || ^10 || ^11 || ^12 || >=13.7} + hasBin: true + dependencies: + caniuse-lite: 1.0.30001574 + electron-to-chromium: 1.4.620 + node-releases: 2.0.14 + update-browserslist-db: 1.0.13(browserslist@4.22.2) + + /bser@2.1.1: + resolution: {integrity: sha512-gQxTNE/GAfIIrmHLUE3oJyp5FO6HRBfhjnw4/wMmA63ZGDJnWBmgY/lyQBpnDUkGmAhbSe39tx2d/iTOAfglwQ==} + dependencies: + node-int64: 0.4.0 + dev: true + + /btoa@1.2.1: + resolution: {integrity: sha512-SB4/MIGlsiVkMcHmT+pSmIPoNDoHg+7cMzmt3Uxt628MTz2487DKSqK/fuhFBrkuqrYv5UCEnACpF4dTFNKc/g==} + engines: {node: '>= 0.4.0'} + hasBin: true + dev: false + + /buffer-alloc-unsafe@1.1.0: + resolution: {integrity: sha512-TEM2iMIEQdJ2yjPJoSIsldnleVaAk1oW3DBVUykyOLsEsFmEc9kn+SFFPz+gl54KQNxlDnAwCXosOS9Okx2xAg==} + dev: false + + /buffer-alloc@1.2.0: + resolution: {integrity: sha512-CFsHQgjtW1UChdXgbyJGtnm+O/uLQeZdtbDo8mfUgYXCHSM1wgrVxXm6bSyrUuErEb+4sYVGCzASBRot7zyrow==} + dependencies: + buffer-alloc-unsafe: 1.1.0 + buffer-fill: 1.0.0 + dev: false + + /buffer-crc32@0.2.13: + resolution: {integrity: sha512-VO9Ht/+p3SN7SKWqcrgEzjGbRSJYTx+Q1pTQC0wrWqHx0vpJraQ6GtHx8tvcg1rlK1byhU5gccxgOgj7B0TDkQ==} + + /buffer-equal@0.0.1: + resolution: {integrity: sha512-RgSV6InVQ9ODPdLWJ5UAqBqJBOg370Nz6ZQtRzpt6nUjc8v0St97uJ4PYC6NztqIScrAXafKM3mZPMygSe1ggA==} + engines: {node: '>=0.4.0'} + dev: false + + /buffer-fill@1.0.0: + resolution: {integrity: sha512-T7zexNBwiiaCOGDg9xNX9PBmjrubblRkENuptryuI64URkXDFum9il/JGL8Lm8wYfAXpredVXXZz7eMHilimiQ==} + dev: false + + /buffer-from@1.1.2: + resolution: {integrity: sha512-E+XQCRwSbaaiChtv6k6Dwgc+bx+Bs6vuKJHHl5kox/BaKbhiXzqQOwK4cO22yElGp2OCmjwVhT3HmxgyPGnJfQ==} + + /buffer-indexof@1.1.1: + resolution: {integrity: sha512-4/rOEg86jivtPTeOUUT61jJO1Ya1TrR/OkqCSZDyq84WJh3LuuiphBYJN+fm5xufIk4XAFcEwte/8WzC8If/1g==} + dev: true + + /buffer-xor@1.0.3: + resolution: {integrity: sha512-571s0T7nZWK6vB67HI5dyUF7wXiNcfaPPPTl6zYCNApANjIvYJTg7hlud/+cJpdAhS7dVzqMLmfhfHR3rAcOjQ==} + + /buffer@4.9.2: + resolution: {integrity: sha512-xq+q3SRMOxGivLhBNaUdC64hDTQwejJ+H0T/NB1XMtTVEwNTrfFF3gAxiyW0Bu/xWEGhjVKgUcMhCrUy2+uCWg==} + dependencies: + base64-js: 1.5.1 + ieee754: 1.2.1 + isarray: 1.0.0 + + /buffer@5.7.1: + resolution: {integrity: sha512-EHcyIPBQ4BSGlvjB16k5KgAJ27CIsHY/2JBmCRReo48y9rQ3MaUzWX3KVlBa4U7MyX02HdVj0K7C3WaB3ju7FQ==} + dependencies: + base64-js: 1.5.1 + ieee754: 1.2.1 + dev: false + + /builtin-modules@1.1.1: + resolution: {integrity: sha512-wxXCdllwGhI2kCC0MnvTGYTMvnVZTvqgypkiTI8Pa5tcz2i6VqsqwYGgqwXji+4RgCzms6EajE4IxiUH6HH8nQ==} + engines: {node: '>=0.10.0'} + dev: true + + /builtin-status-codes@3.0.0: + resolution: {integrity: sha512-HpGFw18DgFWlncDfjTa2rcQ4W88O1mC8e8yZ2AvQY5KDaktSTwo+KRf6nHK6FRI5FyRyb/5T6+TSxfP7QyGsmQ==} + + /bytes@3.0.0: + resolution: {integrity: sha512-pMhOfFDPiv9t5jjIXkHosWmkSyQbvsgEVNkz0ERHbuLh2T/7j4Mqqpz523Fe8MVY89KC6Sh/QfS2sM+SjgFDcw==} + engines: {node: '>= 0.8'} + dev: true + + /bytes@3.1.2: + resolution: {integrity: sha512-/Nf7TyzTx6S3yRJObOAV7956r8cr2+Oj8AC5dt8wSP3BQAoeX58NoHyCU8P8zGkNXStjTSi6fzO6F0pBdcYbEg==} + engines: {node: '>= 0.8'} + dev: true + + /cacache@10.0.4: + resolution: {integrity: sha512-Dph0MzuH+rTQzGPNT9fAnrPmMmjKfST6trxJeK7NQuHRaVw24VzPRWTmg9MpcwOVQZO0E1FBICUlFeNaKPIfHA==} + dependencies: + bluebird: 3.7.2 + chownr: 1.1.4 + glob: 7.2.3 + graceful-fs: 4.2.11 + lru-cache: 4.1.5 + mississippi: 2.0.0 + mkdirp: 0.5.6 + move-concurrently: 1.0.1 + promise-inflight: 1.0.1(bluebird@3.7.2) + rimraf: 2.7.1 + ssri: 5.3.0 + unique-filename: 1.1.1 + y18n: 4.0.3 + dev: true + + /cacache@12.0.4: + resolution: {integrity: sha512-a0tMB40oefvuInr4Cwb3GerbL9xTj1D5yg0T5xrjGCGyfvbxseIXX7BAO/u/hIXdafzOI5JC3wDwHyf24buOAQ==} + dependencies: + bluebird: 3.7.2 + chownr: 1.1.4 + figgy-pudding: 3.5.2 + glob: 7.2.3 + graceful-fs: 4.2.11 + infer-owner: 1.0.4 + lru-cache: 5.1.1 + mississippi: 3.0.0 + mkdirp: 0.5.6 + move-concurrently: 1.0.1 + promise-inflight: 1.0.1(bluebird@3.7.2) + rimraf: 2.7.1 + ssri: 6.0.2 + unique-filename: 1.1.1 + y18n: 4.0.3 + + /cacache@15.3.0: + resolution: {integrity: sha512-VVdYzXEn+cnbXpFgWs5hTT7OScegHVmLhJIR8Ufqk3iFD6A6j5iSX1KuBTfNEv4tdJWE2PzA6IVFtcLC7fN9wQ==} + engines: {node: '>= 10'} + dependencies: + '@npmcli/fs': 1.1.1 + '@npmcli/move-file': 1.1.2 + chownr: 2.0.0 + fs-minipass: 2.1.0 + glob: 7.2.3 + infer-owner: 1.0.4 + lru-cache: 6.0.0 + minipass: 3.3.6 + minipass-collect: 1.0.2 + minipass-flush: 1.0.5 + minipass-pipeline: 1.2.4 + mkdirp: 1.0.3 + p-map: 4.0.0 + promise-inflight: 1.0.1(bluebird@3.7.2) + rimraf: 3.0.2 + ssri: 8.0.1 + tar: 6.2.0 + unique-filename: 1.1.1 + transitivePeerDependencies: + - bluebird + dev: false + + /cache-base@1.0.1: + resolution: {integrity: sha512-AKcdTnFSWATd5/GCPRxr2ChwIJ85CeyrEyjRHlKxQ56d4XJMGym0uAiKn0xbLOGOl3+yRpOTi484dVCEc5AUzQ==} + engines: {node: '>=0.10.0'} + dependencies: + collection-visit: 1.0.0 + component-emitter: 1.3.1 + get-value: 2.0.6 + has-value: 1.0.0 + isobject: 3.0.1 + set-value: 2.0.1 + to-object-path: 0.3.0 + union-value: 1.0.1 + unset-value: 1.0.0 + + /cacheable-request@2.1.4: + resolution: {integrity: sha512-vag0O2LKZ/najSoUwDbVlnlCFvhBE/7mGTY2B5FgCBDcRD+oVV1HYTOwM6JZfMg/hIcM6IwnTZ1uQQL5/X3xIQ==} + dependencies: + clone-response: 1.0.2 + get-stream: 3.0.0 + http-cache-semantics: 3.8.1 + keyv: 3.0.0 + lowercase-keys: 1.0.0 + normalize-url: 2.0.1 + responselike: 1.0.2 + dev: false + + /call-bind@1.0.5: + resolution: {integrity: sha512-C3nQxfFZxFRVoJoGKKI8y3MOEo129NQ+FgQ08iye+Mk4zNZZGdjfs06bVTr+DBSlA66Q2VEcMki/cUCP4SercQ==} + dependencies: + function-bind: 1.1.2 + get-intrinsic: 1.2.2 + set-function-length: 1.1.1 + + /caller-callsite@2.0.0: + resolution: {integrity: sha512-JuG3qI4QOftFsZyOn1qq87fq5grLIyk1JYd5lJmdA+fG7aQ9pA/i3JIJGcO3q0MrRcHlOt1U+ZeHW8Dq9axALQ==} + engines: {node: '>=4'} + dependencies: + callsites: 2.0.0 + dev: false + + /caller-path@2.0.0: + resolution: {integrity: sha512-MCL3sf6nCSXOwCTzvPKhN18TU7AHTvdtam8DAogxcrJ8Rjfbbg7Lgng64H9Iy+vUV6VGFClN/TyxBkAebLRR4A==} + engines: {node: '>=4'} + dependencies: + caller-callsite: 2.0.0 + dev: false + + /callsites@2.0.0: + resolution: {integrity: sha512-ksWePWBloaWPxJYQ8TL0JHvtci6G5QTKwQ95RcWAa/lzoAKuAOflGdAK92hpHXjkwb8zLxoLNUoNYZgVsaJzvQ==} + engines: {node: '>=4'} + + /callsites@3.1.0: + resolution: {integrity: sha512-P8BjAsXvZS+VIDUI11hHCQEv74YT67YUi5JJFNWIqL235sBmjX4+qx9Muvls5ivyNENctx46xQLQ3aTuE7ssaQ==} + engines: {node: '>=6'} + dev: true + + /camel-case@4.1.2: + resolution: {integrity: sha512-gxGWBrTT1JuMx6R+o5PTXMmUnhnVzLQ9SNutD4YqKtI6ap897t3tKECYla6gCWEkplXnlNybEkZg9GEGxKFCgw==} + dependencies: + pascal-case: 3.1.2 + tslib: 2.6.2 + dev: true + + /camelcase@2.1.1: + resolution: {integrity: sha512-DLIsRzJVBQu72meAKPkWQOLcujdXT32hwdfnkI1frSiSRMK1MofjKHf+MEx0SB6fjEFXL8fBDv1dKymBlOp4Qw==} + engines: {node: '>=0.10.0'} + dev: false + + /camelcase@4.1.0: + resolution: {integrity: sha512-FxAv7HpHrXbh3aPo4o2qxHay2lkLY3x5Mw3KeE4KQE8ysVfziWeRZDwcjauvwBSGEC/nXUPzZy8zeh4HokqOnw==} + engines: {node: '>=4'} + dev: true + + /camelcase@5.3.1: + resolution: {integrity: sha512-L28STB170nwWS63UjtlEOE3dldQApaJXZkOI1uMFfzf3rRuPegHaHesyee+YxQ+W6SvRDQV6UrdOdRiR153wJg==} + engines: {node: '>=6'} + + /caniuse-lite@1.0.30001574: + resolution: {integrity: sha512-BtYEK4r/iHt/txm81KBudCUcTy7t+s9emrIaHqjYurQ10x71zJ5VQ9x1dYPcz/b+pKSp4y/v1xSI67A+LzpNyg==} + + /cannon-es@0.20.0: + resolution: {integrity: sha512-eZhWTZIkFOnMAJOgfXJa9+b3kVlvG+FX4mdkpePev/w/rP5V8NRquGyEozcjPfEoXUlb+p7d9SUcmDSn14prOA==} + dev: false + + /canvas-toBlob@1.0.0: + resolution: {integrity: sha512-oU5bawygt/Nef9F+C49eTFmzXzz6yKdGqn6J1wn/LZQF5ulnnZVm0KIZzik85I6tjCbZFH6aa47j4bU2tkHxRw==} + dev: false + + /capture-exit@1.2.0: + resolution: {integrity: sha512-IS4lTgp57lUcpXzyCaiUQcRZBxZAkzl+jNXrMUXZjdnr2yujpKUMG9OYeYL29i6fL66ihypvVJ/MeX0B+9pWOg==} + dependencies: + rsvp: 3.6.2 + dev: true + + /caseless@0.12.0: + resolution: {integrity: sha512-4tYFyifaFfGacoiObjJegolkwSU4xQNGbVgUiNYVUxbQ2x2lUsFvY4hVgVzGiIe6WLOPqycWXA40l+PWsxthUw==} + + /chalk@1.1.3: + resolution: {integrity: sha512-U3lRVLMSlsCfjqYPbLyVv11M9CPW4I728d6TCKMAOJueEeB9/8o+eSsMnxPJD+Q+K909sdESg7C+tIkoH6on1A==} + engines: {node: '>=0.10.0'} + dependencies: + ansi-styles: 2.2.1 + escape-string-regexp: 1.0.5 + has-ansi: 2.0.0 + strip-ansi: 3.0.1 + supports-color: 2.0.0 + + /chalk@2.4.2: + resolution: {integrity: sha512-Mti+f9lpJNcwF4tWV8/OrTTtF1gZi+f8FqlyAdouralcFWFQWF2+NgCHShjkCb+IFBLq9buZwE1xckQU4peSuQ==} + engines: {node: '>=4'} + dependencies: + ansi-styles: 3.2.1 + escape-string-regexp: 1.0.5 + supports-color: 5.5.0 + + /chardet@0.7.0: + resolution: {integrity: sha512-mT8iDcrh03qDGRRmoA2hmBJnxpllMR+0/0qlzjqZES6NdiWDcZkCNAk4rPFZ9Q85r27unkiNNg8ZOiwZXBHwcA==} + dev: true + + /cheerio-select@2.1.0: + resolution: {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.1.0 + dev: true + + /cheerio@1.0.0-rc.12: + resolution: {integrity: sha512-VqR8m68vM46BNnuZ5NtnGBKIE/DfN0cRIzg9n40EIq9NOv90ayxLBXA8fXC5gquFRGJSTRqBq25Jt2ECLR431Q==} + engines: {node: '>= 6'} + dependencies: + cheerio-select: 2.1.0 + dom-serializer: 2.0.0 + domhandler: 5.0.3 + domutils: 3.1.0 + htmlparser2: 8.0.2 + parse5: 7.1.2 + parse5-htmlparser2-tree-adapter: 7.0.0 + dev: true + + /chokidar@2.1.8(supports-color@6.1.0): + resolution: {integrity: sha512-ZmZUazfOzf0Nve7duiCKD23PFSCs4JPoYyccjUFF3aQkQadqBhfzhjkwBH2mNOG9cTBwhamM37EIsIkZw3nRgg==} + deprecated: Chokidar 2 does not receive security updates since 2019. Upgrade to chokidar 3 with 15x fewer dependencies + dependencies: + anymatch: 2.0.0(supports-color@6.1.0) + async-each: 1.0.6 + braces: 2.3.2(supports-color@6.1.0) + glob-parent: 3.1.0 + inherits: 2.0.4 + is-binary-path: 1.0.1 + is-glob: 4.0.3 + normalize-path: 3.0.0 + path-is-absolute: 1.0.1 + readdirp: 2.2.1(supports-color@6.1.0) + upath: 1.2.0 + optionalDependencies: + fsevents: 1.2.13 + transitivePeerDependencies: + - supports-color + + /chokidar@3.5.3: + resolution: {integrity: sha512-Dr3sfKRP6oTcjf2JmUmFJfeVMvXBdegxB0iVQ5eb2V10uFJUCAS8OByZdVAyVb8xXNz3GjjTgj9kLWsZTqE6kw==} + engines: {node: '>= 8.10.0'} + requiresBuild: true + dependencies: + anymatch: 3.1.3 + braces: 3.0.2 + glob-parent: 5.1.2 + is-binary-path: 2.1.0 + is-glob: 4.0.3 + normalize-path: 3.0.0 + readdirp: 3.6.0 + optionalDependencies: + fsevents: 2.3.3 + optional: true + + /chownr@1.1.4: + resolution: {integrity: sha512-jJ0bqzaylmJtVnNgzTeSOs8DPavpbYgEr/b0YL8/2GO3xJEhInFmhKMUnEJQjZumK7KXGFhUy89PrsJWlakBVg==} + + /chownr@2.0.0: + resolution: {integrity: sha512-bIomtDF5KGpdogkLd9VspvFzk9KfpyyGlS8YFVZl7TGPBHL5snIOnxeshwVgPteQ9b4Eydl+pVbIyE1DcvCWgQ==} + engines: {node: '>=10'} + dev: false + + /chrome-trace-event@1.0.3: + resolution: {integrity: sha512-p3KULyQg4S7NIHixdwbGX+nFHkoBiA4YQmyWtjb8XngSKV124nJmRysgAeujbUVb15vh+RvFUfCPqU7rXk+hZg==} + engines: {node: '>=6.0'} + + /chromedriver@105.0.0: + resolution: {integrity: sha512-BX3GOUW5m6eiW9cVVF8hw+EFxvrGqYCxbwOqnpk8PjbNFqL5xjy7yel+e6ilJPjckAYFutMKs8XJvOs/W85vvg==} + engines: {node: '>=10'} + hasBin: true + requiresBuild: true + dependencies: + '@testim/chrome-version': 1.1.4 + axios: 0.27.2 + del: 6.1.1 + extract-zip: 2.0.1 + https-proxy-agent: 5.0.1 + proxy-from-env: 1.1.0 + tcp-port-used: 1.0.2 + transitivePeerDependencies: + - debug + - supports-color + dev: true + + /ci-info@1.6.0: + resolution: {integrity: sha512-vsGdkwSCDpWmP80ncATX7iea5DWQemg1UgCW5J8tqjU3lYw4FBYuj89J0CTVomA7BEfvSZd84GmHko+MxFQU2A==} + dev: true + + /cipher-base@1.0.4: + resolution: {integrity: sha512-Kkht5ye6ZGmwv40uUDZztayT2ThLQGfnj/T71N/XzeZeo3nf8foyW7zGTsPYkEya3m5f3cAypH+qe7YOrM1U2Q==} + dependencies: + inherits: 2.0.4 + safe-buffer: 5.2.1 + + /class-utils@0.3.6: + resolution: {integrity: sha512-qOhPa/Fj7s6TY8H8esGu5QNpMMQxz79h+urzrNYN6mn+9BnxlDGf5QZ+XeCDsxSjPqsSR56XOZOJmpeurnLMeg==} + engines: {node: '>=0.10.0'} + dependencies: + arr-union: 3.1.0 + define-property: 0.2.5 + isobject: 3.0.1 + static-extend: 0.1.2 + + /classnames@2.2.5: + resolution: {integrity: sha512-DTt3GhOUDKhh4ONwIJW4lmhyotQmV2LjNlGK/J2hkwUcqcbKkCLAdJPtxQnxnlc7SR3f1CEXCyMmc7WLUsWbNA==} + dev: false + + /classnames@2.2.6: + resolution: {integrity: sha512-JR/iSQOSt+LQIWwrwEzJ9uk0xfN3mTVYMwt1Ir5mUcSN6pU+V4zQFFaJsclJbPuAUQH+yfWef6tm7l1quW3C8Q==} + dev: false + + /clean-css@4.2.4: + resolution: {integrity: sha512-EJUDT7nDVFDvaQgAo2G/PJvxmp1o/c6iXLbswsBbUFXi1Nr+AjA2cKmfbKDMjMvzEe75g3P6JkaDDAKk96A85A==} + engines: {node: '>= 4.0'} + dependencies: + source-map: 0.6.1 + dev: true + + /clean-stack@2.2.0: + resolution: {integrity: sha512-4diC9HaTE+KRAMWhDhrGOECgWZxoevMc5TlkObMqNSsVU62PYzXZ/SMTjzyGAFF1YusgxGcSWTEXBhp0CPwQ1A==} + engines: {node: '>=6'} + + /cli-cursor@2.1.0: + resolution: {integrity: sha512-8lgKz8LmCRYZZQDpRyT2m5rKJ08TnU4tR9FFFW2rxpxR1FzWi4PQ/NfyODchAatHaUgnSPVcx/R5w6NuTBzFiw==} + engines: {node: '>=4'} + dependencies: + restore-cursor: 2.0.0 + dev: true + + /cli-width@1.1.1: + resolution: {integrity: sha512-eMU2akIeEIkCxGXUNmDnJq1KzOIiPnJ+rKqRe6hcxE3vIOPvpMrBYOn/Bl7zNlYJj/zQxXquAnozHUCf9Whnsg==} + dev: false + + /cli-width@2.2.1: + resolution: {integrity: sha512-GRMWDxpOB6Dgk2E5Uo+3eEBvtOOlimMmpbFiKuLFnQzYDavtLFY3K5ona41jgN/WdRZtG7utuVSVTL4HbZHGkw==} + dev: true + + /cliui@3.2.0: + resolution: {integrity: sha512-0yayqDxWQbqk3ojkYqUKqaAQ6AfNKeKWRNA8kR0WXzAsdHpP4BIaOmMAG87JGuO6qcobyW4GjxHd9PmhEd+T9w==} + dependencies: + string-width: 1.0.2 + strip-ansi: 3.0.1 + wrap-ansi: 2.1.0 + + /cliui@5.0.0: + resolution: {integrity: sha512-PYeGSEmmHM6zvoef2w8TPzlrnNpXIjTipYK780YswmIP9vjxmd6Y2a3CB2Ks6/AU8NHjZugXvo8w3oWM2qnwXA==} + dependencies: + string-width: 3.1.0 + strip-ansi: 5.2.0 + wrap-ansi: 5.1.0 + + /clone-response@1.0.2: + resolution: {integrity: sha512-yjLXh88P599UOyPTFX0POsd7WxnbsVsGohcwzHOLspIhhpalPw1BcqED8NblyZLKcGrL8dTgMlcaZxV2jAD41Q==} + dependencies: + mimic-response: 1.0.1 + dev: false + + /code-point-at@1.1.0: + resolution: {integrity: sha512-RpAVKQA5T63xEj6/giIbUEtZwJ4UFIc3ZtvEkiaUERylqe8xb5IvqcgOurZLahv93CLKfxcw5YI+DZcUBRyLXA==} + engines: {node: '>=0.10.0'} + + /collection-visit@1.0.0: + resolution: {integrity: sha512-lNkKvzEeMBBjUGHZ+q6z9pSJla0KWAQPvtzhEV9+iGyQYG+pBpl7xKDhxoNSOZH2hhv0v5k0y2yAM4o4SjoSkw==} + engines: {node: '>=0.10.0'} + dependencies: + map-visit: 1.0.0 + object-visit: 1.0.1 + + /color-convert@0.5.3: + resolution: {integrity: sha512-RwBeO/B/vZR3dfKL1ye/vx8MHZ40ugzpyfeVG5GsiuGnrlMWe2o8wxBbLCpw9CsxV+wHuzYlCiWnybrIA0ling==} + dev: false + + /color-convert@1.9.3: + resolution: {integrity: sha512-QfAUtd+vFdAtFQcC8CCyYt1fYWxSqAiK2cSD6zDB8N3cpsEBAvRxp9zOGg6G/SHHJYAT88/az/IuDGALsNVbGg==} + dependencies: + color-name: 1.1.3 + + /color-name@1.1.3: + resolution: {integrity: sha512-72fSenhMw2HZMTVHeCA9KCmpEIbzWiQsjN+BHcBbS9vr1mtt+vJjPdksIBNUmKAW8TFUDPJK5SUU3QhE9NEXDw==} + + /colors@0.6.2: + resolution: {integrity: sha512-OsSVtHK8Ir8r3+Fxw/b4jS1ZLPXkV6ZxDRJQzeD7qo0SqMXWrHDM71DgYzPMHY8SFJ0Ao+nNU2p1MmwdzKqPrw==} + engines: {node: '>=0.1.90'} + dev: false + + /combined-stream@1.0.8: + resolution: {integrity: sha512-FQN4MRfuJeHf7cBbBMJFXhKSDq+2kAArBlmRBvcvFE5BB1HZKXtSFASDhdlz9zOYwxh8lDdnvmMOe/+5cdoEdg==} + engines: {node: '>= 0.8'} + dependencies: + delayed-stream: 1.0.0 + + /commander@2.1.0: + resolution: {integrity: sha512-J2wnb6TKniXNOtoHS8TSrG9IOQluPrsmyAJ8oCUJOBmv+uLBCyPYAZkD2jFvw2DCzIXNnISIM01NIvr35TkBMQ==} + engines: {node: '>= 0.6.x'} + dev: false + + /commander@2.11.0: + resolution: {integrity: sha512-b0553uYA5YAEGgyYIGYROzKQ7X5RAqedkfjiZxwi0kL1g3bOaBNNZfYkzt/CL0umgD5wc9Jec2FbB98CjkMRvQ==} + dev: false + + /commander@2.13.0: + resolution: {integrity: sha512-MVuS359B+YzaWqjCL/c+22gfryv+mCBPHAv3zyVI2GN8EY6IRP8VwtasXn8jyyhvvq84R4ImN1OKRtcbIasjYA==} + dev: true + + /commander@2.15.1: + resolution: {integrity: sha512-VlfT9F3V0v+jr4yxPc5gg9s62/fIVWsd2Bk2iD435um1NlGMYdVCq+MjcXnhYq2icNOizHr1kK+5TI6H0Hy0ag==} + dev: true + + /commander@2.20.3: + resolution: {integrity: sha512-GpVkmM8vF2vQUkj2LvZmD35JxeJOLCwJ9cUkugyk2nuhbv3+mJvpLYYt+0+USMxE+oj+ey/lJEnhZw75x/OMcQ==} + + /commander@4.1.1: + resolution: {integrity: sha512-NOKm8xhkzAjzFx8B2v5OAHT+u5pRQc2UCa2Vq9jYL/31o2wi9mxBA7LIFs3sV5VSC49z6pEhfbMULvShKj26WA==} + engines: {node: '>= 6'} + + /commondir@1.0.1: + resolution: {integrity: sha512-W9pAhw0ja1Edb5GVdIF1mjZw/ASI0AlShXM83UUGe2DVr5TdAPEA1OA8m/g8zWp9x6On7gqufY+FatDbC3MDQg==} + + /complex.js@2.1.1: + resolution: {integrity: sha512-8njCHOTtFFLtegk6zQo0kkVX1rngygb/KQI6z1qZxlFI3scluC+LVTCFbrkWjBv4vvLlbQ9t88IPMC6k95VTTg==} + dev: false + + /component-emitter@1.3.1: + resolution: {integrity: sha512-T0+barUSQRTUQASh8bx02dl+DhF54GtIDY13Y3m9oWTklKbb3Wv974meRpeZ3lp1JpLVECWWNHC4vaG2XHXouQ==} + + /compressible@2.0.18: + resolution: {integrity: sha512-AF3r7P5dWxL8MxyITRMlORQNaOA2IkAFaTr4k7BUumjPtRpGDTZpl0Pb1XCO6JeDCBdp126Cgs9sMxqSjgYyRg==} + engines: {node: '>= 0.6'} + dependencies: + mime-db: 1.52.0 + dev: true + + /compression@1.7.4(supports-color@6.1.0): + resolution: {integrity: sha512-jaSIDzP9pZVS4ZfQ+TzvtiWhdpFhE2RDHz8QJkpX9SIpLq88VueF5jJw6t+6CUQcAoA6t+x89MLrWAqpfDE8iQ==} + engines: {node: '>= 0.8.0'} + dependencies: + accepts: 1.3.8 + bytes: 3.0.0 + compressible: 2.0.18 + debug: 2.6.9(supports-color@6.1.0) + on-headers: 1.0.2 + safe-buffer: 5.1.2 + vary: 1.1.2 + transitivePeerDependencies: + - supports-color + dev: true + + /computed-style-to-inline-style@3.0.0: + resolution: {integrity: sha512-6XAOG2ZZkpCfbM9AhRN4/wjMgQujtH/2q/eowZON190oAASUjEb3jwcodjmRlR8HNDMahJdBQwchuDftOtF7eg==} + dev: false + + /concat-map@0.0.1: + resolution: {integrity: sha512-/Srv4dswyQNBfohGpz9o6Yb3Gz3SrUDqBH5rTuhGR7ahtlbYKnVxw2bCFMRljaA7EXHaXZ8wsHdodFvbkhKmqg==} + + /concat-stream@1.6.2: + resolution: {integrity: sha512-27HBghJxjiZtIk3Ycvn/4kbJk/1uZuJFfuPEns6LaEvpvG1f0hTea8lilrouyo9mVc2GWdcEZ8OLoGmSADlrCw==} + engines: {'0': node >= 0.8} + dependencies: + buffer-from: 1.1.2 + inherits: 2.0.4 + readable-stream: 2.3.8 + typedarray: 0.0.6 + + /connect-history-api-fallback@1.6.0: + resolution: {integrity: sha512-e54B99q/OUoH64zYYRf3HBP5z24G38h5D3qXu23JGRoigpX5Ss4r9ZnDk3g0Z8uQC2x2lPaJ+UlWBc1ZWBWdLg==} + engines: {node: '>=0.8'} + dev: true + + /console-browserify@1.2.0: + resolution: {integrity: sha512-ZMkYO/LkF17QvCPqM0gxw8yUzigAOZOSWSHg91FH6orS7vcEj5dVZTidN2fQ14yBSdg97RqhSNwLUXInd52OTA==} + + /constants-browserify@1.0.0: + resolution: {integrity: sha512-xFxOwqIzR/e1k1gLiWEophSCMqXcwVHIH7akf7b/vxcUeGunlj3hvZaaqxwHsTgn+IndtkQJgSztIDWeumWJDQ==} + + /content-disposition@0.5.4: + resolution: {integrity: sha512-FveZTNuGw04cxlAiWbzi6zTAL/lhehaWbTtgluJh4/E95DqMwTmha3KZN1aAWA8cFIhHzMZUvLevkw5Rqk+tSQ==} + engines: {node: '>= 0.6'} + dependencies: + safe-buffer: 5.2.1 + + /content-type-parser@1.0.2: + resolution: {integrity: sha512-lM4l4CnMEwOLHAHr/P6MEZwZFPJFtAAKgL6pogbXmVZggIqXhdB6RbBtPOTsw2FcXwYhehRGERJmRrjOiIB8pQ==} + dev: true + + /content-type@1.0.5: + resolution: {integrity: sha512-nTjqfcBFEipKdXCv4YDQWCfmcLZKm81ldF0pAopTvyrFGVbcR6P/VAAd5G7N+0tTr8QqiU0tFadD6FK4NtJwOA==} + engines: {node: '>= 0.6'} + dev: true + + /convert-source-map@1.9.0: + resolution: {integrity: sha512-ASFBup0Mz1uyiIjANan1jzLQami9z1PoYSZCiiYW2FczPbenXc45FZdBZLzOT+r6+iciuEModtmCti+hjaAk0A==} + + /cookie-signature@1.0.6: + resolution: {integrity: sha512-QADzlaHc8icV8I7vbaJXJwod9HWYp8uCqf1xa4OfNu1T7JVxQIrUgOWtHdNDtPiywmFbiS12VjotIXLrKM3orQ==} + dev: true + + /cookie@0.5.0: + resolution: {integrity: sha512-YZ3GUyn/o8gfKJlnlX7g7xq4gyO6OSuhGPKaaGssGB2qgDUS0gPgtTvoyZLTt9Ab6dC4hfc9dV5arkvc/OCmrw==} + engines: {node: '>= 0.6'} + dev: true + + /copy-concurrently@1.0.5: + resolution: {integrity: sha512-f2domd9fsVDFtaFcbaRZuYXwtdmnzqbADSwhSWYxYB/Q8zsdUUFMXVRwXGDMWmbEzAn1kdRrtI1T/KTFOL4X2A==} + dependencies: + aproba: 1.2.0 + fs-write-stream-atomic: 1.0.10 + iferr: 0.1.5 + mkdirp: 0.5.6 + rimraf: 2.7.1 + run-queue: 1.0.3 + + /copy-descriptor@0.1.1: + resolution: {integrity: sha512-XgZ0pFcakEUlbwQEVNg3+QAis1FyTL3Qel9FYy8pSkQqoG3PNoT0bOCQtOXcOkur21r2Eq2kI+IE+gsmAEVlYw==} + engines: {node: '>=0.10.0'} + + /copy-webpack-plugin@6.4.1(webpack@4.46.0): + resolution: {integrity: sha512-MXyPCjdPVx5iiWyl40Va3JGh27bKzOTNY3NjUTrosD2q7dR/cLD0013uqJ3BpFbUjyONINjb6qI7nDIJujrMbA==} + engines: {node: '>= 10.13.0'} + peerDependencies: + webpack: ^4.37.0 || ^5.0.0 + dependencies: + cacache: 15.3.0 + fast-glob: 3.3.2 + find-cache-dir: 3.3.2 + glob-parent: 5.1.2 + globby: 11.1.0 + loader-utils: 2.0.4 + normalize-path: 3.0.0 + p-limit: 3.1.0 + schema-utils: 3.3.0 + serialize-javascript: 5.0.1 + webpack: 4.46.0(webpack-cli@3.3.12) + webpack-sources: 1.4.3 + transitivePeerDependencies: + - bluebird + dev: false + + /core-js-compat@3.35.0: + resolution: {integrity: sha512-5blwFAddknKeNgsjBzilkdQ0+YK8L1PfqPYq40NOYMYFSS38qj+hpTcLLWwpIwA2A5bje/x5jmVn2tzUMg9IVw==} + dependencies: + browserslist: 4.22.2 + dev: true + + /core-js@1.2.7: + resolution: {integrity: sha512-ZiPp9pZlgxpWRu0M+YWbm6+aQ84XEfH1JRXvfOc/fILWI0VKhLC2LX13X1NYq4fULzLMq7Hfh43CSo2/aIaUPA==} + 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 + + /core-js@2.3.0: + resolution: {integrity: sha512-N41UFUZNqoTSGUSyL7kiStAkH31Hxq197A4Gp9MxTZfAd52pXod7VM7kWiRP0J0YpQDeaE4SLsb+2OGgtgvUEw==} + 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: false + + /core-js@2.5.7: + resolution: {integrity: sha512-RszJCAxg/PP6uzXVXL6BsxSXx/B05oJAQ2vkJRjyjrEcNVycaqOmNb5OTxZPE3xa5gwZduqza6L9JOCenh/Ecw==} + 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. + + /core-js@3.35.0: + resolution: {integrity: sha512-ntakECeqg81KqMueeGJ79Q5ZgQNR+6eaE8sxGCx62zMbAIj65q+uYvatToew3m6eAGdU4gNZwpZ34NMe4GYswg==} + requiresBuild: true + dev: false + + /core-util-is@1.0.2: + resolution: {integrity: sha512-3lqz5YjWTYnW6dlDa5TLaTCcShfar1e40rmcJVwCBJC6mWlFuj0eCHIElmG1g5kyuJ/GD+8Wn4FFCcz4gJPfaQ==} + + /core-util-is@1.0.3: + resolution: {integrity: sha512-ZQBvi1DcpJ4GDqanjucZ2Hj3wEO5pZDS89BWbkcrvdxksJorwUDDZamX9ldFkp9aw2lmBDLgkObEA4DWNJ9FYQ==} + + /cosmiconfig@5.2.1: + resolution: {integrity: sha512-H65gsXo1SKjf8zmrJ67eJk8aIRKV5ff2D4uKZIBZShbhGSpEmsQOPW/SKMKYhSTrqR7ufy6RP69rPogdaPh/kA==} + engines: {node: '>=4'} + dependencies: + import-fresh: 2.0.0 + is-directory: 0.3.1 + js-yaml: 3.14.1 + parse-json: 4.0.0 + dev: false + + /create-ecdh@4.0.4: + resolution: {integrity: sha512-mf+TCx8wWc9VpuxfP2ht0iSISLZnt0JgWlrOKZiNqyUZWnjIaCIVNQArMHnCZKfEYRg6IM7A+NeJoN8gf/Ws0A==} + dependencies: + bn.js: 4.12.0 + elliptic: 6.5.4 + + /create-hash@1.2.0: + resolution: {integrity: sha512-z00bCGNHDG8mHAkP7CtT1qVu+bFQUPjYq/4Iv3C3kWjTFV10zIjfSoeqXo9Asws8gwSHDGj/hl2u4OGIjapeCg==} + dependencies: + cipher-base: 1.0.4 + inherits: 2.0.4 + md5.js: 1.3.5 + ripemd160: 2.0.2 + sha.js: 2.4.11 + + /create-hmac@1.1.7: + resolution: {integrity: sha512-MJG9liiZ+ogc4TzUwuvbER1JRdgvUFSB5+VR/g5h82fGaIRWMWddtKBHi7/sVhfjQZ6SehlyhvQYrcYkaUIpLg==} + dependencies: + cipher-base: 1.0.4 + create-hash: 1.2.0 + inherits: 2.0.4 + ripemd160: 2.0.2 + safe-buffer: 5.2.1 + sha.js: 2.4.11 + + /cross-spawn@5.1.0: + resolution: {integrity: sha512-pTgQJ5KC0d2hcY8eyL1IzlBPYjTkyH72XRZPnLyKus2mBfNjQs3klqbJU2VILqZryAZUt9JOb3h/mWMy23/f5A==} + dependencies: + lru-cache: 4.1.5 + shebang-command: 1.2.0 + which: 1.3.1 + dev: true + + /cross-spawn@6.0.5: + resolution: {integrity: sha512-eTVLrBSt7fjbDygz805pMnstIs2VTBNkRm0qxZd+M7A5XDdxVRWO5MxGBXZhjY4cqLYLdtrGqRf8mBPmzwSpWQ==} + engines: {node: '>=4.8'} + dependencies: + nice-try: 1.0.5 + path-key: 2.0.1 + semver: 5.7.2 + shebang-command: 1.2.0 + which: 1.3.1 + + /crypto-browserify@3.12.0: + resolution: {integrity: sha512-fz4spIh+znjO2VjL+IdhEpRJ3YN6sMzITSBijk6FK2UvTqruSQW+/cCZTSNsMiZNvUeq0CqurF+dAbyiGOY6Wg==} + dependencies: + browserify-cipher: 1.0.1 + browserify-sign: 4.2.2 + create-ecdh: 4.0.4 + create-hash: 1.2.0 + create-hmac: 1.1.7 + diffie-hellman: 5.0.3 + inherits: 2.0.4 + pbkdf2: 3.1.2 + public-encrypt: 4.0.3 + randombytes: 2.1.0 + randomfill: 1.0.4 + + /css-loader@1.0.1(webpack@4.46.0): + resolution: {integrity: sha512-+ZHAZm/yqvJ2kDtPne3uX0C+Vr3Zn5jFn2N4HywtS5ujwvsVkyg0VArEXpl3BgczDA8anieki1FIzhchX4yrDw==} + engines: {node: '>= 6.9.0 <7.0.0 || >= 8.9.0'} + peerDependencies: + webpack: ^4.0.0 + dependencies: + babel-code-frame: 6.26.0 + css-selector-tokenizer: 0.7.3 + icss-utils: 2.1.0 + loader-utils: 1.4.2 + lodash: 4.17.21 + postcss: 6.0.23 + postcss-modules-extract-imports: 1.2.1 + postcss-modules-local-by-default: 1.2.0 + postcss-modules-scope: 1.1.0 + postcss-modules-values: 1.3.0 + postcss-value-parser: 3.3.1 + source-list-map: 2.0.1 + webpack: 4.46.0(webpack-cli@3.3.12) + dev: false + + /css-mediaquery@0.1.2: + resolution: {integrity: sha512-COtn4EROW5dBGlE/4PiKnh6rZpAPxDeFLaEEwt4i10jpDMFt2EhQGS79QmmrO+iKCHv0PU/HrOWEhijFd1x99Q==} + dev: false + + /css-select@4.3.0: + resolution: {integrity: sha512-wPpOYtnsVontu2mODhA19JrqWxNsfdatRKd64kmpRbQgh1KtItko5sTnEpPdpSaJszTOhEMlF/RPz28qj4HqhQ==} + dependencies: + boolbase: 1.0.0 + css-what: 6.1.0 + domhandler: 4.3.1 + domutils: 2.8.0 + nth-check: 2.1.1 + dev: true + + /css-select@5.1.0: + resolution: {integrity: sha512-nwoRF1rvRRnnCqqY7updORDsuqKzqYJ28+oSMaJMMgOauh3fvwHqMS7EZpIPqK8GL+g9mKxF1vP/ZjSeNjEVHg==} + dependencies: + boolbase: 1.0.0 + css-what: 6.1.0 + domhandler: 5.0.3 + domutils: 3.1.0 + nth-check: 2.1.1 + dev: true + + /css-selector-tokenizer@0.7.3: + resolution: {integrity: sha512-jWQv3oCEL5kMErj4wRnK/OPoBi0D+P1FR2cDCKYPaMeD2eW3/mttav8HT4hT1CKopiJI/psEULjkClhvJo4Lvg==} + dependencies: + cssesc: 3.0.0 + fastparse: 1.1.2 + dev: false + + /css-tree@1.1.3: + resolution: {integrity: sha512-tRpdppF7TRazZrjJ6v3stzv93qxRcSsFmW6cX0Zm2NVKpxE1WV1HblnghVv9TreireHkqI/VDEsfolRF1p6y7Q==} + engines: {node: '>=8.0.0'} + dependencies: + mdn-data: 2.0.14 + source-map: 0.6.1 + dev: false + + /css-vendor@0.3.8: + resolution: {integrity: sha512-Vx/Vl3zsHj32Z+WTNzGjd2iSbSIJTYHMmyGUT2nzCjj0Xk4qLfwpQ8nF6TQ5oo3Cf0s/An3DTc7LclH1BkAXbQ==} + dependencies: + is-in-browser: 1.1.3 + dev: false + + /css-what@6.1.0: + resolution: {integrity: sha512-HTUrgRJ7r4dsZKU6GjmpfRK1O76h97Z8MfS1G0FozR+oF2kG6Vfe8JE6zwrkbxigziPHinCJ+gCPjA9EaBDtRw==} + engines: {node: '>= 6'} + dev: true + + /cssesc@3.0.0: + resolution: {integrity: sha512-/Tb/JcjK111nNScGob5MNtsntNM1aCNUDipB/TkwZFhyDrrE47SOx/18wF2bbjgc3ZzCSKW1T5nt5EbFoAz/Vg==} + engines: {node: '>=4'} + hasBin: true + dev: false + + /cssom@0.3.8: + resolution: {integrity: sha512-b0tGHbfegbhPJpxpiBPU2sCkigAqtM9O121le6bbOlgyV+NyGyCmVfJ6QW9eRjz8CpNfWEOYBIMIGRYkLwsIYg==} + dev: true + + /cssstyle@0.2.37: + resolution: {integrity: sha512-FUpKc+1FNBsHUr9IsfSGCovr8VuGOiiuzlgCyppKBjJi2jYTOFLN3oiiNRMIvYqbFzF38mqKj4BgcevzU5/kIA==} + dependencies: + cssom: 0.3.8 + dev: true + + /cyclist@1.0.2: + resolution: {integrity: sha512-0sVXIohTfLqVIW3kb/0n6IiWF3Ifj5nm2XaSrLq2DI6fKIGa2fYAZdk917rUneaeLVpYfFcyXE2ft0fe3remsA==} + + /dashdash@1.14.1: + resolution: {integrity: sha512-jRFi8UDGo6j+odZiEpjazZaWqEal3w/basFjQHQEwVtZJGDpxbH1MeYluwCS8Xq5wmLJooDlMgvVarmWfGM44g==} + engines: {node: '>=0.10'} + dependencies: + assert-plus: 1.0.0 + + /debug@2.6.9(supports-color@6.1.0): + resolution: {integrity: sha512-bC7ElrdJaJnPbAP+1EotYvqZsb3ecl5wi6Bfi6BJTUcNowp6cvspg0jXznRTKDjm/E7AdgFBVeAPVMNcKGsHMA==} + peerDependencies: + supports-color: '*' + peerDependenciesMeta: + supports-color: + optional: true + dependencies: + ms: 2.0.0 + supports-color: 6.1.0 + + /debug@3.1.0(supports-color@4.4.0): + resolution: {integrity: sha512-OX8XqP7/1a9cqkxYw2yXss15f26NKWBpDXQd0/uK/KPqdQhxbPa994hnzjcE2VqQpDslf55723cKPUOGSmMY3g==} + peerDependencies: + supports-color: '*' + peerDependenciesMeta: + supports-color: + optional: true + dependencies: + ms: 2.0.0 + supports-color: 4.4.0 + dev: false + + /debug@3.2.7(supports-color@6.1.0): + resolution: {integrity: sha512-CFjzYYAi4ThfiQvizrFQevTTXHtnCqWfe7x1AhgEscTz6ZbLbfoLRLPugTQyBth6f8ZERVUSyWHFD/7Wu4t1XQ==} + peerDependencies: + supports-color: '*' + peerDependenciesMeta: + supports-color: + optional: true + dependencies: + ms: 2.1.3 + supports-color: 6.1.0 + dev: true + + /debug@4.3.1: + resolution: {integrity: sha512-doEwdvm4PCeK4K3RQN2ZC2BYUBaxwLARCqZmMjtF8a51J2Rb0xpVloFRnCODwqjpwnAoao4pelN8l3RJdv3gRQ==} + engines: {node: '>=6.0'} + peerDependencies: + supports-color: '*' + peerDependenciesMeta: + supports-color: + optional: true + dependencies: + ms: 2.1.2 + dev: true + + /debug@4.3.4(supports-color@6.1.0): + resolution: {integrity: sha512-PRWFHuSU3eDtQJPvnNY7Jcket1j0t5OuOsFzPPzsekD52Zl8qUfFIPEiswXqIvHWGVHOgX+7G/vCNNhehwxfkQ==} + engines: {node: '>=6.0'} + peerDependencies: + supports-color: '*' + peerDependenciesMeta: + supports-color: + optional: true + dependencies: + ms: 2.1.2 + supports-color: 6.1.0 + + /decamelize@1.2.0: + resolution: {integrity: sha512-z2S+W9X73hAUUki+N+9Za2lBlun89zigOyGrsax+KUQ6wKW4ZoWpEYBkGhQjwAjjDCkWxhY0VKEhk8wzY7F5cA==} + engines: {node: '>=0.10.0'} + + /decimal.js@10.4.3: + resolution: {integrity: sha512-VBBaLc1MgL5XpzgIP7ny5Z6Nx3UrRkIViUkPUdtl9aya5amy3De1gsUUSB1g3+3sExYNjCAsAznmukyxCb1GRA==} + dev: false + + /decode-html@2.0.0: + resolution: {integrity: sha512-lVJ+EBozhAXA2nSQG+xAgcD0P5K3uejnIIvM09uoQfS8AALkQ+HhHcEUvKovXi0EIpIZWjm0y8X7ULjaJpgY9w==} + dev: false + + /decode-uri-component@0.2.2: + resolution: {integrity: sha512-FqUYQ+8o158GyGTrMFJms9qh3CqTKvAqgqsTnkLI8sKu0028orqBhxNMFkFen0zGyg6epACD32pjVk58ngIErQ==} + engines: {node: '>=0.10'} + + /decompress-response@3.3.0: + resolution: {integrity: sha512-BzRPQuY1ip+qDonAOz42gRm/pg9F768C+npV/4JOsxRC2sq+Rlk+Q4ZCAsOhnIaMrgarILY+RMUIvMmmX1qAEA==} + engines: {node: '>=4'} + dependencies: + mimic-response: 1.0.1 + dev: false + + /decompress-tar@4.1.1: + resolution: {integrity: sha512-JdJMaCrGpB5fESVyxwpCx4Jdj2AagLmv3y58Qy4GE6HMVjWz1FeVQk1Ct4Kye7PftcdOo/7U7UKzYBJgqnGeUQ==} + engines: {node: '>=4'} + dependencies: + file-type: 5.2.0 + is-stream: 1.1.0 + tar-stream: 1.6.2 + dev: false + + /decompress-tarbz2@4.1.1: + resolution: {integrity: sha512-s88xLzf1r81ICXLAVQVzaN6ZmX4A6U4z2nMbOwobxkLoIIfjVMBg7TeguTUXkKeXni795B6y5rnvDw7rxhAq9A==} + engines: {node: '>=4'} + dependencies: + decompress-tar: 4.1.1 + file-type: 6.2.0 + is-stream: 1.1.0 + seek-bzip: 1.0.6 + unbzip2-stream: 1.4.3 + dev: false + + /decompress-targz@4.1.1: + resolution: {integrity: sha512-4z81Znfr6chWnRDNfFNqLwPvm4db3WuZkqV+UgXQzSngG3CEKdBkw5jrv3axjjL96glyiiKjsxJG3X6WBZwX3w==} + engines: {node: '>=4'} + dependencies: + decompress-tar: 4.1.1 + file-type: 5.2.0 + is-stream: 1.1.0 + dev: false + + /decompress-unzip@4.0.1: + resolution: {integrity: sha512-1fqeluvxgnn86MOh66u8FjbtJpAFv5wgCT9Iw8rcBqQcCo5tO8eiJw7NNTrvt9n4CRBVq7CstiS922oPgyGLrw==} + engines: {node: '>=4'} + dependencies: + file-type: 3.9.0 + get-stream: 2.3.1 + pify: 2.3.0 + yauzl: 2.10.0 + dev: false + + /decompress@4.2.1: + resolution: {integrity: sha512-e48kc2IjU+2Zw8cTb6VZcJQ3lgVbS4uuB1TfCHbiZIP/haNXm+SVyhu+87jts5/3ROpd82GSVCoNs/z8l4ZOaQ==} + engines: {node: '>=4'} + dependencies: + decompress-tar: 4.1.1 + decompress-tarbz2: 4.1.1 + decompress-targz: 4.1.1 + decompress-unzip: 4.0.1 + graceful-fs: 4.2.11 + make-dir: 1.3.0 + pify: 2.3.0 + strip-dirs: 2.1.0 + dev: false + + /deep-equal@1.1.2: + resolution: {integrity: sha512-5tdhKF6DbU7iIzrIOa1AOUt39ZRm13cmL1cGEh//aqR8x9+tNfbywRf0n5FD/18OKMdo7DNEtrX2t22ZAkI+eg==} + engines: {node: '>= 0.4'} + dependencies: + is-arguments: 1.1.1 + is-date-object: 1.0.5 + is-regex: 1.1.4 + object-is: 1.1.5 + object-keys: 1.1.1 + regexp.prototype.flags: 1.5.1 + dev: true + + /deep-is@0.1.4: + resolution: {integrity: sha512-oIPzksmTg4/MriiaYGO+okXDT7ztn/w3Eptv/+gSIdMdKsJo0u4CfYNFJPy+4SKMuCqGw2wxnA+URMg3t8a/bQ==} + + /default-gateway@4.2.0: + resolution: {integrity: sha512-h6sMrVB1VMWVrW13mSc6ia/DwYYw5MN6+exNu1OaJeFac5aSAvwM7lZ0NVfTABuSkQelr4h5oebg3KB1XPdjgA==} + engines: {node: '>=6'} + dependencies: + execa: 1.0.0 + ip-regex: 2.1.0 + dev: true + + /default-require-extensions@1.0.0: + resolution: {integrity: sha512-Dn2eAftOqXhNXs5f/Xjn7QTZ6kDYkx7u0EXQInN1oyYwsZysu11q7oTtaKcbzLxZRJiDHa8VmwpWmb4lY5FqgA==} + engines: {node: '>=0.10.0'} + dependencies: + strip-bom: 2.0.0 + dev: true + + /define-data-property@1.1.1: + resolution: {integrity: sha512-E7uGkTzkk1d0ByLeSc6ZsFS79Axg+m1P/VsgYsxHgiuc3tFSj+MjMIwe90FC4lOAZzNBdY7kkO2P2wKdsQ1vgQ==} + engines: {node: '>= 0.4'} + dependencies: + get-intrinsic: 1.2.2 + gopd: 1.0.1 + has-property-descriptors: 1.0.1 + + /define-properties@1.2.1: + resolution: {integrity: sha512-8QmQKqEASLd5nx0U1B1okLElbUuuttJ/AnYmRXbbbGDWh6uS208EjD4Xqq/I9wK7u0v6O08XhTWnt5XtEbR6Dg==} + engines: {node: '>= 0.4'} + dependencies: + define-data-property: 1.1.1 + has-property-descriptors: 1.0.1 + object-keys: 1.1.1 + + /define-property@0.2.5: + resolution: {integrity: sha512-Rr7ADjQZenceVOAKop6ALkkRAmH1A4Gx9hV/7ZujPUN2rkATqFO0JZLZInbAjpZYoJ1gUx8MRMQVkYemcbMSTA==} + engines: {node: '>=0.10.0'} + dependencies: + is-descriptor: 0.1.7 + + /define-property@1.0.0: + resolution: {integrity: sha512-cZTYKFWspt9jZsMscWo8sc/5lbPC9Q0N5nBLgb+Yd915iL3udB1uFgS3B8YCx66UVHq018DAVFoee7x+gxggeA==} + engines: {node: '>=0.10.0'} + dependencies: + is-descriptor: 1.0.3 + + /define-property@2.0.2: + resolution: {integrity: sha512-jwK2UV4cnPpbcG7+VRARKTZPUWowwXA8bzH5NP6ud0oeAxyYPuGZUAC7hMugpCdz4BeSZl2Dl9k66CHJ/46ZYQ==} + engines: {node: '>=0.10.0'} + dependencies: + is-descriptor: 1.0.3 + isobject: 3.0.1 + + /del@4.1.1: + resolution: {integrity: sha512-QwGuEUouP2kVwQenAsOof5Fv8K9t3D8Ca8NxcXKrIpEHjTXK5J2nXLdP+ALI1cgv8wj7KuwBhTwBkOZSJKM5XQ==} + engines: {node: '>=6'} + dependencies: + '@types/glob': 7.2.0 + globby: 6.1.0 + is-path-cwd: 2.2.0 + is-path-in-cwd: 2.1.0 + p-map: 2.1.0 + pify: 4.0.1 + rimraf: 2.7.1 + dev: true + + /del@6.1.1: + resolution: {integrity: sha512-ua8BhapfP0JUJKC/zV9yHHDW/rDoDxP4Zhn3AkA6/xT6gY7jYXJiaeyBZznYVujhZZET+UgcbZiQ7sN3WqcImg==} + engines: {node: '>=10'} + dependencies: + globby: 11.1.0 + graceful-fs: 4.2.11 + is-glob: 4.0.3 + is-path-cwd: 2.2.0 + is-path-inside: 3.0.3 + p-map: 4.0.0 + rimraf: 3.0.2 + slash: 3.0.0 + dev: true + + /delayed-stream@1.0.0: + resolution: {integrity: sha512-ZySD7Nf91aLB0RxL4KGrKHBXl7Eds1DAmEdcoVawXnLD7SDhpNgtuII2aAkg7a7QS41jxPSZ17p4VdGnMHk3MQ==} + engines: {node: '>=0.4.0'} + + /depd@1.1.2: + resolution: {integrity: sha512-7emPTl6Dpo6JRXOXjLRxck+FlLRX5847cLKEn00PLAgc3g2hTZZgr+e4c2v6QpSmLeFP3n5yUo7ft6avBK/5jQ==} + engines: {node: '>= 0.6'} + dev: true + + /depd@2.0.0: + resolution: {integrity: sha512-g7nH6P6dyDioJogAAGprGpCtVImJhpPk/roCzdb3fIh61/s/nPsfR6onyMwkCAR/OlC3yBC0lESvUoQEAssIrw==} + engines: {node: '>= 0.8'} + dev: true + + /des.js@1.1.0: + resolution: {integrity: sha512-r17GxjhUCjSRy8aiJpr8/UadFIzMzJGexI3Nmz4ADi9LYSFx4gTBp80+NaX/YsXWWLhpZ7v/v/ubEc/bCNfKwg==} + dependencies: + inherits: 2.0.4 + minimalistic-assert: 1.0.1 + + /destroy@1.2.0: + resolution: {integrity: sha512-2sJGJTaXIIaR1w4iJSNoN0hnMY7Gpc/n8D4qSCJw8QqFWXf7cuAgnEHxBpweaVcPevC2l3KpjYCx3NypQQgaJg==} + engines: {node: '>= 0.8', npm: 1.2.8000 || >= 1.4.16} + dev: true + + /detect-file@1.0.0: + resolution: {integrity: sha512-DtCOLG98P007x7wiiOmfI0fi3eIKyWiLTGJ2MDnVi/E04lWGbf+JzrRHMm0rgIIZJGtHpKpbVgLWHrv8xXpc3Q==} + engines: {node: '>=0.10.0'} + + /detect-indent@4.0.0: + resolution: {integrity: sha512-BDKtmHlOzwI7iRuEkhzsnPoi5ypEhWAJB5RvHWe1kMr06js3uK5B3734i3ui5Yd+wOJV1cpE4JnivPD283GU/A==} + engines: {node: '>=0.10.0'} + dependencies: + repeating: 2.0.1 + dev: true + + /detect-node@2.1.0: + resolution: {integrity: sha512-T0NIuQpnTvFDATNuHN5roPwSBG83rFsuO+MXXH9/3N1eFbn4wcPjttvjMLEPWJ0RGUYgQE7cGgS3tNxbqCGM7g==} + dev: true + + /diff-match-patch@1.0.4: + resolution: {integrity: sha512-Uv3SW8bmH9nAtHKaKSanOQmj2DnlH65fUpcrMdfdaOxUG02QQ4YGZ8AE7kKOMisF7UqvOlGKVYWRvezdncW9lg==} + dev: false + + /diff@3.3.1: + resolution: {integrity: sha512-MKPHZDMB0o6yHyDryUOScqZibp914ksXwAMYMTHj6KO8UeKsRYNJD3oNCKjTqZon+V488P7N/HzXF8t7ZR95ww==} + engines: {node: '>=0.3.1'} + dev: false + + /diff@3.5.0: + resolution: {integrity: sha512-A46qtFgd+g7pDZinpnwiRJtxbC1hpgf0uzP3iG89scHk0AUC7A1TGxf5OiiOUv/JMZR8GOt8hL900hV0bOy5xA==} + engines: {node: '>=0.3.1'} + dev: true + + /diffie-hellman@5.0.3: + resolution: {integrity: sha512-kqag/Nl+f3GwyK25fhUMYj81BUOrZ9IuJsjIcDE5icNM9FJHAVm3VcUDxdLPoQtTuUylWm6ZIknYJwwaPxsUzg==} + dependencies: + bn.js: 4.12.0 + miller-rabin: 4.0.1 + randombytes: 2.1.0 + + /dir-glob@3.0.1: + resolution: {integrity: sha512-WkrWp9GR4KXfKGYzOLmTuGVi1UWFfws377n9cc55/tb6DuqyF6pcQ5AbiHEshaDpY9v6oaSr2XCDidGmMwdzIA==} + engines: {node: '>=8'} + dependencies: + path-type: 4.0.0 + + /discontinuous-range@1.0.0: + resolution: {integrity: sha512-c68LpLbO+7kP/b1Hr1qs8/BJ09F5khZGTxqxZuhzxpmwJKOgRFHJWIb9/KmqnqHhLdO55aOxFH/EGBvUQbL/RQ==} + dev: true + + /dns-equal@1.0.0: + resolution: {integrity: sha512-z+paD6YUQsk+AbGCEM4PrOXSss5gd66QfcVBFTKR/HpFL9jCqikS94HYwKww6fQyO7IxrIIyUu+g0Ka9tUS2Cg==} + dev: true + + /dns-packet@1.3.4: + resolution: {integrity: sha512-BQ6F4vycLXBvdrJZ6S3gZewt6rcrks9KBgM9vrhW+knGRqc8uEdT7fuCwloc7nny5xNoMJ17HGH0R/6fpo8ECA==} + dependencies: + ip: 1.1.8 + safe-buffer: 5.2.1 + dev: true + + /dns-txt@2.0.2: + resolution: {integrity: sha512-Ix5PrWjphuSoUXV/Zv5gaFHjnaJtb02F2+Si3Ht9dyJ87+Z/lMmy+dpNHtTGraNK958ndXq2i+GLkWsWHcKaBQ==} + dependencies: + buffer-indexof: 1.1.1 + dev: true + + /doctrine@2.1.0: + resolution: {integrity: sha512-35mSku4ZXK0vfCuHEDAwt55dg2jNajHZ1odvF+8SSr82EsZY4QmXfuWso8oEd8zRhVObSN18aM0CjSdoBX7zIw==} + engines: {node: '>=0.10.0'} + dependencies: + esutils: 2.0.3 + dev: true + + /doctrine@3.0.0: + resolution: {integrity: sha512-yS+Q5i3hBf7GBkd4KG8a7eBNNWNGLTaEwwYWUijIYM7zrlYDM0BFXHjjPWlWZ1Rg7UaddZeIDmi9jF3HmqiQ2w==} + engines: {node: '>=6.0.0'} + dependencies: + esutils: 2.0.3 + dev: true + + /dom-converter@0.2.0: + resolution: {integrity: sha512-gd3ypIPfOMr9h5jIKq8E3sHOTCjeirnl0WK5ZdS1AW0Odt0b1PaWaHdJ4Qk4klv+YB9aJBS7mESXjFoDQPu6DA==} + dependencies: + utila: 0.4.0 + dev: true + + /dom-helpers@3.4.0: + resolution: {integrity: sha512-LnuPJ+dwqKDIyotW1VzmOZ5TONUN7CwkCR5hrgawTUbkBGYdeoNLZo6nNfGkCrjtE1nXXaj7iMMpDa8/d9WoIA==} + dependencies: + '@babel/runtime': 7.23.7 + dev: false + + /dom-serializer@0.2.2: + resolution: {integrity: sha512-2/xPb3ORsQ42nHYiSunXkDjPLBaEj/xTwUO4B7XCZQTRk7EBtTOPaygh10YAAh2OI1Qrp6NWfpAhzswj0ydt9g==} + dependencies: + domelementtype: 2.3.0 + entities: 2.2.0 + dev: false + + /dom-serializer@1.4.1: + resolution: {integrity: sha512-VHwB3KfrcOOkelEG2ZOfxqLZdfkil8PtJi4P8N2MMXucZq2yLp75ClViUlOVwyoHEDjYU433Aq+5zWP61+RGag==} + dependencies: + domelementtype: 2.3.0 + domhandler: 4.3.1 + entities: 2.2.0 + dev: true + + /dom-serializer@2.0.0: + resolution: {integrity: sha512-wIkAryiqt/nV5EQKqQpo3SToSOV9J0DnbJqwK7Wv/Trc92zIAYZ4FlMu+JPFW1DfGFt81ZTCGgDEabffXeLyJg==} + dependencies: + domelementtype: 2.3.0 + domhandler: 5.0.3 + entities: 4.5.0 + dev: true + + /dom-walk@0.1.2: + resolution: {integrity: sha512-6QvTW9mrGeIegrFXdtQi9pk7O/nSK6lSdXW2eqUspN5LWD7UTji2Fqw5V2YLjBpHEoU9Xl/eUWNpDeZvoyOv2w==} + dev: false + + /domain-browser@1.2.0: + resolution: {integrity: sha512-jnjyiM6eRyZl2H+W8Q/zLMA481hzi0eszAaBUzIVnmYVDBbnLxVNnfu1HgEBvCbL+71FrxMl3E6lpKH7Ge3OXA==} + engines: {node: '>=0.4', npm: '>=1.2'} + + /domelementtype@1.3.1: + resolution: {integrity: sha512-BSKB+TSpMpFI/HOxCNr1O8aMOTZ8hT3pM3GQ0w/mWRmkhEDSFJkkyzz4XQsBV44BChwGkrDfMyjVD0eA2aFV3w==} + dev: false + + /domelementtype@2.3.0: + resolution: {integrity: sha512-OLETBj6w0OsagBwdXnPdN0cnMfF9opN69co+7ZrbfPGrdpPVNBUj02spi6B1N7wChLQiPn4CSH/zJvXw56gmHw==} + + /domhandler@2.4.2: + resolution: {integrity: sha512-JiK04h0Ht5u/80fdLMCEmV4zkNh2BcoMFBmZ/91WtYZ8qVXSKjiw7fXMgFPnHcSZgOo3XdinHvmnDUeMf5R4wA==} + dependencies: + domelementtype: 1.3.1 + dev: false + + /domhandler@4.3.1: + resolution: {integrity: sha512-GrwoxYN+uWlzO8uhUXRl0P+kHE4GtVPfYzVLcUxPL7KNdHKj66vvlhiweIHqYYXWlw+T8iLMp42Lm67ghw4WMQ==} + engines: {node: '>= 4'} + dependencies: + domelementtype: 2.3.0 + dev: true + + /domhandler@5.0.3: + resolution: {integrity: sha512-cgwlv/1iFQiFnU96XXgROh8xTeetsnJiDsTc7TYCLFd9+/WNkIqPTxiM/8pSd8VIrhXGTf1Ny1q1hquVqDJB5w==} + engines: {node: '>= 4'} + dependencies: + domelementtype: 2.3.0 + dev: true + + /dompurify@2.2.7: + resolution: {integrity: sha512-jdtDffdGNY+C76jvodNTu9jt5yYj59vuTUyx+wXdzcSwAGTYZDAQkQ7Iwx9zcGrA4ixC1syU4H3RZROqRxokxg==} + dev: false + + /domutils@1.7.0: + resolution: {integrity: sha512-Lgd2XcJ/NjEw+7tFvfKxOzCYKZsdct5lczQ2ZaQY8Djz7pfAD3Gbp8ySJWtreII/vDlMVmxwa6pHmdxIYgttDg==} + dependencies: + dom-serializer: 0.2.2 + domelementtype: 1.3.1 + dev: false + + /domutils@2.8.0: + resolution: {integrity: sha512-w96Cjofp72M5IIhpjgobBimYEfoPjx1Vx0BSX9P30WBdZW2WIKU0T1Bd0kz2eNZ9ikjKgHbEyKx8BB6H1L3h3A==} + dependencies: + dom-serializer: 1.4.1 + domelementtype: 2.3.0 + domhandler: 4.3.1 + dev: true + + /domutils@3.1.0: + resolution: {integrity: sha512-H78uMmQtI2AhgDJjWeQmHwJJ2bLPD3GMmO7Zja/ZZh84wkm+4ut+IUnUdRa8uCGX88DiVx1j6FRe1XfxEgjEZA==} + dependencies: + dom-serializer: 2.0.0 + domelementtype: 2.3.0 + domhandler: 5.0.3 + dev: true + + /dot-case@3.0.4: + resolution: {integrity: sha512-Kv5nKlh6yRrdrGvxeJ2e5y2eRUpkUosIW4A2AS38zwSz27zu7ufDwQPi5Jhs3XAlGNetl3bmnGhQsMtkKJnj3w==} + dependencies: + no-case: 3.0.4 + tslib: 2.6.2 + dev: true + + /download@8.0.0: + resolution: {integrity: sha512-ASRY5QhDk7FK+XrQtQyvhpDKanLluEEQtWl/J7Lxuf/b+i8RYh997QeXvL85xitrmRKVlx9c7eTrcRdq2GS4eA==} + engines: {node: '>=10'} + dependencies: + archive-type: 4.0.0 + content-disposition: 0.5.4 + decompress: 4.2.1 + ext-name: 5.0.0 + file-type: 11.1.0 + filenamify: 3.0.0 + get-stream: 4.1.0 + got: 8.3.2 + make-dir: 2.1.0 + p-event: 2.3.1 + pify: 4.0.1 + dev: false + + /duplexer2@0.1.4: + resolution: {integrity: sha512-asLFVfWWtJ90ZyOUHMqk7/S2w2guQKxUI2itj3d92ADHhxUSbCMGi1f1cBcJ7xM1To+pE/Khbwo1yuNbMEPKeA==} + dependencies: + readable-stream: 2.3.8 + dev: false + + /duplexer3@0.1.5: + resolution: {integrity: sha512-1A8za6ws41LQgv9HrE/66jyC5yuSjQ3L/KOpFtoBilsAK2iA2wuS5rTt1OCzIvtS2V7nVmedsUU+DGRcjBmOYA==} + dev: false + + /duplexify@3.7.1: + resolution: {integrity: sha512-07z8uv2wMyS51kKhD1KsdXJg5WQ6t93RneqRxUHnskXVtlYYkLqM0gqStQZ3pj073g687jPCHrqNfCzawLYh5g==} + dependencies: + end-of-stream: 1.4.4 + inherits: 2.0.4 + readable-stream: 2.3.8 + stream-shift: 1.0.1 + + /ecc-jsbn@0.1.2: + resolution: {integrity: sha512-eh9O+hwRHNbG4BLTjEl3nw044CkGm5X6LoaCf7LPp7UU8Qrt47JYNi6nPX8xjW97TKGKm1ouctg0QSpZe9qrnw==} + dependencies: + jsbn: 0.1.1 + safer-buffer: 2.1.2 + + /ee-first@1.1.1: + resolution: {integrity: sha512-WMwm9LhRUo+WUaRN+vRuETqG89IgZphVSNkdFgeb6sS/E4OrDIN7t48CAewSHXc6C8lefD8KKfr5vY61brQlow==} + dev: true + + /electron-to-chromium@1.4.620: + resolution: {integrity: sha512-a2fcSHOHrqBJsPNXtf6ZCEZpXrFCcbK1FBxfX3txoqWzNgtEDG1f3M59M98iwxhRW4iMKESnSjbJ310/rkrp0g==} + + /elliptic@6.5.4: + resolution: {integrity: sha512-iLhC6ULemrljPZb+QutR5TQGB+pdW6KGD5RSegS+8sorOZT+rdQFbsQFJgvN3eRqNALqJer4oQ16YvJHlU8hzQ==} + dependencies: + bn.js: 4.12.0 + brorand: 1.1.0 + hash.js: 1.1.7 + hmac-drbg: 1.0.1 + inherits: 2.0.4 + minimalistic-assert: 1.0.1 + minimalistic-crypto-utils: 1.0.1 + + /email-addresses@3.1.0: + resolution: {integrity: sha512-k0/r7GrWVL32kZlGwfPNgB2Y/mMXVTq/decgLczm/j34whdaspNrZO8CnXPf1laaHxI6ptUlsnAxN+UAPw+fzg==} + dev: true + + /emoji-regex@7.0.3: + resolution: {integrity: sha512-CwBLREIQ7LvYFB0WyRvwhq5N5qPhc6PMjD6bYggFlI5YyDgl+0vxq5VHbMOFqLg7hfWzmu8T5Z1QofhmTIhItA==} + + /emojis-list@3.0.0: + resolution: {integrity: sha512-/kyM18EfinwXZbno9FyUGeFh87KC8HRQBQGildHZbEuRyWFOmv1U10o9BBp8XVZDVNNuQKyIGIu5ZYAAXJ0V2Q==} + engines: {node: '>= 4'} + + /encodeurl@1.0.2: + resolution: {integrity: sha512-TPJXq8JqFaVYm2CWmPvnP2Iyo4ZSM7/QKcSmuMLDObfpH5fi7RUGmd/rTDf+rut/saiDiQEeVTNgAmJEdAOx0w==} + engines: {node: '>= 0.8'} + dev: true + + /encoding@0.1.13: + resolution: {integrity: sha512-ETBauow1T35Y/WZMkio9jiM0Z5xjHHmJ4XmjZOq1l/dXz3lr2sRn87nJy20RupqSh1F2m3HHPSp8ShIPQJrJ3A==} + dependencies: + iconv-lite: 0.6.3 + dev: true + + /end-of-stream@1.4.4: + resolution: {integrity: sha512-+uw1inIHVPQoaVuHzRyXd21icM+cnt4CzD5rW+NC1wjOUSTOs+Te7FOv7AhN7vS9x/oIyhLP5PR1H+phQAHu5Q==} + dependencies: + once: 1.4.0 + + /enhanced-resolve@0.9.1: + resolution: {integrity: sha512-kxpoMgrdtkXZ5h0SeraBS1iRntpTpQ3R8ussdb38+UAFnMGX5DDyJXePm+OCHOcoXvHDw7mc2erbJBpDnl7TPw==} + engines: {node: '>=0.6'} + dependencies: + graceful-fs: 4.2.11 + memory-fs: 0.2.0 + tapable: 0.1.10 + dev: true + + /enhanced-resolve@4.5.0: + resolution: {integrity: sha512-Nv9m36S/vxpsI+Hc4/ZGRs0n9mXqSWGGq49zxb/cJfPAQMbUtttJAlNPS4AQzaBdw/pKskw5bMbekT/Y7W/Wlg==} + engines: {node: '>=6.9.0'} + dependencies: + graceful-fs: 4.2.11 + memory-fs: 0.5.0 + tapable: 1.1.3 + + /entities@1.1.2: + resolution: {integrity: sha512-f2LZMYl1Fzu7YSBKg+RoROelpOaNrcGmE9AZubeDfrCEia483oW4MI4VyFd5VNHIgQ/7qm1I0wUHK1eJnn2y2w==} + dev: false + + /entities@2.2.0: + resolution: {integrity: sha512-p92if5Nz619I0w+akJrLZH0MX0Pb5DX39XOwQTtXSdQQOaYH03S1uIQp4mhOZtAXrxq4ViO67YTiLBo2638o9A==} + + /entities@4.5.0: + resolution: {integrity: sha512-V0hjH4dGPh9Ao5p0MoRY6BVqtwCjhz6vI5LT8AJ55H+4g9/4vbHx1I54fS0XuclLhDHArPQCiMjDxjaL8fPxhw==} + engines: {node: '>=0.12'} + dev: true + + /enzyme-adapter-react-16@1.3.0(enzyme@3.10.0)(react-dom@16.14.0)(react@16.14.0): + resolution: {integrity: sha512-TRX+Y5QPreGmqfFU3bPsJUmqNZX9paQCmQ93kj7hnfQoZzufO/pahGN/OviWn60YcgaQojhf0AWv3PxrIDARbA==} + peerDependencies: + enzyme: ^3.0.0 + react: ^16.0.0-0 + react-dom: ^16.0.0-0 + dependencies: + enzyme: 3.10.0 + enzyme-adapter-utils: 1.14.1(react@16.14.0) + function.prototype.name: 1.1.6 + object.assign: 4.1.5 + object.values: 1.1.7 + prop-types: 15.8.1 + react: 16.14.0 + react-dom: 16.14.0(react@16.14.0) + react-is: 16.13.1 + react-test-renderer: 16.2.0(react@16.14.0) + dev: true + + /enzyme-adapter-utils@1.14.1(react@16.14.0): + resolution: {integrity: sha512-JZgMPF1QOI7IzBj24EZoDpaeG/p8Os7WeBZWTJydpsH7JRStc7jYbHE4CmNQaLqazaGFyLM8ALWA3IIZvxW3PQ==} + peerDependencies: + react: 0.13.x || 0.14.x || ^15.0.0-0 || ^16.0.0-0 + dependencies: + airbnb-prop-types: 2.16.0(react@16.14.0) + function.prototype.name: 1.1.6 + has: 1.0.4 + object.assign: 4.1.5 + object.fromentries: 2.0.7 + prop-types: 15.8.1 + react: 16.14.0 + semver: 5.7.2 + dev: true + + /enzyme@3.10.0: + resolution: {integrity: sha512-p2yy9Y7t/PFbPoTvrWde7JIYB2ZyGC+NgTNbVEGvZ5/EyoYSr9aG/2rSbVvyNvMHEhw9/dmGUJHWtfQIEiX9pg==} + dependencies: + array.prototype.flat: 1.3.2 + cheerio: 1.0.0-rc.12 + function.prototype.name: 1.1.6 + has: 1.0.4 + html-element-map: 1.3.1 + is-boolean-object: 1.1.2 + is-callable: 1.2.7 + is-number-object: 1.0.7 + is-regex: 1.1.4 + is-string: 1.0.7 + is-subset: 0.1.1 + lodash.escape: 4.0.1 + lodash.isequal: 4.5.0 + object-inspect: 1.13.1 + object-is: 1.1.5 + object.assign: 4.1.5 + object.entries: 1.1.7 + object.values: 1.1.7 + raf: 3.4.1 + rst-selector-parser: 2.2.3 + string.prototype.trim: 1.2.8 + dev: true + + /errno@0.1.8: + resolution: {integrity: sha512-dJ6oBr5SQ1VSd9qkk7ByRgb/1SH4JZjCHSW/mr63/QcXO9zLVxvJ6Oy13nio03rxpSnVDDjFor75SjVeZWPW/A==} + hasBin: true + dependencies: + prr: 1.0.1 + + /error-ex@1.3.2: + resolution: {integrity: sha512-7dFHNmqeFSEt2ZBsCriorKnn3Z2pj+fd9kmI6QoWw4//DL+icEBfc0U7qJCisqrTsKTjw4fNFy2pW9OqStD84g==} + dependencies: + is-arrayish: 0.2.1 + + /es-abstract@1.22.3: + resolution: {integrity: sha512-eiiY8HQeYfYH2Con2berK+To6GrK2RxbPawDkGq4UiCQQfZHb6wX9qQqkbpPqaxQFcl8d9QzZqo0tGE0VcrdwA==} + engines: {node: '>= 0.4'} + dependencies: + array-buffer-byte-length: 1.0.0 + arraybuffer.prototype.slice: 1.0.2 + available-typed-arrays: 1.0.5 + call-bind: 1.0.5 + es-set-tostringtag: 2.0.2 + es-to-primitive: 1.2.1 + function.prototype.name: 1.1.6 + get-intrinsic: 1.2.2 + get-symbol-description: 1.0.0 + globalthis: 1.0.3 + gopd: 1.0.1 + has-property-descriptors: 1.0.1 + has-proto: 1.0.1 + has-symbols: 1.0.3 + hasown: 2.0.0 + internal-slot: 1.0.6 + is-array-buffer: 3.0.2 + is-callable: 1.2.7 + is-negative-zero: 2.0.2 + is-regex: 1.1.4 + is-shared-array-buffer: 1.0.2 + is-string: 1.0.7 + is-typed-array: 1.1.12 + is-weakref: 1.0.2 + object-inspect: 1.13.1 + object-keys: 1.1.1 + object.assign: 4.1.5 + regexp.prototype.flags: 1.5.1 + safe-array-concat: 1.0.1 + safe-regex-test: 1.0.0 + string.prototype.trim: 1.2.8 + string.prototype.trimend: 1.0.7 + string.prototype.trimstart: 1.0.7 + typed-array-buffer: 1.0.0 + typed-array-byte-length: 1.0.0 + typed-array-byte-offset: 1.0.0 + typed-array-length: 1.0.4 + unbox-primitive: 1.0.2 + which-typed-array: 1.1.13 + dev: true + + /es-array-method-boxes-properly@1.0.0: + resolution: {integrity: sha512-wd6JXUmyHmt8T5a2xreUwKcGPq6f1f+WwIJkijUqiGcJz1qqnZgP6XIK+QyIWU5lT7imeNxUll48bziG+TSYcA==} + dev: true + + /es-set-tostringtag@2.0.2: + resolution: {integrity: sha512-BuDyupZt65P9D2D2vA/zqcI3G5xRsklm5N3xCwuiy+/vKy8i0ifdsQP1sLgO4tZDSCaQUSnmC48khknGMV3D2Q==} + engines: {node: '>= 0.4'} + dependencies: + get-intrinsic: 1.2.2 + has-tostringtag: 1.0.0 + hasown: 2.0.0 + dev: true + + /es-shim-unscopables@1.0.2: + resolution: {integrity: sha512-J3yBRXCzDu4ULnQwxyToo/OjdMx6akgVC7K6few0a7F/0wLtmKKN7I73AH5T2836UuXRqN7Qg+IIUw/+YJksRw==} + dependencies: + hasown: 2.0.0 + dev: true + + /es-to-primitive@1.2.1: + resolution: {integrity: sha512-QCOllgZJtaUo9miYBcLChTUaHNjJF3PYs1VidD7AwiEj1kYxKeQTctLAezAOH5ZKRH0g2IgPn6KwB4IT8iRpvA==} + engines: {node: '>= 0.4'} + dependencies: + is-callable: 1.2.7 + is-date-object: 1.0.5 + is-symbol: 1.0.4 + dev: true + + /es6-object-assign@1.1.0: + resolution: {integrity: sha512-MEl9uirslVwqQU369iHNWZXsI8yaZYGg/D65aOgZkeyFJwHYSxilf7rQzXKI7DdDuBPrBXbfk3sl9hJhmd5AUw==} + dev: false + + /es6-promise@3.0.2: + resolution: {integrity: sha512-CUD62/uqeE0L+EJeypOKuFfM56CFaH4vo+++J76bff0NkeQ2bBmWVCTNxL2hj9HeCYPkof6Gqea0BSeK17gBzA==} + dev: false + + /escalade@3.1.1: + resolution: {integrity: sha512-k0er2gUkLf8O0zKJiAhmkTnJlTvINGv7ygDNPbeIsX/TJjGJZHuh9B2UxbsaEkmlEo9MfhrSzmhIlhRlI2GXnw==} + engines: {node: '>=6'} + + /escape-html@1.0.3: + resolution: {integrity: sha512-NiSupZ4OeuGwr68lGIeym/ksIZMJodUGOSCZ/FSnTxcrekbvqrgdUxlJOMpijaKZVjAJrWrGs/6Jy8OMuyj9ow==} + dev: true + + /escape-latex@1.2.0: + resolution: {integrity: sha512-nV5aVWW1K0wEiUIEdZ4erkGGH8mDxGyxSeqPzRNtWP7ataw+/olFObw7hujFWlVjNsaDFw5VZ5NzVSIqRgfTiw==} + dev: false + + /escape-string-regexp@1.0.5: + resolution: {integrity: sha512-vbRorB5FUQWvla16U8R/qgaFIya2qGzwDrNmCZuYKrbdSUMG6I1ZCGQRefkRVhuOkIGVne7BQ35DSfo1qvJqFg==} + engines: {node: '>=0.8.0'} + + /escodegen@1.14.3: + resolution: {integrity: sha512-qFcX0XJkdg+PB3xjZZG/wKSuT1PnQWx57+TVSjIMmILd2yC/6ByYElPwJnslDsuWuSAp4AwJGumarAAmJch5Kw==} + engines: {node: '>=4.0'} + hasBin: true + dependencies: + esprima: 4.0.1 + estraverse: 4.3.0 + esutils: 2.0.3 + optionator: 0.8.3 + optionalDependencies: + source-map: 0.6.1 + dev: true + + /escodegen@1.9.1: + resolution: {integrity: sha512-6hTjO1NAWkHnDk3OqQ4YrCuwwmGHL9S3nPlzBOUG/R44rda3wLNrfvQ5fkSGjyhHFKM7ALPKcKGrwvCLe0lC7Q==} + engines: {node: '>=4.0'} + hasBin: true + dependencies: + esprima: 3.1.3 + estraverse: 4.3.0 + esutils: 2.0.3 + optionator: 0.8.3 + optionalDependencies: + source-map: 0.6.1 + dev: false + + /escodegen@2.1.0: + resolution: {integrity: sha512-2NlIDTwUWJN0mRPQOdtQBzbUHvdGY2P1VXSyU83Q3xKxM7WHX2Ql8dKq782Q9TgQUNOLEzEYu9bzLNj1q88I5w==} + engines: {node: '>=6.0'} + hasBin: true + dependencies: + esprima: 4.0.1 + estraverse: 5.3.0 + esutils: 2.0.3 + optionalDependencies: + source-map: 0.6.1 + dev: false + + /eslint-config-scratch@6.0.0(babel-eslint@10.0.3)(eslint@5.16.0): + resolution: {integrity: sha512-2aW7EVWhjTrwaM54hjAZeRETh/habWeQ5xzTbPO2dG//RtixBztUAmdxqAHKH8MEtmAMsUhf3mRjO1BstO4dGg==} + peerDependencies: + babel-eslint: '>=8.0.1' + eslint: '>=5.3.0' + dependencies: + babel-eslint: 10.0.3(eslint@5.16.0) + eslint: 5.16.0 + optionalDependencies: + eslint-plugin-react: 7.24.0(eslint@5.16.0) + dev: true + + /eslint-import-resolver-node@0.3.9: + resolution: {integrity: sha512-WFj2isz22JahUv+B788TlO3N6zL3nNJGU8CcZbPZvVEkBPaJdCV4vy5wyghty5ROFbCRnm132v8BScu5/1BQ8g==} + dependencies: + debug: 3.2.7(supports-color@6.1.0) + is-core-module: 2.13.1 + resolve: 1.22.8 + transitivePeerDependencies: + - supports-color + dev: true + + /eslint-import-resolver-webpack@0.11.1(eslint-plugin-import@2.23.4)(webpack@4.46.0): + resolution: {integrity: sha512-eK3zR7xVQR/MaoBWwGuD+CULYVuqe5QFlDukman71aI6IboCGzggDUohHNfu1ZeBnbHcUHJc0ywWoXUBNB6qdg==} + peerDependencies: + eslint-plugin-import: '>=1.4.0' + webpack: '>=1.11.0' + dependencies: + array-find: 1.0.0 + debug: 2.6.9(supports-color@6.1.0) + enhanced-resolve: 0.9.1 + eslint-plugin-import: 2.23.4(eslint-import-resolver-webpack@0.11.1)(eslint@5.16.0) + find-root: 1.1.0 + has: 1.0.4 + interpret: 1.4.0 + lodash: 4.17.21 + node-libs-browser: 2.2.1 + resolve: 1.22.8 + semver: 5.7.2 + webpack: 4.46.0(webpack-cli@3.3.12) + transitivePeerDependencies: + - supports-color + dev: true + + /eslint-module-utils@2.8.0(eslint-import-resolver-node@0.3.9)(eslint-import-resolver-webpack@0.11.1)(eslint@5.16.0): + resolution: {integrity: sha512-aWajIYfsqCKRDgUfjEXNN/JlrzauMuSEy5sbd7WXbtW3EH6A6MpwEh42c7qD+MqQo9QMJ6fWLAeIJynx0g6OAw==} + engines: {node: '>=4'} + peerDependencies: + '@typescript-eslint/parser': '*' + eslint: '*' + eslint-import-resolver-node: '*' + eslint-import-resolver-typescript: '*' + eslint-import-resolver-webpack: '*' + peerDependenciesMeta: + '@typescript-eslint/parser': + optional: true + eslint: + optional: true + eslint-import-resolver-node: + optional: true + eslint-import-resolver-typescript: + optional: true + eslint-import-resolver-webpack: + optional: true + dependencies: + debug: 3.2.7(supports-color@6.1.0) + eslint: 5.16.0 + eslint-import-resolver-node: 0.3.9 + eslint-import-resolver-webpack: 0.11.1(eslint-plugin-import@2.23.4)(webpack@4.46.0) + transitivePeerDependencies: + - supports-color + dev: true + + /eslint-plugin-import@2.23.4(eslint-import-resolver-webpack@0.11.1)(eslint@5.16.0): + resolution: {integrity: sha512-6/wP8zZRsnQFiR3iaPFgh5ImVRM1WN5NUWfTIRqwOdeiGJlBcSk82o1FEVq8yXmy4lkIzTo7YhHCIxlU/2HyEQ==} + engines: {node: '>=4'} + peerDependencies: + '@typescript-eslint/parser': '*' + eslint: ^2 || ^3 || ^4 || ^5 || ^6 || ^7.2.0 + peerDependenciesMeta: + '@typescript-eslint/parser': + optional: true + dependencies: + array-includes: 3.1.7 + array.prototype.flat: 1.3.2 + debug: 2.6.9(supports-color@6.1.0) + doctrine: 2.1.0 + eslint: 5.16.0 + eslint-import-resolver-node: 0.3.9 + eslint-module-utils: 2.8.0(eslint-import-resolver-node@0.3.9)(eslint-import-resolver-webpack@0.11.1)(eslint@5.16.0) + find-up: 2.1.0 + has: 1.0.4 + is-core-module: 2.13.1 + minimatch: 3.1.2 + object.values: 1.1.7 + pkg-up: 2.0.0 + read-pkg-up: 3.0.0 + resolve: 1.22.8 + tsconfig-paths: 3.15.0 + transitivePeerDependencies: + - eslint-import-resolver-typescript + - eslint-import-resolver-webpack + - supports-color + dev: true + + /eslint-plugin-jest@22.17.0(eslint@5.16.0): + resolution: {integrity: sha512-WT4DP4RoGBhIQjv+5D0FM20fAdAUstfYAf/mkufLNTojsfgzc5/IYW22cIg/Q4QBavAZsROQlqppiWDpFZDS8Q==} + engines: {node: '>=6'} + peerDependencies: + eslint: '>=5' + dependencies: + '@typescript-eslint/experimental-utils': 1.13.0(eslint@5.16.0) + eslint: 5.16.0 + dev: true + + /eslint-plugin-react@7.24.0(eslint@5.16.0): + resolution: {integrity: sha512-KJJIx2SYx7PBx3ONe/mEeMz4YE0Lcr7feJTCMyyKb/341NcjuAgim3Acgan89GfPv7nxXK2+0slu0CWXYM4x+Q==} + engines: {node: '>=4'} + peerDependencies: + eslint: ^3 || ^4 || ^5 || ^6 || ^7 + dependencies: + array-includes: 3.1.7 + array.prototype.flatmap: 1.3.2 + doctrine: 2.1.0 + eslint: 5.16.0 + has: 1.0.4 + jsx-ast-utils: 3.3.5 + minimatch: 3.1.2 + object.entries: 1.1.7 + object.fromentries: 2.0.7 + object.values: 1.1.7 + prop-types: 15.8.1 + resolve: 2.0.0-next.5 + string.prototype.matchall: 4.0.10 + dev: true + + /eslint-scope@4.0.3: + resolution: {integrity: sha512-p7VutNr1O/QrxysMo3E45FjYDTeXBy0iTltPFNSqKAIfjDSXC+4dj+qfyuD8bfAXrW/y6lW3O76VaYNPKfpKrg==} + engines: {node: '>=4.0.0'} + dependencies: + esrecurse: 4.3.0 + estraverse: 4.3.0 + + /eslint-utils@1.4.3: + resolution: {integrity: sha512-fbBN5W2xdY45KulGXmLHZ3c3FHfVYmKg0IrAKGOkT/464PQsx2UeIzfz1RmEci+KLm1bBaAzZAh8+/E+XAeZ8Q==} + engines: {node: '>=6'} + dependencies: + eslint-visitor-keys: 1.3.0 + dev: true + + /eslint-visitor-keys@1.3.0: + resolution: {integrity: sha512-6J72N8UNa462wa/KFODt/PJ3IU60SDpC3QXC1Hjc1BXXpfL2C9R5+AU7jhe0F6GREqVMh4Juu+NY7xn+6dipUQ==} + engines: {node: '>=4'} + dev: true + + /eslint@5.16.0: + resolution: {integrity: sha512-S3Rz11i7c8AA5JPv7xAH+dOyq/Cu/VXHiHXBPOU1k/JAM5dXqQPt3qcrhpHSorXmrpu2g0gkIBVXAqCpzfoZIg==} + engines: {node: ^6.14.0 || ^8.10.0 || >=9.10.0} + hasBin: true + dependencies: + '@babel/code-frame': 7.23.5 + ajv: 6.12.6 + chalk: 2.4.2 + cross-spawn: 6.0.5 + debug: 4.3.4(supports-color@6.1.0) + doctrine: 3.0.0 + eslint-scope: 4.0.3 + eslint-utils: 1.4.3 + eslint-visitor-keys: 1.3.0 + espree: 5.0.1 + esquery: 1.5.0 + esutils: 2.0.3 + file-entry-cache: 5.0.1 + functional-red-black-tree: 1.0.1 + glob: 7.2.3 + globals: 11.12.0 + ignore: 4.0.6 + import-fresh: 3.3.0 + imurmurhash: 0.1.4 + inquirer: 6.5.2 + js-yaml: 3.14.1 + json-stable-stringify-without-jsonify: 1.0.1 + levn: 0.3.0 + lodash: 4.17.21 + minimatch: 3.1.2 + mkdirp: 0.5.6 + natural-compare: 1.4.0 + optionator: 0.8.3 + path-is-inside: 1.0.2 + progress: 2.0.3 + regexpp: 2.0.1 + semver: 5.7.2 + strip-ansi: 4.0.0 + strip-json-comments: 2.0.1 + table: 5.4.6 + text-table: 0.2.0 + transitivePeerDependencies: + - supports-color + dev: true + + /espree@5.0.1: + resolution: {integrity: sha512-qWAZcWh4XE/RwzLJejfcofscgMc9CamR6Tn1+XRXNzrvUSSbiAjGOI/fggztjIi7y9VLPqnICMIPiGyr8JaZ0A==} + engines: {node: '>=6.0.0'} + dependencies: + acorn: 6.4.2 + acorn-jsx: 5.3.2(acorn@6.4.2) + eslint-visitor-keys: 1.3.0 + dev: true + + /esprima@3.1.3: + resolution: {integrity: sha512-AWwVMNxwhN8+NIPQzAQZCm7RkLC4RbM3B1OobMuyp3i+w73X57KCKaVIxaRZb+DYCojq7rspo+fmuQfAboyhFg==} + engines: {node: '>=4'} + hasBin: true + dev: false + + /esprima@4.0.1: + resolution: {integrity: sha512-eGuFFw7Upda+g4p+QHvnW0RyTX/SVeJBDM/gCtMARO0cLuT2HcEKnTPvhjV6aGeqrCB/sbNop0Kszm0jsaWU4A==} + engines: {node: '>=4'} + hasBin: true + + /esquery@1.5.0: + resolution: {integrity: sha512-YQLXUplAwJgCydQ78IMJywZCceoqk1oH01OERdSAJc/7U2AylwjhSCLDEtqwg811idIS/9fIU5GjG73IgjKMVg==} + engines: {node: '>=0.10'} + dependencies: + estraverse: 5.3.0 + dev: true + + /esrecurse@4.3.0: + resolution: {integrity: sha512-KmfKL3b6G+RXvP8N1vr3Tq1kL/oCFgn2NYXEtqP8/L3pKapUA4G8cFVaoF3SU323CD4XypR/ffioHmkti6/Tag==} + engines: {node: '>=4.0'} + dependencies: + estraverse: 5.3.0 + + /estraverse@4.3.0: + resolution: {integrity: sha512-39nnKffWz8xN1BU/2c79n9nB9HDzo0niYUqx6xyqUnyoAnQyyWpOTdZEeiCch8BBu515t4wp9ZmgVfVhn9EBpw==} + engines: {node: '>=4.0'} + + /estraverse@5.3.0: + resolution: {integrity: sha512-MMdARuVEQziNTeJD8DgMqmhwR11BRQ/cBP+pLtYdSTnf3MIO8fFeiINEbX36ZdNlfU/7A9f3gUw49B3oQsvwBA==} + engines: {node: '>=4.0'} + + /esutils@2.0.3: + resolution: {integrity: sha512-kVscqXk4OCp68SZ0dkgEKVi6/8ij300KBWTJq32P/dYeWTSwK41WyTxalN1eRmA5Z9UU/LX9D7FWSmV9SAYx6g==} + engines: {node: '>=0.10.0'} + + /etag@1.8.1: + resolution: {integrity: sha512-aIL5Fx7mawVa300al2BnEE4iNvo1qETxLrPI/o05L7z6go7fCw1J6EQmbK4FmJ2AS7kgVF/KEZWufBfdClMcPg==} + engines: {node: '>= 0.6'} + dev: true + + /eventemitter3@4.0.7: + resolution: {integrity: sha512-8guHBZCwKnFhYdHr2ysuRWErTwhoN2X8XELRlrRwpmfeY2jjuUN4taQMsULKUVo1K4DvZl+0pgfyoysHxvmvEw==} + dev: true + + /events@3.3.0: + resolution: {integrity: sha512-mQw+2fkQbALzQ7V0MY0IqdnXNOeTtP4r0lN9z7AAawCXgqea7bDii20AYrIBrFd/Hx0M2Ocz6S111CaFkUcb0Q==} + engines: {node: '>=0.8.x'} + + /eventsource@2.0.2: + resolution: {integrity: sha512-IzUmBGPR3+oUG9dUeXynyNmf91/3zUSJg1lCktzKw47OXuhco54U3r9B7O4XX+Rb1Itm9OZ2b0RkTs10bICOxA==} + engines: {node: '>=12.0.0'} + dev: true + + /evp_bytestokey@1.0.3: + resolution: {integrity: sha512-/f2Go4TognH/KvCISP7OUsHn85hT9nUkxxA9BEWxFn+Oj9o8ZNLm/40hdlgSLyuOimsrTKLUMEorQexp/aPQeA==} + dependencies: + md5.js: 1.3.5 + safe-buffer: 5.2.1 + + /exec-sh@0.2.2: + resolution: {integrity: sha512-FIUCJz1RbuS0FKTdaAafAByGS0CPvU3R0MeHxgtl+djzCc//F8HakL8GzmVNZanasTbTAY/3DRFA0KpVqj/eAw==} + dependencies: + merge: 1.2.1 + dev: true + + /execa@0.7.0: + resolution: {integrity: sha512-RztN09XglpYI7aBBrJCPW95jEH7YF1UEPOoX9yDhUTPdp7mK+CQvnLTuD10BNXZ3byLTu2uehZ8EcKT/4CGiFw==} + engines: {node: '>=4'} + dependencies: + cross-spawn: 5.1.0 + get-stream: 3.0.0 + is-stream: 1.1.0 + npm-run-path: 2.0.2 + p-finally: 1.0.0 + signal-exit: 3.0.7 + strip-eof: 1.0.0 + dev: true + + /execa@1.0.0: + resolution: {integrity: sha512-adbxcyWV46qiHyvSp50TKt05tB4tK3HcmF7/nxfAdhnox83seTDbwnaqKO4sXRy7roHAIFqJP/Rw/AuEbX61LA==} + engines: {node: '>=6'} + dependencies: + cross-spawn: 6.0.5 + get-stream: 4.1.0 + is-stream: 1.1.0 + npm-run-path: 2.0.2 + p-finally: 1.0.0 + signal-exit: 3.0.7 + strip-eof: 1.0.0 + dev: true + + /exenv@1.2.2: + resolution: {integrity: sha512-Z+ktTxTwv9ILfgKCk32OX3n/doe+OcLTRtqK9pcL+JsP3J1/VW8Uvl4ZjLlKqeW4rzK4oesDOGMEMRIZqtP4Iw==} + dev: false + + /expand-brackets@0.1.5: + resolution: {integrity: sha512-hxx03P2dJxss6ceIeri9cmYOT4SRs3Zk3afZwWpOsRqLqprhTR8u++SlC+sFGsQr7WGFPdMF7Gjc1njDLDK6UA==} + engines: {node: '>=0.10.0'} + dependencies: + is-posix-bracket: 0.1.1 + dev: true + + /expand-brackets@2.1.4(supports-color@6.1.0): + resolution: {integrity: sha512-w/ozOKR9Obk3qoWeY/WDi6MFta9AoMR+zud60mdnbniMcBxRuFJyDt2LdX/14A1UABeqk+Uk+LDfUpvoGKppZA==} + engines: {node: '>=0.10.0'} + dependencies: + debug: 2.6.9(supports-color@6.1.0) + define-property: 0.2.5 + extend-shallow: 2.0.1 + posix-character-classes: 0.1.1 + regex-not: 1.0.2 + snapdragon: 0.8.2(supports-color@6.1.0) + to-regex: 3.0.2 + transitivePeerDependencies: + - supports-color + + /expand-range@1.8.2: + resolution: {integrity: sha512-AFASGfIlnIbkKPQwX1yHaDjFvh/1gyKJODme52V6IORh69uEYgZp0o9C+qsIGNVEiuuhQU0CSSl++Rlegg1qvA==} + engines: {node: '>=0.10.0'} + dependencies: + fill-range: 2.2.4 + dev: true + + /expand-tilde@2.0.2: + resolution: {integrity: sha512-A5EmesHW6rfnZ9ysHQjPdJRni0SRar0tjtG5MNtm9n5TUvsYU8oozprtRD4AqHxcZWWlVuAmQo2nWKfN9oyjTw==} + engines: {node: '>=0.10.0'} + dependencies: + homedir-polyfill: 1.0.3 + + /expect@21.2.1: + resolution: {integrity: sha512-orfQQqFRTX0jH7znRIGi8ZMR8kTNpXklTTz8+HGTpmTKZo3Occ6JNB5FXMb8cRuiiC/GyDqsr30zUa66ACYlYw==} + dependencies: + ansi-styles: 3.2.1 + jest-diff: 21.2.1 + jest-get-type: 21.2.0 + jest-matcher-utils: 21.2.1 + jest-message-util: 21.2.1 + jest-regex-util: 21.2.0 + dev: true + + /express@4.18.2(supports-color@6.1.0): + resolution: {integrity: sha512-5/PsL6iGPdfQ/lKM1UuielYgv3BUoJfz1aUwU9vHZ+J7gyvwdQXFEBIEIaxeGf0GIcreATNyBExtalisDbuMqQ==} + engines: {node: '>= 0.10.0'} + dependencies: + accepts: 1.3.8 + array-flatten: 1.1.1 + body-parser: 1.20.1(supports-color@6.1.0) + content-disposition: 0.5.4 + content-type: 1.0.5 + cookie: 0.5.0 + cookie-signature: 1.0.6 + debug: 2.6.9(supports-color@6.1.0) + depd: 2.0.0 + encodeurl: 1.0.2 + escape-html: 1.0.3 + etag: 1.8.1 + finalhandler: 1.2.0(supports-color@6.1.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(supports-color@6.1.0) + serve-static: 1.15.0(supports-color@6.1.0) + setprototypeof: 1.2.0 + statuses: 2.0.1 + type-is: 1.6.18 + utils-merge: 1.0.1 + vary: 1.1.2 + transitivePeerDependencies: + - supports-color + dev: true + + /ext-list@2.2.2: + resolution: {integrity: sha512-u+SQgsubraE6zItfVA0tBuCBhfU9ogSRnsvygI7wht9TS510oLkBRXBsqopeUG/GBOIQyKZO9wjTqIu/sf5zFA==} + engines: {node: '>=0.10.0'} + dependencies: + mime-db: 1.52.0 + dev: false + + /ext-name@5.0.0: + resolution: {integrity: sha512-yblEwXAbGv1VQDmow7s38W77hzAgJAO50ztBLMcUyUBfxv1HC+LGwtiEN+Co6LtlqT/5uwVOxsD4TNIilWhwdQ==} + engines: {node: '>=4'} + dependencies: + ext-list: 2.2.2 + sort-keys-length: 1.0.1 + dev: false + + /extend-shallow@2.0.1: + resolution: {integrity: sha512-zCnTtlxNoAiDc3gqY2aYAWFx7XWWiasuF2K8Me5WbN8otHKTUKBwjPtNpRs/rbUZm7KxWAaNj7P1a/p52GbVug==} + engines: {node: '>=0.10.0'} + dependencies: + is-extendable: 0.1.1 + + /extend-shallow@3.0.2: + resolution: {integrity: sha512-BwY5b5Ql4+qZoefgMj2NUmx+tehVTH/Kf4k1ZEtOHNFcm2wSxMRo992l6X3TIgni2eZVTZ85xMOjF31fwZAj6Q==} + engines: {node: '>=0.10.0'} + dependencies: + assign-symbols: 1.0.0 + is-extendable: 1.0.1 + + /extend@3.0.2: + resolution: {integrity: sha512-fjquC59cD7CyW6urNXK0FBufkZcoiGG80wTuPujX590cB5Ttln20E2UB4S/WARVqhXffZl2LNgS+gQdPIIim/g==} + + /external-editor@3.1.0: + resolution: {integrity: sha512-hMQ4CX1p1izmuLYyZqLMO/qGNw10wSv9QDCPfzXfyFrOaCSSoRfqE1Kf1s5an66J5JZC62NewG+mK49jOCtQew==} + engines: {node: '>=4'} + dependencies: + chardet: 0.7.0 + iconv-lite: 0.4.24 + tmp: 0.0.33 + dev: true + + /extglob@0.3.2: + resolution: {integrity: sha512-1FOj1LOwn42TMrruOHGt18HemVnbwAmAak7krWk+wa93KXxGbK+2jpezm+ytJYDaBX0/SPLZFHKM7m+tKobWGg==} + engines: {node: '>=0.10.0'} + dependencies: + is-extglob: 1.0.0 + dev: true + + /extglob@2.0.4(supports-color@6.1.0): + resolution: {integrity: sha512-Nmb6QXkELsuBr24CJSkilo6UHHgbekK5UiZgfE6UHD3Eb27YC6oD+bhcT+tJ6cl8dmsgdQxnWlcry8ksBIBLpw==} + engines: {node: '>=0.10.0'} + dependencies: + array-unique: 0.3.2 + define-property: 1.0.0 + expand-brackets: 2.1.4(supports-color@6.1.0) + extend-shallow: 2.0.1 + fragment-cache: 0.2.1 + regex-not: 1.0.2 + snapdragon: 0.8.2(supports-color@6.1.0) + to-regex: 3.0.2 + transitivePeerDependencies: + - supports-color + + /extract-zip@2.0.1: + resolution: {integrity: sha512-GDhU9ntwuKyGXdZBUgTIe+vXnWj0fppUEtMDL0+idd5Sta8TGpHssn/eusA9mrPr9qNDym6SxAYZjNvCn/9RBg==} + engines: {node: '>= 10.17.0'} + hasBin: true + dependencies: + debug: 4.3.4(supports-color@6.1.0) + get-stream: 5.2.0 + yauzl: 2.10.0 + optionalDependencies: + '@types/yauzl': 2.10.3 + transitivePeerDependencies: + - supports-color + dev: true + + /extsprintf@1.3.0: + resolution: {integrity: sha512-11Ndz7Nv+mvAC1j0ktTa7fAb0vLyGGX+rMHNBYQviQDGU0Hw7lhctJANqbPhu9nV9/izT/IntTgZ7Im/9LJs9g==} + engines: {'0': node >=0.6.0} + + /falafel@2.2.5: + resolution: {integrity: sha512-HuC1qF9iTnHDnML9YZAdCDQwT0yKl/U55K4XSUXqGAA2GLoafFgWRqdAbhWJxXaYD4pyoVxAJ8wH670jMpI9DQ==} + engines: {node: '>=0.4.0'} + dependencies: + acorn: 7.4.1 + isarray: 2.0.5 + dev: false + + /fast-deep-equal@1.1.0: + resolution: {integrity: sha512-fueX787WZKCV0Is4/T2cyAdM4+x1S3MXXOAhavE1ys/W42SHAPacLTQhucja22QBYrfGw50M2sRiXPtTGv9Ymw==} + dev: false + + /fast-deep-equal@3.1.3: + resolution: {integrity: sha512-f3qQ9oQy9j2AhBe/H9VC91wLmKBCCU/gDOnKNAYG5hswO7BLKj09Hc5HYNz9cGI++xlpDCIgDaitVs03ATR84Q==} + + /fast-glob@3.3.2: + resolution: {integrity: sha512-oX2ruAFQwf/Orj8m737Y5adxDQO0LAB7/S5MnxCdTNDd4p6BsyIVsv9JQsATbTSq8KHRpLwIHbVlUNatxd+1Ow==} + engines: {node: '>=8.6.0'} + dependencies: + '@nodelib/fs.stat': 2.0.5 + '@nodelib/fs.walk': 1.2.8 + glob-parent: 5.1.2 + merge2: 1.4.1 + micromatch: 4.0.5 + + /fast-json-stable-stringify@2.1.0: + resolution: {integrity: sha512-lhd/wF+Lk98HZoTCtlVraHtfh5XYijIjalXck7saUtuanSDyLMxnHhSXEDJqHxD7msR8D0uCmqlkwjCV8xvwHw==} + + /fast-levenshtein@2.0.6: + resolution: {integrity: sha512-DCXu6Ifhqcks7TZKY3Hxp3y6qphY5SJZmrWMDrKcERSOXWQdMhU9Ig/PYrzyw/ul9jOIyh0N4M0tbC5hodg8dw==} + + /fastestsmallesttextencoderdecoder@1.0.22: + resolution: {integrity: sha512-Pb8d48e+oIuY4MaM64Cd7OW1gt4nxCHs7/ddPPZ/Ic3sg8yVGM7O9wDvZ7us6ScaUupzM+pfBolwtYhN1IxBIw==} + dev: false + + /fastparse@1.1.2: + resolution: {integrity: sha512-483XLLxTVIwWK3QTrMGRqUfUpoOs/0hbQrl2oz4J0pAcm3A3bu84wxTFqGqkJzewCLdME38xJLJAxBABfQT8sQ==} + dev: false + + /fastq@1.16.0: + resolution: {integrity: sha512-ifCoaXsDrsdkWTtiNJX5uzHDsrck5TzfKKDcuFFTIrrc/BS076qgEIfoIy1VeZqViznfKiysPYTh/QeHtnIsYA==} + dependencies: + reusify: 1.0.4 + + /faye-websocket@0.11.4: + resolution: {integrity: sha512-CzbClwlXAuiRQAlUyfqPgvPoNKTckTPGfwZV4ZdAhVcP2lh9KUxJg2b5GkE7XbjKQ3YJnQ9z6D9ntLAlB+tP8g==} + engines: {node: '>=0.8.0'} + dependencies: + websocket-driver: 0.7.4 + dev: true + + /fb-watchman@2.0.2: + resolution: {integrity: sha512-p5161BqbuCaSnB8jIbzQHOlpgsPmK5rJVDfDKO91Axs5NC1uu3HRQm6wt9cd9/+GtQQIO53JdGXXoyDpTAsgYA==} + dependencies: + bser: 2.1.1 + dev: true + + /fbjs@0.8.18: + resolution: {integrity: sha512-EQaWFK+fEPSoibjNy8IxUtaFOMXcWsY0JaVrQoZR9zC8N2Ygf9iDITPWjUTVIax95b6I742JFLqASHfsag/vKA==} + dependencies: + core-js: 1.2.7 + isomorphic-fetch: 2.2.1 + loose-envify: 1.4.0 + object-assign: 4.1.1 + promise: 7.3.1 + setimmediate: 1.0.5 + ua-parser-js: 0.7.37 + dev: true + + /fd-slicer@1.1.0: + resolution: {integrity: sha512-cE1qsB/VwyQozZ+q1dGxR8LBYNZeofhEdUNGSMbQD3Gw2lAzX9Zb3uIU6Ebc/Fmyjo9AWWfnn0AUCHqtevs/8g==} + dependencies: + pend: 1.2.0 + + /figgy-pudding@3.5.2: + resolution: {integrity: sha512-0btnI/H8f2pavGMN8w40mlSKOfTK2SVJmBfBeVIj3kNw0swwgzyRq0d5TJVOwodFmtvpPeWPN/MCcfuWF0Ezbw==} + deprecated: This module is no longer supported. + + /figures@1.7.0: + resolution: {integrity: sha512-UxKlfCRuCBxSXU4C6t9scbDyWZ4VlaFFdojKtzJuSkuOBQ5CNFum+zZXFwHjo+CxBC1t6zlYPgHIgFjL8ggoEQ==} + engines: {node: '>=0.10.0'} + dependencies: + escape-string-regexp: 1.0.5 + object-assign: 4.1.1 + dev: false + + /figures@2.0.0: + resolution: {integrity: sha512-Oa2M9atig69ZkfwiApY8F2Yy+tzMbazyvqv21R0NsSC8floSOC09BbT1ITWAdoMGQvJ/aZnR1KMwdx9tvHnTNA==} + engines: {node: '>=4'} + dependencies: + escape-string-regexp: 1.0.5 + dev: true + + /file-entry-cache@5.0.1: + resolution: {integrity: sha512-bCg29ictuBaKUwwArK4ouCaqDgLZcysCFLmM/Yn/FDoqndh/9vNuQfXRDvTuXKLxfD/JtZQGKFT8MGcJBK644g==} + engines: {node: '>=4'} + dependencies: + flat-cache: 2.0.1 + dev: true + + /file-loader@2.0.0(webpack@4.46.0): + resolution: {integrity: sha512-YCsBfd1ZGCyonOKLxPiKPdu+8ld9HAaMEvJewzz+b2eTF7uL5Zm/HdBF6FjCrpCMRq25Mi0U1gl4pwn2TlH7hQ==} + engines: {node: '>= 6.9.0 < 7.0.0 || >= 8.9.0'} + peerDependencies: + webpack: ^2.0.0 || ^3.0.0 || ^4.0.0 + dependencies: + loader-utils: 1.4.2 + schema-utils: 1.0.0 + webpack: 4.46.0(webpack-cli@3.3.12) + + /file-type@11.1.0: + resolution: {integrity: sha512-rM0UO7Qm9K7TWTtA6AShI/t7H5BPjDeGVDaNyg9BjHAj3PysKy7+8C8D137R88jnR3rFJZQB/tFgydl5sN5m7g==} + engines: {node: '>=6'} + dev: false + + /file-type@3.9.0: + resolution: {integrity: sha512-RLoqTXE8/vPmMuTI88DAzhMYC99I8BWv7zYP4A1puo5HIjEJ5EX48ighy4ZyKMG9EDXxBgW6e++cn7d1xuFghA==} + engines: {node: '>=0.10.0'} + dev: false + + /file-type@4.4.0: + resolution: {integrity: sha512-f2UbFQEk7LXgWpi5ntcO86OeA/cC80fuDDDaX/fZ2ZGel+AF7leRQqBBW1eJNiiQkrZlAoM6P+VYP5P6bOlDEQ==} + engines: {node: '>=4'} + dev: false + + /file-type@5.2.0: + resolution: {integrity: sha512-Iq1nJ6D2+yIO4c8HHg4fyVb8mAJieo1Oloy1mLLaB2PvezNedhBVm+QU7g0qM42aiMbRXTxKKwGD17rjKNJYVQ==} + engines: {node: '>=4'} + dev: false + + /file-type@6.2.0: + resolution: {integrity: sha512-YPcTBDV+2Tm0VqjybVd32MHdlEGAtuxS3VAYsumFokDSMG+ROT5wawGlnHDoz7bfMcMDt9hxuXvXwoKUx2fkOg==} + engines: {node: '>=4'} + dev: false + + /file-uri-to-path@1.0.0: + resolution: {integrity: sha512-0Zt+s3L7Vf1biwWZ29aARiVYLx7iMGnEUl9x33fbB/j3jR81u/O2LbqK+Bm1CDSNDKVtJ/YjwY7TUd5SkeLQLw==} + requiresBuild: true + optional: true + + /filename-regex@2.0.1: + resolution: {integrity: sha512-BTCqyBaWBTsauvnHiE8i562+EdJj+oUpkqWp2R1iCoR8f6oo8STRu3of7WJJ0TqWtxN50a5YFpzYK4Jj9esYfQ==} + engines: {node: '>=0.10.0'} + dev: true + + /filename-reserved-regex@1.0.0: + resolution: {integrity: sha512-UZArj7+U+2reBBVCvVmRlyq9D7EYQdUtuNN+1iz7pF1jGcJ2L0TjiRCxsTZfj2xFbM4c25uGCUDpKTHA7L2TKg==} + engines: {node: '>=0.10.0'} + dev: true + + /filename-reserved-regex@2.0.0: + resolution: {integrity: sha512-lc1bnsSr4L4Bdif8Xb/qrtokGbq5zlsms/CYH8PP+WtCkGNF65DPiQY8vG3SakEdRn8Dlnm+gW/qWKKjS5sZzQ==} + engines: {node: '>=4'} + + /filenamify-url@1.0.0: + resolution: {integrity: sha512-O9K9JcZeF5VdZWM1qR92NSv1WY2EofwudQayPx5dbnnFl9k0IcZha4eV/FGkjnBK+1irOQInij0yiooCHu/0Fg==} + engines: {node: '>=0.10.0'} + dependencies: + filenamify: 1.2.1 + humanize-url: 1.0.1 + dev: true + + /filenamify@1.2.1: + resolution: {integrity: sha512-DKVP0WQcB7WaIMSwDETqImRej2fepPqvXQjaVib7LRZn9Rxn5UbvK2tYTqGf1A1DkIprQQkG4XSQXSOZp7Q3GQ==} + engines: {node: '>=0.10.0'} + dependencies: + filename-reserved-regex: 1.0.0 + strip-outer: 1.0.1 + trim-repeated: 1.0.0 + dev: true + + /filenamify@3.0.0: + resolution: {integrity: sha512-5EFZ//MsvJgXjBAFJ+Bh2YaCTRF/VP1YOmGrgt+KJ4SFRLjI87EIdwLLuT6wQX0I4F9W41xutobzczjsOKlI/g==} + engines: {node: '>=6'} + dependencies: + filename-reserved-regex: 2.0.0 + strip-outer: 1.0.1 + trim-repeated: 1.0.0 + dev: false + + /filenamify@4.3.0: + resolution: {integrity: sha512-hcFKyUG57yWGAzu1CMt/dPzYZuv+jAJUT85bL8mrXvNe6hWj6yEHEc4EdcgiA6Z3oi1/9wXJdZPXF2dZNgwgOg==} + engines: {node: '>=8'} + dependencies: + filename-reserved-regex: 2.0.0 + strip-outer: 1.0.1 + trim-repeated: 1.0.0 + dev: true + + /fileset@2.0.3: + resolution: {integrity: sha512-UxowFKnAFIwtmSxgKjWAVgjE3Fk7MQJT0ZIyl0NwIFZTrx4913rLaonGJ84V+x/2+w/pe4ULHRns+GZPs1TVuw==} + dependencies: + glob: 7.2.3 + minimatch: 3.1.2 + dev: true + + /fill-range@2.2.4: + resolution: {integrity: sha512-cnrcCbj01+j2gTG921VZPnHbjmdAf8oQV/iGeV2kZxGSyfYjjTyY79ErsK1WJWMpw6DaApEX72binqJE+/d+5Q==} + engines: {node: '>=0.10.0'} + dependencies: + is-number: 2.1.0 + isobject: 2.1.0 + randomatic: 3.1.1 + repeat-element: 1.1.4 + repeat-string: 1.6.1 + dev: true + + /fill-range@4.0.0: + resolution: {integrity: sha512-VcpLTWqWDiTerugjj8e3+esbg+skS3M9e54UuR3iCeIDMXCLTsAH8hTSzDQU/X6/6t3eYkOKoZSef2PlU6U1XQ==} + engines: {node: '>=0.10.0'} + requiresBuild: true + dependencies: + extend-shallow: 2.0.1 + is-number: 3.0.0 + repeat-string: 1.6.1 + to-regex-range: 2.1.1 + + /fill-range@7.0.1: + resolution: {integrity: sha512-qOo9F+dMUmC2Lcb4BbVvnKJxTPjCm+RRpe4gDuGrzkL7mEVl/djYSu2OdQ2Pa302N4oqkSg9ir6jaLWJ2USVpQ==} + engines: {node: '>=8'} + requiresBuild: true + dependencies: + to-regex-range: 5.0.1 + + /finalhandler@1.2.0(supports-color@6.1.0): + resolution: {integrity: sha512-5uXcUVftlQMFnWC9qu/svkWv3GTd2PfUhK/3PLkYNAe7FbqJMt3515HaxE6eRL74GdsriiwujiawdaB1BpEISg==} + engines: {node: '>= 0.8'} + dependencies: + debug: 2.6.9(supports-color@6.1.0) + 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 + transitivePeerDependencies: + - supports-color + dev: true + + /find-cache-dir@1.0.0: + resolution: {integrity: sha512-46TFiBOzX7xq/PcSWfFwkyjpemdRnMe31UQF+os0y+1W3k95f6R4SEt02Hj4p3X0Mir9gfrkmOtshFidS0VPUg==} + engines: {node: '>=4'} + dependencies: + commondir: 1.0.1 + make-dir: 1.3.0 + pkg-dir: 2.0.0 + dev: true + + /find-cache-dir@2.1.0: + resolution: {integrity: sha512-Tq6PixE0w/VMFfCgbONnkiQIVol/JJL7nRMi20fqzA4NRs9AfeqMGeRdPi3wIhYkxjeBaWh2rxwapn5Tu3IqOQ==} + engines: {node: '>=6'} + dependencies: + commondir: 1.0.1 + make-dir: 2.1.0 + pkg-dir: 3.0.0 + + /find-cache-dir@3.3.2: + resolution: {integrity: sha512-wXZV5emFEjrridIgED11OoUKLxiYjAcqot/NJdAkOhlJ+vGzwhOAfcG5OX1jP+S0PcjEn8bdMJv+g2jwQ3Onig==} + engines: {node: '>=8'} + dependencies: + commondir: 1.0.1 + make-dir: 3.1.0 + pkg-dir: 4.2.0 + + /find-root@1.1.0: + resolution: {integrity: sha512-NKfW6bec6GfKc0SGx1e07QZY9PE99u0Bft/0rzSD5k3sO/vwkVUpDUKVm5Gpp5Ue3YfShPFTX2070tDs5kB9Ng==} + dev: true + + /find-up@1.1.2: + resolution: {integrity: sha512-jvElSjyuo4EMQGoTwo1uJU5pQMwTW5lS1x05zzfJuTIyLR3zwO27LYrxNg+dlvKpGOuGy/MzBdXh80g0ve5+HA==} + engines: {node: '>=0.10.0'} + dependencies: + path-exists: 2.1.0 + pinkie-promise: 2.0.1 + dev: true + + /find-up@2.1.0: + resolution: {integrity: sha512-NWzkk0jSJtTt08+FBFMvXoeZnOJD+jTtsRmBYbAIzJdX6l7dLgR7CTubCM5/eDdPUBvLCeVasP1brfVR/9/EZQ==} + engines: {node: '>=4'} + dependencies: + locate-path: 2.0.0 + dev: true + + /find-up@3.0.0: + resolution: {integrity: sha512-1yD6RmLI1XBfxugvORwlck6f75tYL+iR0jqwsOrOxMZyGYqUuDhJ0l4AXdO1iX/FTs9cBAMEk1gWSEx1kSbylg==} + engines: {node: '>=6'} + dependencies: + locate-path: 3.0.0 + + /find-up@4.1.0: + resolution: {integrity: sha512-PpOwAdQ/YlXQ2vj8a3h8IipDuYRi3wceVQQGYWxNINccq40Anw7BlsEXCMbt1Zt+OLA6Fq9suIpIWD0OsnISlw==} + engines: {node: '>=8'} + dependencies: + locate-path: 5.0.0 + path-exists: 4.0.0 + + /findup-sync@3.0.0(supports-color@6.1.0): + resolution: {integrity: sha512-YbffarhcicEhOrm4CtrwdKBdCuz576RLdhJDsIfvNtxUuhdRet1qZcsMjqbePtAseKdAnDyM/IyXbu7PRPRLYg==} + engines: {node: '>= 0.10'} + dependencies: + detect-file: 1.0.0 + is-glob: 4.0.3 + micromatch: 3.1.10(supports-color@6.1.0) + resolve-dir: 1.0.1 + transitivePeerDependencies: + - supports-color + + /findup@0.1.5: + resolution: {integrity: sha512-Udxo3C9A6alt2GZ2MNsgnIvX7De0V3VGxeP/x98NSVgSlizcDHdmJza61LI7zJy4OEtSiJyE72s0/+tBl5/ZxA==} + engines: {node: '>=0.6'} + hasBin: true + dependencies: + colors: 0.6.2 + commander: 2.1.0 + dev: false + + /flat-cache@2.0.1: + resolution: {integrity: sha512-LoQe6yDuUMDzQAEH8sgmh4Md6oZnc/7PjtwjNFSzveXqSHt6ka9fPBuso7IGf9Rz4uqnSnWiFH2B/zj24a5ReA==} + engines: {node: '>=4'} + dependencies: + flatted: 2.0.2 + rimraf: 2.6.3 + write: 1.0.3 + dev: true + + /flatted@2.0.2: + resolution: {integrity: sha512-r5wGx7YeOwNWNlCA0wQ86zKyDLMQr+/RB8xy74M4hTphfmjlijTSSXGuH8rnvKZnfT9i+75zmd8jcKdMR4O6jA==} + dev: true + + /flush-write-stream@1.1.1: + resolution: {integrity: sha512-3Z4XhFZ3992uIq0XOqb9AreonueSYphE6oYbpt5+3u06JWklbsPkNv3ZKkP9Bz/r+1MWCaMoSQ28P85+1Yc77w==} + dependencies: + inherits: 2.0.4 + readable-stream: 2.3.8 + + /follow-redirects@1.15.4(debug@4.3.4): + resolution: {integrity: sha512-Cr4D/5wlrb0z9dgERpUL3LrmPKVDsETIJhaCMeDfuFYcqa5bldGV6wBsAN6X/vxlXQtFBMrXdXxdL8CbDTGniw==} + engines: {node: '>=4.0'} + peerDependencies: + debug: '*' + peerDependenciesMeta: + debug: + optional: true + dependencies: + debug: 4.3.4(supports-color@6.1.0) + dev: true + + /for-each@0.3.3: + resolution: {integrity: sha512-jqYfLp7mo9vIyQf8ykW2v7A+2N4QjeCeI5+Dz9XraiO1ign81wjiH7Fb9vSOWvQfNtmSa4H2RoQTrrXivdUZmw==} + dependencies: + is-callable: 1.2.7 + dev: true + + /for-in@1.0.2: + resolution: {integrity: sha512-7EwmXrOjyL+ChxMhmG5lnW9MPt1aIeZEwKhQzoBUdTV0N3zuwWDZYVJatDvZ2OyzPUvdIAZDsCetk3coyMfcnQ==} + engines: {node: '>=0.10.0'} + + /for-own@0.1.5: + resolution: {integrity: sha512-SKmowqGTJoPzLO1T0BBJpkfp3EMacCMOuH40hOUbrbzElVktk4DioXVM99QkLCyKoiuOmyjgcWMpVz2xjE7LZw==} + engines: {node: '>=0.10.0'} + dependencies: + for-in: 1.0.2 + dev: true + + /forever-agent@0.6.1: + resolution: {integrity: sha512-j0KLYPhm6zeac4lz3oJ3o65qvgQCcPubiyotZrXqEaG4hNagNYO8qdlUrX5vwqv9ohqeT/Z3j6+yW067yWWdUw==} + + /form-data@2.3.3: + resolution: {integrity: sha512-1lLKB2Mu3aGP1Q/2eCOx0fNbRMe7XdwktwOruhfqqd0rIJWwN4Dh+E3hrPSlDCXnSR7UtZ1N38rVXm+6+MEhJQ==} + engines: {node: '>= 0.12'} + dependencies: + asynckit: 0.4.0 + combined-stream: 1.0.8 + mime-types: 2.1.35 + + /form-data@4.0.0: + resolution: {integrity: sha512-ETEklSGi5t0QMZuiXoA/Q6vcnxcLQP5vdugSpuAyi6SVGi2clPPp+xgEhuMaHC+zGgn31Kd235W35f7Hykkaww==} + engines: {node: '>= 6'} + dependencies: + asynckit: 0.4.0 + combined-stream: 1.0.8 + mime-types: 2.1.35 + dev: true + + /format-message-formats@6.2.4: + resolution: {integrity: sha512-smT/fAqBLqusWfWCKRAx6QBDAAbmYznWsIyTyk66COmvwt2Byiqd7SJe2ma9a5oV0kwRaOJpN/F4lr4YK/n6qQ==} + dev: false + + /format-message-interpret@6.2.4: + resolution: {integrity: sha512-dRvz9mXhITApyOtfuFEb/XqvCe1u6RMkQW49UJHXS8w2S8cAHCqq5LNDFK+QK6XVzcofROycLb/k1uybTAKt2w==} + dependencies: + format-message-formats: 6.2.4 + lookup-closest-locale: 6.2.0 + dev: false + + /format-message-parse@6.2.4: + resolution: {integrity: sha512-k7WqXkEzgXkW4wkHdS6Cv2Ou0rIFtiDelZjgoe1saW4p7FT7zS8OeAUpAekhormqzpeecR97e4vBft1zMsfFOQ==} + dev: false + + /format-message@6.2.1: + resolution: {integrity: sha512-6gBXI+MOE9pu9QNeZf95V87GKYiLCdUvhisjts75xonaPAshtBu20NTZt2l8kbYcoMtxNyH9E9af+aieIRfVmw==} + dependencies: + format-message-formats: 6.2.4 + format-message-interpret: 6.2.4 + format-message-parse: 6.2.4 + lookup-closest-locale: 6.2.0 + dev: false + + /forwarded@0.2.0: + resolution: {integrity: sha512-buRG0fpBtRHSTCOASe6hD258tEubFoRLb4ZNA6NxMVHNw2gOcwHo9wyablzMzOA5z9xA9L1KNjk/Nt6MT9aYow==} + engines: {node: '>= 0.6'} + dev: true + + /fraction.js@4.3.4: + resolution: {integrity: sha512-pwiTgt0Q7t+GHZA4yaLjObx4vXmmdcS0iSJ19o8d/goUGgItX9UZWKWNnLHehxviD8wU2IWRsnR8cD5+yOJP2Q==} + dev: false + + /fragment-cache@0.2.1: + resolution: {integrity: sha512-GMBAbW9antB8iZRHLoGw0b3HANt57diZYFO/HL1JGIC1MjKrdmhxvrJbupnVvpys0zsz7yBApXdQyfepKly2kA==} + engines: {node: '>=0.10.0'} + dependencies: + map-cache: 0.2.2 + + /fresh@0.5.2: + resolution: {integrity: sha512-zJ2mQYM18rEFOudeV4GShTGIQ7RbzA7ozbU9I/XBpm7kqgMywgmylMwXHxZJmkVoYkna9d2pVXVXPdYTP9ej8Q==} + engines: {node: '>= 0.6'} + dev: true + + /from2-array@0.0.4: + resolution: {integrity: sha512-0G0cAp7sYLobH7ALsr835x98PU/YeVF7wlwxdWbCUaea7wsa7lJfKZUAo6p2YZGZ8F94luCuqHZS3JtFER6uPg==} + dependencies: + from2: 2.3.0 + dev: false + + /from2@2.3.0: + resolution: {integrity: sha512-OMcX/4IC/uqEPVgGeyfN22LJk6AZrMkRZHxcHBMBvHScDGgwTm2GT2Wkgtocyd3JfZffjj2kYUDXXII0Fk9W0g==} + dependencies: + inherits: 2.0.4 + readable-stream: 2.3.8 + + /fs-constants@1.0.0: + resolution: {integrity: sha512-y6OAwoSIf7FyjMIv94u+b5rdheZEjzR63GTyZJm5qh4Bi+2YgwLCcI/fPFZkL5PSixOt6ZNKm+w+Hfp/Bciwow==} + dev: false + + /fs-extra@5.0.0: + resolution: {integrity: sha512-66Pm4RYbjzdyeuqudYqhFiNBbCIuI9kgRqLPSHIlXHidW8NIQtVdkM1yeZ4lXwuhbTETv3EUGMNHAAw6hiundQ==} + dependencies: + graceful-fs: 4.1.11 + jsonfile: 4.0.0 + universalify: 0.1.2 + dev: true + + /fs-extra@8.1.0: + resolution: {integrity: sha512-yhlQgA6mnOJUKOsRUFsgJdQCvkKhcz8tlZG5HBQfReYZy46OwLcY+Zia0mtdHsOo9y/hP+CxMN0TU9QxoOtG4g==} + engines: {node: '>=6 <7 || >=8'} + dependencies: + graceful-fs: 4.2.11 + jsonfile: 4.0.0 + universalify: 0.1.2 + + /fs-minipass@2.1.0: + resolution: {integrity: sha512-V/JgOLFCS+R6Vcq0slCuaeWEdNC3ouDlJMNIsacH2VtALiu9mV4LPrHc5cDl8k5aw6J8jwgWWpiTo5RYhmIzvg==} + engines: {node: '>= 8'} + dependencies: + minipass: 3.3.6 + dev: false + + /fs-readdir-recursive@1.1.0: + resolution: {integrity: sha512-GNanXlVr2pf02+sPN40XN8HG+ePaNcvM0q5mZBd668Obwb0yD5GiUbZOFgwn8kGMY6I3mdyDJzieUy3PTYyTRA==} + + /fs-write-stream-atomic@1.0.10: + resolution: {integrity: sha512-gehEzmPn2nAwr39eay+x3X34Ra+M2QlVUTLhkXPjWdeO8RF9kszk116avgBJM3ZyNHgHXBNx+VmPaFC36k0PzA==} + dependencies: + graceful-fs: 4.2.11 + iferr: 0.1.5 + imurmurhash: 0.1.4 + readable-stream: 2.3.8 + + /fs.realpath@1.0.0: + resolution: {integrity: sha512-OO0pH2lK6a0hZnAdau5ItzHPI6pUlvI7jMVnxUQRtw4owF2wk8lOSabtGDCTP4Ggrg2MbGnWO9X8K1t4+fGMDw==} + + /fsevents@1.2.13: + resolution: {integrity: sha512-oWb1Z6mkHIskLzEJ/XWX0srkpkTQ7vaopMQkyaEIoq0fmtFVxOthb8cCxeT+p3ynTdkk/RZwbgG4brR5BeWECw==} + engines: {node: '>= 4.0'} + os: [darwin] + deprecated: The v1 package contains DANGEROUS / INSECURE binaries. Upgrade to safe fsevents v2 + requiresBuild: true + dependencies: + bindings: 1.5.0 + nan: 2.18.0 + optional: true + + /fsevents@2.3.3: + resolution: {integrity: sha512-5xoDfX+fL7faATnagmWPpbFtwh/R77WmMMqqHGS65C3vvB0YHrgF+B1YmZ3441tMj5n63k0212XNoJwzlhffQw==} + engines: {node: ^8.16.0 || ^10.6.0 || >=11.0.0} + os: [darwin] + requiresBuild: true + optional: true + + /function-bind@1.1.2: + resolution: {integrity: sha512-7XHNxH7qX9xG5mIwxkhumTox/MIRNcOgDrxWsMt2pAr23WHp6MrRlN7FBSFpCpr+oVO0F744iUgR82nJMfG2SA==} + + /function.prototype.name@1.1.6: + resolution: {integrity: sha512-Z5kx79swU5P27WEayXM1tBi5Ze/lbIyiNgU3qyXUOf9b2rgXYyF9Dy9Cx+IQv/Lc8WCG6L82zwUPpSS9hGehIg==} + engines: {node: '>= 0.4'} + dependencies: + call-bind: 1.0.5 + define-properties: 1.2.1 + es-abstract: 1.22.3 + functions-have-names: 1.2.3 + dev: true + + /functional-red-black-tree@1.0.1: + resolution: {integrity: sha512-dsKNQNdj6xA3T+QlADDA7mOSlX0qiMINjn0cgr+eGHGsbSHzTabcIogz2+p/iqP1Xs6EP/sS2SbqH+brGTbq0g==} + dev: true + + /functions-have-names@1.2.3: + resolution: {integrity: sha512-xckBUXyTIqT97tq2x2AMb+g163b5JFysYk0x4qxNFwbfQkmNZoiRHb6sPzI9/QV33WeuvVYBUIiD4NzNIyqaRQ==} + dev: true + + /gensync@1.0.0-beta.2: + resolution: {integrity: sha512-3hN7NaskYvMDLQY55gnW3NQ+mesEAepTqlg+VEbj7zzqEMBVNhzcGYYeqFo/TlYz6eQiFcp1HcsCZO+nGgS8zg==} + engines: {node: '>=6.9.0'} + + /get-caller-file@1.0.3: + resolution: {integrity: sha512-3t6rVToeoZfYSGd8YoLFR2DJkiQrIiUrGcjvFX2mDw3bn6k2OtwHN0TNCLbBO+w8qTvimhDkv+LSscbJY1vE6w==} + dev: true + + /get-caller-file@2.0.5: + resolution: {integrity: sha512-DyFP3BM/3YHTQOCUL/w0OZHR0lpKeGrxotcHWcqNEdnltqFwXVfhEBQ94eIo34AfQpo0rGki4cyIiftY06h2Fg==} + engines: {node: 6.* || 8.* || >= 10.*} + + /get-float-time-domain-data@0.1.0: + resolution: {integrity: sha512-6lWdVMny7vJ+xWxGUmVdSW7rd4L2byptiVkjH3QEBsxcHSa8UbC/HsZmixHK/ZQ1EYsOaQjaeRgR+NAsIerEJQ==} + dev: false + + /get-intrinsic@1.2.2: + resolution: {integrity: sha512-0gSo4ml/0j98Y3lngkFEot/zhiCeWsbYIlZ+uZOVgzLyLaUw7wxUL+nCTP0XJvJg1AXulJRI3UJi8GsbDuxdGA==} + dependencies: + function-bind: 1.1.2 + has-proto: 1.0.1 + has-symbols: 1.0.3 + hasown: 2.0.0 + + /get-stream@2.3.1: + resolution: {integrity: sha512-AUGhbbemXxrZJRD5cDvKtQxLuYaIbNtDTK8YqupCI393Q2KSTreEsLUN3ZxAWFGiKTzL6nKuzfcIvieflUX9qA==} + engines: {node: '>=0.10.0'} + dependencies: + object-assign: 4.1.1 + pinkie-promise: 2.0.1 + dev: false + + /get-stream@3.0.0: + resolution: {integrity: sha512-GlhdIUuVakc8SJ6kK0zAFbiGzRFzNnY4jUuEbV9UROo4Y+0Ny4fjvcZFVTeDA4odpFyOQzaw6hXukJSq/f28sQ==} + engines: {node: '>=4'} + + /get-stream@4.1.0: + resolution: {integrity: sha512-GMat4EJ5161kIy2HevLlr4luNjBgvmj413KaQA7jt4V8B4RDsfpHk7WQ9GVqfYyyx8OS/L66Kox+rJRNklLK7w==} + engines: {node: '>=6'} + dependencies: + pump: 3.0.0 + + /get-stream@5.2.0: + resolution: {integrity: sha512-nBF+F1rAZVCu/p7rjzgA+Yb4lfYXrpl7a6VmJrU8wF9I1CKvP/QwPNZHnOlwbTkY6dvtFIzFMSyQXbLoTQPRpA==} + engines: {node: '>=8'} + dependencies: + pump: 3.0.0 + dev: true + + /get-symbol-description@1.0.0: + resolution: {integrity: sha512-2EmdH1YvIQiZpltCNgkuiUnyukzxM/R6NDJX31Ke3BG1Nq5b0S2PhX59UKi9vZpPDQVdqn+1IcaAwnzTT5vCjw==} + engines: {node: '>= 0.4'} + dependencies: + call-bind: 1.0.5 + get-intrinsic: 1.2.2 + dev: true + + /get-user-media-promise@1.1.4: + resolution: {integrity: sha512-k49YuV2z0d3gKHLPTFKYfzEA9kduuQk7YBf8ev2dxrKk+DhMyuzfQnK9ZSxkEhE/jv3BZY62M0eICWa7lak9nw==} + dev: false + + /get-value@2.0.6: + resolution: {integrity: sha512-Ln0UQDlxH1BapMu3GPtf7CuYNwRZf2gwCuPqbyG6pB8WfmFpzqcy4xtAaAMUhnNqjMKTiCPZG2oMT3YSx8U2NA==} + engines: {node: '>=0.10.0'} + + /getpass@0.1.7: + resolution: {integrity: sha512-0fzj9JxOLfJ+XGLhR8ze3unN0KZCgZwiSSDz168VERjK8Wl8kVSdcu2kspd4s4wtAa1y/qrVRiAA0WclVsu0ng==} + dependencies: + assert-plus: 1.0.0 + + /gh-pages@1.2.0: + resolution: {integrity: sha512-cGLYAvxtlQ1iTwAS4g7FreZPXoE/g62Fsxln2mmR19mgs4zZI+XJ+wVVUhBFCF/0+Nmvbq+abyTWue1m1BSnmg==} + engines: {node: '>=4'} + hasBin: true + dependencies: + async: 2.6.1 + commander: 2.15.1 + filenamify-url: 1.0.0 + fs-extra: 5.0.0 + globby: 6.1.0 + graceful-fs: 4.1.11 + rimraf: 2.7.1 + dev: true + + /gh-pages@3.2.3: + resolution: {integrity: sha512-jA1PbapQ1jqzacECfjUaO9gV8uBgU6XNMV0oXLtfCX3haGLe5Atq8BxlrADhbD6/UdG9j6tZLWAkAybndOXTJg==} + engines: {node: '>=10'} + hasBin: true + dependencies: + async: 2.6.4 + commander: 2.20.3 + email-addresses: 3.1.0 + filenamify: 4.3.0 + find-cache-dir: 3.3.2 + fs-extra: 8.1.0 + globby: 6.1.0 + dev: true + + /glob-base@0.3.0: + resolution: {integrity: sha512-ab1S1g1EbO7YzauaJLkgLp7DZVAqj9M/dvKlTt8DkXA2tiOIcSMrlVI2J1RZyB5iJVccEscjGn+kpOG9788MHA==} + engines: {node: '>=0.10.0'} + dependencies: + glob-parent: 2.0.0 + is-glob: 2.0.1 + dev: true + + /glob-parent@2.0.0: + resolution: {integrity: sha512-JDYOvfxio/t42HKdxkAYaCiBN7oYiuxykOxKxdaUW5Qn0zaYN3gRQWolrwdnf0shM9/EP0ebuuTmyoXNr1cC5w==} + dependencies: + is-glob: 2.0.1 + dev: true + + /glob-parent@3.1.0: + resolution: {integrity: sha512-E8Ak/2+dZY6fnzlR7+ueWvhsH1SjHr4jjss4YS/h4py44jY9MhK/VFdaZJAWDz6BbL21KeteKxFSFpq8OS5gVA==} + dependencies: + is-glob: 3.1.0 + path-dirname: 1.0.2 + + /glob-parent@5.1.2: + resolution: {integrity: sha512-AOIgSQCepiJYwP3ARnGx+5VnTu2HBYdzbGP45eLw1vr3zB3vZLeyed1sC9hnbcOc9/SrMyM5RPQrkGz4aS9Zow==} + engines: {node: '>= 6'} + dependencies: + is-glob: 4.0.3 + + /glob@7.1.2: + resolution: {integrity: sha512-MJTUg1kjuLeQCJ+ccE4Vpa6kKVXkPYJ2mOCQyUuKLcLQsdrMCpBPUi8qVE6+YuaJkozeA9NusTAw3hLr8Xe5EQ==} + dependencies: + fs.realpath: 1.0.0 + inflight: 1.0.6 + inherits: 2.0.4 + minimatch: 3.1.2 + once: 1.4.0 + path-is-absolute: 1.0.1 + dev: false + + /glob@7.2.3: + resolution: {integrity: sha512-nFR0zLpU2YCaRxwoCJvL6UvCH2JFyFVIvwTLsIf21AuHlMskA1hhTdk+LlYJtOlYt9v6dvszD2BGRqBL+iQK9Q==} + dependencies: + fs.realpath: 1.0.0 + inflight: 1.0.6 + inherits: 2.0.4 + minimatch: 3.1.2 + once: 1.4.0 + path-is-absolute: 1.0.1 + + /global-modules@1.0.0: + resolution: {integrity: sha512-sKzpEkf11GpOFuw0Zzjzmt4B4UZwjOcG757PPvrfhxcLFbq0wpsgpOqxpxtxFiCG4DtG93M6XRVbF2oGdev7bg==} + engines: {node: '>=0.10.0'} + dependencies: + global-prefix: 1.0.2 + is-windows: 1.0.2 + resolve-dir: 1.0.1 + + /global-modules@2.0.0: + resolution: {integrity: sha512-NGbfmJBp9x8IxyJSd1P+otYK8vonoJactOogrVfFRIAEY1ukil8RSKDz2Yo7wh1oihl51l/r6W4epkeKJHqL8A==} + engines: {node: '>=6'} + dependencies: + global-prefix: 3.0.0 + + /global-prefix@1.0.2: + resolution: {integrity: sha512-5lsx1NUDHtSjfg0eHlmYvZKv8/nVqX4ckFbM+FrGcQ+04KWcWFo9P5MxPZYSzUvyzmdTbI7Eix8Q4IbELDqzKg==} + engines: {node: '>=0.10.0'} + dependencies: + expand-tilde: 2.0.2 + homedir-polyfill: 1.0.3 + ini: 1.3.8 + is-windows: 1.0.2 + which: 1.3.1 + + /global-prefix@3.0.0: + resolution: {integrity: sha512-awConJSVCHVGND6x3tmMaKcQvwXLhjdkmomy2W+Goaui8YPgYgXJZewhg3fWC+DlfqqQuWg8AwqjGTD2nAPVWg==} + engines: {node: '>=6'} + dependencies: + ini: 1.3.8 + kind-of: 6.0.3 + which: 1.3.1 + + /global@4.3.2: + resolution: {integrity: sha512-/4AybdwIDU4HkCUbJkZdWpe4P6vuw/CUtu+0I1YlLIPe7OlUO7KNJ+q/rO70CW2/NW6Jc6I62++Hzsf5Alu6rQ==} + dependencies: + min-document: 2.19.0 + process: 0.5.2 + dev: false + + /global@4.4.0: + resolution: {integrity: sha512-wv/LAoHdRE3BeTGz53FAamhGlPLhlssK45usmGFThIi4XqnBmjKQ16u+RNbP7WvigRZDxUsM0J3gcQ5yicaL0w==} + dependencies: + min-document: 2.19.0 + process: 0.11.10 + dev: false + + /globals@11.12.0: + resolution: {integrity: sha512-WOBp/EEGUiIsJSp7wcv/y6MO+lV9UoncWqxuFfm8eBwzWNgyfBd6Gz+IeKQ9jCmyhoH99g15M3T+QaVHFjizVA==} + engines: {node: '>=4'} + + /globals@9.18.0: + resolution: {integrity: sha512-S0nG3CLEQiY/ILxqtztTWH/3iRRdyBLw6KMDxnKMchrtbj2OFmehVh0WUCfW3DUrIgx/qFrJPICrq4Z4sTR9UQ==} + engines: {node: '>=0.10.0'} + dev: true + + /globalthis@1.0.3: + resolution: {integrity: sha512-sFdI5LyBiNTHjRd7cGPWapiHWMOXKyuBNX/cWJ3NfzrZQVa8GI/8cofCl74AOVqq9W5kNmguTIzJ/1s2gyI9wA==} + engines: {node: '>= 0.4'} + dependencies: + define-properties: 1.2.1 + dev: true + + /globby@11.1.0: + resolution: {integrity: sha512-jhIXaOzy1sb8IyocaruWSn1TjmnBVs8Ayhcy83rmxNJ8q2uWKCAj3CnJY+KpGSXCueAPc0i05kVvVKtP1t9S3g==} + engines: {node: '>=10'} + dependencies: + array-union: 2.1.0 + dir-glob: 3.0.1 + fast-glob: 3.3.2 + ignore: 5.3.0 + merge2: 1.4.1 + slash: 3.0.0 + + /globby@6.1.0: + resolution: {integrity: sha512-KVbFv2TQtbzCoxAnfD6JcHZTYCzyliEaaeM/gH8qQdkKr5s0OP9scEgvdcngyk7AVdY6YVW/TJHd+lQ/Df3Daw==} + engines: {node: '>=0.10.0'} + dependencies: + array-union: 1.0.2 + glob: 7.2.3 + object-assign: 4.1.1 + pify: 2.3.0 + pinkie-promise: 2.0.1 + dev: true + + /gopd@1.0.1: + resolution: {integrity: sha512-d65bNlIadxvpb/A2abVdlqKqV563juRnZ1Wtk6s1sIR8uNsXR70xqIzVqxVf1eTqDunwT2MkczEeaezCKTZhwA==} + dependencies: + get-intrinsic: 1.2.2 + + /got@8.3.2: + resolution: {integrity: sha512-qjUJ5U/hawxosMryILofZCkm3C84PLJS/0grRIpjAwu+Lkxxj5cxeCU25BG0/3mDSpXKTyZr8oh8wIgLaH0QCw==} + engines: {node: '>=4'} + dependencies: + '@sindresorhus/is': 0.7.0 + '@types/keyv': 3.1.4 + '@types/responselike': 1.0.3 + cacheable-request: 2.1.4 + decompress-response: 3.3.0 + duplexer3: 0.1.5 + get-stream: 3.0.0 + into-stream: 3.1.0 + is-retry-allowed: 1.2.0 + isurl: 1.0.0 + lowercase-keys: 1.0.1 + mimic-response: 1.0.1 + p-cancelable: 0.4.1 + p-timeout: 2.0.1 + pify: 3.0.0 + safe-buffer: 5.2.1 + timed-out: 4.0.1 + url-parse-lax: 3.0.0 + url-to-options: 1.0.1 + dev: false + + /graceful-fs@4.1.11: + resolution: {integrity: sha512-9x6DLUuW+ROFdMTII9ec9t/FK8va6kYcC8/LggumssLM8kNv7IdFl3VrNUqgir2tJuBVxBga1QBoRziZacO5Zg==} + engines: {node: '>=0.4.0'} + dev: true + + /graceful-fs@4.2.11: + resolution: {integrity: sha512-RbJ5/jmFcNNCcDV5o9eTnBLJ/HszWV0P73bc+Ff4nS/rJj+YaS6IGyiOL0VoBYX+l1Wrl3k63h/KrH+nhJ0XvQ==} + + /grapheme-breaker@0.3.2: + resolution: {integrity: sha512-mB6rwkw1Z7z4z2RkFFTd/+q6Ug1gnCgjKAervAKgBeNI1mSr8E5EUWoYzFNOZsLHFArLfpk+O8X8qXC7uvuawQ==} + dependencies: + brfs: 1.6.1 + unicode-trie: 0.3.1 + dev: false + + /growl@1.10.3: + resolution: {integrity: sha512-hKlsbA5Vu3xsh1Cg3J7jSmX/WaW6A5oBeqzM88oNbCRQFz+zUaXm6yxS4RVytp1scBoJzSYl4YAEOQIt6O8V1Q==} + engines: {node: '>=4.x'} + dev: false + + /growly@1.3.0: + resolution: {integrity: sha512-+xGQY0YyAWCnqy7Cd++hc2JqMYzlm0dG30Jd0beaA64sROr8C4nt8Yc9V5Ro3avlSUDTN0ulqP/VBKi1/lLygw==} + dev: true + + /handle-thing@2.0.1: + resolution: {integrity: sha512-9Qn4yBxelxoh2Ow62nP+Ka/kMnOXRi8BXnRaUwezLNhqelnN49xKz4F/dPP8OYLxLxq6JDtZb2i9XznUQbNPTg==} + dev: true + + /handlebars@4.7.8: + resolution: {integrity: sha512-vafaFqs8MZkRrSX7sFVUdo3ap/eNiLnb4IakshzvP56X5Nr1iGKAIqdX6tMlm6HcNRIkr6AxO5jFEoJzzpT8aQ==} + engines: {node: '>=0.4.7'} + hasBin: true + dependencies: + minimist: 1.2.8 + neo-async: 2.6.2 + source-map: 0.6.1 + wordwrap: 1.0.0 + optionalDependencies: + uglify-js: 3.17.4 + dev: true + + /har-schema@2.0.0: + resolution: {integrity: sha512-Oqluz6zhGX8cyRaTQlFMPw80bSJVG2x/cFb8ZPhUILGgHka9SsokCCOQgpveePerqidZOrT14ipqfJb7ILcW5Q==} + engines: {node: '>=4'} + + /har-validator@5.1.5: + resolution: {integrity: sha512-nmT2T0lljbxdQZfspsno9hgrG3Uir6Ks5afism62poxqBM6sDnMEuPmzTq8XN0OEwqKLLdh1jQI3qyE66Nzb3w==} + engines: {node: '>=6'} + deprecated: this library is no longer supported + dependencies: + ajv: 6.12.6 + har-schema: 2.0.0 + + /has-ansi@2.0.0: + resolution: {integrity: sha512-C8vBJ8DwUCx19vhm7urhTuUsr4/IyP6l4VzNQDv+ryHQObW3TTTp9yB68WpYgRe2bbaGuZ/se74IqFeVnMnLZg==} + engines: {node: '>=0.10.0'} + dependencies: + ansi-regex: 2.1.1 + + /has-bigints@1.0.2: + resolution: {integrity: sha512-tSvCKtBr9lkF0Ex0aQiP9N+OpV4zi2r/Nee5VkRDbaqv35RLYMzbwQfFSZZH0kR+Rd6302UJZ2p/bJCEoR3VoQ==} + dev: true + + /has-flag@1.0.0: + resolution: {integrity: sha512-DyYHfIYwAJmjAjSSPKANxI8bFY9YtFrgkAfinBojQ8YJTOuOuav64tMUJv584SES4xl74PmuaevIyaLESHdTAA==} + engines: {node: '>=0.10.0'} + dev: true + + /has-flag@2.0.0: + resolution: {integrity: sha512-P+1n3MnwjR/Epg9BBo1KT8qbye2g2Ou4sFumihwt6I4tsUX7jnLcX4BTOSKg/B1ZrIYMN9FcEnG4x5a7NB8Eng==} + engines: {node: '>=0.10.0'} + dev: false + + /has-flag@3.0.0: + resolution: {integrity: sha512-sKJf1+ceQBr4SMkvQnBDNDtf4TXpVhVGateu0t918bl30FnbE2m4vNLX+VWe/dpjlb+HugGYzW7uQXH98HPEYw==} + engines: {node: '>=4'} + + /has-property-descriptors@1.0.1: + resolution: {integrity: sha512-VsX8eaIewvas0xnvinAe9bw4WfIeODpGYikiWYLH+dma0Jw6KHYqWiWfhQlgOVK8D6PvjubK5Uc4P0iIhIcNVg==} + dependencies: + get-intrinsic: 1.2.2 + + /has-proto@1.0.1: + resolution: {integrity: sha512-7qE+iP+O+bgF9clE5+UoBFzE65mlBiVj3tKCrlNQ0Ogwm0BjpT/gK4SlLYDMybDh5I3TCTKnPPa0oMG7JDYrhg==} + engines: {node: '>= 0.4'} + + /has-symbol-support-x@1.4.2: + resolution: {integrity: sha512-3ToOva++HaW+eCpgqZrCfN51IPB+7bJNVT6CUATzueB5Heb8o6Nam0V3HG5dlDvZU1Gn5QLcbahiKw/XVk5JJw==} + dev: false + + /has-symbols@1.0.3: + resolution: {integrity: sha512-l3LCuF6MgDNwTDKkdYGEihYjt5pRPbEg46rtlmnSPlUbgmB8LOIrKJbYYFBSbnPaJexMKtiPO8hmeRjRz2Td+A==} + engines: {node: '>= 0.4'} + + /has-to-string-tag-x@1.4.1: + resolution: {integrity: sha512-vdbKfmw+3LoOYVr+mtxHaX5a96+0f3DljYd8JOqvOLsf5mw2Otda2qCDT9qRqLAhrjyQ0h7ual5nOiASpsGNFw==} + dependencies: + has-symbol-support-x: 1.4.2 + dev: false + + /has-tostringtag@1.0.0: + resolution: {integrity: sha512-kFjcSNhnlGV1kyoGk7OXKSawH5JOb/LzUc5w9B02hOTO0dfFRjbHQKvg1d6cf3HbeUmtU9VbbV3qzZ2Teh97WQ==} + engines: {node: '>= 0.4'} + dependencies: + has-symbols: 1.0.3 + dev: true + + /has-value@0.3.1: + resolution: {integrity: sha512-gpG936j8/MzaeID5Yif+577c17TxaDmhuyVgSwtnL/q8UUTySg8Mecb+8Cf1otgLoD7DDH75axp86ER7LFsf3Q==} + engines: {node: '>=0.10.0'} + dependencies: + get-value: 2.0.6 + has-values: 0.1.4 + isobject: 2.1.0 + + /has-value@1.0.0: + resolution: {integrity: sha512-IBXk4GTsLYdQ7Rvt+GRBrFSVEkmuOUy4re0Xjd9kJSUQpnTrWR4/y9RpfexN9vkAPMFuQoeWKwqzPozRTlasGw==} + engines: {node: '>=0.10.0'} + dependencies: + get-value: 2.0.6 + has-values: 1.0.0 + isobject: 3.0.1 + + /has-values@0.1.4: + resolution: {integrity: sha512-J8S0cEdWuQbqD9//tlZxiMuMNmxB8PlEwvYwuxsTmR1G5RXUePEX/SJn7aD0GMLieuZYSwNH0cQuJGwnYunXRQ==} + engines: {node: '>=0.10.0'} + + /has-values@1.0.0: + resolution: {integrity: sha512-ODYZC64uqzmtfGMEAX/FvZiRyWLpAC3vYnNunURUnkGVTS+mI0smVsWaPydRBsE3g+ok7h960jChO8mFcWlHaQ==} + engines: {node: '>=0.10.0'} + dependencies: + is-number: 3.0.0 + kind-of: 4.0.0 + + /has@1.0.4: + resolution: {integrity: sha512-qdSAmqLF6209RFj4VVItywPMbm3vWylknmB3nvNiUIs72xAimcM8nVYxYr7ncvZq5qzk9MKIZR8ijqD/1QuYjQ==} + engines: {node: '>= 0.4.0'} + + /hash-base@3.1.0: + resolution: {integrity: sha512-1nmYp/rhMDiE7AYkDw+lLwlAzz0AntGIe51F3RfFfEqyQ3feY2eI/NcwC6umIQVOASPMsWJLJScWKSSvzL9IVA==} + engines: {node: '>=4'} + dependencies: + inherits: 2.0.4 + readable-stream: 3.6.2 + safe-buffer: 5.2.1 + + /hash.js@1.1.7: + resolution: {integrity: sha512-taOaskGt4z4SOANNseOviYDvjEJinIkRgmp7LbKP2YTTmVxWBl87s/uzK9r+44BclBSp2X7K1hqeNfz9JbBeXA==} + dependencies: + inherits: 2.0.4 + minimalistic-assert: 1.0.1 + + /hasown@2.0.0: + resolution: {integrity: sha512-vUptKVTpIJhcczKBbgnS+RtcuYMB8+oNzPK2/Hp3hanz8JmpATdmmgLgSaadVREkDm+e2giHwY3ZRkyjSIDDFA==} + engines: {node: '>= 0.4'} + dependencies: + function-bind: 1.1.2 + + /he@1.1.1: + resolution: {integrity: sha512-z/GDPjlRMNOa2XJiB4em8wJpuuBfrFOlYKTZxtpkdr1uPdibHI8rYA3MY0KDObpVyaes0e/aunid/t88ZI2EKA==} + hasBin: true + dev: false + + /he@1.2.0: + resolution: {integrity: sha512-F/1DnUGPopORZi0ni+CvrCgHQ5FyEAHRLSApuYWMmrbSwoN2Mn/7k+Gl38gJnR7yyDZk6WLXwiGod1JOWNDKGw==} + hasBin: true + dev: true + + /heap@0.2.5: + resolution: {integrity: sha512-G7HLD+WKcrOyJP5VQwYZNC3Z6FcQ7YYjEFiFoIj8PfEr73mu421o8B1N5DKUcc8K37EsJ2XXWA8DtrDz/2dReg==} + dev: false + + /hmac-drbg@1.0.1: + resolution: {integrity: sha512-Tti3gMqLdZfhOQY1Mzf/AanLiqh1WTiJgEj26ZuYQ9fbkLomzGchCws4FyrSd4VkpBfiNhaE1On+lOz894jvXg==} + dependencies: + hash.js: 1.1.7 + minimalistic-assert: 1.0.1 + minimalistic-crypto-utils: 1.0.1 + + /hoist-non-react-statics@2.5.5: + resolution: {integrity: sha512-rqcy4pJo55FTTLWt+bU8ukscqHeE/e9KWvsOW2b/a3afxQZhwkQdT1rPPCJ0rYXdj4vNcasY8zHTH+jF/qStxw==} + dev: false + + /hoist-non-react-statics@3.3.2: + resolution: {integrity: sha512-/gGivxi8JPKWNm/W0jSmzcMPpfpPLc3dY/6GxhX2hQ9iGj3aDfklV4ET7NjKpSinLpJ5vafa9iiGIEZg10SfBw==} + dependencies: + react-is: 16.13.1 + dev: false + + /home-or-tmp@2.0.0: + resolution: {integrity: sha512-ycURW7oUxE2sNiPVw1HVEFsW+ecOpJ5zaj7eC0RlwhibhRBod20muUN8qu/gzx956YrLolVvs1MTXwKgC2rVEg==} + engines: {node: '>=0.10.0'} + dependencies: + os-homedir: 1.0.2 + os-tmpdir: 1.0.2 + dev: true + + /homedir-polyfill@1.0.3: + resolution: {integrity: sha512-eSmmWE5bZTK2Nou4g0AI3zZ9rswp7GRKoKXS1BLUkvPviOqs4YTN1djQIqrXy9k5gEtdLPy86JjRwsNM9tnDcA==} + engines: {node: '>=0.10.0'} + dependencies: + parse-passwd: 1.0.0 + + /hosted-git-info@2.8.9: + resolution: {integrity: sha512-mxIDAb9Lsm6DoOJ7xH+5+X4y1LU/4Hi50L9C5sIswK3JzULS4bwk1FvjdBgvYR4bzT4tuUQiC15FE2f5HbLvYw==} + + /hpack.js@2.1.6: + resolution: {integrity: sha512-zJxVehUdMGIKsRaNt7apO2Gqp0BdqW5yaiGHXXmbpvxgBYVZnAql+BJb4RO5ad2MgpbZKn5G6nMnegrH1FcNYQ==} + dependencies: + inherits: 2.0.4 + obuf: 1.1.2 + readable-stream: 2.3.8 + wbuf: 1.7.3 + dev: true + + /html-element-map@1.3.1: + resolution: {integrity: sha512-6XMlxrAFX4UEEGxctfFnmrFaaZFNf9i5fNuV5wZ3WWQ4FVaNP1aX1LkX9j2mfEx1NpjeE/rL3nmgEn23GdFmrg==} + dependencies: + array.prototype.filter: 1.0.3 + call-bind: 1.0.5 + dev: true + + /html-encoding-sniffer@1.0.2: + resolution: {integrity: sha512-71lZziiDnsuabfdYiUeWdCVyKuqwWi23L8YeIgV9jSSZHCtb6wB1BKWooH7L3tn4/FuZJMVWyNaIDr4RGmaSYw==} + dependencies: + whatwg-encoding: 1.0.5 + dev: true + + /html-entities@1.4.0: + resolution: {integrity: sha512-8nxjcBcd8wovbeKx7h3wTji4e6+rhaVuPNpMqwWgnHh+N9ToqsCs6XztWRBPQ+UtzsoMAdKZtUENoVzU/EMtZA==} + dev: true + + /html-minifier-terser@5.1.1: + resolution: {integrity: sha512-ZPr5MNObqnV/T9akshPKbVgyOqLmy+Bxo7juKCfTfnjNniTAMdy4hz21YQqoofMBJD2kdREaqPPdThoR78Tgxg==} + engines: {node: '>=6'} + hasBin: true + dependencies: + camel-case: 4.1.2 + clean-css: 4.2.4 + commander: 4.1.1 + he: 1.2.0 + param-case: 3.0.4 + relateurl: 0.2.7 + terser: 4.8.1 + dev: true + + /html-webpack-plugin@4.5.2(webpack@4.46.0): + resolution: {integrity: sha512-q5oYdzjKUIPQVjOosjgvCHQOv9Ett9CYYHlgvJeXG0qQvdSojnBq4vAdQBwn1+yGveAwHCoe/rMR86ozX3+c2A==} + engines: {node: '>=6.9'} + peerDependencies: + webpack: ^4.0.0 || ^5.0.0 + dependencies: + '@types/html-minifier-terser': 5.1.2 + '@types/tapable': 1.0.12 + '@types/webpack': 4.41.38 + html-minifier-terser: 5.1.1 + loader-utils: 1.4.2 + lodash: 4.17.21 + pretty-error: 2.1.2 + tapable: 1.1.3 + util.promisify: 1.0.0 + webpack: 4.46.0(webpack-cli@3.3.12) + dev: true + + /htmlparser2@3.10.1: + resolution: {integrity: sha512-IgieNijUMbkDovyoKObU1DUhm1iwNYE/fuifEoEHfd1oZKZDaONBSkal7Y01shxsM49R4XaMdGez3WnF9UfiCQ==} + dependencies: + domelementtype: 1.3.1 + domhandler: 2.4.2 + domutils: 1.7.0 + entities: 1.1.2 + inherits: 2.0.4 + readable-stream: 3.6.2 + dev: false + + /htmlparser2@6.1.0: + resolution: {integrity: sha512-gyyPk6rgonLFEDGoeRgQNaEUvdJ4ktTmmUh/h2t7s+M8oPpIPxgNACWa+6ESR57kXstwqPiCut0V8NRpcwgU7A==} + dependencies: + domelementtype: 2.3.0 + domhandler: 4.3.1 + domutils: 2.8.0 + entities: 2.2.0 + dev: true + + /htmlparser2@8.0.2: + resolution: {integrity: sha512-GYdjWKDkbRLkZ5geuHs5NY1puJ+PXwP7+fHPRz06Eirsb9ugf6d8kkXav6ADhcODhFFPMIXyxkxSuMf3D6NCFA==} + dependencies: + domelementtype: 2.3.0 + domhandler: 5.0.3 + domutils: 3.1.0 + entities: 4.5.0 + dev: true + + /http-cache-semantics@3.8.1: + resolution: {integrity: sha512-5ai2iksyV8ZXmnZhHH4rWPoxxistEexSi5936zIQ1bnNTW5VnA85B6P/VpXiRM017IgRvb2kKo1a//y+0wSp3w==} + dev: false + + /http-deceiver@1.2.7: + resolution: {integrity: sha512-LmpOGxTfbpgtGVxJrj5k7asXHCgNZp5nLfp+hWc8QQRqtb7fUy6kRY3BO1h9ddF6yIPYUARgxGOwB42DnxIaNw==} + dev: true + + /http-errors@1.6.3: + resolution: {integrity: sha512-lks+lVC8dgGyh97jxvxeYTWQFvh4uw4yC12gVl63Cg30sjPX4wuGcdkICVXDAESr6OJGjqGA8Iz5mkeN6zlD7A==} + engines: {node: '>= 0.6'} + dependencies: + depd: 1.1.2 + inherits: 2.0.3 + setprototypeof: 1.1.0 + statuses: 1.5.0 + dev: true + + /http-errors@2.0.0: + resolution: {integrity: sha512-FtwrG/euBzaEjYeRqOgly7G0qviiXoJWnvEH2Z1plBdXgbyjv34pHTSb9zoeHMyDy33+DWy5Wt9Wo+TURtOYSQ==} + engines: {node: '>= 0.8'} + dependencies: + depd: 2.0.0 + inherits: 2.0.4 + setprototypeof: 1.2.0 + statuses: 2.0.1 + toidentifier: 1.0.1 + dev: true + + /http-parser-js@0.5.8: + resolution: {integrity: sha512-SGeBX54F94Wgu5RH3X5jsDtf4eHyRogWX1XGT3b4HuW3tQPM4AaBzoUji/4AAJNXCEOWZ5O0DgZmJw1947gD5Q==} + dev: true + + /http-proxy-middleware@0.19.1(debug@4.3.4)(supports-color@6.1.0): + resolution: {integrity: sha512-yHYTgWMQO8VvwNS22eLLloAkvungsKdKTLO8AJlftYIKNfJr3GK3zK0ZCfzDDGUBttdGc8xFy1mCitvNKQtC3Q==} + engines: {node: '>=4.0.0'} + dependencies: + http-proxy: 1.18.1(debug@4.3.4) + is-glob: 4.0.3 + lodash: 4.17.21 + micromatch: 3.1.10(supports-color@6.1.0) + transitivePeerDependencies: + - debug + - supports-color + dev: true + + /http-proxy@1.18.1(debug@4.3.4): + resolution: {integrity: sha512-7mz/721AbnJwIVbnaSv1Cz3Am0ZLT/UBwkC92VlxhXv/k/BBQfM2fXElQNC27BVGr0uwUpplYPQM9LnaBMR5NQ==} + engines: {node: '>=8.0.0'} + dependencies: + eventemitter3: 4.0.7 + follow-redirects: 1.15.4(debug@4.3.4) + requires-port: 1.0.0 + transitivePeerDependencies: + - debug + dev: true + + /http-signature@1.2.0: + resolution: {integrity: sha512-CAbnr6Rz4CYQkLYUtSNXxQPUH2gK8f3iWexVlsnMeD+GjlsQ0Xsy1cOX+mN3dtxYomRy21CiOzU8Uhw6OwncEQ==} + engines: {node: '>=0.8', npm: '>=1.3.7'} + dependencies: + assert-plus: 1.0.0 + jsprim: 1.4.2 + sshpk: 1.18.0 + + /https-browserify@1.0.0: + resolution: {integrity: sha512-J+FkSdyD+0mA0N+81tMotaRMfSL9SGi+xpD3T6YApKsc3bGSXJlfXri3VyFOeYkfLRQisDk1W+jIFFKBeUBbBg==} + + /https-proxy-agent@5.0.1: + resolution: {integrity: sha512-dFcAjpTQFgoLMzC2VwU+C/CbS7uRL0lWmxDITmqm7C+7F0Odmj6s9l6alZc6AELXhrnggM2CeWSXHGOdX2YtwA==} + engines: {node: '>= 6'} + dependencies: + agent-base: 6.0.2 + debug: 4.3.4(supports-color@6.1.0) + transitivePeerDependencies: + - supports-color + dev: true + + /hull.js@0.2.10: + resolution: {integrity: sha512-UO3W30HxhWgeSpNKCdXt00xkwjRTGmhQaoZNP8ll509Nl+DP9juXE3wRGizihuop08FSB4xtAWIbWSe+RxEoog==} + dev: false + + /humanize-url@1.0.1: + resolution: {integrity: sha512-RtgTzXCPVb/te+e82NDhAc5paj+DuKSratIGAr+v+HZK24eAQ8LMoBGYoL7N/O+9iEc33AKHg45dOMKw3DNldQ==} + engines: {node: '>=0.10.0'} + dependencies: + normalize-url: 1.9.1 + strip-url-auth: 1.0.1 + dev: true + + /hyphenate-style-name@1.0.4: + resolution: {integrity: sha512-ygGZLjmXfPHj+ZWh6LwbC37l43MhfztxetbFCoYTM2VjkIUpeHgSNn7QIyVFj7YQ1Wl9Cbw5sholVJPzWvC2MQ==} + dev: false + + /iconv-lite@0.4.24: + resolution: {integrity: sha512-v3MXnZAcvnywkTUEZomIActle7RXXeedOR31wwl7VlyoXO4Qi9arvSenNQWne1TcRwhCL1HwLI21bEqdpj8/rA==} + engines: {node: '>=0.10.0'} + dependencies: + safer-buffer: 2.1.2 + dev: true + + /iconv-lite@0.6.3: + resolution: {integrity: sha512-4fCk79wshMdzMp2rH06qWrJE4iolqLhCUH+OiuIgU++RB0+94NlDL81atO7GX55uUKueo0txHNtvEyI6D7WdMw==} + engines: {node: '>=0.10.0'} + dependencies: + safer-buffer: 2.1.2 + dev: true + + /icss-replace-symbols@1.1.0: + resolution: {integrity: sha512-chIaY3Vh2mh2Q3RGXttaDIzeiPvaVXJ+C4DAh/w3c37SKZ/U6PGMmuicR2EQQp9bKG8zLMCl7I+PtIoOOPp8Gg==} + dev: false + + /icss-utils@2.1.0: + resolution: {integrity: sha512-bsVoyn/1V4R1kYYjLcWLedozAM4FClZUdjE9nIr8uWY7xs78y9DATgwz2wGU7M+7z55KenmmTkN2DVJ7bqzjAA==} + dependencies: + postcss: 6.0.23 + dev: false + + /ieee754@1.2.1: + resolution: {integrity: sha512-dcyqhDvX1C46lXZcVqCpK+FtMRQVdIMN6/Df5js2zouUsqG7I6sFxitIC+7KYK29KdXOLHdu9zL4sFnoVQnqaA==} + + /iferr@0.1.5: + resolution: {integrity: sha512-DUNFN5j7Tln0D+TxzloUjKB+CtVu6myn0JEFak6dG18mNt9YkQ6lzGCdafwofISZ1lLF3xRHJ98VKy9ynkcFaA==} + + /ify-loader@1.0.4: + resolution: {integrity: sha512-fzWOWwsTZH3c2GPNJy1dndN5lk+oyXGPbg9YrHv/UwC/SmlxNEUAst6evF1H9ySGbezgBA42YGLSr1WzAwgx9w==} + dependencies: + bl: 1.2.3 + findup: 0.1.5 + from2-array: 0.0.4 + map-limit: 0.0.1 + multipipe: 0.3.1 + read-package-json: 2.1.2 + resolve: 1.22.8 + dev: false + + /ignore@4.0.6: + resolution: {integrity: sha512-cyFDKrqc/YdcWFniJhzI42+AzS+gNwmUzOSFcRCQYwySuBBBy/KjuxWLZ/FHEH6Moq1NizMOBWyTcv8O4OZIMg==} + engines: {node: '>= 4'} + dev: true + + /ignore@5.3.0: + resolution: {integrity: sha512-g7dmpshy+gD7mh88OC9NwSGTKoc3kyLAZQRU1mt53Aw/vnvfXnbC+F/7F7QoYVKbV+KNvJx8wArewKy1vXMtlg==} + engines: {node: '>= 4'} + + /immediate@3.0.6: + resolution: {integrity: sha512-XXOFtyqDjNDAQxVfYxuF7g9Il/IbWmmlQg2MYKOH8ExIT1qg6xc4zyS3HaEEATgs1btfzxq15ciUiY7gjSXRGQ==} + + /immutable@3.8.2: + resolution: {integrity: sha512-15gZoQ38eYjEjxkorfbcgBKBL6R7T459OuK+CpcWt7O3KF4uPCx2tD0uFETlUDIyo+1789crbMhTvQBSR5yBMg==} + engines: {node: '>=0.10.0'} + dev: false + + /import-cwd@2.1.0: + resolution: {integrity: sha512-Ew5AZzJQFqrOV5BTW3EIoHAnoie1LojZLXKcCQ/yTRyVZosBhK1x1ViYjHGf5pAFOq8ZyChZp6m/fSN7pJyZtg==} + engines: {node: '>=4'} + dependencies: + import-from: 2.1.0 + dev: false + + /import-fresh@2.0.0: + resolution: {integrity: sha512-eZ5H8rcgYazHbKC3PG4ClHNykCSxtAhxSSEM+2mb+7evD2CKF5V7c0dNum7AdpDh0ZdICwZY9sRSn8f+KH96sg==} + engines: {node: '>=4'} + dependencies: + caller-path: 2.0.0 + resolve-from: 3.0.0 + dev: false + + /import-fresh@3.3.0: + resolution: {integrity: sha512-veYYhQa+D1QBKznvhUHxb8faxlrwUnxseDAbAp457E0wLNio2bOSKnjYDhMj+YiAq61xrMGhQk9iXVk5FzgQMw==} + engines: {node: '>=6'} + dependencies: + parent-module: 1.0.1 + resolve-from: 4.0.0 + dev: true + + /import-from@2.1.0: + resolution: {integrity: sha512-0vdnLL2wSGnhlRmzHJAg5JHjt1l2vYhzJ7tNLGbeVg0fse56tpGaH0uzH+r9Slej+BSXXEHvBKDEnVSLLE9/+w==} + engines: {node: '>=4'} + dependencies: + resolve-from: 3.0.0 + dev: false + + /import-local@2.0.0: + resolution: {integrity: sha512-b6s04m3O+s3CGSbqDIyP4R6aAwAeYlVq9+WUWep6iHa8ETRf9yei1U48C5MmfJmV9AiLYYBKPMq/W+/WRpQmCQ==} + engines: {node: '>=6'} + hasBin: true + dependencies: + pkg-dir: 3.0.0 + resolve-cwd: 2.0.0 + + /imurmurhash@0.1.4: + resolution: {integrity: sha512-JmXMZ6wuvDmLiHEml9ykzqO6lwFbof0GG4IkcGaENdCRDDmMVnny7s5HsIgHCbaq0w2MyPhDqkhTUgS2LU2PHA==} + engines: {node: '>=0.8.19'} + + /indent-string@4.0.0: + resolution: {integrity: sha512-EdDDZu4A2OyIK7Lr/2zG+w5jmbuk1DVBnEwREQvBzspBJkCEbRa8GxU1lghYcaGJCnRWibjDXlq779X1/y5xwg==} + engines: {node: '>=8'} + + /infer-owner@1.0.4: + resolution: {integrity: sha512-IClj+Xz94+d7irH5qRyfJonOdfTzuDaifE6ZPWfx0N0+/ATZCbuTPq2prFl526urkQd90WyUKIh1DfBQ2hMz9A==} + + /inflight@1.0.6: + resolution: {integrity: sha512-k92I/b08q4wvFscXCLvqfsHCrjrF7yiXsQuIVvVE7N82W3+aqpzuUdBbfhWcy/FZR3/4IgflMgKLOsvPDrGCJA==} + dependencies: + once: 1.4.0 + wrappy: 1.0.2 + + /inherits@2.0.3: + resolution: {integrity: sha512-x00IRNXNy63jwGkJmzPigoySHbaqpNuzKbBOmzK+g2OdZpQ9w+sxCN+VSB3ja7IAge2OP2qpfxTjeNcyjmW1uw==} + + /inherits@2.0.4: + resolution: {integrity: sha512-k/vGaX4/Yla3WzyMCvTQOXYeIHvqOKtnqBduzTHpzpQZzAskKMhZ2K+EnBiSM9zGSoIFeMpXKxa4dYeZIQqewQ==} + + /ini@1.3.8: + resolution: {integrity: sha512-JV/yugV2uzW5iMRSiZAyDtQd+nxtUnjeLt0acNdw98kKLrvuRVyB80tsREOE7yvGVgalhZ6RNXCmEHkUKBKxew==} + + /inquirer@0.8.5: + resolution: {integrity: sha512-+rksrtdqQ8do7yOsmP5YIgbSdbZYuCIrnfH5vjFYGAr1XgJpMksb3rFZMJ3jiKuUyDVEA4MVDYbkA3ribJn3Tg==} + dependencies: + ansi-regex: 1.1.1 + chalk: 1.1.3 + cli-width: 1.1.1 + figures: 1.7.0 + lodash: 3.10.1 + readline2: 0.1.1 + rx: 2.5.3 + through: 2.3.8 + dev: false + + /inquirer@6.5.2: + resolution: {integrity: sha512-cntlB5ghuB0iuO65Ovoi8ogLHiWGs/5yNrtUcKjFhSSiVeAIVpD7koaSU9RM8mpXw5YDi9RdYXGQMaOURB7ycQ==} + engines: {node: '>=6.0.0'} + dependencies: + ansi-escapes: 3.2.0 + chalk: 2.4.2 + cli-cursor: 2.1.0 + cli-width: 2.2.1 + external-editor: 3.1.0 + figures: 2.0.0 + lodash: 4.17.21 + mute-stream: 0.0.7 + run-async: 2.4.1 + rxjs: 6.6.7 + string-width: 2.1.1 + strip-ansi: 5.2.0 + through: 2.3.8 + dev: true + + /internal-ip@4.3.0: + resolution: {integrity: sha512-S1zBo1D6zcsyuC6PMmY5+55YMILQ9av8lotMx447Bq6SAgo/sDK6y6uUKmuYhW7eacnIhFfsPmCNYdDzsnnDCg==} + engines: {node: '>=6'} + dependencies: + default-gateway: 4.2.0 + ipaddr.js: 1.9.1 + dev: true + + /internal-slot@1.0.6: + resolution: {integrity: sha512-Xj6dv+PsbtwyPpEflsejS+oIZxmMlV44zAhG479uYu89MsjcYOhCFnNyKrkJrihbsiasQyY0afoCl/9BLR65bg==} + engines: {node: '>= 0.4'} + dependencies: + get-intrinsic: 1.2.2 + hasown: 2.0.0 + side-channel: 1.0.4 + dev: true + + /interpret@1.4.0: + resolution: {integrity: sha512-agE4QfB2Lkp9uICn7BAqoscw4SZP9kTE2hxiFI3jBPmXJfdqiahTbUuKGsMoN2GtqL9AxhYioAcVvgsb1HvRbA==} + engines: {node: '>= 0.10'} + + /intl-format-cache@2.2.9: + resolution: {integrity: sha512-Zv/u8wRpekckv0cLkwpVdABYST4hZNTDaX7reFetrYTJwxExR2VyTqQm+l0WmL0Qo8Mjb9Tf33qnfj0T7pjxdQ==} + dev: false + + /intl-messageformat-parser@1.4.0: + resolution: {integrity: sha512-/XkqFHKezO6UcF4Av2/Lzfrez18R0jyw7kRFhSeB/YRakdrgSc9QfFZUwNJI9swMwMoNPygK1ArC5wdFSjPw+A==} + deprecated: We've written a new parser that's 6x faster and is backwards compatible. Please use @formatjs/icu-messageformat-parser + dev: false + + /intl-messageformat-parser@1.8.1: + resolution: {integrity: sha512-IMSCKVf0USrM/959vj3xac7s8f87sc+80Y/ipBzdKy4ifBv5Gsj2tZ41EAaURVg01QU71fYr77uA8Meh6kELbg==} + deprecated: We've written a new parser that's 6x faster and is backwards compatible. Please use @formatjs/icu-messageformat-parser + dev: false + + /intl-messageformat@2.2.0: + resolution: {integrity: sha512-I+tSvHnXqJYjDfNmY95tpFMj30yoakC6OXAo+wu/wTMy6tA/4Fd4mvV7Uzs4cqK/Ap29sHhwjcY+78a8eifcXw==} + dependencies: + intl-messageformat-parser: 1.4.0 + dev: false + + /intl-relativeformat@2.2.0: + resolution: {integrity: sha512-4bV/7kSKaPEmu6ArxXf9xjv1ny74Zkwuey8Pm01NH4zggPP7JHwg2STk8Y3JdspCKRDriwIyLRfEXnj2ZLr4Bw==} + deprecated: This package has been deprecated, please see migration guide at 'https://github.com/formatjs/formatjs/tree/master/packages/intl-relativeformat#migration-guide' + dependencies: + intl-messageformat: 2.2.0 + dev: false + + /intl@1.2.5: + resolution: {integrity: sha512-rK0KcPHeBFBcqsErKSpvZnrOmWOj+EmDkyJ57e90YWaQNqbcivcqmKDlHEeNprDWOsKzPsh1BfSpPQdDvclHVw==} + dev: false + + /into-stream@3.1.0: + resolution: {integrity: sha512-TcdjPibTksa1NQximqep2r17ISRiNE9fwlfbg3F8ANdvP5/yrFTew86VcO//jk4QTaMlbjypPBq76HN2zaKfZQ==} + engines: {node: '>=4'} + dependencies: + from2: 2.3.0 + p-is-promise: 1.1.0 + dev: false + + /invariant@2.2.4: + resolution: {integrity: sha512-phJfQVBuaJM5raOpJjSfkiD6BpbCE4Ns//LaXl6wGYtUBY83nWS6Rf9tXm2e8VaK60JEjYldbPif/A2B1C2gNA==} + dependencies: + loose-envify: 1.4.0 + + /invert-kv@1.0.0: + resolution: {integrity: sha512-xgs2NH9AE66ucSq4cNG1nhSFghr5l6tdL15Pk+jl46bmmBapgoaY/AacXyaDznAqmGL99TiLSQgO/XazFSKYeQ==} + engines: {node: '>=0.10.0'} + + /ip-regex@2.1.0: + resolution: {integrity: sha512-58yWmlHpp7VYfcdTwMTvwMmqx/Elfxjd9RXTDyMsbL7lLWmhMylLEqiYVLKuLzOZqVgiWXD9MfR62Vv89VRxkw==} + engines: {node: '>=4'} + dev: true + + /ip-regex@4.3.0: + resolution: {integrity: sha512-B9ZWJxHHOHUhUjCPrMpLD4xEq35bUTClHM1S6CBU5ixQnkZmwipwgc96vAd7AAGM9TGHvJR+Uss+/Ak6UphK+Q==} + engines: {node: '>=8'} + dev: true + + /ip@1.1.8: + resolution: {integrity: sha512-PuExPYUiu6qMBQb4l06ecm6T6ujzhmh+MeJcW9wa89PoAz5pvd4zPgN5WJV104mb6S2T1AwNIAaB70JNrLQWhg==} + dev: true + + /ipaddr.js@1.9.1: + resolution: {integrity: sha512-0KI/607xoxSToH7GjN1FfSbLoU0+btTicjsQSWQlh/hZykN8KpmMf7uYwPW3R+akZ6R/w18ZlXSHBYXiYUPO3g==} + engines: {node: '>= 0.10'} + dev: true + + /is-absolute-url@3.0.3: + resolution: {integrity: sha512-opmNIX7uFnS96NtPmhWQgQx6/NYFgsUXYMllcfzwWKUMwfo8kku1TvE6hkNcH+Q1ts5cMVrsY7j0bxXQDciu9Q==} + engines: {node: '>=8'} + dev: true + + /is-accessor-descriptor@1.0.1: + resolution: {integrity: sha512-YBUanLI8Yoihw923YeFUS5fs0fF2f5TSFTNiYAAzhhDscDa3lEqYuz1pDOEP5KvX94I9ey3vsqjJcLVFVU+3QA==} + engines: {node: '>= 0.10'} + dependencies: + hasown: 2.0.0 + + /is-arguments@1.1.1: + resolution: {integrity: sha512-8Q7EARjzEnKpt/PCD7e1cgUS0a6X8u5tdSiMqXhojOdoV9TsMsiO+9VLC5vAmO8N7/GmXn7yjR8qnA6bVAEzfA==} + engines: {node: '>= 0.4'} + dependencies: + call-bind: 1.0.5 + has-tostringtag: 1.0.0 + dev: true + + /is-array-buffer@3.0.2: + resolution: {integrity: sha512-y+FyyR/w8vfIRq4eQcM1EYgSTnmHXPqaF+IgzgraytCFq5Xh8lllDVmAZolPJiZttZLeFSINPYMaEJ7/vWUa1w==} + dependencies: + call-bind: 1.0.5 + get-intrinsic: 1.2.2 + is-typed-array: 1.1.12 + dev: true + + /is-arrayish@0.2.1: + resolution: {integrity: sha512-zz06S8t0ozoDXMG+ube26zeCTNXcKIPJZJi8hBrF4idCLms4CG9QtK7qBl1boi5ODzFpjswb5JPmHCbMpjaYzg==} + + /is-bigint@1.0.4: + resolution: {integrity: sha512-zB9CruMamjym81i2JZ3UMn54PKGsQzsJeo6xvN3HJJ4CAsQNB6iRutp2To77OfCNuoxspsIhzaPoO1zyCEhFOg==} + dependencies: + has-bigints: 1.0.2 + dev: true + + /is-binary-path@1.0.1: + resolution: {integrity: sha512-9fRVlXc0uCxEDj1nQzaWONSpbTfx0FmJfzHF7pwlI8DkWGoHBBea4Pg5Ky0ojwwxQmnSifgbKkI06Qv0Ljgj+Q==} + engines: {node: '>=0.10.0'} + dependencies: + binary-extensions: 1.13.1 + + /is-binary-path@2.1.0: + resolution: {integrity: sha512-ZMERYes6pDydyuGidse7OsHxtbI7WVeUEozgR/g7rd0xUimYNlvZRE/K2MgZTjWy725IfelLeVcEM97mmtRGXw==} + engines: {node: '>=8'} + requiresBuild: true + dependencies: + binary-extensions: 2.2.0 + optional: true + + /is-boolean-object@1.1.2: + resolution: {integrity: sha512-gDYaKHJmnj4aWxyj6YHyXVpdQawtVLHU5cb+eztPGczf6cjuTdwve5ZIEfgXqH4e57An1D1AKf8CZ3kYrQRqYA==} + engines: {node: '>= 0.4'} + dependencies: + call-bind: 1.0.5 + has-tostringtag: 1.0.0 + dev: true + + /is-buffer@1.1.6: + resolution: {integrity: sha512-NcdALwpXkTm5Zvvbk7owOUSvVvBKDgKP5/ewfXEznmQFfs4ZRmanOeKBTjRVjka3QFoN6XJ+9F3USqfHqTaU5w==} + + /is-builtin-module@1.0.0: + resolution: {integrity: sha512-C2wz7Juo5pUZTFQVer9c+9b4qw3I5T/CHQxQyhVu7BJel6C22FmsLIWsdseYyOw6xz9Pqy9eJWSkQ7+3iN1HVw==} + engines: {node: '>=0.10.0'} + dependencies: + builtin-modules: 1.1.1 + dev: true + + /is-callable@1.2.7: + resolution: {integrity: sha512-1BC0BVFhS/p0qtw6enp8e+8OD0UrK0oFLztSjNzhcKA3WDuJxxAPXzPuPtKkjEY9UUoEWlX/8fgKeu2S8i9JTA==} + engines: {node: '>= 0.4'} + dev: true + + /is-ci@1.2.1: + resolution: {integrity: sha512-s6tfsaQaQi3JNciBH6shVqEDvhGut0SUXr31ag8Pd8BBbVVlcGfWhpPmEOoM6RJ5TFhbypvf5yyRw/VXW1IiWg==} + hasBin: true + dependencies: + ci-info: 1.6.0 + dev: true + + /is-core-module@2.13.1: + resolution: {integrity: sha512-hHrIjvZsftOsvKSn2TRYl63zvxsgE0K+0mYMoH6gD4omR5IWB2KynivBQczo3+wF1cCkjzvptnI9Q0sPU66ilw==} + dependencies: + hasown: 2.0.0 + + /is-data-descriptor@1.0.1: + resolution: {integrity: sha512-bc4NlCDiCr28U4aEsQ3Qs2491gVq4V8G7MQyws968ImqjKuYtTJXrl7Vq7jsN7Ly/C3xj5KWFrY7sHNeDkAzXw==} + engines: {node: '>= 0.4'} + dependencies: + hasown: 2.0.0 + + /is-date-object@1.0.5: + resolution: {integrity: sha512-9YQaSxsAiSwcvS33MBk3wTCVnWK+HhF8VZR2jRxehM16QcVOdHqPn4VPHmRK4lSr38n9JriurInLcP90xsYNfQ==} + engines: {node: '>= 0.4'} + dependencies: + has-tostringtag: 1.0.0 + dev: true + + /is-descriptor@0.1.7: + resolution: {integrity: sha512-C3grZTvObeN1xud4cRWl366OMXZTj0+HGyk4hvfpx4ZHt1Pb60ANSXqCK7pdOTeUQpRzECBSTphqvD7U+l22Eg==} + engines: {node: '>= 0.4'} + dependencies: + is-accessor-descriptor: 1.0.1 + is-data-descriptor: 1.0.1 + + /is-descriptor@1.0.3: + resolution: {integrity: sha512-JCNNGbwWZEVaSPtS45mdtrneRWJFp07LLmykxeFV5F6oBvNF8vHSfJuJgoT472pSfk+Mf8VnlrspaFBHWM8JAw==} + engines: {node: '>= 0.4'} + dependencies: + is-accessor-descriptor: 1.0.1 + is-data-descriptor: 1.0.1 + + /is-directory@0.3.1: + resolution: {integrity: sha512-yVChGzahRFvbkscn2MlwGismPO12i9+znNruC5gVEntG3qu0xQMzsGg/JFbrsqDOHtHFPci+V5aP5T9I+yeKqw==} + engines: {node: '>=0.10.0'} + dev: false + + /is-dotfile@1.0.3: + resolution: {integrity: sha512-9YclgOGtN/f8zx0Pr4FQYMdibBiTaH3sn52vjYip4ZSf6C4/6RfTEZ+MR4GvKhCxdPh21Bg42/WL55f6KSnKpg==} + engines: {node: '>=0.10.0'} + dev: true + + /is-equal-shallow@0.1.3: + resolution: {integrity: sha512-0EygVC5qPvIyb+gSz7zdD5/AAoS6Qrx1e//6N4yv4oNm30kqvdmG66oZFWVlQHUWe5OjP08FuTw2IdT0EOTcYA==} + engines: {node: '>=0.10.0'} + dependencies: + is-primitive: 2.0.0 + dev: true + + /is-extendable@0.1.1: + resolution: {integrity: sha512-5BMULNob1vgFX6EjQw5izWDxrecWK9AM72rugNr0TFldMOi0fj6Jk+zeKIt0xGj4cEfQIJth4w3OKWOJ4f+AFw==} + engines: {node: '>=0.10.0'} + + /is-extendable@1.0.1: + resolution: {integrity: sha512-arnXMxT1hhoKo9k1LZdmlNyJdDDfy2v0fXjFlmok4+i8ul/6WlbVge9bhM74OpNPQPMGUToDtz+KXa1PneJxOA==} + engines: {node: '>=0.10.0'} + dependencies: + is-plain-object: 2.0.4 + + /is-extglob@1.0.0: + resolution: {integrity: sha512-7Q+VbVafe6x2T+Tu6NcOf6sRklazEPmBoB3IWk3WdGZM2iGUwU/Oe3Wtq5lSEkDTTlpp8yx+5t4pzO/i9Ty1ww==} + engines: {node: '>=0.10.0'} + dev: true + + /is-extglob@2.1.1: + resolution: {integrity: sha512-SbKbANkN603Vi4jEZv49LeVJMn4yGwsbzZworEoyEiutsN3nJYdbO36zfhGJ6QEDpOZIFkDtnq5JRxmvl3jsoQ==} + engines: {node: '>=0.10.0'} + + /is-finite@1.1.0: + resolution: {integrity: sha512-cdyMtqX/BOqqNBBiKlIVkytNHm49MtMlYyn1zxzvJKWmFMlGzm+ry5BBfYyeY9YmNKbRSo/o7OX9w9ale0wg3w==} + engines: {node: '>=0.10.0'} + dev: true + + /is-fullwidth-code-point@1.0.0: + resolution: {integrity: sha512-1pqUqRjkhPJ9miNq9SwMfdvi6lBJcd6eFxvfaivQhaH3SgisfiuudvFntdKOmxuee/77l+FPjKrQjWvmPjWrRw==} + engines: {node: '>=0.10.0'} + dependencies: + number-is-nan: 1.0.1 + + /is-fullwidth-code-point@2.0.0: + resolution: {integrity: sha512-VHskAKYM8RfSFXwee5t5cbN5PZeq1Wrh6qd5bkyiXIf6UQcN6w/A0eXM9r6t8d+GYOh+o6ZhiEnb88LN/Y8m2w==} + engines: {node: '>=4'} + + /is-function@1.0.2: + resolution: {integrity: sha512-lw7DUp0aWXYg+CBCN+JKkcE0Q2RayZnSvnZBlwgxHBQhqt5pZNVy4Ri7H9GmmXkdu7LUthszM+Tor1u/2iBcpQ==} + dev: false + + /is-glob@2.0.1: + resolution: {integrity: sha512-a1dBeB19NXsf/E0+FHqkagizel/LQw2DjSQpvQrj3zT+jYPpaUCryPnrQajXKFLCMuf4I6FhRpaGtw4lPrG6Eg==} + engines: {node: '>=0.10.0'} + dependencies: + is-extglob: 1.0.0 + dev: true + + /is-glob@3.1.0: + resolution: {integrity: sha512-UFpDDrPgM6qpnFNI+rh/p3bUaq9hKLZN8bMUWzxmcnZVS3omf4IPK+BrewlnWjO1WmUsMYuSjKh4UJuV4+Lqmw==} + engines: {node: '>=0.10.0'} + dependencies: + is-extglob: 2.1.1 + + /is-glob@4.0.3: + resolution: {integrity: sha512-xelSayHH36ZgE7ZWhli7pW34hNbNl8Ojv5KVmkJD4hBdD3th8Tfk9vYasLM+mXWOZhFkgZfxhLSnrwRr4elSSg==} + engines: {node: '>=0.10.0'} + dependencies: + is-extglob: 2.1.1 + + /is-in-browser@1.1.3: + resolution: {integrity: sha512-FeXIBgG/CPGd/WUxuEyvgGTEfwiG9Z4EKGxjNMRqviiIIfsmgrpnHLffEDdwUHqNva1VEW91o3xBT/m8Elgl9g==} + dev: false + + /is-natural-number@4.0.1: + resolution: {integrity: sha512-Y4LTamMe0DDQIIAlaer9eKebAlDSV6huy+TWhJVPlzZh2o4tRP5SQWFlLn5N0To4mDD22/qdOq+veo1cSISLgQ==} + dev: false + + /is-negative-zero@2.0.2: + resolution: {integrity: sha512-dqJvarLawXsFbNDeJW7zAz8ItJ9cd28YufuuFzh0G8pNHjJMnY08Dv7sYX2uF5UpQOwieAeOExEYAWWfu7ZZUA==} + engines: {node: '>= 0.4'} + dev: true + + /is-number-object@1.0.7: + resolution: {integrity: sha512-k1U0IRzLMo7ZlYIfzRu23Oh6MiIFasgpb9X76eqfFZAqwH44UI4KTBvBYIZ1dSL9ZzChTB9ShHfLkR4pdW5krQ==} + engines: {node: '>= 0.4'} + dependencies: + has-tostringtag: 1.0.0 + dev: true + + /is-number@2.1.0: + resolution: {integrity: sha512-QUzH43Gfb9+5yckcrSA0VBDwEtDUchrk4F6tfJZQuNzDJbEDB9cZNzSfXGQ1jqmdDY/kl41lUOWM9syA8z8jlg==} + engines: {node: '>=0.10.0'} + dependencies: + kind-of: 3.2.2 + dev: true + + /is-number@3.0.0: + resolution: {integrity: sha512-4cboCqIpliH+mAvFNegjZQ4kgKc3ZUhQVr3HvWbSh5q3WH2v82ct+T2Y1hdU5Gdtorx/cLifQjqCbL7bpznLTg==} + engines: {node: '>=0.10.0'} + dependencies: + kind-of: 3.2.2 + + /is-number@4.0.0: + resolution: {integrity: sha512-rSklcAIlf1OmFdyAqbnWTLVelsQ58uvZ66S/ZyawjWqIviTWCjg2PzVGw8WUA+nNuPTqb4wgA+NszrJ+08LlgQ==} + engines: {node: '>=0.10.0'} + dev: true + + /is-number@7.0.0: + resolution: {integrity: sha512-41Cifkg6e8TylSpdtTpeLVMqvSBEVzTttHvERD741+pnZ8ANv0004MRL43QKPDlK9cGvNp6NZWZUBlbGXYxxng==} + engines: {node: '>=0.12.0'} + requiresBuild: true + + /is-object@1.0.2: + resolution: {integrity: sha512-2rRIahhZr2UWb45fIOuvZGpFtz0TyOZLf32KxBbSoUCeZR495zCKlWUKKUByk3geS2eAs7ZAABt0Y/Rx0GiQGA==} + dev: false + + /is-path-cwd@2.2.0: + resolution: {integrity: sha512-w942bTcih8fdJPJmQHFzkS76NEP8Kzzvmw92cXsazb8intwLqPibPPdXf4ANdKV3rYMuuQYGIWtvz9JilB3NFQ==} + engines: {node: '>=6'} + dev: true + + /is-path-in-cwd@2.1.0: + resolution: {integrity: sha512-rNocXHgipO+rvnP6dk3zI20RpOtrAM/kzbB258Uw5BWr3TpXi861yzjo16Dn4hUox07iw5AyeMLHWsujkjzvRQ==} + engines: {node: '>=6'} + dependencies: + is-path-inside: 2.1.0 + dev: true + + /is-path-inside@2.1.0: + resolution: {integrity: sha512-wiyhTzfDWsvwAW53OBWF5zuvaOGlZ6PwYxAbPVDhpm+gM09xKQGjBq/8uYN12aDvMxnAnq3dxTyoSoRNmg5YFg==} + engines: {node: '>=6'} + dependencies: + path-is-inside: 1.0.2 + dev: true + + /is-path-inside@3.0.3: + resolution: {integrity: sha512-Fd4gABb+ycGAmKou8eMftCupSir5lRxqf4aD/vd0cD2qc4HL07OjCeuHMr8Ro4CoMaeCKDB0/ECBOVWjTwUvPQ==} + engines: {node: '>=8'} + dev: true + + /is-plain-obj@1.1.0: + resolution: {integrity: sha512-yvkRyxmFKEOQ4pNXCmJG5AEQNlXJS5LaONXo5/cLdTZdWvsZ1ioJEonLGAosKlMWE8lwUy/bJzMjcw8az73+Fg==} + engines: {node: '>=0.10.0'} + + /is-plain-object@2.0.4: + resolution: {integrity: sha512-h5PpgXkWitc38BBMYawTYMWJHFZJVnBquFE57xFpjB8pJFiF6gZ+bU+WyI/yqXiFR5mdLsgYNaPe8uao6Uv9Og==} + engines: {node: '>=0.10.0'} + dependencies: + isobject: 3.0.1 + + /is-posix-bracket@0.1.1: + resolution: {integrity: sha512-Yu68oeXJ7LeWNmZ3Zov/xg/oDBnBK2RNxwYY1ilNJX+tKKZqgPK+qOn/Gs9jEu66KDY9Netf5XLKNGzas/vPfQ==} + engines: {node: '>=0.10.0'} + dev: true + + /is-primitive@2.0.0: + resolution: {integrity: sha512-N3w1tFaRfk3UrPfqeRyD+GYDASU3W5VinKhlORy8EWVf/sIdDL9GAcew85XmktCfH+ngG7SRXEVDoO18WMdB/Q==} + engines: {node: '>=0.10.0'} + dev: true + + /is-regex@1.1.4: + resolution: {integrity: sha512-kvRdxDsxZjhzUX07ZnLydzS1TU/TJlTUHHY4YLL87e37oUA49DfkLqgy+VjFocowy29cKvcSiu+kIv728jTTVg==} + engines: {node: '>= 0.4'} + dependencies: + call-bind: 1.0.5 + has-tostringtag: 1.0.0 + dev: true + + /is-retry-allowed@1.2.0: + resolution: {integrity: sha512-RUbUeKwvm3XG2VYamhJL1xFktgjvPzL0Hq8C+6yrWIswDy3BIXGqCxhxkc30N9jqK311gVU137K8Ei55/zVJRg==} + engines: {node: '>=0.10.0'} + dev: false + + /is-shared-array-buffer@1.0.2: + resolution: {integrity: sha512-sqN2UDu1/0y6uvXyStCOzyhAjCSlHceFoMKJW8W9EU9cvic/QdsZ0kEU93HEy3IUEFZIiH/3w+AH/UQbPHNdhA==} + dependencies: + call-bind: 1.0.5 + dev: true + + /is-stream@1.1.0: + resolution: {integrity: sha512-uQPm8kcs47jx38atAcWTVxyltQYoPT68y9aWYdV6yWXSyW8mzSat0TL6CiWdZeCdF3KrAvpVtnHbTv4RN+rqdQ==} + engines: {node: '>=0.10.0'} + + /is-string@1.0.7: + resolution: {integrity: sha512-tE2UXzivje6ofPW7l23cjDOMa09gb7xlAqG6jG5ej6uPV32TlWP3NKPigtaGeHNu9fohccRYvIiZMfOOnOYUtg==} + engines: {node: '>= 0.4'} + dependencies: + has-tostringtag: 1.0.0 + dev: true + + /is-subset@0.1.1: + resolution: {integrity: sha512-6Ybun0IkarhmEqxXCNw/C0bna6Zb/TkfUX9UbwJtK6ObwAVCxmAP308WWTHviM/zAqXk05cdhYsUsZeGQh99iw==} + dev: true + + /is-symbol@1.0.4: + resolution: {integrity: sha512-C/CPBqKWnvdcxqIARxyOh4v1UUEOCHpgDa0WYgpKDFMszcrPcffg5uhwSgPCLD2WWxmq6isisz87tzT01tuGhg==} + engines: {node: '>= 0.4'} + dependencies: + has-symbols: 1.0.3 + dev: true + + /is-typed-array@1.1.12: + resolution: {integrity: sha512-Z14TF2JNG8Lss5/HMqt0//T9JeHXttXy5pH/DBU4vi98ozO2btxzq9MwYDZYnKwU8nRsz/+GVFVRDq3DkVuSPg==} + engines: {node: '>= 0.4'} + dependencies: + which-typed-array: 1.1.13 + dev: true + + /is-typedarray@1.0.0: + resolution: {integrity: sha512-cyA56iCMHAh5CdzjJIa4aohJyeO1YbwLi3Jc35MmRU6poroFjIGZzUzupGiRPOjgHg9TLu43xbpwXk523fMxKA==} + + /is-url@1.2.4: + resolution: {integrity: sha512-ITvGim8FhRiYe4IQ5uHSkj7pVaPDrCTkNd3yq3cV7iZAcJdHTUMPMEHcqSOy9xZ9qFenQCvi+2wjH9a1nXqHww==} + dev: true + + /is-utf8@0.2.1: + resolution: {integrity: sha512-rMYPYvCzsXywIsldgLaSoPlw5PfoB/ssr7hY4pLfcodrA5M/eArza1a9VmTiNIBNMjOGr1Ow9mTyU2o69U6U9Q==} + dev: true + + /is-weakref@1.0.2: + resolution: {integrity: sha512-qctsuLZmIQ0+vSSMfoVvyFe2+GSEvnmZ2ezTup1SBse9+twCCeial6EEi3Nc2KFcf6+qz2FBPnjXsk8xhKSaPQ==} + dependencies: + call-bind: 1.0.5 + dev: true + + /is-windows@1.0.2: + resolution: {integrity: sha512-eXK1UInq2bPmjyX6e3VHIzMLobc4J94i4AWn+Hpq3OU5KkrRC96OAcR3PRJ/pGu6m8TRnBHP9dkXQVsT/COVIA==} + engines: {node: '>=0.10.0'} + + /is-wsl@1.1.0: + resolution: {integrity: sha512-gfygJYZ2gLTDlmbWMI0CE2MwnFzSN/2SZfkMlItC4K/JBlsWVDB0bO6XhqcY13YXE7iMcAJnzTCJjPiTeJJ0Mw==} + engines: {node: '>=4'} + + /is2@2.0.9: + resolution: {integrity: sha512-rZkHeBn9Zzq52sd9IUIV3a5mfwBY+o2HePMh0wkGBM4z4qjvy2GwVxQ6nNXSfw6MmVP6gf1QIlWjiOavhM3x5g==} + engines: {node: '>=v0.10.0'} + dependencies: + deep-is: 0.1.4 + ip-regex: 4.3.0 + is-url: 1.2.4 + dev: true + + /isarray@1.0.0: + resolution: {integrity: sha512-VLghIWNM6ELQzo7zwmcg0NmTVyWKYjvIeM83yjp0wRDTmUnrM678fQbcKBo6n2CJEF0szoG//ytg+TKla89ALQ==} + + /isarray@2.0.5: + resolution: {integrity: sha512-xHjhDr3cNBK0BzdUJSPXZntQUx/mwMS5Rw4A7lPJ90XGAO6ISP/ePDNuo0vhqOZU+UD5JoodwCAAoZQd3FeAKw==} + + /isexe@2.0.0: + resolution: {integrity: sha512-RHxMLp9lnKHGHRng9QFhRCMbYAcVpn69smSGcq3f36xjgVVWThj4qqLbTLlq7Ssj8B+fIQ1EuCEGI2lKsyQeIw==} + + /isobject@2.1.0: + resolution: {integrity: sha512-+OUdGJlgjOBZDfxnDjYYG6zp487z0JGNQq3cYQYg5f5hKR+syHMsaztzGeml/4kGG55CSpKSpWTY+jYGgsHLgA==} + engines: {node: '>=0.10.0'} + dependencies: + isarray: 1.0.0 + + /isobject@3.0.1: + resolution: {integrity: sha512-WhB9zCku7EGTj/HQQRz5aUQEUeoQZH2bWcltRErOpymJ4boYE6wL9Tbr23krRPSZ+C5zqNSrSw+Cc7sZZ4b7vg==} + engines: {node: '>=0.10.0'} + + /isomorphic-fetch@2.2.1: + resolution: {integrity: sha512-9c4TNAKYXM5PRyVcwUZrF3W09nQ+sO7+jydgs4ZGW9dhsLG2VOlISJABombdQqQRXCwuYG3sYV/puGf5rp0qmA==} + dependencies: + node-fetch: 1.7.3 + whatwg-fetch: 3.6.20 + dev: true + + /isstream@0.1.2: + resolution: {integrity: sha512-Yljz7ffyPbrLpLngrMtZ7NduUgVvi6wG9RJ9IUcyCd59YQ911PBJphODUcbOVbqYfxe1wuYf/LJ8PauMRwsM/g==} + + /istanbul-api@1.3.7: + resolution: {integrity: sha512-4/ApBnMVeEPG3EkSzcw25wDe4N66wxwn+KKn6b47vyek8Xb3NBAcg4xfuQbS7BqcZuTX4wxfD5lVagdggR3gyA==} + dependencies: + async: 2.6.4 + fileset: 2.0.3 + istanbul-lib-coverage: 1.2.1 + istanbul-lib-hook: 1.2.2 + istanbul-lib-instrument: 1.10.2 + istanbul-lib-report: 1.1.5 + istanbul-lib-source-maps: 1.2.6 + istanbul-reports: 1.5.1 + js-yaml: 3.14.1 + mkdirp: 0.5.6 + once: 1.4.0 + transitivePeerDependencies: + - supports-color + dev: true + + /istanbul-lib-coverage@1.2.1: + resolution: {integrity: sha512-PzITeunAgyGbtY1ibVIUiV679EFChHjoMNRibEIobvmrCRaIgwLxNucOSimtNWUhEib/oO7QY2imD75JVgCJWQ==} + dev: true + + /istanbul-lib-hook@1.2.2: + resolution: {integrity: sha512-/Jmq7Y1VeHnZEQ3TL10VHyb564mn6VrQXHchON9Jf/AEcmQ3ZIiyD1BVzNOKTZf/G3gE+kiGK6SmpF9y3qGPLw==} + dependencies: + append-transform: 0.4.0 + dev: true + + /istanbul-lib-instrument@1.10.2: + resolution: {integrity: sha512-aWHxfxDqvh/ZlxR8BBaEPVSWDPUkGD63VjGQn3jcw8jCp7sHEMKcrj4xfJn/ABzdMEHiQNyvDQhqm5o8+SQg7A==} + dependencies: + babel-generator: 6.26.1 + babel-template: 6.26.0 + babel-traverse: 6.26.0 + babel-types: 6.26.0 + babylon: 6.18.0 + istanbul-lib-coverage: 1.2.1 + semver: 5.7.2 + transitivePeerDependencies: + - supports-color + dev: true + + /istanbul-lib-report@1.1.5: + resolution: {integrity: sha512-UsYfRMoi6QO/doUshYNqcKJqVmFe9w51GZz8BS3WB0lYxAllQYklka2wP9+dGZeHYaWIdcXUx8JGdbqaoXRXzw==} + dependencies: + istanbul-lib-coverage: 1.2.1 + mkdirp: 0.5.6 + path-parse: 1.0.7 + supports-color: 3.2.3 + dev: true + + /istanbul-lib-source-maps@1.2.6: + resolution: {integrity: sha512-TtbsY5GIHgbMsMiRw35YBHGpZ1DVFEO19vxxeiDMYaeOFOCzfnYVxvl6pOUIZR4dtPhAGpSMup8OyF8ubsaqEg==} + dependencies: + debug: 3.2.7(supports-color@6.1.0) + istanbul-lib-coverage: 1.2.1 + mkdirp: 0.5.6 + rimraf: 2.7.1 + source-map: 0.5.7 + transitivePeerDependencies: + - supports-color + dev: true + + /istanbul-reports@1.5.1: + resolution: {integrity: sha512-+cfoZ0UXzWjhAdzosCPP3AN8vvef8XDkWtTfgaN+7L3YTpNYITnCaEkceo5SEYy644VkHka/P1FvkWvrG/rrJw==} + dependencies: + handlebars: 4.7.8 + dev: true + + /isurl@1.0.0: + resolution: {integrity: sha512-1P/yWsxPlDtn7QeRD+ULKQPaIaN6yF368GZ2vDfv0AL0NwpStafjWCDDdn0k8wgFMWpVAqG7oJhxHnlud42i9w==} + engines: {node: '>= 4'} + dependencies: + has-to-string-tag-x: 1.4.1 + is-object: 1.0.2 + dev: false + + /javascript-natural-sort@0.7.1: + resolution: {integrity: sha512-nO6jcEfZWQXDhOiBtG2KvKyEptz7RVbpGP4vTD2hLBdmNQSsCiicO2Ioinv6UI4y9ukqnBpy+XZ9H6uLNgJTlw==} + dev: false + + /jest-changed-files@21.2.0: + resolution: {integrity: sha512-+lCNP1IZLwN1NOIvBcV5zEL6GENK6TXrDj4UxWIeLvIsIDa+gf6J7hkqsW2qVVt/wvH65rVvcPwqXdps5eclTQ==} + dependencies: + throat: 4.1.0 + dev: true + + /jest-cli@21.2.1: + resolution: {integrity: sha512-T1BzrbFxDIW/LLYQqVfo94y/hhaj1NzVQkZgBumAC+sxbjMROI7VkihOdxNR758iYbQykL2ZOWUBurFgkQrzdg==} + engines: {node: '>= 4'} + hasBin: true + dependencies: + ansi-escapes: 3.2.0 + chalk: 2.4.2 + glob: 7.2.3 + graceful-fs: 4.2.11 + is-ci: 1.2.1 + istanbul-api: 1.3.7 + istanbul-lib-coverage: 1.2.1 + istanbul-lib-instrument: 1.10.2 + istanbul-lib-source-maps: 1.2.6 + jest-changed-files: 21.2.0 + jest-config: 21.2.1 + jest-environment-jsdom: 21.2.1 + jest-haste-map: 21.2.0 + jest-message-util: 21.2.1 + jest-regex-util: 21.2.0 + jest-resolve-dependencies: 21.2.0 + jest-runner: 21.2.1 + jest-runtime: 21.2.1 + jest-snapshot: 21.2.1 + jest-util: 21.2.1 + micromatch: 2.3.11 + node-notifier: 5.4.5 + pify: 3.0.0 + slash: 1.0.0 + string-length: 2.0.0 + strip-ansi: 4.0.0 + which: 1.3.1 + worker-farm: 1.7.0 + yargs: 9.0.1 + transitivePeerDependencies: + - supports-color + dev: true + + /jest-config@21.2.1: + resolution: {integrity: sha512-fJru5HtlD/5l2o25eY9xT0doK3t2dlglrqoGpbktduyoI0T5CwuB++2YfoNZCrgZipTwPuAGonYv0q7+8yDc/A==} + dependencies: + chalk: 2.4.2 + glob: 7.2.3 + jest-environment-jsdom: 21.2.1 + jest-environment-node: 21.2.1 + jest-get-type: 21.2.0 + jest-jasmine2: 21.2.1 + jest-regex-util: 21.2.0 + jest-resolve: 21.2.0 + jest-util: 21.2.1 + jest-validate: 21.2.1 + pretty-format: 21.2.1 + dev: true + + /jest-diff@21.2.1: + resolution: {integrity: sha512-E5fu6r7PvvPr5qAWE1RaUwIh/k6Zx/3OOkZ4rk5dBJkEWRrUuSgbMt2EO8IUTPTd6DOqU3LW6uTIwX5FRvXoFA==} + dependencies: + chalk: 2.4.2 + diff: 3.5.0 + jest-get-type: 21.2.0 + pretty-format: 21.2.1 + dev: true + + /jest-docblock@21.2.0: + resolution: {integrity: sha512-5IZ7sY9dBAYSV+YjQ0Ovb540Ku7AO9Z5o2Cg789xj167iQuZ2cG+z0f3Uct6WeYLbU6aQiM2pCs7sZ+4dotydw==} + dev: true + + /jest-environment-jsdom@21.2.1: + resolution: {integrity: sha512-mecaeNh0eWmzNrUNMWARysc0E9R96UPBamNiOCYL28k7mksb1d0q6DD38WKP7ABffjnXyUWJPVaWRgUOivwXwg==} + dependencies: + jest-mock: 21.2.0 + jest-util: 21.2.1 + jsdom: 9.12.0 + dev: true + + /jest-environment-node@21.2.1: + resolution: {integrity: sha512-R211867wx9mVBVHzrjGRGTy5cd05K7eqzQl/WyZixR/VkJ4FayS8qkKXZyYnwZi6Rxo6WEV81cDbiUx/GfuLNw==} + dependencies: + jest-mock: 21.2.0 + jest-util: 21.2.1 + dev: true + + /jest-get-type@21.2.0: + resolution: {integrity: sha512-y2fFw3C+D0yjNSDp7ab1kcd6NUYfy3waPTlD8yWkAtiocJdBRQqNoRqVfMNxgj+IjT0V5cBIHJO0z9vuSSZ43Q==} + dev: true + + /jest-get-type@24.9.0: + resolution: {integrity: sha512-lUseMzAley4LhIcpSP9Jf+fTrQ4a1yHQwLNeeVa2cEmbCGeoZAtYPOIv8JaxLD/sUpKxetKGP+gsHl8f8TSj8Q==} + engines: {node: '>= 6'} + dev: true + + /jest-haste-map@21.2.0: + resolution: {integrity: sha512-5LhsY/loPH7wwOFRMs+PT4aIAORJ2qwgbpMFlbWbxfN0bk3ZCwxJ530vrbSiTstMkYLao6JwBkLhCJ5XbY7ZHw==} + dependencies: + fb-watchman: 2.0.2 + graceful-fs: 4.2.11 + jest-docblock: 21.2.0 + micromatch: 2.3.11 + sane: 2.5.2 + worker-farm: 1.7.0 + transitivePeerDependencies: + - supports-color + dev: true + + /jest-jasmine2@21.2.1: + resolution: {integrity: sha512-lw8FXXIEekD+jYNlStfgNsUHpfMWhWWCgHV7n0B7mA/vendH7vBFs8xybjQsDzJSduptBZJHqQX9SMssya9+3A==} + dependencies: + chalk: 2.4.2 + expect: 21.2.1 + graceful-fs: 4.2.11 + jest-diff: 21.2.1 + jest-matcher-utils: 21.2.1 + jest-message-util: 21.2.1 + jest-snapshot: 21.2.1 + p-cancelable: 0.3.0 + dev: true + + /jest-junit@7.0.0: + resolution: {integrity: sha512-ljUdO0hLyu0A92xk7R2Wet3kj99fmazTo+ZFYQP6b7AGOBxJUj8ZkJWzJ632ajpXko2Y5oNoGR2kvOwiDdu6hg==} + engines: {node: '>=6.0.0'} + dependencies: + jest-validate: 24.9.0 + mkdirp: 0.5.6 + strip-ansi: 4.0.0 + xml: 1.0.1 + dev: true + + /jest-matcher-utils@21.2.1: + resolution: {integrity: sha512-kn56My+sekD43dwQPrXBl9Zn9tAqwoy25xxe7/iY4u+mG8P3ALj5IK7MLHZ4Mi3xW7uWVCjGY8cm4PqgbsqMCg==} + dependencies: + chalk: 2.4.2 + jest-get-type: 21.2.0 + pretty-format: 21.2.1 + dev: true + + /jest-message-util@21.2.1: + resolution: {integrity: sha512-EbC1X2n0t9IdeMECJn2BOg7buOGivCvVNjqKMXTzQOu7uIfLml+keUfCALDh8o4rbtndIeyGU8/BKfoTr/LVDQ==} + dependencies: + chalk: 2.4.2 + micromatch: 2.3.11 + slash: 1.0.0 + dev: true + + /jest-mock@21.2.0: + resolution: {integrity: sha512-aZDfyVf0LEoABWiY6N0d+O963dUQSyUa4qgzurHR3TBDPen0YxKCJ6l2i7lQGh1tVdsuvdrCZ4qPj+A7PievCw==} + dev: true + + /jest-regex-util@21.2.0: + resolution: {integrity: sha512-BKQ1F83EQy0d9Jen/mcVX7D+lUt2tthhK/2gDWRgLDJRNOdRgSp1iVqFxP8EN1ARuypvDflRfPzYT8fQnoBQFQ==} + dev: true + + /jest-resolve-dependencies@21.2.0: + resolution: {integrity: sha512-ok8ybRFU5ScaAcfufIQrCbdNJSRZ85mkxJ1EhUp8Bhav1W1/jv/rl1Q6QoVQHObNxmKnbHVKrfLZbCbOsXQ+bQ==} + dependencies: + jest-regex-util: 21.2.0 + dev: true + + /jest-resolve@21.2.0: + resolution: {integrity: sha512-vefQ/Lr+VdNvHUZFQXWtOqHX3HEdOc2MtSahBO89qXywEbUxGPB9ZLP9+BHinkxb60UT2Q/tTDOS6rYc6Mwigw==} + dependencies: + browser-resolve: 1.11.3 + chalk: 2.4.2 + is-builtin-module: 1.0.0 + dev: true + + /jest-runner@21.2.1: + resolution: {integrity: sha512-Anb72BOQlHqF/zETqZ2K20dbYsnqW/nZO7jV8BYENl+3c44JhMrA8zd1lt52+N7ErnsQMd2HHKiVwN9GYSXmrg==} + dependencies: + jest-config: 21.2.1 + jest-docblock: 21.2.0 + jest-haste-map: 21.2.0 + jest-jasmine2: 21.2.1 + jest-message-util: 21.2.1 + jest-runtime: 21.2.1 + jest-util: 21.2.1 + pify: 3.0.0 + throat: 4.1.0 + worker-farm: 1.7.0 + transitivePeerDependencies: + - supports-color + dev: true + + /jest-runtime@21.2.1: + resolution: {integrity: sha512-6omlpA3+NSE+rHwD0PQjNEjZeb2z+oRmuehMfM1tWQVum+E0WV3pFt26Am0DUfQkkPyTABvxITRjCUclYgSOsA==} + hasBin: true + dependencies: + babel-core: 6.26.3 + babel-jest: 21.2.0(babel-core@6.26.3) + babel-plugin-istanbul: 4.1.6 + chalk: 2.4.2 + convert-source-map: 1.9.0 + graceful-fs: 4.2.11 + jest-config: 21.2.1 + jest-haste-map: 21.2.0 + jest-regex-util: 21.2.0 + jest-resolve: 21.2.0 + jest-util: 21.2.1 + json-stable-stringify: 1.1.0 + micromatch: 2.3.11 + slash: 1.0.0 + strip-bom: 3.0.0 + write-file-atomic: 2.4.3 + yargs: 9.0.1 + transitivePeerDependencies: + - supports-color + dev: true + + /jest-snapshot@21.2.1: + resolution: {integrity: sha512-bpaeBnDpdqaRTzN8tWg0DqOTo2DvD3StOemxn67CUd1p1Po+BUpvePAp44jdJ7Pxcjfg+42o4NHw1SxdCA2rvg==} + dependencies: + chalk: 2.4.2 + jest-diff: 21.2.1 + jest-matcher-utils: 21.2.1 + mkdirp: 0.5.6 + natural-compare: 1.4.0 + pretty-format: 21.2.1 + dev: true + + /jest-util@21.2.1: + resolution: {integrity: sha512-r20W91rmHY3fnCoO7aOAlyfC51x2yeV3xF+prGsJAUsYhKeV670ZB8NO88Lwm7ASu8SdH0S+U+eFf498kjhA4g==} + dependencies: + callsites: 2.0.0 + chalk: 2.4.2 + graceful-fs: 4.2.11 + jest-message-util: 21.2.1 + jest-mock: 21.2.0 + jest-validate: 21.2.1 + mkdirp: 0.5.6 + dev: true + + /jest-validate@21.2.1: + resolution: {integrity: sha512-k4HLI1rZQjlU+EC682RlQ6oZvLrE5SCh3brseQc24vbZTxzT/k/3urar5QMCVgjadmSO7lECeGdc6YxnM3yEGg==} + dependencies: + chalk: 2.4.2 + jest-get-type: 21.2.0 + leven: 2.1.0 + pretty-format: 21.2.1 + dev: true + + /jest-validate@24.9.0: + resolution: {integrity: sha512-HPIt6C5ACwiqSiwi+OfSSHbK8sG7akG8eATl+IPKaeIjtPOeBUd/g3J7DghugzxrGjI93qS/+RPKe1H6PqvhRQ==} + engines: {node: '>= 6'} + dependencies: + '@jest/types': 24.9.0 + camelcase: 5.3.1 + chalk: 2.4.2 + jest-get-type: 24.9.0 + leven: 3.1.0 + pretty-format: 24.9.0 + dev: true + + /jest@21.2.1: + resolution: {integrity: sha512-mXN0ppPvWYoIcC+R+ctKxAJ28xkt/Z5Js875padm4GbgUn6baeR5N4Ng6LjatIRpUQDZVJABT7Y4gucFjPryfw==} + engines: {node: '>= 4'} + hasBin: true + dependencies: + jest-cli: 21.2.1 + transitivePeerDependencies: + - supports-color + dev: true + + /js-base64@2.4.9: + resolution: {integrity: sha512-xcinL3AuDJk7VSzsHgb9DvvIXayBbadtMZ4HFPx8rUszbW1MuNMlwYVC4zzCZ6e1sqZpnNS5ZFYOhXqA39T7LQ==} + dev: false + + /js-md5@0.7.3: + resolution: {integrity: sha512-ZC41vPSTLKGwIRjqDh8DfXoCrdQIyBgspJVPXHBGu4nZlAEvG3nf+jO9avM9RmLiGakg7vz974ms99nEV0tmTQ==} + dev: false + + /js-tokens@3.0.2: + resolution: {integrity: sha512-RjTcuD4xjtthQkaWH7dFlH85L+QaVtSoOyGdZ3g6HFhS9dFNDfLyqgm2NFe2X6cQpeFmt0452FJjFG5UameExg==} + + /js-tokens@4.0.0: + resolution: {integrity: sha512-RdJUflcE3cUzKiMqQgsCu06FPu9UdIJO0beYbPhHN4k6apgJtifcoCtT9bcxOpYBtpD2kCM6Sbzg4CausW/PKQ==} + + /js-yaml@3.14.1: + resolution: {integrity: sha512-okMH7OXXJ7YrN9Ok3/SXrnu4iX9yOk+25nqX4imS2npuvTYDmo/QEZoqwZkYaIDk3jVvBOTOIEgEhaLOynBS9g==} + hasBin: true + dependencies: + argparse: 1.0.10 + esprima: 4.0.1 + + /jsbn@0.1.1: + resolution: {integrity: sha512-UVU9dibq2JcFWxQPA6KCqj5O42VOmAY3zQUfEKxU0KpTGXwNoCjkX1e13eHNvw/xPynt6pU0rZ1htjWTNTSXsg==} + + /jsdom@9.12.0: + resolution: {integrity: sha512-Qw4oqNxo4LyzkSqVIyCnEltTc4xV3g1GBaI88AvYTesWzmWHUSoMNmhBjUBa+6ldXIBJS9xoeLNJPfUAykTyxw==} + dependencies: + abab: 1.0.4 + acorn: 4.0.13 + acorn-globals: 3.1.0 + array-equal: 1.0.2 + content-type-parser: 1.0.2 + cssom: 0.3.8 + cssstyle: 0.2.37 + escodegen: 1.14.3 + html-encoding-sniffer: 1.0.2 + nwmatcher: 1.4.4 + parse5: 1.5.1 + request: 2.88.2 + sax: 1.3.0 + symbol-tree: 3.2.4 + tough-cookie: 2.5.0 + webidl-conversions: 4.0.2 + whatwg-encoding: 1.0.5 + whatwg-url: 4.8.0 + xml-name-validator: 2.0.1 + dev: true + + /jsesc@0.5.0: + resolution: {integrity: sha512-uZz5UnB7u4T9LvwmFqXii7pZSouaRPorGs5who1Ip7VO0wxanFvBL7GkM6dTHlgX+jhBApRetaWpnDabOeTcnA==} + hasBin: true + dev: true + + /jsesc@1.3.0: + resolution: {integrity: sha512-Mke0DA0QjUWuJlhsE0ZPPhYiJkRap642SmI/4ztCFaUs6V2AiH1sfecc+57NgaryfAA2VR3v6O+CSjC1jZJKOA==} + hasBin: true + dev: true + + /jsesc@2.5.2: + resolution: {integrity: sha512-OYu7XEzjkCQ3C5Ps3QIZsQfNpqoJyZZA99wd9aWd05NCtC5pWOkShK2mkL6HXQR6/Cy2lbNdPlZBpuQHXE63gA==} + engines: {node: '>=4'} + hasBin: true + + /json-buffer@3.0.0: + resolution: {integrity: sha512-CuUqjv0FUZIdXkHPI8MezCnFCdaTAacej1TZYulLoAg1h/PhwkdXFN4V/gzY4g+fMBCOV2xF+rp7t2XD2ns/NQ==} + dev: false + + /json-parse-better-errors@1.0.2: + resolution: {integrity: sha512-mrqyZKfX5EhL7hvqcV6WG1yYjnjeuYDzDhhcAAUrq8Po85NBQBJP+ZDUT75qZQ98IkUoBqdkExkukOU7Ts2wrw==} + + /json-parse-even-better-errors@2.3.1: + resolution: {integrity: sha512-xyFwyhro/JEof6Ghe2iz2NcXoj2sloNsWr/XsERDK/oiPCfaNhl5ONfp+jQdAZRQQ0IJWNzH9zIZF7li91kh2w==} + dev: false + + /json-schema-traverse@0.3.1: + resolution: {integrity: sha512-4JD/Ivzg7PoW8NzdrBSr3UFwC9mHgvI7Z6z3QGBsSHgKaRTUDmyZAAKJo2UbG1kUVfS9WS8bi36N49U1xw43DA==} + dev: false + + /json-schema-traverse@0.4.1: + resolution: {integrity: sha512-xbbCH5dCYU5T8LcEhhuh7HJ88HXuW3qsI3Y0zOZFKfZEHcpWiHU/Jxzk629Brsab/mMiHQti9wMP+845RPe3Vg==} + + /json-schema@0.4.0: + resolution: {integrity: sha512-es94M3nTIfsEPisRafak+HDLfHXnKBhV3vU5eqPcS3flIWqcxJWgXHXiey3YrpaNsanY5ei1VoYEbOzijuq9BA==} + + /json-stable-stringify-without-jsonify@1.0.1: + resolution: {integrity: sha512-Bdboy+l7tA3OGW6FjyFHWkP5LuByj1Tk33Ljyq0axyzdk9//JSi2u3fP1QSmd1KNwq6VOKYGlAu87CisVir6Pw==} + dev: true + + /json-stable-stringify@1.1.0: + resolution: {integrity: sha512-zfA+5SuwYN2VWqN1/5HZaDzQKLJHaBVMZIIM+wuYjdptkaQsqzDdqjqf+lZZJUuJq1aanHiY8LhH8LmH+qBYJA==} + engines: {node: '>= 0.4'} + dependencies: + call-bind: 1.0.5 + isarray: 2.0.5 + jsonify: 0.0.1 + object-keys: 1.1.1 + dev: true + + /json-stringify-safe@5.0.1: + resolution: {integrity: sha512-ZClg6AaYvamvYEE82d3Iyd3vSSIjQ+odgjaTzRuO3s7toCdFKczob2i0zCh7JE8kWn17yvAWhUVxvqGwUalsRA==} + + /json5@0.5.1: + resolution: {integrity: sha512-4xrs1aW+6N5DalkqSVA8fxh458CXvR99WU8WLKmq4v8eWAL86Xo3BVqyd3SkA9wEVjCMqyvvRRkshAdOnBp5rw==} + hasBin: true + dev: true + + /json5@1.0.2: + resolution: {integrity: sha512-g1MWMLBiz8FKi1e4w0UyVL3w+iJceWAFBAaBnnGKOpNa5f8TLktkbre1+s6oICydWAm+HRUGTmI+//xv2hvXYA==} + hasBin: true + dependencies: + minimist: 1.2.8 + + /json5@2.2.3: + resolution: {integrity: sha512-XmOWe7eyHYH14cLdVPoyg+GOH3rYX++KpzrylJwSW98t3Nk+U8XOl8FWKOgwtzdb8lXGf6zYwDUzeHMWfxasyg==} + engines: {node: '>=6'} + hasBin: true + + /jsonfile@4.0.0: + resolution: {integrity: sha512-m6F1R3z8jjlf2imQHS2Qez5sjKWQzbuuhuJ/FKYFRZvPE3PuHcSMVZzfsLhGVOkfd20obL5SWEBew5ShlquNxg==} + optionalDependencies: + graceful-fs: 4.2.11 + + /jsonify@0.0.1: + resolution: {integrity: sha512-2/Ki0GcmuqSrgFyelQq9M05y7PS0mEwuIzrf3f1fPqkVDVRvZrPZtVSMHxdgo8Aq0sxAOb/cr2aqqA3LeWHVPg==} + dev: true + + /jsprim@1.4.2: + resolution: {integrity: sha512-P2bSOMAc/ciLz6DzgjVlGJP9+BrJWu5UDGK70C2iweC5QBIeFf0ZXRvGjEj2uYgrY2MkAAhsSWHDWlFtEroZWw==} + engines: {node: '>=0.6.0'} + dependencies: + assert-plus: 1.0.0 + extsprintf: 1.3.0 + json-schema: 0.4.0 + verror: 1.10.0 + + /jsx-ast-utils@3.3.5: + resolution: {integrity: sha512-ZZow9HBI5O6EPgSJLUb8n2NKgmVWTwCvHGwFuJlMjvLFqlGG6pjirPhtdsseaLZjSibD8eegzmYpUZwoIlj2cQ==} + engines: {node: '>=4.0'} + dependencies: + array-includes: 3.1.7 + array.prototype.flat: 1.3.2 + object.assign: 4.1.5 + object.values: 1.1.7 + dev: true + + /jszip@3.1.5: + resolution: {integrity: sha512-5W8NUaFRFRqTOL7ZDDrx5qWHJyBXy6velVudIzQUSoqAAYqzSh2Z7/m0Rf1QbmQJccegD0r+YZxBjzqoBiEeJQ==} + dependencies: + core-js: 2.3.0 + es6-promise: 3.0.2 + lie: 3.1.1 + pako: 1.0.11 + readable-stream: 2.0.6 + dev: false + + /jszip@3.10.1: + resolution: {integrity: sha512-xXDvecyTpGLrqFrvkrUSoxxfJI5AH7U8zxxtVclpsUtMCq4JQ290LY8AW5c7Ggnr/Y/oK+bQMbqK2qmtk3pN4g==} + dependencies: + lie: 3.3.0 + pako: 1.0.11 + readable-stream: 2.3.8 + setimmediate: 1.0.5 + + /keymirror@0.1.1: + resolution: {integrity: sha512-vIkZAFWoDijgQT/Nvl2AHCMmnegN2ehgTPYuyy2hWQkQSntI0S7ESYqdLkoSe1HyEBFHHkCgSIvVdSEiWwKvCg==} + dev: false + + /keyv@3.0.0: + resolution: {integrity: sha512-eguHnq22OE3uVoSYG0LVWNP+4ppamWr9+zWBe1bsNcovIMy6huUJFPgy4mGwCd/rnl3vOLGW1MTlu4c57CT1xA==} + dependencies: + json-buffer: 3.0.0 + dev: false + + /killable@1.0.1: + resolution: {integrity: sha512-LzqtLKlUwirEUyl/nicirVmNiPvYs7l5n8wOPP7fyJVpUPkvCnW/vuiXGpylGUlnPDnB7311rARzAt3Mhswpjg==} + dev: true + + /kind-of@3.2.2: + resolution: {integrity: sha512-NOW9QQXMoZGg/oqnVNoNTTIFEIid1627WCffUBJEdMxYApq7mNE7CpzucIPc+ZQg25Phej7IJSmX3hO+oblOtQ==} + engines: {node: '>=0.10.0'} + dependencies: + is-buffer: 1.1.6 + + /kind-of@4.0.0: + resolution: {integrity: sha512-24XsCxmEbRwEDbz/qz3stgin8TTzZ1ESR56OMCN0ujYg+vRutNSiOj9bHH9u85DKgXguraugV5sFuvbD4FW/hw==} + engines: {node: '>=0.10.0'} + dependencies: + is-buffer: 1.1.6 + + /kind-of@6.0.3: + resolution: {integrity: sha512-dcS1ul+9tmeD95T+x28/ehLgd9mENa3LsvDTtzm3vyBEO7RPptvAD+t44WVXaUjTBRcrpFeFlC8WCruUR456hw==} + engines: {node: '>=0.10.0'} + + /lcid@1.0.0: + resolution: {integrity: sha512-YiGkH6EnGrDGqLMITnGjXtGmNtjoXw9SVUzcaos8RBi7Ps0VBylkq+vOcY9QE5poLasPCR849ucFUkl0UzUyOw==} + engines: {node: '>=0.10.0'} + dependencies: + invert-kv: 1.0.0 + + /leven@2.1.0: + resolution: {integrity: sha512-nvVPLpIHUxCUoRLrFqTgSxXJ614d8AgQoWl7zPe/2VadE8+1dpU3LBhowRuBAcuwruWtOdD8oYC9jDNJjXDPyA==} + engines: {node: '>=0.10.0'} + dev: true + + /leven@3.1.0: + resolution: {integrity: sha512-qsda+H8jTaUaN/x5vzW2rzc+8Rw4TAQ/4KjB46IwK5VH+IlVeeeje/EoZRpiXvIqjFgK84QffqPztGI3VBLG1A==} + engines: {node: '>=6'} + dev: true + + /levn@0.3.0: + resolution: {integrity: sha512-0OO4y2iOHix2W6ujICbKIaEQXvFQHue65vUG3pb5EUomzPI90z9hsA1VsO/dbIIpC53J8gxM9Q4Oho0jrCM/yA==} + engines: {node: '>= 0.8.0'} + dependencies: + prelude-ls: 1.1.2 + type-check: 0.3.2 + + /lie@3.1.1: + resolution: {integrity: sha512-RiNhHysUjhrDQntfYSfY4MU24coXXdEOgw9WGcKHNeEwffDYbF//u87M1EWaMGzuFoSbqW0C9C6lEEhDOAswfw==} + dependencies: + immediate: 3.0.6 + dev: false + + /lie@3.3.0: + resolution: {integrity: sha512-UaiMJzeWRlEujzAuw5LokY1L5ecNQYZKfmyZ9L7wDHb/p5etKaxXhohBcrw0EYby+G/NA52vRSN4N39dxHAIwQ==} + dependencies: + immediate: 3.0.6 + + /linebreak@0.3.0: + resolution: {integrity: sha512-zt8pzlM3oq4moDN8U5mP1SbZ44yKV6dXCu44Ez6iTXmxUl8/jRFWeho2SDqL5YDBv0TBKPgU/XGovZwnXAKlOQ==} + dependencies: + base64-js: 0.0.8 + brfs: 1.6.1 + unicode-trie: 0.3.1 + dev: false + + /load-json-file@1.1.0: + resolution: {integrity: sha512-cy7ZdNRXdablkXYNI049pthVeXFurRyb9+hA/dZzerZ0pGTx42z+y+ssxBaVV2l70t1muq5IdKhn4UtcoGUY9A==} + engines: {node: '>=0.10.0'} + dependencies: + graceful-fs: 4.2.11 + parse-json: 2.2.0 + pify: 2.3.0 + pinkie-promise: 2.0.1 + strip-bom: 2.0.0 + dev: true + + /load-json-file@2.0.0: + resolution: {integrity: sha512-3p6ZOGNbiX4CdvEd1VcE6yi78UrGNpjHO33noGwHCnT/o2fyllJDepsm8+mFFv/DvtwFHht5HIHSyOy5a+ChVQ==} + engines: {node: '>=4'} + dependencies: + graceful-fs: 4.2.11 + parse-json: 2.2.0 + pify: 2.3.0 + strip-bom: 3.0.0 + dev: true + + /load-json-file@4.0.0: + resolution: {integrity: sha512-Kx8hMakjX03tiGTLAIdJ+lL0htKnXjEZN6hk/tozf/WOuYGdZBJrZ+rCJRbVCugsjB3jMLn9746NsQIf5VjBMw==} + engines: {node: '>=4'} + dependencies: + graceful-fs: 4.2.11 + parse-json: 4.0.0 + pify: 3.0.0 + strip-bom: 3.0.0 + dev: true + + /loader-runner@2.4.0: + resolution: {integrity: sha512-Jsmr89RcXGIwivFY21FcRrisYZfvLMTWx5kOLc+JTxtpBOG6xML0vzbc6SEQG2FO9/4Fc3wW4LVcB5DmGflaRw==} + engines: {node: '>=4.3.0 <5.0.0 || >=5.10'} + + /loader-utils@1.4.2: + resolution: {integrity: sha512-I5d00Pd/jwMD2QCduo657+YM/6L3KZu++pmX9VFncxaxvHcru9jx1lBaFft+r4Mt2jK0Yhp41XlRAihzPxHNCg==} + engines: {node: '>=4.0.0'} + dependencies: + big.js: 5.2.2 + emojis-list: 3.0.0 + json5: 1.0.2 + + /loader-utils@2.0.4: + resolution: {integrity: sha512-xXqpXoINfFhgua9xiqD8fPFHgkoq1mmmpE92WlDbm9rNRd/EbRb+Gqf908T2DMfuHjjJlksiK2RbHVOdD/MqSw==} + engines: {node: '>=8.9.0'} + dependencies: + big.js: 5.2.2 + emojis-list: 3.0.0 + json5: 2.2.3 + + /localforage@1.10.0: + resolution: {integrity: sha512-14/H1aX7hzBBmmh7sGPd+AOMkkIrHM3Z1PAyGgZigA1H1p5O5ANnMyWzvpAETtG68/dC4pC0ncy3+PPGzXZHPg==} + dependencies: + lie: 3.1.1 + dev: false + + /locate-path@2.0.0: + resolution: {integrity: sha512-NCI2kiDkyR7VeEKm27Kda/iQHyKJe1Bu0FlTbYp3CqJu+9IFe9bLyAjMxf5ZDDbEg+iMPzB5zYyUTSm8wVTKmA==} + engines: {node: '>=4'} + dependencies: + p-locate: 2.0.0 + path-exists: 3.0.0 + dev: true + + /locate-path@3.0.0: + resolution: {integrity: sha512-7AO748wWnIhNqAuaty2ZWHkQHRSNfPVIsPIfwEOWO22AmaoVrWavlOcMR5nzTLNYvp36X220/maaRsrec1G65A==} + engines: {node: '>=6'} + dependencies: + p-locate: 3.0.0 + path-exists: 3.0.0 + + /locate-path@5.0.0: + resolution: {integrity: sha512-t7hw9pI+WvuwNJXwk5zVHpyhIqzg2qTlklJOf0mVxGSbe3Fp2VieZcduNYjaLDoy6p9uGpQEGWG87WpMKlNq8g==} + engines: {node: '>=8'} + dependencies: + p-locate: 4.1.0 + + /lodash-es@4.17.21: + resolution: {integrity: sha512-mKnC+QJ9pWVzv+C4/U3rRsHapFfHvQFoFB92e52xeyGMcX6/OlIl78je1u8vePzYZSkkogMPJ2yjxxsb89cxyw==} + dev: false + + /lodash._getnative@3.9.1: + resolution: {integrity: sha512-RrL9VxMEPyDMHOd9uFbvMe8X55X16/cGM5IgOKgRElQZutpX89iS6vwl64duTV1/16w5JY7tuFNXqoekmh1EmA==} + dev: false + + /lodash.bindall@4.4.0: + resolution: {integrity: sha512-NQ+QvFohS2gPbWpyLfyuiF0ZQA3TTaJ+n0XDID5jwtMZBKE32gN5vSyy7xBVsqvJkvT/UY9dvHXIk9tZmBVF3g==} + dev: false + + /lodash.debounce@3.1.1: + resolution: {integrity: sha512-lcmJwMpdPAtChA4hfiwxTtgFeNAaow701wWUgVUqeD0XJF7vMXIN+bu/2FJSGxT0NUbZy9g9VFrlOFfPjl+0Ew==} + dependencies: + lodash._getnative: 3.9.1 + dev: false + + /lodash.debounce@4.0.8: + resolution: {integrity: sha512-FT1yDzDYEoYWhnSGnpE/4Kj1fLZkDFyqRb7fNt6FdYOSxlUWAtp42Eh6Wb0rGIv/m9Bgo7x4GhQbm5Ys4SG5ow==} + + /lodash.defaultsdeep@4.6.1: + resolution: {integrity: sha512-3j8wdDzYuWO3lM3Reg03MuQR957t287Rpcxp1njpEa8oDrikb+FwGdW3n+FELh/A6qib6yPit0j/pv9G/yeAqA==} + dev: true + + /lodash.escape@4.0.1: + resolution: {integrity: sha512-nXEOnb/jK9g0DYMr1/Xvq6l5xMD7GDG55+GSYIYmS0G4tBk/hURD4JR9WCavs04t33WmJx9kCyp9vJ+mr4BOUw==} + dev: true + + /lodash.flattendeep@4.4.0: + resolution: {integrity: sha512-uHaJFihxmJcEX3kT4I23ABqKKalJ/zDrDg0lsFtc1h+3uw49SIJ5beyhx5ExVRti3AvKoOJngIj7xz3oylPdWQ==} + dev: true + + /lodash.isequal@4.5.0: + resolution: {integrity: sha512-pDo3lu8Jhfjqls6GkMgpahsF9kCyayhgykjyLMNFTKWrpVdAQtYyB4muAMWozBB4ig/dtWAmsMxLEI8wuz+DYQ==} + dev: true + + /lodash.isplainobject@4.0.6: + resolution: {integrity: sha512-oSXzaWypCMHkPC3NvBEaPHf0KsA5mvPrOPgQWDsbg8n7orZ290M0BmC/jgRZ4vcJ6DTAhjrsSYgdsW/F+MFOBA==} + dev: true + + /lodash.omit@4.5.0: + resolution: {integrity: sha512-XeqSp49hNGmlkj2EJlfrQFIzQ6lXdNro9sddtQzcJY8QaoC2GO0DT7xaIokHeyM+mIT0mPMlPvkYzg2xCuHdZg==} + dev: false + + /lodash.throttle@3.0.4: + resolution: {integrity: sha512-dRU/xiF4W8a521NYnQosG5drDqv4+hp3ND6yWNJUMnwO1E87Q/A7oc9M/g6pk29K9U3j/ZWhM3BAQZyr/P6TTQ==} + dependencies: + lodash.debounce: 3.1.1 + dev: false + + /lodash.throttle@4.0.1: + resolution: {integrity: sha512-vEeVrketgBFJ268V478NKyLk142uvnlFHuRHUUcu5NhsMQQpTs5EIGZduGNqdJOOhnb+Rwkz0XvfQuwOYzRo1Q==} + dependencies: + lodash.debounce: 4.0.8 + dev: false + + /lodash.unescape@4.0.1: + resolution: {integrity: sha512-DhhGRshNS1aX6s5YdBE3njCCouPgnG29ebyHvImlZzXZf2SHgt+J08DHgytTPnpywNbO1Y8mNUFyQuIDBq2JZg==} + dev: true + + /lodash@3.10.1: + resolution: {integrity: sha512-9mDDwqVIma6OZX79ZlDACZl8sBm0TEnkf99zV3iMA4GzkIT/9hiqP5mY0HoT1iNLCrKc/R1HByV+yJfRWVJryQ==} + dev: false + + /lodash@4.17.21: + resolution: {integrity: sha512-v2kDEe57lecTulaDIuNTPy3Ry4gLGJ6Z1O3vE1krgXZNrsQ+LFTGHVxVjcXPs17LhbZVGedAJv8XZ1tvj5FvSg==} + + /loglevel@1.8.1: + resolution: {integrity: sha512-tCRIJM51SHjAayKwC+QAg8hT8vg6z7GSgLJKGvzuPb1Wc+hLzqtuVLxp6/HzSPOozuK+8ErAhy7U/sVzw8Dgfg==} + engines: {node: '>= 0.6.0'} + dev: true + + /lookup-closest-locale@6.2.0: + resolution: {integrity: sha512-/c2kL+Vnp1jnV6K6RpDTHK3dgg0Tu2VVp+elEiJpjfS1UyY7AjOYHohRug6wT0OpoX2qFgNORndE9RqesfVxWQ==} + dev: false + + /loose-envify@1.4.0: + resolution: {integrity: sha512-lyuxPGr/Wfhrlem2CL/UcnUc1zcqKAImBDzukY7Y5F/yQiNdko6+fRLevlw1HgMySw7f611UIY408EtxRSoK3Q==} + hasBin: true + dependencies: + js-tokens: 4.0.0 + + /lower-case@2.0.2: + resolution: {integrity: sha512-7fm3l3NAF9WfN6W3JOmf5drwpVqX78JtoGJ3A6W0a6ZnldM41w2fV5D490psKFTpMds8TJse/eHLFFsNHHjHgg==} + dependencies: + tslib: 2.6.2 + dev: true + + /lowercase-keys@1.0.0: + resolution: {integrity: sha512-RPlX0+PHuvxVDZ7xX+EBVAp4RsVxP/TdDSN2mJYdiq1Lc4Hz7EUSjUI7RZrKKlmrIzVhf6Jo2stj7++gVarS0A==} + engines: {node: '>=0.10.0'} + dev: false + + /lowercase-keys@1.0.1: + resolution: {integrity: sha512-G2Lj61tXDnVFFOi8VZds+SoQjtQC3dgokKdDG2mTm1tx4m50NUHBOZSBwQQHyy0V12A0JTG4icfZQH+xPyh8VA==} + engines: {node: '>=0.10.0'} + dev: false + + /lru-cache@4.1.5: + resolution: {integrity: sha512-sWZlbEP2OsHNkXrMl5GYk/jKk70MBng6UU4YI/qGDYbgf6YbP4EvmqISbXCoJiRKs+1bSpFHVgQxvJ17F2li5g==} + dependencies: + pseudomap: 1.0.2 + yallist: 2.1.2 + dev: true + + /lru-cache@5.1.1: + resolution: {integrity: sha512-KpNARQA3Iwv+jTA0utUVVbrh+Jlrr1Fv0e56GGzAFOXN7dk/FviaDW8LHmK52DlcH4WP2n6gI8vN1aesBFgo9w==} + dependencies: + yallist: 3.1.1 + + /lru-cache@6.0.0: + resolution: {integrity: sha512-Jo6dJ04CmSjuznwJSS3pUeWmd/H0ffTlkXXgwZi+eq1UCmqQwCh+eLsYOYCwY991i2Fah4h1BEMCx4qThGbsiA==} + engines: {node: '>=10'} + dependencies: + yallist: 4.0.0 + dev: false + + /lz-string@1.5.0: + resolution: {integrity: sha512-h5bgJWpxJNswbU7qCrV0tIKQCaS3blPDrqKWx+QxzuzL1zGUzij9XCWLrSLsJPu5t+eWA/ycetzYAO5IOMcWAQ==} + hasBin: true + dev: false + + /magic-string@0.22.5: + resolution: {integrity: sha512-oreip9rJZkzvA8Qzk9HFs8fZGF/u7H/gtrE8EN6RjKJ9kh2HlC+yQ2QezifqTZfGyiuAV0dRv5a+y/8gBb1m9w==} + dependencies: + vlq: 0.2.3 + dev: false + + /make-dir@1.3.0: + resolution: {integrity: sha512-2w31R7SJtieJJnQtGc7RVL2StM2vGYVfqUOvUDxH6bC6aJTxPxTF0GnIgCyu7tjockiUWAYQRbxa7vKn34s5sQ==} + engines: {node: '>=4'} + dependencies: + pify: 3.0.0 + + /make-dir@2.1.0: + resolution: {integrity: sha512-LS9X+dc8KLxXCb8dni79fLIIUA5VyZoyjSMCwTluaXA0o27cCK0bhXkpgw+sTXVpPy/lSO57ilRixqk0vDmtRA==} + engines: {node: '>=6'} + dependencies: + pify: 4.0.1 + semver: 5.7.2 + + /make-dir@3.1.0: + resolution: {integrity: sha512-g3FeP20LNwhALb/6Cz6Dd4F2ngze0jz7tbzrD2wAV+o9FeNHe4rL+yK2md0J/fiSf1sa1ADhXqi5+oVwOM/eGw==} + engines: {node: '>=8'} + dependencies: + semver: 6.3.1 + + /makeerror@1.0.12: + resolution: {integrity: sha512-JmqCvUhmt43madlpFzG4BQzG2Z3m6tvQDNKdClZnO3VbIudJYmxsT0FNJMeiB2+JTSlTQTSbU8QdesVmwJcmLg==} + dependencies: + tmpl: 1.0.5 + dev: true + + /map-cache@0.2.2: + resolution: {integrity: sha512-8y/eV9QQZCiyn1SprXSrCmqJN0yNRATe+PO8ztwqrvrbdRLA3eYJF0yaR0YayLWkMbsQSKWS9N2gPcGEc4UsZg==} + engines: {node: '>=0.10.0'} + + /map-limit@0.0.1: + resolution: {integrity: sha512-pJpcfLPnIF/Sk3taPW21G/RQsEEirGaFpCW3oXRwH9dnFHPHNGjNyvh++rdmC2fNqEaTw2MhYJraoJWAHx8kEg==} + dependencies: + once: 1.3.3 + dev: false + + /map-visit@1.0.0: + resolution: {integrity: sha512-4y7uGv8bd2WdM9vpQsiQNo41Ln1NvhvDRuVt0k2JZQ+ezN2uaQes7lZeZ+QQUHOLQAtDaBJ+7wCbi+ab/KFs+w==} + engines: {node: '>=0.10.0'} + dependencies: + object-visit: 1.0.1 + + /matchmediaquery@0.2.1: + resolution: {integrity: sha512-9Ssn6kNVoYU970FtX6jS74GAyKc2baQaoifG1X/i6tfqLQgf3aM4ovYYBVWVOk4G14odceUarbwgSjDTLL/Dhw==} + dependencies: + css-mediaquery: 0.1.2 + dev: false + + /math-random@1.0.4: + resolution: {integrity: sha512-rUxjysqif/BZQH2yhd5Aaq7vXMSx9NdEsQcyA07uEzIvxgI7zIr33gGsh+RU0/XjmQpCW7RsVof1vlkvQVCK5A==} + dev: true + + /mathjs@11.12.0: + resolution: {integrity: sha512-UGhVw8rS1AyedyI55DGz9q1qZ0p98kyKPyc9vherBkoueLntPfKtPBh14x+V4cdUWK0NZV2TBwqRFlvadscSuw==} + engines: {node: '>= 14'} + hasBin: true + dependencies: + '@babel/runtime': 7.23.7 + complex.js: 2.1.1 + decimal.js: 10.4.3 + escape-latex: 1.2.0 + fraction.js: 4.3.4 + javascript-natural-sort: 0.7.1 + seedrandom: 3.0.5 + tiny-emitter: 2.1.0 + typed-function: 4.1.1 + dev: false + + /md5.js@1.3.5: + resolution: {integrity: sha512-xitP+WxNPcTTOgnTJcrhM0xvdPepipPSf3I8EIpGKeFLjt3PlJLIDG3u8EX53ZIubkb+5U2+3rELYpEhHhzdkg==} + dependencies: + hash-base: 3.1.0 + inherits: 2.0.4 + safe-buffer: 5.2.1 + + /mdn-data@2.0.14: + resolution: {integrity: sha512-dn6wd0uw5GsdswPFfsgMp5NSB0/aDe6fK94YJV/AJDYXL6HVLWBsxeq7js7Ad+mU2K9LAlwpk6kN2D5mwCPVow==} + dev: false + + /media-typer@0.3.0: + resolution: {integrity: sha512-dq+qelQ9akHpcOl/gUVRTxVIOkAJ1wR3QAvb4RsVjS8oVoFjDGTc679wJYmUmknUF5HwMLOgb5O+a3KxfWapPQ==} + engines: {node: '>= 0.6'} + dev: true + + /mem@1.1.0: + resolution: {integrity: sha512-nOBDrc/wgpkd3X/JOhMqYR+/eLqlfLP4oQfoBA6QExIxEl+GU01oyEkwWyueyO8110pUKijtiHGhEmYoOn88oQ==} + engines: {node: '>=4'} + dependencies: + mimic-fn: 1.2.0 + dev: true + + /memory-fs@0.2.0: + resolution: {integrity: sha512-+y4mDxU4rvXXu5UDSGCGNiesFmwCHuefGMoPCO1WYucNYj7DsLqrFaa2fXVI0H+NNiPTwwzKwspn9yTZqUGqng==} + dev: true + + /memory-fs@0.4.1: + resolution: {integrity: sha512-cda4JKCxReDXFXRqOHPQscuIYg1PvxbE2S2GP45rnwfEK+vZaXC8C1OFvdHIbgw0DLzowXGVoxLaAmlgRy14GQ==} + dependencies: + errno: 0.1.8 + readable-stream: 2.3.8 + + /memory-fs@0.5.0: + resolution: {integrity: sha512-jA0rdU5KoQMC0e6ppoNRtpp6vjFq6+NY7r8hywnC7V+1Xj/MtHwGIbB1QaK/dunyjWteJzmkpd7ooeWg10T7GA==} + engines: {node: '>=4.3.0 <5.0.0 || >=5.10'} + dependencies: + errno: 0.1.8 + readable-stream: 2.3.8 + + /merge-descriptors@1.0.1: + resolution: {integrity: sha512-cCi6g3/Zr1iqQi6ySbseM1Xvooa98N0w31jzUYrXPX2xqObmFGHJ0tQ5u74H3mVh7wLouTseZyYIq39g8cNp1w==} + dev: true + + /merge-source-map@1.0.4: + resolution: {integrity: sha512-PGSmS0kfnTnMJCzJ16BLLCEe6oeYCamKFFdQKshi4BmM6FUwipjVOcBFGxqtQtirtAG4iZvHlqST9CpZKqlRjA==} + dependencies: + source-map: 0.5.7 + dev: false + + /merge2@1.4.1: + resolution: {integrity: sha512-8q7VEgMJW4J8tcfVPy8g09NcQwZdbwFEqhe/WZkoIzjn/3TGDwtOCYtXGxA3O8tPzpczCCDgv+P2P5y00ZJOOg==} + engines: {node: '>= 8'} + + /merge@1.2.1: + resolution: {integrity: sha512-VjFo4P5Whtj4vsLzsYBu5ayHhoHJ0UqNm7ibvShmbmoz7tGi0vXaoJbGdB+GmDMLUdg8DpQXEIeVDAe8MaABvQ==} + dev: true + + /mersenne-twister@1.1.0: + resolution: {integrity: sha512-mUYWsMKNrm4lfygPkL3OfGzOPTR2DBlTkBNHM//F6hGp8cLThY897crAlk3/Jo17LEOOjQUrNAx6DvgO77QJkA==} + dev: false + + /methods@1.1.2: + resolution: {integrity: sha512-iclAHeNqNm68zFtnZ0e+1L2yUIdvzNoauKU4WBA3VvH/vPFieF7qfRlwUZU+DA9P9bPXIS90ulxoUoCH23sV2w==} + engines: {node: '>= 0.6'} + dev: true + + /microee@0.0.6: + resolution: {integrity: sha512-/LdL3jiBWDJ3oQIRLgRhfeCZNE3patM1LiwCC124+/HHn10sI/G2OAyiMfTNzH5oYWoZBk0tRZADAUOv+0Wt0A==} + dev: false + + /micromatch@2.3.11: + resolution: {integrity: sha512-LnU2XFEk9xxSJ6rfgAry/ty5qwUTyHYOBU0g4R6tIw5ljwgGIBmiKhRWLw5NpMOnrgUNcDJ4WMp8rl3sYVHLNA==} + engines: {node: '>=0.10.0'} + dependencies: + arr-diff: 2.0.0 + array-unique: 0.2.1 + braces: 1.8.5 + expand-brackets: 0.1.5 + extglob: 0.3.2 + filename-regex: 2.0.1 + is-extglob: 1.0.0 + is-glob: 2.0.1 + kind-of: 3.2.2 + normalize-path: 2.1.1 + object.omit: 2.0.1 + parse-glob: 3.0.4 + regex-cache: 0.4.4 + dev: true + + /micromatch@3.1.10(supports-color@6.1.0): + resolution: {integrity: sha512-MWikgl9n9M3w+bpsY3He8L+w9eF9338xRl8IAO5viDizwSzziFEyUzo2xrrloB64ADbTf8uA8vRqqttDTOmccg==} + engines: {node: '>=0.10.0'} + dependencies: + arr-diff: 4.0.0 + array-unique: 0.3.2 + braces: 2.3.2(supports-color@6.1.0) + define-property: 2.0.2 + extend-shallow: 3.0.2 + extglob: 2.0.4(supports-color@6.1.0) + fragment-cache: 0.2.1 + kind-of: 6.0.3 + nanomatch: 1.2.13(supports-color@6.1.0) + object.pick: 1.3.0 + regex-not: 1.0.2 + snapdragon: 0.8.2(supports-color@6.1.0) + to-regex: 3.0.2 + transitivePeerDependencies: + - supports-color + + /micromatch@4.0.5: + resolution: {integrity: sha512-DMy+ERcEW2q8Z2Po+WNXuw3c5YaUSFjAO5GsJqfEl7UjvtIuFKO6ZrKvcItdy98dwFI2N1tg3zNIdKaQT+aNdA==} + engines: {node: '>=8.6'} + dependencies: + braces: 3.0.2 + picomatch: 2.3.1 + + /miller-rabin@4.0.1: + resolution: {integrity: sha512-115fLhvZVqWwHPbClyntxEVfVDfl9DLLTuJvq3g2O/Oxi8AiNouAHvDSzHS0viUJc+V5vm3eq91Xwqn9dp4jRA==} + hasBin: true + dependencies: + bn.js: 4.12.0 + brorand: 1.1.0 + + /mime-db@1.52.0: + resolution: {integrity: sha512-sPU4uV7dYlvtWJxwwxHD0PuihVNiE7TyAbQ5SWxDCB9mUYvOgroQOwYQQOKPJ8CIbE+1ETVlOoK1UC2nU3gYvg==} + engines: {node: '>= 0.6'} + + /mime-types@2.1.35: + resolution: {integrity: sha512-ZDY+bPm5zTTF+YpCrAU9nK0UgICYPT0QtT1NZWFv4s++TNkcgVaT0g6+4R2uI4MjQjzysHB1zxuWL50hzaeXiw==} + engines: {node: '>= 0.6'} + dependencies: + mime-db: 1.52.0 + + /mime@1.6.0: + resolution: {integrity: sha512-x0Vn8spI+wuJ1O6S7gnbaQg8Pxh4NNHb7KSINmEWKiPE4RKOplvijn+NkmYmmRgP68mc70j2EbeTFRsrswaQeg==} + engines: {node: '>=4'} + hasBin: true + dev: true + + /mime@2.6.0: + resolution: {integrity: sha512-USPkMeET31rOMiarsBNIHZKLGgvKc/LrjofAnBlOttf5ajRvqiRA8QsenbcooctK6d6Ts6aqZXBA+XbkKthiQg==} + engines: {node: '>=4.0.0'} + hasBin: true + dev: true + + /mimic-fn@1.2.0: + resolution: {integrity: sha512-jf84uxzwiuiIVKiOLpfYk7N46TSy8ubTonmneY9vrpHNAnp0QBt2BxWV9dO3/j+BoVAb+a5G6YDPW3M5HOdMWQ==} + engines: {node: '>=4'} + dev: true + + /mimic-response@1.0.1: + resolution: {integrity: sha512-j5EctnkH7amfV/q5Hgmoal1g2QHFJRraOtmx0JpIqkxhBhI/lJSl1nMpQ45hVarwNETOoWEimndZ4QK0RHxuxQ==} + engines: {node: '>=4'} + dev: false + + /min-document@2.19.0: + resolution: {integrity: sha512-9Wy1B3m3f66bPPmU5hdA4DR4PB2OfDU/+GS3yAB7IQozE3tqXaVv2zOjgla7MEGSRv95+ILmOuvhLkOK6wJtCQ==} + dependencies: + dom-walk: 0.1.2 + dev: false + + /minilog@3.1.0: + resolution: {integrity: sha512-Xfm4jWjWzSAduvEWtuZX/8TMkxfJlCfH7XvikCZe3ptojYTBq1eoEs3rh9/3LNLOckUP86m+8l8+Iw5NU/pBww==} + dependencies: + microee: 0.0.6 + dev: false + + /minimalistic-assert@1.0.1: + resolution: {integrity: sha512-UtJcAD4yEaGtjPezWuO9wC4nwUnVH/8/Im3yEHQP4b67cXlD/Qr9hdITCU1xDbSEXg2XKNaP8jsReV7vQd00/A==} + + /minimalistic-crypto-utils@1.0.1: + resolution: {integrity: sha512-JIYlbt6g8i5jKfJ3xz7rF0LXmv2TkDxBLUkiBeZ7bAx4GnnNMr8xFpGnOxn6GhTEHx3SjRrZEoU+j04prX1ktg==} + + /minimatch@3.1.2: + resolution: {integrity: sha512-J7p63hRiAjw1NDEww1W7i37+ByIrOWO5XQQAzZ3VOcL0PNybwpfmV/N05zFAzwQ9USyEcX6t3UO+K5aqBQOIHw==} + dependencies: + brace-expansion: 1.1.11 + + /minimist@0.0.8: + resolution: {integrity: sha512-miQKw5Hv4NS1Psg2517mV4e4dYNaO3++hjAvLOAzKqZ61rH8NS1SK+vbfBWZ5PY/Me/bEWhUwqMghEW5Fb9T7Q==} + dev: false + + /minimist@1.2.8: + resolution: {integrity: sha512-2yyAR8qBkN3YuheJanUpWC5U3bb5osDywNB8RzDVlDwDHbocAJveqqj1u8+SVD7jkWT4yvsHCpWqqWqAxb0zCA==} + + /minipass-collect@1.0.2: + resolution: {integrity: sha512-6T6lH0H8OG9kITm/Jm6tdooIbogG9e0tLgpY6mphXSm/A9u8Nq1ryBG+Qspiub9LjWlBPsPS3tWQ/Botq4FdxA==} + engines: {node: '>= 8'} + dependencies: + minipass: 3.3.6 + dev: false + + /minipass-flush@1.0.5: + resolution: {integrity: sha512-JmQSYYpPUqX5Jyn1mXaRwOda1uQ8HP5KAT/oDSLCzt1BYRhQU0/hDtsB1ufZfEEzMZ9aAVmsBw8+FWsIXlClWw==} + engines: {node: '>= 8'} + dependencies: + minipass: 3.3.6 + dev: false + + /minipass-pipeline@1.2.4: + resolution: {integrity: sha512-xuIq7cIOt09RPRJ19gdi4b+RiNvDFYe5JH+ggNvBqGqpQXcru3PcRmOZuHBKWK1Txf9+cQ+HMVN4d6z46LZP7A==} + engines: {node: '>=8'} + dependencies: + minipass: 3.3.6 + dev: false + + /minipass@3.3.6: + resolution: {integrity: sha512-DxiNidxSEK+tHG6zOIklvNOwm3hvCrbUrdtzY74U6HKTJxvIDfOUL5W5P2Ghd3DTkhhKPYGqeNUIh5qcM4YBfw==} + engines: {node: '>=8'} + dependencies: + yallist: 4.0.0 + dev: false + + /minipass@5.0.0: + resolution: {integrity: sha512-3FnjYuehv9k6ovOEbyOswadCDPX1piCfhV8ncmYtHOjuPwylVWsghTLo7rabjC3Rx5xD4HDx8Wm1xnMF7S5qFQ==} + engines: {node: '>=8'} + dev: false + + /minizlib@2.1.2: + resolution: {integrity: sha512-bAxsR8BVfj60DWXHE3u30oHzfl4G7khkSuPW+qvpd7jFRHm7dLxOjUk1EHACJ/hxLY8phGJ0YhYHZo7jil7Qdg==} + engines: {node: '>= 8'} + dependencies: + minipass: 3.3.6 + yallist: 4.0.0 + dev: false + + /mississippi@2.0.0: + resolution: {integrity: sha512-zHo8v+otD1J10j/tC+VNoGK9keCuByhKovAvdn74dmxJl9+mWHnx6EMsDN4lgRoMI/eYo2nchAxniIbUPb5onw==} + engines: {node: '>=4.0.0'} + dependencies: + concat-stream: 1.6.2 + duplexify: 3.7.1 + end-of-stream: 1.4.4 + flush-write-stream: 1.1.1 + from2: 2.3.0 + parallel-transform: 1.2.0 + pump: 2.0.1 + pumpify: 1.5.1 + stream-each: 1.2.3 + through2: 2.0.5 + dev: true + + /mississippi@3.0.0: + resolution: {integrity: sha512-x471SsVjUtBRtcvd4BzKE9kFC+/2TeWgKCgw0bZcw1b9l2X3QX5vCWgF+KaZaYm87Ss//rHnWryupDrgLvmSkA==} + engines: {node: '>=4.0.0'} + dependencies: + concat-stream: 1.6.2 + duplexify: 3.7.1 + end-of-stream: 1.4.4 + flush-write-stream: 1.1.1 + from2: 2.3.0 + parallel-transform: 1.2.0 + pump: 3.0.0 + pumpify: 1.5.1 + stream-each: 1.2.3 + through2: 2.0.5 + + /mixin-deep@1.3.2: + resolution: {integrity: sha512-WRoDn//mXBiJ1H40rqa3vH0toePwSsGb45iInWlTySa+Uu4k3tYUSxa2v1KqAiLtvlrSzaExqS1gtk96A9zvEA==} + engines: {node: '>=0.10.0'} + dependencies: + for-in: 1.0.2 + is-extendable: 1.0.1 + + /mkdirp@0.5.1: + resolution: {integrity: sha512-SknJC52obPfGQPnjIkXbmA6+5H15E+fR+E4iR2oQ3zzCLbd7/ONua69R/Gw7AgkTLsRG+r5fzksYwWe1AgTyWA==} + deprecated: Legacy versions of mkdirp are no longer supported. Please update to mkdirp 1.x. (Note that the API surface has changed to use Promises in 1.x.) + hasBin: true + dependencies: + minimist: 0.0.8 + dev: false + + /mkdirp@0.5.6: + resolution: {integrity: sha512-FP+p8RB8OWpF3YZBCrP5gtADmtXApB5AMLn+vdyA+PyxCjrCs00mjyUozssO33cwDeT3wNGdLxJ5M//YqtHAJw==} + hasBin: true + dependencies: + minimist: 1.2.8 + + /mkdirp@1.0.3: + resolution: {integrity: sha512-6uCP4Qc0sWsgMLy1EOqqS/3rjDHOEnsStVr/4vtAIK2Y5i2kA7lFFejYrpIyiN9w0pYf4ckeCYT9f1r1P9KX5g==} + engines: {node: '>=10'} + hasBin: true + + /mkdirp@1.0.4: + resolution: {integrity: sha512-vVqVZQyf3WLx2Shd0qJ9xuvqgAyKPLAiqITEtqW0oIUjzo3PePDd6fW9iFz30ef7Ysp/oiWqbhszeGWW2T6Gzw==} + engines: {node: '>=10'} + hasBin: true + dev: false + + /mkpath@1.0.0: + resolution: {integrity: sha512-PbNHr7Y/9Y/2P5pKFv5XOGBfNQqZ+fdiHWcuf7swLACN5ZW5LU7J5tMU8LSBjpluAxAxKYGD9nnaIbdRy9+m1w==} + dev: false + + /mocha@4.1.0: + resolution: {integrity: sha512-0RVnjg1HJsXY2YFDoTNzcc1NKhYuXKRrBAG2gDygmJJA136Cs2QlRliZG1mA0ap7cuaT30mw16luAeln+4RiNA==} + engines: {node: '>= 4.0.0'} + hasBin: true + dependencies: + browser-stdout: 1.3.0 + commander: 2.11.0 + debug: 3.1.0(supports-color@4.4.0) + diff: 3.3.1 + escape-string-regexp: 1.0.5 + glob: 7.1.2 + growl: 1.10.3 + he: 1.1.1 + mkdirp: 0.5.1 + supports-color: 4.4.0 + dev: false + + /moo@0.5.2: + resolution: {integrity: sha512-iSAJLHYKnX41mKcJKjqvnAN9sf0LMDTXDEvFv+ffuRR9a1MIuXLjMNL6EsnDHSkKLTWNqQQ5uo61P4EbU4NU+Q==} + dev: true + + /move-concurrently@1.0.1: + resolution: {integrity: sha512-hdrFxZOycD/g6A6SoI2bB5NA/5NEqD0569+S47WZhPvm46sD50ZHdYaFmnua5lndde9rCHGjmfK7Z8BuCt/PcQ==} + dependencies: + aproba: 1.2.0 + copy-concurrently: 1.0.5 + fs-write-stream-atomic: 1.0.10 + mkdirp: 0.5.6 + rimraf: 2.7.1 + run-queue: 1.0.3 + + /ms@2.0.0: + resolution: {integrity: sha512-Tpp60P6IUJDTuOq/5Z8cdskzJujfwqfOTkrwIwj7IRISpnkJnT6SyJ4PCPnGMoFjC9ddhal5KVIYtAt97ix05A==} + + /ms@2.1.2: + resolution: {integrity: sha512-sGkPx+VjMtmA6MX27oA4FBFELFCZZ4S4XqeGOXCv68tT+jb3vk/RyaKWP0PTKyWtmLSM0b+adUTEvbs1PEaH2w==} + + /ms@2.1.3: + resolution: {integrity: sha512-6FlzubTLZG3J2a/NVCAleEhjzq5oxgHyaCU9yYXvcLsvoVaHJq/s5xXI6/XXP6tz7R9xAOtHnSO/tXtF3WRTlA==} + dev: true + + /multicast-dns-service-types@1.1.0: + resolution: {integrity: sha512-cnAsSVxIDsYt0v7HmC0hWZFwwXSh+E6PgCrREDuN/EsjgLwA5XRmlMHhSiDPrt6HxY1gTivEa/Zh7GtODoLevQ==} + dev: true + + /multicast-dns@6.2.3: + resolution: {integrity: sha512-ji6J5enbMyGRHIAkAOu3WdV8nggqviKCEKtXcOqfphZZtQrmHKycfynJ2V7eVPUA4NhJ6V7Wf4TmGbTwKE9B6g==} + hasBin: true + dependencies: + dns-packet: 1.3.4 + thunky: 1.1.0 + dev: true + + /multipipe@0.3.1: + resolution: {integrity: sha512-ZUcepNdMeKBRn/ksm2XTxFnhBaqnBJSZNqwajmiem6b7Rp3fNAAq+twYn3kqw9YMY7HJuc7I7OObX9cMgB1ANg==} + dependencies: + duplexer2: 0.1.4 + dev: false + + /mute-stream@0.0.4: + resolution: {integrity: sha512-amvrY4m/7oZamehMoFi1tbwU/kXbVvRTGM2S7F+PZi3n51Jx+9AcSQ3EQsag3tR+hS2higfgOP/Kl8kri/X52A==} + dev: false + + /mute-stream@0.0.7: + resolution: {integrity: sha512-r65nCZhrbXXb6dXOACihYApHw2Q6pV0M3V0PSxd74N0+D8nzAdEAITq2oAjA1jVnKI+tGvEBUpqiMh0+rW6zDQ==} + dev: true + + /nan@2.18.0: + resolution: {integrity: sha512-W7tfG7vMOGtD30sHoZSSc/JVYiyDPEyQVso/Zz+/uQd0B0L46gtC+pHha5FFMRpil6fm/AoEcRWyOVi4+E/f8w==} + requiresBuild: true + optional: true + + /nanomatch@1.2.13(supports-color@6.1.0): + resolution: {integrity: sha512-fpoe2T0RbHwBTBUOftAfBPaDEi06ufaUai0mE6Yn1kacc3SnTErfb/h+X94VXzI64rKFHYImXSvdwGGCmwOqCA==} + engines: {node: '>=0.10.0'} + 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.3 + object.pick: 1.3.0 + regex-not: 1.0.2 + snapdragon: 0.8.2(supports-color@6.1.0) + to-regex: 3.0.2 + transitivePeerDependencies: + - supports-color + + /natural-compare@1.4.0: + resolution: {integrity: sha512-OWND8ei3VtNC9h7V60qff3SVobHr996CTwgxubgyQYEpg290h9J0buyECNNJexkFm5sOajh5G116RYA1c8ZMSw==} + dev: true + + /nearley@2.20.1: + resolution: {integrity: sha512-+Mc8UaAebFzgV+KpI5n7DasuuQCHA89dmwm7JXw3TV43ukfNQ9DnBH3Mdb2g/I4Fdxc26pwimBWvjIw0UAILSQ==} + hasBin: true + dependencies: + commander: 2.20.3 + moo: 0.5.2 + railroad-diagrams: 1.0.0 + randexp: 0.4.6 + dev: true + + /negotiator@0.6.3: + resolution: {integrity: sha512-+EUsqGPLsM+j/zdChZjsnX51g4XrHFOIXwfnCVPGlQk/k5giakcKsuxCObBRu6DSm9opw/O6slWbJdghQM4bBg==} + engines: {node: '>= 0.6'} + dev: true + + /neo-async@2.6.2: + resolution: {integrity: sha512-Yd3UES5mWCSqR+qNT93S3UoYUkqAZ9lLg8a7g9rimsWmYGK8cVToA4/sF3RrshdyV3sAGMXVUmpMYOw+dLpOuw==} + + /nice-try@1.0.5: + resolution: {integrity: sha512-1nh45deeb5olNY7eX82BkPO7SSxR5SSYJiPTrTdFUVYwAl8CKMA5N9PjTYkHiRjisVcxcQ1HXdLhx2qxxJzLNQ==} + + /no-case@3.0.4: + resolution: {integrity: sha512-fgAN3jGAh+RoxUGZHTSOLJIqUc2wmoBwGR4tbpNAKmmovFoWq0OdRkb0VkldReO2a2iBT/OEulG9XSUc10r3zg==} + dependencies: + lower-case: 2.0.2 + tslib: 2.6.2 + dev: true + + /node-fetch@1.7.3: + resolution: {integrity: sha512-NhZ4CsKx7cYm2vSrBAr2PvFOe6sWDf0UYLRqA6svUYg7+/TSfVAu49jYC4BvQ4Sms9SZgdqGBgroqfDhJdTyKQ==} + dependencies: + encoding: 0.1.13 + is-stream: 1.1.0 + dev: true + + /node-forge@0.10.0: + resolution: {integrity: sha512-PPmu8eEeG9saEUvI97fm4OYxXVB6bFvyNTyiUOBichBpFG8A1Ljw3bY62+5oOjDEMHRnd0Y7HQ+x7uzxOzC6JA==} + engines: {node: '>= 6.0.0'} + dev: true + + /node-int64@0.4.0: + resolution: {integrity: sha512-O5lz91xSOeoXP6DulyHfllpq+Eg00MWitZIbtPfoSEvqIHdl5gfcY6hYzDWnj0qD5tz52PI08u9qUvSVeUBeHw==} + dev: true + + /node-libs-browser@2.2.1: + resolution: {integrity: sha512-h/zcD8H9kaDZ9ALUWwlBUDo6TKF8a7qBSCSEGfjTVIYeqsioSKaAX+BN7NgiMGp6iSIXZ3PxgCu8KS3b71YK5Q==} + dependencies: + assert: 1.5.1 + browserify-zlib: 0.2.0 + buffer: 4.9.2 + console-browserify: 1.2.0 + constants-browserify: 1.0.0 + crypto-browserify: 3.12.0 + domain-browser: 1.2.0 + events: 3.3.0 + https-browserify: 1.0.0 + os-browserify: 0.3.0 + path-browserify: 0.0.1 + process: 0.11.10 + punycode: 1.4.1 + querystring-es3: 0.2.1 + readable-stream: 2.3.8 + stream-browserify: 2.0.2 + stream-http: 2.8.3 + string_decoder: 1.3.0 + timers-browserify: 2.0.12 + tty-browserify: 0.0.0 + url: 0.11.3 + util: 0.11.1 + vm-browserify: 1.1.2 + + /node-notifier@5.4.5: + resolution: {integrity: sha512-tVbHs7DyTLtzOiN78izLA85zRqB9NvEXkAf014Vx3jtSvn/xBl6bR8ZYifj+dFcFrKI21huSQgJZ6ZtL3B4HfQ==} + dependencies: + growly: 1.3.0 + is-wsl: 1.1.0 + semver: 5.7.2 + shellwords: 0.1.1 + which: 1.3.1 + dev: true + + /node-releases@2.0.14: + resolution: {integrity: sha512-y10wOWt8yZpqXmOgRo77WaHEmhYQYGNA6y421PKsKYWEK8aW+cqAphborZDhqfyKrbZEN92CN1X2KbafY2s7Yw==} + + /normalize-package-data@2.5.0: + resolution: {integrity: sha512-/5CMN3T0R4XTj4DcGaexo+roZSdSFW/0AOOTROrjxzCG1wrWXEsGbRKevjlIL+ZDE4sZlJr5ED4YW0yqmkK+eA==} + dependencies: + hosted-git-info: 2.8.9 + resolve: 1.22.8 + semver: 5.7.2 + validate-npm-package-license: 3.0.4 + + /normalize-path@2.1.1: + resolution: {integrity: sha512-3pKJwH184Xo/lnH6oyP1q2pMd7HcypqqmRs91/6/i2CGtWwIKGCkOOMTm/zXbgTEWHw1uNpNi/igc3ePOYHb6w==} + engines: {node: '>=0.10.0'} + dependencies: + remove-trailing-separator: 1.1.0 + + /normalize-path@3.0.0: + resolution: {integrity: sha512-6eZs5Ls3WtCisHWp9S2GUy8dqkpGi4BVSz3GaqiE6ezub0512ESztXUwUB6C6IKbQkY2Pnb/mD4WYojCRwcwLA==} + engines: {node: '>=0.10.0'} + + /normalize-range@0.1.2: + resolution: {integrity: sha512-bdok/XvKII3nUpklnV6P2hxtMNrCboOjAcyBuQnWEhO665FwrSNRxU+AqpsyvO6LgGYPspN+lu5CLtw4jPRKNA==} + engines: {node: '>=0.10.0'} + dev: false + + /normalize-url@1.9.1: + resolution: {integrity: sha512-A48My/mtCklowHBlI8Fq2jFWK4tX4lJ5E6ytFsSOq1fzpvT0SQSgKhSg7lN5c2uYFOrUAOQp6zhhJnpp1eMloQ==} + engines: {node: '>=4'} + dependencies: + object-assign: 4.1.1 + prepend-http: 1.0.4 + query-string: 4.3.4 + sort-keys: 1.1.2 + dev: true + + /normalize-url@2.0.1: + resolution: {integrity: sha512-D6MUW4K/VzoJ4rJ01JFKxDrtY1v9wrgzCX5f2qj/lzH1m/lW6MhUZFKerVsnyjOhOsYzI9Kqqak+10l4LvLpMw==} + engines: {node: '>=4'} + dependencies: + prepend-http: 2.0.0 + query-string: 5.1.1 + sort-keys: 2.0.0 + dev: false + + /npm-normalize-package-bin@1.0.1: + resolution: {integrity: sha512-EPfafl6JL5/rU+ot6P3gRSCpPDW5VmIzX959Ob1+ySFUuuYHWHekXpwdUZcKP5C+DS4GEtdJluwBjnsNDl+fSA==} + dev: false + + /npm-run-path@2.0.2: + resolution: {integrity: sha512-lJxZYlT4DW/bRUtFh1MQIWqmLwQfAxnqWG4HhEdjMlkrJYnJn0Jrr2u3mgxqaWsdiBc76TYkTG/mhrnYTuzfHw==} + engines: {node: '>=4'} + dependencies: + path-key: 2.0.1 + dev: true + + /nth-check@2.1.1: + resolution: {integrity: sha512-lqjrjmaOoAnWfMmBPL+XNnynZh2+swxiX3WUE0s4yEHI6m+AwrK2UZOimIRl3X/4QctVqS8AiZjFqyOGrMXb/w==} + dependencies: + boolbase: 1.0.0 + dev: true + + /num2fraction@1.2.2: + resolution: {integrity: sha512-Y1wZESM7VUThYY+4W+X4ySH2maqcA+p7UR+w8VWNWVAd6lwuXXWz/w/Cz43J/dI2I+PS6wD5N+bJUF+gjWvIqg==} + dev: false + + /number-is-nan@1.0.1: + resolution: {integrity: sha512-4jbtZXNAsfZbAHiiqjLPBiCl16dES1zI4Hpzzxw61Tk+loF+sBDBKx1ICKKKwIqQ7M0mFn1TmkN7euSncWgHiQ==} + engines: {node: '>=0.10.0'} + + /nwmatcher@1.4.4: + resolution: {integrity: sha512-3iuY4N5dhgMpCUrOVnuAdGrgxVqV2cJpM+XNccjR2DKOB1RUP0aA+wGXEiNziG/UKboFyGBIoKOaNlJxx8bciQ==} + dev: true + + /oauth-sign@0.9.0: + resolution: {integrity: sha512-fexhUFFPTGV8ybAtSIGbV6gOkSv8UtRbDBnAyLQw4QPKkgNlsH2ByPGtMUqdWkos6YCRmAqViwgZrJc/mRDzZQ==} + + /object-assign@4.1.1: + resolution: {integrity: sha512-rJgTQnkUnH1sFw8yT6VSU3zD3sWmu6sZhIseY8VX+GRu3P6F7Fu+JNDoXfklElbLJSnc3FUQHVe4cU5hj+BcUg==} + engines: {node: '>=0.10.0'} + + /object-copy@0.1.0: + resolution: {integrity: sha512-79LYn6VAb63zgtmAteVOWo9Vdj71ZVBy3Pbse+VqxDpEP83XuujMrGqHIwAXJ5I/aM0zU7dIyIAhifVTPrNItQ==} + engines: {node: '>=0.10.0'} + dependencies: + copy-descriptor: 0.1.1 + define-property: 0.2.5 + kind-of: 3.2.2 + + /object-inspect@1.13.1: + resolution: {integrity: sha512-5qoj1RUiKOMsCCNLV1CBiPYE10sziTsnmNxkAI/rZhiD63CF7IqdFGC/XzjWjpSgLf0LxXX3bDFIh0E18f6UhQ==} + + /object-inspect@1.4.1: + resolution: {integrity: sha512-wqdhLpfCUbEsoEwl3FXwGyv8ief1k/1aUdIPCqVnupM6e8l63BEJdiF/0swtn04/8p05tG/T0FrpTlfwvljOdw==} + dev: false + + /object-is@1.1.5: + resolution: {integrity: sha512-3cyDsyHgtmi7I7DfSSI2LDp6SK2lwvtbg0p0R1e0RvTqF5ceGx+K2dfSjm1bKDMVCFEDAQvy+o8c6a7VujOddw==} + engines: {node: '>= 0.4'} + dependencies: + call-bind: 1.0.5 + define-properties: 1.2.1 + dev: true + + /object-keys@1.1.1: + resolution: {integrity: sha512-NuAESUOUMrlIXOfHKzD6bpPu3tYt3xvjNdRIQ+FeT0lNb4K8WR70CaDxhuNguS2XG+GjkyMwOzsN5ZktImfhLA==} + engines: {node: '>= 0.4'} + + /object-visit@1.0.1: + resolution: {integrity: sha512-GBaMwwAVK9qbQN3Scdo0OyvgPW7l3lnaVMj84uTOZlswkX0KpF6fyDBJhtTthf7pymztoN36/KEr1DyhF96zEA==} + engines: {node: '>=0.10.0'} + dependencies: + isobject: 3.0.1 + + /object.assign@4.1.5: + resolution: {integrity: sha512-byy+U7gp+FVwmyzKPYhW2h5l3crpmGsxl7X2s8y43IgxvG4g3QZ6CffDtsNQy1WsmZpQbO+ybo0AlW7TY6DcBQ==} + engines: {node: '>= 0.4'} + dependencies: + call-bind: 1.0.5 + define-properties: 1.2.1 + has-symbols: 1.0.3 + object-keys: 1.1.1 + + /object.entries@1.1.7: + resolution: {integrity: sha512-jCBs/0plmPsOnrKAfFQXRG2NFjlhZgjjcBLSmTnEhU8U6vVTsVe8ANeQJCHTl3gSsI4J+0emOoCgoKlmQPMgmA==} + engines: {node: '>= 0.4'} + dependencies: + call-bind: 1.0.5 + define-properties: 1.2.1 + es-abstract: 1.22.3 + dev: true + + /object.fromentries@2.0.7: + resolution: {integrity: sha512-UPbPHML6sL8PI/mOqPwsH4G6iyXcCGzLin8KvEPenOZN5lpCNBZZQ+V62vdjB1mQHrmqGQt5/OJzemUA+KJmEA==} + engines: {node: '>= 0.4'} + dependencies: + call-bind: 1.0.5 + define-properties: 1.2.1 + es-abstract: 1.22.3 + dev: true + + /object.getownpropertydescriptors@2.1.7: + resolution: {integrity: sha512-PrJz0C2xJ58FNn11XV2lr4Jt5Gzl94qpy9Lu0JlfEj14z88sqbSBJCBEzdlNUCzY2gburhbrwOZ5BHCmuNUy0g==} + engines: {node: '>= 0.8'} + dependencies: + array.prototype.reduce: 1.0.6 + call-bind: 1.0.5 + define-properties: 1.2.1 + es-abstract: 1.22.3 + safe-array-concat: 1.0.1 + dev: true + + /object.omit@2.0.1: + resolution: {integrity: sha512-UiAM5mhmIuKLsOvrL+B0U2d1hXHF3bFYWIuH1LMpuV2EJEHG1Ntz06PgLEHjm6VFd87NpH8rastvPoyv6UW2fA==} + engines: {node: '>=0.10.0'} + dependencies: + for-own: 0.1.5 + is-extendable: 0.1.1 + dev: true + + /object.pick@1.3.0: + resolution: {integrity: sha512-tqa/UMy/CCoYmj+H5qc07qvSL9dqcs/WZENZ1JbtWBlATP+iVOe778gE6MSijnyCnORzDuX6hU+LA4SZ09YjFQ==} + engines: {node: '>=0.10.0'} + dependencies: + isobject: 3.0.1 + + /object.values@1.1.7: + resolution: {integrity: sha512-aU6xnDFYT3x17e/f0IiiwlGPTy2jzMySGfUB4fq6z7CV8l85CWHDk5ErhyhpfDHhrOMwGFhSQkhMGHaIotA6Ng==} + engines: {node: '>= 0.4'} + dependencies: + call-bind: 1.0.5 + define-properties: 1.2.1 + es-abstract: 1.22.3 + dev: true + + /obuf@1.1.2: + resolution: {integrity: sha512-PX1wu0AmAdPqOL1mWhqmlOd8kOIZQwGZw6rh7uby9fTc5lhaOWFLX3I6R1hrF9k3zUY40e6igsLGkDXK92LJNg==} + dev: true + + /omggif@1.0.9: + resolution: {integrity: sha512-VYAQRSZo7qoBcwB5G29YqVPLnxvDkWulE3x35kwH3bq4GdH/ZkHrcPPhxVfaOGYGZ5KV2/55UpcjcyNIO1qZoQ==} + dev: false + + /on-finished@2.4.1: + resolution: {integrity: sha512-oVlzkg3ENAhCk2zdv7IJwd/QUD4z2RxRwpkcGY8psCVcCYZNq4wYnVWALHM+brtuJjePWiYF/ClmuDr8Ch5+kg==} + engines: {node: '>= 0.8'} + dependencies: + ee-first: 1.1.1 + dev: true + + /on-headers@1.0.2: + resolution: {integrity: sha512-pZAE+FJLoyITytdqK0U5s+FIpjN0JP3OzFi/u8Rx+EV5/W+JTWGXG8xFzevE7AjBfDqHv/8vL8qQsIhHnqRkrA==} + engines: {node: '>= 0.8'} + dev: true + + /once@1.3.3: + resolution: {integrity: sha512-6vaNInhu+CHxtONf3zw3vq4SP2DOQhjBvIa3rNcG0+P7eKWlYH6Peu7rHizSloRU2EwMz6GraLieis9Ac9+p1w==} + dependencies: + wrappy: 1.0.2 + dev: false + + /once@1.4.0: + resolution: {integrity: sha512-lNaJgI+2Q5URQBkccEKHTQOPaXdUxnZZElQTZY0MFUAuaEqe1E+Nyvgdz/aIyNi6Z9MzO5dv1H8n58/GELp3+w==} + dependencies: + wrappy: 1.0.2 + + /onetime@2.0.1: + resolution: {integrity: sha512-oyyPpiMaKARvvcgip+JV+7zci5L8D1W9RZIz2l1o08AM3pfspitVWnPt3mzHcBPp12oYMTy0pqrFs/C+m3EwsQ==} + engines: {node: '>=4'} + dependencies: + mimic-fn: 1.2.0 + dev: true + + /opn@5.5.0: + resolution: {integrity: sha512-PqHpggC9bLV0VeWcdKhkpxY+3JTzetLSqTCWL/z/tFIbI6G8JCjondXklT1JinczLz2Xib62sSp0T/gKT4KksA==} + engines: {node: '>=4'} + dependencies: + is-wsl: 1.1.0 + dev: true + + /optionator@0.8.3: + resolution: {integrity: sha512-+IW9pACdk3XWmmTXG8m3upGUJst5XRGzxMRjXzAuJ1XnIFNvfhjjIuYkDvysnPQ7qzqVzLt78BCruntqRhWQbA==} + engines: {node: '>= 0.8.0'} + dependencies: + deep-is: 0.1.4 + fast-levenshtein: 2.0.6 + levn: 0.3.0 + prelude-ls: 1.1.2 + type-check: 0.3.2 + word-wrap: 1.2.5 + + /os-browserify@0.3.0: + resolution: {integrity: sha512-gjcpUc3clBf9+210TRaDWbf+rZZZEshZ+DlXMRCeAjp0xhTrnQsKHypIy1J3d5hKdUzj69t708EHtU8P6bUn0A==} + + /os-homedir@1.0.2: + resolution: {integrity: sha512-B5JU3cabzk8c67mRRd3ECmROafjYMXbuzlwtqdM8IbS8ktlTix8aFGb2bAGKrSRIlnfKwovGUUr72JUPyOb6kQ==} + engines: {node: '>=0.10.0'} + dev: true + + /os-locale@1.4.0: + resolution: {integrity: sha512-PRT7ZORmwu2MEFt4/fv3Q+mEfN4zetKxufQrkShY2oGvUms9r8otu5HfdyIFHkYXjO7laNsoVGmM2MANfuTA8g==} + engines: {node: '>=0.10.0'} + dependencies: + lcid: 1.0.0 + dev: false + + /os-locale@2.1.0: + resolution: {integrity: sha512-3sslG3zJbEYcaC4YVAvDorjGxc7tv6KVATnLPZONiljsUncvihe9BQoVCEs0RZ1kmf4Hk9OBqlZfJZWI4GanKA==} + engines: {node: '>=4'} + dependencies: + execa: 0.7.0 + lcid: 1.0.0 + mem: 1.1.0 + dev: true + + /os-tmpdir@1.0.2: + resolution: {integrity: sha512-D2FR03Vir7FIu45XBY20mTb+/ZSWB00sjU9jdQXt83gDrI4Ztz5Fs7/yy74g2N5SVQY4xY1qDr4rNddwYRVX0g==} + engines: {node: '>=0.10.0'} + dev: true + + /p-cancelable@0.3.0: + resolution: {integrity: sha512-RVbZPLso8+jFeq1MfNvgXtCRED2raz/dKpacfTNxsx6pLEpEomM7gah6VeHSYV3+vo0OAi4MkArtQcWWXuQoyw==} + engines: {node: '>=4'} + dev: true + + /p-cancelable@0.4.1: + resolution: {integrity: sha512-HNa1A8LvB1kie7cERyy21VNeHb2CWJJYqyyC2o3klWFfMGlFmWv2Z7sFgZH8ZiaYL95ydToKTFVXgMV/Os0bBQ==} + engines: {node: '>=4'} + dev: false + + /p-event@2.3.1: + resolution: {integrity: sha512-NQCqOFhbpVTMX4qMe8PF8lbGtzZ+LCiN7pcNrb/413Na7+TRoe1xkKUzuWa/YEJdGQ0FvKtj35EEbDoVPO2kbA==} + engines: {node: '>=6'} + dependencies: + p-timeout: 2.0.1 + dev: false + + /p-finally@1.0.0: + resolution: {integrity: sha512-LICb2p9CB7FS+0eR1oqWnHhp0FljGLZCWBE9aix0Uye9W8LTQPwMTYVGWQWIw9RdQiDg4+epXQODwIYJtSJaow==} + engines: {node: '>=4'} + + /p-is-promise@1.1.0: + resolution: {integrity: sha512-zL7VE4JVS2IFSkR2GQKDSPEVxkoH43/p7oEnwpdCndKYJO0HVeRB7fA8TJwuLOTBREtK0ea8eHaxdwcpob5dmg==} + engines: {node: '>=4'} + dev: false + + /p-limit@1.3.0: + resolution: {integrity: sha512-vvcXsLAJ9Dr5rQOPk7toZQZJApBl2K4J6dANSsEuh6QI41JYcsS/qhTGa9ErIUUgK3WNQoJYvylxvjqmiqEA9Q==} + engines: {node: '>=4'} + dependencies: + p-try: 1.0.0 + dev: true + + /p-limit@2.3.0: + resolution: {integrity: sha512-//88mFWSJx8lxCzwdAABTJL2MyWB12+eIY7MDL2SqLmAkeKU9qxRvWuSyTjm3FUmpBEMuFfckAIqEaVGUDxb6w==} + engines: {node: '>=6'} + dependencies: + p-try: 2.2.0 + + /p-limit@3.1.0: + resolution: {integrity: sha512-TYOanM3wGwNGsZN2cVTYPArw454xnXj5qmWF1bEoAc4+cU/ol7GVh7odevjp1FNHduHc3KZMcFduxU5Xc6uJRQ==} + engines: {node: '>=10'} + dependencies: + yocto-queue: 0.1.0 + dev: false + + /p-locate@2.0.0: + resolution: {integrity: sha512-nQja7m7gSKuewoVRen45CtVfODR3crN3goVQ0DDZ9N3yHxgpkuBhZqsaiotSQRrADUrne346peY7kT3TSACykg==} + engines: {node: '>=4'} + dependencies: + p-limit: 1.3.0 + dev: true + + /p-locate@3.0.0: + resolution: {integrity: sha512-x+12w/To+4GFfgJhBEpiDcLozRJGegY+Ei7/z0tSLkMmxGZNybVMSfWj9aJn8Z5Fc7dBUNJOOVgPv2H7IwulSQ==} + engines: {node: '>=6'} + dependencies: + p-limit: 2.3.0 + + /p-locate@4.1.0: + resolution: {integrity: sha512-R79ZZ/0wAxKGu3oYMlz8jy/kbhsNrS7SKZ7PxEHBgJ5+F2mtFW2fK2cOtBh1cHYkQsbzFV7I+EoRKe6Yt0oK7A==} + engines: {node: '>=8'} + dependencies: + p-limit: 2.3.0 + + /p-map@2.1.0: + resolution: {integrity: sha512-y3b8Kpd8OAN444hxfBbFfj1FY/RjtTd8tzYwhUqNYXx0fXx2iX4maP4Qr6qhIKbQXI02wTLAda4fYUbDagTUFw==} + engines: {node: '>=6'} + dev: true + + /p-map@4.0.0: + resolution: {integrity: sha512-/bjOqmgETBYB5BoEeGVea8dmvHb2m9GLy1E9W43yeyfP6QQCZGFNa+XRceJEuDB6zqr+gKpIAmlLebMpykw/MQ==} + engines: {node: '>=10'} + dependencies: + aggregate-error: 3.1.0 + + /p-retry@3.0.1: + resolution: {integrity: sha512-XE6G4+YTTkT2a0UWb2kjZe8xNwf8bIbnqpc/IS/idOBVhyves0mK5OJgeocjx7q5pvX/6m23xuzVPYT1uGM73w==} + engines: {node: '>=6'} + dependencies: + retry: 0.12.0 + dev: true + + /p-timeout@2.0.1: + resolution: {integrity: sha512-88em58dDVB/KzPEx1X0N3LwFfYZPyDc4B6eF38M1rk9VTZMbxXXgjugz8mmwpS9Ox4BDZ+t6t3QP5+/gazweIA==} + engines: {node: '>=4'} + dependencies: + p-finally: 1.0.0 + dev: false + + /p-try@1.0.0: + resolution: {integrity: sha512-U1etNYuMJoIz3ZXSrrySFjsXQTWOx2/jdi86L+2pRvph/qMKL6sbcCYdH23fqsbm8TH2Gn0OybpT4eSFlCVHww==} + engines: {node: '>=4'} + dev: true + + /p-try@2.2.0: + resolution: {integrity: sha512-R4nPAVTAU0B9D35/Gk3uJf/7XYbQcyohSKdvAxIRSNghFl4e71hVoGnBNQz9cWaXxO2I10KTC+3jMdvvoKw6dQ==} + engines: {node: '>=6'} + + /pako@0.2.9: + resolution: {integrity: sha512-NUcwaKxUxWrZLpDG+z/xZaCgQITkA/Dv4V/T6bw7VON6l1Xz/VnrBqrYjZQ12TamKHzITTfOEIYUj48y2KXImA==} + dev: false + + /pako@1.0.11: + resolution: {integrity: sha512-4hLB8Py4zZce5s4yd9XzopqwVv/yGNhV1Bl8NTmCq1763HeK2+EwVTv+leGeL13Dnh2wfbqowVPXCIO0z4taYw==} + + /papaparse@5.3.0: + resolution: {integrity: sha512-Lb7jN/4bTpiuGPrYy4tkKoUS8sTki8zacB5ke1p5zolhcSE4TlWgrlsxjrDTbG/dFVh07ck7X36hUf/b5V68pg==} + dev: false + + /parallel-transform@1.2.0: + resolution: {integrity: sha512-P2vSmIu38uIlvdcU7fDkyrxj33gTUy/ABO5ZUbGowxNCopBq/OoD42bP4UmMrJoPyk4Uqf0mu3mtWBhHCZD8yg==} + dependencies: + cyclist: 1.0.2 + inherits: 2.0.4 + readable-stream: 2.3.8 + + /param-case@3.0.4: + resolution: {integrity: sha512-RXlj7zCYokReqWpOPH9oYivUzLYZ5vAPIfEmCTNViosC78F8F0H9y7T7gG2M39ymgutxF5gcFEsyZQSph9Bp3A==} + dependencies: + dot-case: 3.0.4 + tslib: 2.6.2 + dev: true + + /parent-module@1.0.1: + resolution: {integrity: sha512-GQ2EWRpQV8/o+Aw8YqtfZZPfNRWZYkbidE9k5rpl/hC3vtHHBfGm2Ifi6qWV+coDGkrUKZAxE3Lot5kcsRlh+g==} + engines: {node: '>=6'} + dependencies: + callsites: 3.1.0 + dev: true + + /parse-asn1@5.1.6: + resolution: {integrity: sha512-RnZRo1EPU6JBnra2vGHj0yhp6ebyjBZpmUCLHWiFhxlzvBCCpAuZ7elsBp1PVAbQN0/04VD/19rfzlBSwLstMw==} + dependencies: + asn1.js: 5.4.1 + browserify-aes: 1.2.0 + evp_bytestokey: 1.0.3 + pbkdf2: 3.1.2 + safe-buffer: 5.2.1 + + /parse-color@1.0.0: + resolution: {integrity: sha512-fuDHYgFHJGbpGMgw9skY/bj3HL/Jrn4l/5rSspy00DoT4RyLnDcRvPxdZ+r6OFwIsgAuhDh4I09tAId4mI12bw==} + dependencies: + color-convert: 0.5.3 + dev: false + + /parse-glob@3.0.4: + resolution: {integrity: sha512-FC5TeK0AwXzq3tUBFtH74naWkPQCEWs4K+xMxWZBlKDWu0bVHXGZa+KKqxKidd7xwhdZ19ZNuF2uO1M/r196HA==} + engines: {node: '>=0.10.0'} + dependencies: + glob-base: 0.3.0 + is-dotfile: 1.0.3 + is-extglob: 1.0.0 + is-glob: 2.0.1 + dev: true + + /parse-headers@2.0.5: + resolution: {integrity: sha512-ft3iAoLOB/MlwbNXgzy43SWGP6sQki2jQvAyBg/zDFAgr9bfNWZIUj42Kw2eJIl8kEi4PbgE6U1Zau/HwI75HA==} + dev: false + + /parse-json@2.2.0: + resolution: {integrity: sha512-QR/GGaKCkhwk1ePQNYDRKYZ3mwU9ypsKhB0XyFnLQdomyEqk3e8wpW3V5Jp88zbxK4n5ST1nqo+g9juTpownhQ==} + engines: {node: '>=0.10.0'} + dependencies: + error-ex: 1.3.2 + dev: true + + /parse-json@4.0.0: + resolution: {integrity: sha512-aOIos8bujGN93/8Ox/jPLh7RwVnPEysynVFE+fQZyg6jKELEHwzgKdLRFHUgXJL6kylijVSBC4BvN9OmsB48Rw==} + engines: {node: '>=4'} + dependencies: + error-ex: 1.3.2 + json-parse-better-errors: 1.0.2 + + /parse-passwd@1.0.0: + resolution: {integrity: sha512-1Y1A//QUXEZK7YKz+rD9WydcE1+EuPr6ZBgKecAB8tmoW6UFv0NREVJe1p+jRxtThkcbbKkfwIbWJe/IeE6m2Q==} + engines: {node: '>=0.10.0'} + + /parse5-htmlparser2-tree-adapter@7.0.0: + resolution: {integrity: sha512-B77tOZrqqfUfnVcOrUvfdLbz4pu4RopLD/4vmu3HUPswwTA8OH0EMW9BlWR2B0RCoiZRAHEUu7IxeP1Pd1UU+g==} + dependencies: + domhandler: 5.0.3 + parse5: 7.1.2 + dev: true + + /parse5@1.5.1: + resolution: {integrity: sha512-w2jx/0tJzvgKwZa58sj2vAYq/S/K1QJfIB3cWYea/Iu1scFPDQQ3IQiVZTHWtRBwAjv2Yd7S/xeZf3XqLDb3bA==} + dev: true + + /parse5@7.1.2: + resolution: {integrity: sha512-Czj1WaSVpaoj0wbhMzLmWD69anp2WH7FXMB9n1Sy8/ZFF9jolSQVMu1Ij5WIyGmcBmhk7EOndpO4mIpihVqAXw==} + dependencies: + entities: 4.5.0 + dev: true + + /parseurl@1.3.3: + resolution: {integrity: sha512-CiyeOxFT/JZyN5m0z9PfXw4SCBJ6Sygz1Dpl0wqjlhDEGGBP1GnsUVEL0p63hoG1fcj3fHynXi9NYO4nWOL+qQ==} + engines: {node: '>= 0.8'} + dev: true + + /pascal-case@3.1.2: + resolution: {integrity: sha512-uWlGT3YSnK9x3BQJaOdcZwrnV6hPpd8jFH1/ucpiLRPh/2zCVJKS19E4GvYHvaCcACn3foXZ0cLB9Wrx1KGe5g==} + dependencies: + no-case: 3.0.4 + tslib: 2.6.2 + dev: true + + /pascalcase@0.1.1: + resolution: {integrity: sha512-XHXfu/yOQRy9vYOtUDVMN60OEJjW013GoObG1o+xwQTpB9eYJX/BjXMsdW13ZDPruFhYYn0AG22w0xgQMwl3Nw==} + engines: {node: '>=0.10.0'} + + /path-browserify@0.0.1: + resolution: {integrity: sha512-BapA40NHICOS+USX9SN4tyhq+A2RrN/Ws5F0Z5aMHDp98Fl86lX8Oti8B7uN93L4Ifv4fHOEA+pQw87gmMO/lQ==} + + /path-dirname@1.0.2: + resolution: {integrity: sha512-ALzNPpyNq9AqXMBjeymIjFDAkAFH06mHJH/cSBHAgU0s4vfpBn6b2nf8tiRLvagKD8RbTpq2FKTBg7cl9l3c7Q==} + + /path-exists@2.1.0: + resolution: {integrity: sha512-yTltuKuhtNeFJKa1PiRzfLAU5182q1y4Eb4XCJ3PBqyzEDkAZRzBrKKBct682ls9reBVHf9udYLN5Nd+K1B9BQ==} + engines: {node: '>=0.10.0'} + dependencies: + pinkie-promise: 2.0.1 + dev: true + + /path-exists@3.0.0: + resolution: {integrity: sha512-bpC7GYwiDYQ4wYLe+FA8lhRjhQCMcQGuSgGGqDkg/QerRWw9CmGRT0iSOVRSZJ29NMLZgIzqaljJ63oaL4NIJQ==} + engines: {node: '>=4'} + + /path-exists@4.0.0: + resolution: {integrity: sha512-ak9Qy5Q7jYb2Wwcey5Fpvg2KoAc/ZIhLSLOSBmRmygPsGwkVVt0fZa0qrtMz+m6tJTAHfZQ8FnmB4MG4LWy7/w==} + engines: {node: '>=8'} + + /path-is-absolute@1.0.1: + resolution: {integrity: sha512-AVbw3UJ2e9bq64vSaS9Am0fje1Pa8pbGqTTsmXfaIiMpnr5DlDhfJOuLj9Sf95ZPVDAUerDfEk88MPmPe7UCQg==} + engines: {node: '>=0.10.0'} + + /path-is-inside@1.0.2: + resolution: {integrity: sha512-DUWJr3+ULp4zXmol/SZkFf3JGsS9/SIv+Y3Rt93/UjPpDpklB5f1er4O3POIbUuUJ3FXgqte2Q7SrU6zAqwk8w==} + dev: true + + /path-key@2.0.1: + resolution: {integrity: sha512-fEHGKCSmUSDPv4uoj8AlD+joPlq3peND+HRYyxFz4KPw4z926S/b8rIuFs2FYJg3BwsxJf6A9/3eIdLaYC+9Dw==} + engines: {node: '>=4'} + + /path-parse@1.0.7: + resolution: {integrity: sha512-LDJzPVEEEPR+y48z93A0Ed0yXb8pAByGWo/k5YYdYgpY2/2EsOsksJrq7lOHxryrVOn1ejG6oAp8ahvOIQD8sw==} + + /path-to-regexp@0.1.7: + resolution: {integrity: sha512-5DFkuoqlv1uYQKxy8omFBeJPQcdoE07Kv2sferDCrAq1ohOU+MSDswDIbnx3YAM60qIOnYa53wBhXW0EbMonrQ==} + dev: true + + /path-type@1.1.0: + resolution: {integrity: sha512-S4eENJz1pkiQn9Znv33Q+deTOKmbl+jj1Fl+qiP/vYezj+S8x+J3Uo0ISrx/QoEvIlOaDWJhPaRd1flJ9HXZqg==} + engines: {node: '>=0.10.0'} + dependencies: + graceful-fs: 4.2.11 + pify: 2.3.0 + pinkie-promise: 2.0.1 + dev: true + + /path-type@2.0.0: + resolution: {integrity: sha512-dUnb5dXUf+kzhC/W/F4e5/SkluXIFf5VUHolW1Eg1irn1hGWjPGdsRcvYJ1nD6lhk8Ir7VM0bHJKsYTx8Jx9OQ==} + engines: {node: '>=4'} + dependencies: + pify: 2.3.0 + dev: true + + /path-type@3.0.0: + resolution: {integrity: sha512-T2ZUsdZFHgA3u4e5PfPbjd7HDDpxPnQb5jN0SrDsjNSuVXHJqtwTnWqG0B1jZrgmJ/7lj1EmVIByWt1gxGkWvg==} + engines: {node: '>=4'} + dependencies: + pify: 3.0.0 + dev: true + + /path-type@4.0.0: + resolution: {integrity: sha512-gDKb8aZMDeD/tZWs9P6+q0J9Mwkdl6xMV8TjnGP3qJVJ06bdMgkbBlLU8IdfOsIsFz2BW1rNVT3XuNEl8zPAvw==} + engines: {node: '>=8'} + + /pathfinding@0.4.18: + resolution: {integrity: sha512-R0TGEQ9GRcFCDvAWlJAWC+KGJ9SLbW4c0nuZRcioVlXVTlw+F5RvXQ8SQgSqI9KXWC1ew95vgmIiyaWTlCe9Ag==} + dependencies: + heap: 0.2.5 + dev: false + + /pbkdf2@3.1.2: + resolution: {integrity: sha512-iuh7L6jA7JEGu2WxDwtQP1ddOpaJNC4KlDEFfdQajSGgGPNi4OyDc2R7QnbY2bR9QjBVGwgvTdNJZoE7RaxUMA==} + engines: {node: '>=0.12'} + dependencies: + create-hash: 1.2.0 + create-hmac: 1.1.7 + ripemd160: 2.0.2 + safe-buffer: 5.2.1 + sha.js: 2.4.11 + + /pend@1.2.0: + resolution: {integrity: sha512-F3asv42UuXchdzt+xXqfW1OGlVBe+mxa2mqI0pg5yAHZPvFmY3Y6drSf/GQ1A86WgWEN9Kzh/WrgKa6iGcHXLg==} + + /performance-now@2.1.0: + resolution: {integrity: sha512-7EAHlyLHI56VEIdK57uwHdHKIaAGbnXPiw0yWbarQZOKaKpvUIgW0jWRVLiatnM+XXlSwsanIBH/hzGMJulMow==} + + /picocolors@0.2.1: + resolution: {integrity: sha512-cMlDqaLEqfSaW8Z7N5Jw+lyIW869EzT73/F5lhtY9cLGoVxSXznfgfXMO0Z5K0o0Q2TkTXq+0KFsdnSe3jDViA==} + dev: false + + /picocolors@1.0.0: + resolution: {integrity: sha512-1fygroTLlHu66zi26VoTDv8yRgm0Fccecssto+MhsZ0D/DGW2sm8E8AjW7NU5VVTRt5GxbeZ5qBuJr+HyLYkjQ==} + + /picomatch@2.3.1: + resolution: {integrity: sha512-JU3teHTNjmE2VCGFzuY8EXzCDVwEqB2a8fsIvwaStHhAWJEeVd1o1QD80CU6+ZdEXXSLbSsuLwJjkCBWqRQUVA==} + engines: {node: '>=8.6'} + + /pify@2.3.0: + resolution: {integrity: sha512-udgsAY+fTnvv7kI7aaxbqwWNb0AHiB0qBO89PZKPkoTmGOgdbrHDKD+0B2X4uTfJ/FT1R09r9gTsjUjNJotuog==} + engines: {node: '>=0.10.0'} + + /pify@3.0.0: + resolution: {integrity: sha512-C3FsVNH1udSEX48gGX1xfvwTWfsYWj5U+8/uK15BGzIGrKoUpghX8hWZwa/OFnakBiiVNmBvemTJR5mcy7iPcg==} + engines: {node: '>=4'} + + /pify@4.0.1: + resolution: {integrity: sha512-uB80kBFb/tfd68bVleG9T5GGsGPjJrLAUpR5PZIrhBnIaRTQRjqdJSsIKkOP6OAIFbj7GOrcudc5pNjZ+geV2g==} + engines: {node: '>=6'} + + /pinkie-promise@2.0.1: + resolution: {integrity: sha512-0Gni6D4UcLTbv9c57DfxDGdr41XfgUjqWZu492f0cIGr16zDU06BWP/RAEvOuo7CQ0CNjHaLlM59YJJFm3NWlw==} + engines: {node: '>=0.10.0'} + dependencies: + pinkie: 2.0.4 + + /pinkie@2.0.4: + resolution: {integrity: sha512-MnUuEycAemtSaeFSjXKW/aroV7akBbY+Sv+RkyqFjgAe73F+MR0TBWKBRDkmfWq/HiFmdavfZ1G7h4SPZXaCSg==} + engines: {node: '>=0.10.0'} + + /pkg-dir@2.0.0: + resolution: {integrity: sha512-ojakdnUgL5pzJYWw2AIDEupaQCX5OPbM688ZevubICjdIX01PRSYKqm33fJoCOJBRseYCTUlQRnBNX+Pchaejw==} + engines: {node: '>=4'} + dependencies: + find-up: 2.1.0 + dev: true + + /pkg-dir@3.0.0: + resolution: {integrity: sha512-/E57AYkoeQ25qkxMj5PBOVgF8Kiu/h7cYS30Z5+R7WaiCCBfLq58ZI/dSeaEKb9WVJV5n/03QwrN3IeWIFllvw==} + engines: {node: '>=6'} + dependencies: + find-up: 3.0.0 + + /pkg-dir@4.2.0: + resolution: {integrity: sha512-HRDzbaKjC+AOWVXxAU/x54COGeIv9eb+6CkDSQoNTt4XyWoIJvuPsXizxu/Fr23EiekbtZwmh1IcIG/l/a10GQ==} + engines: {node: '>=8'} + dependencies: + find-up: 4.1.0 + + /pkg-up@2.0.0: + resolution: {integrity: sha512-fjAPuiws93rm7mPUu21RdBnkeZNrbfCFCwfAhPWY+rR3zG0ubpe5cEReHOw5fIbfmsxEV/g2kSxGTATY3Bpnwg==} + engines: {node: '>=4'} + dependencies: + find-up: 2.1.0 + dev: true + + /pnpm@7.33.6: + resolution: {integrity: sha512-kOJ/04BH8YWD8zQveEzD8Yf01MqsievB//rhjc17Ld52eKC/I3SBvLj36OZhNfo0gDhW5OssRCzggv+rXZ0kHw==} + engines: {node: '>=14.6'} + hasBin: true + dev: false + + /portfinder@1.0.32(supports-color@6.1.0): + resolution: {integrity: sha512-on2ZJVVDXRADWE6jnQaX0ioEylzgBpQk8r55NE4wjXW1ZxO+BgDlY6DXwj20i0V8eB4SenDQ00WEaxfiIQPcxg==} + engines: {node: '>= 0.12.0'} + dependencies: + async: 2.6.4 + debug: 3.2.7(supports-color@6.1.0) + mkdirp: 0.5.6 + transitivePeerDependencies: + - supports-color + dev: true + + /posix-character-classes@0.1.1: + resolution: {integrity: sha512-xTgYBc3fuo7Yt7JbiuFxSYGToMoz8fLoE6TC9Wx1P/u+LfeThMOAqmuyECnlBaaJb+u1m9hHiXUEtwW4OzfUJg==} + engines: {node: '>=0.10.0'} + + /postcss-import@12.0.1: + resolution: {integrity: sha512-3Gti33dmCjyKBgimqGxL3vcV8w9+bsHwO5UrBawp796+jdardbcFl4RP5w/76BwNL7aGzpKstIfF9I+kdE8pTw==} + engines: {node: '>=6.0.0'} + dependencies: + postcss: 7.0.39 + postcss-value-parser: 3.3.1 + read-cache: 1.0.0 + resolve: 1.22.8 + dev: false + + /postcss-load-config@2.1.2: + resolution: {integrity: sha512-/rDeGV6vMUo3mwJZmeHfEDvwnTKKqQ0S7OHUi/kJvvtx3aWtyWG2/0ZWnzCt2keEclwN6Tf0DST2v9kITdOKYw==} + engines: {node: '>= 4'} + dependencies: + cosmiconfig: 5.2.1 + import-cwd: 2.1.0 + dev: false + + /postcss-loader@3.0.0: + resolution: {integrity: sha512-cLWoDEY5OwHcAjDnkyRQzAXfs2jrKjXpO/HQFcc5b5u/r7aa471wdmChmwfnv7x2u840iat/wi0lQ5nbRgSkUA==} + engines: {node: '>= 6'} + dependencies: + loader-utils: 1.4.2 + postcss: 7.0.39 + postcss-load-config: 2.1.2 + schema-utils: 1.0.0 + dev: false + + /postcss-modules-extract-imports@1.2.1: + resolution: {integrity: sha512-6jt9XZwUhwmRUhb/CkyJY020PYaPJsCyt3UjbaWo6XEbH/94Hmv6MP7fG2C5NDU/BcHzyGYxNtHvM+LTf9HrYw==} + dependencies: + postcss: 6.0.23 + dev: false + + /postcss-modules-local-by-default@1.2.0: + resolution: {integrity: sha512-X4cquUPIaAd86raVrBwO8fwRfkIdbwFu7CTfEOjiZQHVQwlHRSkTgH5NLDmMm5+1hQO8u6dZ+TOOJDbay1hYpA==} + dependencies: + css-selector-tokenizer: 0.7.3 + postcss: 6.0.23 + dev: false + + /postcss-modules-scope@1.1.0: + resolution: {integrity: sha512-LTYwnA4C1He1BKZXIx1CYiHixdSe9LWYVKadq9lK5aCCMkoOkFyZ7aigt+srfjlRplJY3gIol6KUNefdMQJdlw==} + dependencies: + css-selector-tokenizer: 0.7.3 + postcss: 6.0.23 + dev: false + + /postcss-modules-values@1.3.0: + resolution: {integrity: sha512-i7IFaR9hlQ6/0UgFuqM6YWaCfA1Ej8WMg8A5DggnH1UGKJvTV/ugqq/KaULixzzOi3T/tF6ClBXcHGCzdd5unA==} + dependencies: + icss-replace-symbols: 1.1.0 + postcss: 6.0.23 + dev: false + + /postcss-simple-vars@5.0.2: + resolution: {integrity: sha512-xWIufxBoINJv6JiLb7jl5oElgp+6puJwvT5zZHliUSydoLz4DADRB3NDDsYgfKVwojn4TDLiseoC65MuS8oGGg==} + dependencies: + postcss: 7.0.39 + dev: false + + /postcss-value-parser@3.3.1: + resolution: {integrity: sha512-pISE66AbVkp4fDQ7VHBwRNXzAAKJjw4Vw7nWI/+Q3vuly7SNfgYXvm6i5IgFylHGK5sP/xHAbB7N49OS4gWNyQ==} + dev: false + + /postcss-value-parser@4.2.0: + resolution: {integrity: sha512-1NNCs6uurfkVbeXG4S8JFT9t19m45ICnif8zWLd5oPSZ50QnwMfK+H3jv408d4jw/7Bttv5axS5IiHoLaVNHeQ==} + dev: false + + /postcss@6.0.23: + resolution: {integrity: sha512-soOk1h6J3VMTZtVeVpv15/Hpdl2cBLX3CAw4TAbkpTJiNPk9YP/zWcD1ND+xEtvyuuvKzbxliTOIyvkSeSJ6ag==} + engines: {node: '>=4.0.0'} + dependencies: + chalk: 2.4.2 + source-map: 0.6.1 + supports-color: 5.5.0 + dev: false + + /postcss@7.0.39: + resolution: {integrity: sha512-yioayjNbHn6z1/Bywyb2Y4s3yvDAeXGOyxqD+LnVOinq6Mdmd++SW2wUNVzavyyHxd6+DxzWGIuosg6P1Rj8uA==} + engines: {node: '>=6.0.0'} + dependencies: + picocolors: 0.2.1 + source-map: 0.6.1 + dev: false + + /prelude-ls@1.1.2: + resolution: {integrity: sha512-ESF23V4SKG6lVSGZgYNpbsiaAkdab6ZgOxe52p7+Kid3W3u3bxR4Vfd/o21dmN7jSt0IwgZ4v5MUd26FEtXE9w==} + engines: {node: '>= 0.8.0'} + + /prepend-http@1.0.4: + resolution: {integrity: sha512-PhmXi5XmoyKw1Un4E+opM2KcsJInDvKyuOumcjjw3waw86ZNjHwVUOOWLc4bCzLdcKNaWBH9e99sbWzDQsVaYg==} + engines: {node: '>=0.10.0'} + dev: true + + /prepend-http@2.0.0: + resolution: {integrity: sha512-ravE6m9Atw9Z/jjttRUZ+clIXogdghyZAuWJ3qEzjT+jI/dL1ifAqhZeC5VHzQp1MSt1+jxKkFNemj/iO7tVUA==} + engines: {node: '>=4'} + dev: false + + /preserve@0.2.0: + resolution: {integrity: sha512-s/46sYeylUfHNjI+sA/78FAHlmIuKqI9wNnzEOGehAlUUYeObv5C2mOinXBjyUyWmJ2SfcS2/ydApH4hTF4WXQ==} + engines: {node: '>=0.10.0'} + dev: true + + /pretty-error@2.1.2: + resolution: {integrity: sha512-EY5oDzmsX5wvuynAByrmY0P0hcp+QpnAKbJng2A2MPjVKXCxrDSUkzghVJ4ZGPIv+JC4gX8fPUWscC0RtjsWGw==} + dependencies: + lodash: 4.17.21 + renderkid: 2.0.7 + dev: true + + /pretty-format@21.2.1: + resolution: {integrity: sha512-ZdWPGYAnYfcVP8yKA3zFjCn8s4/17TeYH28MXuC8vTp0o21eXjbFGcOAXZEaDaOFJjc3h2qa7HQNHNshhvoh2A==} + dependencies: + ansi-regex: 3.0.1 + ansi-styles: 3.2.1 + dev: true + + /pretty-format@24.9.0: + resolution: {integrity: sha512-00ZMZUiHaJrNfk33guavqgvfJS30sLYf0f8+Srklv0AMPodGGHcoHgksZ3OThYnIvOd+8yMCn0YiEOogjlgsnA==} + engines: {node: '>= 6'} + dependencies: + '@jest/types': 24.9.0 + ansi-regex: 4.1.1 + ansi-styles: 3.2.1 + react-is: 16.13.1 + dev: true + + /private@0.1.8: + resolution: {integrity: sha512-VvivMrbvd2nKkiG38qjULzlc+4Vx4wm/whI9pQD35YrARNnhxeiRktSOhSukRLFNlzg6Br/cJPet5J/u19r/mg==} + engines: {node: '>= 0.6'} + dev: true + + /process-nextick-args@1.0.7: + resolution: {integrity: sha512-yN0WQmuCX63LP/TMvAg31nvT6m4vDqJEiiv2CAZqWOGNWutc9DfDk1NPYYmKUFmaVM2UwDowH4u5AHWYP/jxKw==} + dev: false + + /process-nextick-args@2.0.1: + resolution: {integrity: sha512-3ouUOpQhtgrbOa17J7+uxOTpITYWaGP7/AhoR3+A+/1e9skrzelGi/dXzEYyvbxubEF6Wn2ypscTKiKJFFn1ag==} + + /process@0.11.10: + resolution: {integrity: sha512-cdGef/drWFoydD1JsMzuFf8100nZl+GT+yacc2bEced5f9Rjk4z+WtFUTBu9PhOi9j/jfmBPu0mMEY4wIdAF8A==} + engines: {node: '>= 0.6.0'} + + /process@0.5.2: + resolution: {integrity: sha512-oNpcutj+nYX2FjdEW7PGltWhXulAnFlM0My/k48L90hARCOJtvBbQXc/6itV2jDvU5xAAtonP+r6wmQgCcbAUA==} + engines: {node: '>= 0.6.0'} + dev: false + + /progress@2.0.3: + resolution: {integrity: sha512-7PiHtLll5LdnKIMw100I+8xJXR5gW2QwWYkT6iJva0bXitZKa/XMrSbdmg3r2Xnaidz9Qumd0VPaMrZlF9V9sA==} + engines: {node: '>=0.4.0'} + dev: true + + /promise-inflight@1.0.1(bluebird@3.7.2): + resolution: {integrity: sha512-6zWPyEOFaQBJYcGMHBKTKJ3u6TBsnMFOIZSa6ce1e/ZrrsOlnHRHbabMjLiBYKp+n44X9eUI6VUPaukCXHuG4g==} + peerDependencies: + bluebird: '*' + peerDependenciesMeta: + bluebird: + optional: true + dependencies: + bluebird: 3.7.2 + + /promise@7.3.1: + resolution: {integrity: sha512-nolQXZ/4L+bP/UGlkfaIujX9BKxGwmQ9OT4mOt5yvy8iK1h3wqTEJCijzGANTCCl9nWjY41juyAn2K3Q1hLLTg==} + dependencies: + asap: 2.0.6 + dev: true + + /prop-types-exact@1.2.0: + resolution: {integrity: sha512-K+Tk3Kd9V0odiXFP9fwDHUYRyvK3Nun3GVyPapSIs5OBkITAm15W0CPFD/YKTkMUAbc0b9CUwRQp2ybiBIq+eA==} + dependencies: + has: 1.0.4 + object.assign: 4.1.5 + reflect.ownkeys: 0.2.0 + dev: true + + /prop-types@15.8.1: + resolution: {integrity: sha512-oj87CgZICdulUohogVAR7AjlC0327U4el4L6eAvOqCeudMDVU0NThNaV+b9Df4dXgSP1gXMTnPdhfe/2qDH5cg==} + dependencies: + loose-envify: 1.4.0 + object-assign: 4.1.1 + react-is: 16.13.1 + + /proxy-addr@2.0.7: + resolution: {integrity: sha512-llQsMLSUDUPT44jdrU/O37qlnifitDP+ZwrmmZcoSKyLKvtZxpyV0n2/bD/N4tBAAZ/gJEdZU7KMraoK1+XYAg==} + engines: {node: '>= 0.10'} + dependencies: + forwarded: 0.2.0 + ipaddr.js: 1.9.1 + dev: true + + /proxy-from-env@1.1.0: + resolution: {integrity: sha512-D+zkORCbA9f1tdWRK0RaCR3GPv50cMxcrz4X8k5LTSUD1Dkw47mKJEZQNunItRTkWwgtaUSo1RVFRIG9ZXiFYg==} + dev: true + + /prr@1.0.1: + resolution: {integrity: sha512-yPw4Sng1gWghHQWj0B3ZggWUm4qVbPwPFcRG8KyxiU7J2OHFSoEHKS+EZ3fv5l1t9CyCiop6l/ZYeWbrgoQejw==} + + /pseudomap@1.0.2: + resolution: {integrity: sha512-b/YwNhb8lk1Zz2+bXXpS/LK9OisiZZ1SNsSLxN1x2OXVEhW2Ckr/7mWE5vrC1ZTiJlD9g19jWszTmJsB+oEpFQ==} + dev: true + + /psl@1.9.0: + resolution: {integrity: sha512-E/ZsdU4HLs/68gYzgGTkMicWTLPdAftJLfJFlLUAAKZGkStNU72sZjT66SnMDVOfOWY/YAoiD7Jxa9iHvngcag==} + + /public-encrypt@4.0.3: + resolution: {integrity: sha512-zVpa8oKZSz5bTMTFClc1fQOnyyEzpl5ozpi1B5YcvBrdohMjH2rfsBtyXcuNuwjsDIXmBYlF2N5FlJYhR29t8Q==} + dependencies: + bn.js: 4.12.0 + browserify-rsa: 4.1.0 + create-hash: 1.2.0 + parse-asn1: 5.1.6 + randombytes: 2.1.0 + safe-buffer: 5.2.1 + + /pump@2.0.1: + resolution: {integrity: sha512-ruPMNRkN3MHP1cWJc9OWr+T/xDP0jhXYCLfJcBuX54hhfIBnaQmAUMfDcG4DM5UMWByBbJY69QSphm3jtDKIkA==} + dependencies: + end-of-stream: 1.4.4 + once: 1.4.0 + + /pump@3.0.0: + resolution: {integrity: sha512-LwZy+p3SFs1Pytd/jYct4wpv49HiYCqd9Rlc5ZVdk0V+8Yzv6jR5Blk3TRmPL1ft69TxP0IMZGJ+WPFU2BFhww==} + dependencies: + end-of-stream: 1.4.4 + once: 1.4.0 + + /pumpify@1.5.1: + resolution: {integrity: sha512-oClZI37HvuUJJxSKKrC17bZ9Cu0ZYhEAGPsPUy9KlMUmv9dKX2o77RUmq7f3XjIxbwyGwYzbzQ1L2Ks8sIradQ==} + dependencies: + duplexify: 3.7.1 + inherits: 2.0.4 + pump: 2.0.1 + + /punycode@1.4.1: + resolution: {integrity: sha512-jmYNElW7yvO7TV33CjSmvSiE2yco3bV2czu/OzDKdMNVZQWfxCblURLhf+47syQRBntjfLdd/H0egrzIG+oaFQ==} + + /punycode@2.3.1: + resolution: {integrity: sha512-vYt7UD1U9Wg6138shLtLOvdAu+8DsC/ilFtEVHcH+wydcSpNE20AfSOduf6MkRFahL5FY7X1oU7nKVZFtfq8Fg==} + engines: {node: '>=6'} + + /q@1.5.1: + resolution: {integrity: sha512-kV/CThkXo6xyFEZUugw/+pIOywXcDbFYgSct5cT3gqlbkBE1SJdwy6UQoZvodiWF/ckQLZyDE/Bu1M6gVu5lVw==} + engines: {node: '>=0.6.0', teleport: '>=0.2.0'} + dev: false + + /qs@6.11.0: + resolution: {integrity: sha512-MvjoMCJwEarSbUYk5O+nmoSzSutSsTwF85zcHPQ9OrlFoZOYIjaqBAJIqIXjptyD5vThxGq52Xu/MaJzRkIk4Q==} + engines: {node: '>=0.6'} + dependencies: + side-channel: 1.0.4 + dev: true + + /qs@6.11.2: + resolution: {integrity: sha512-tDNIz22aBzCDxLtVH++VnTfzxlfeK5CbqohpSqpJgj1Wg/cQbStNAz3NuqCs5vV+pjBsK4x4pN9HlVh7rcYRiA==} + engines: {node: '>=0.6'} + dependencies: + side-channel: 1.0.4 + + /qs@6.5.3: + resolution: {integrity: sha512-qxXIEh4pCGfHICj1mAJQ2/2XVZkjCDTcEgfoSQxc/fYivUZxTkk7L3bDBJSoNrEzXI17oUO5Dp07ktqE5KzczA==} + engines: {node: '>=0.6'} + + /query-string@4.3.4: + resolution: {integrity: sha512-O2XLNDBIg1DnTOa+2XrIwSiXEV8h2KImXUnjhhn2+UsvZ+Es2uyd5CCRTNQlDGbzUQOW3aYCBx9rVA6dzsiY7Q==} + engines: {node: '>=0.10.0'} + dependencies: + object-assign: 4.1.1 + strict-uri-encode: 1.1.0 + dev: true + + /query-string@5.1.1: + resolution: {integrity: sha512-gjWOsm2SoGlgLEdAGt7a6slVOk9mGiXmPFMqrEhLQ68rhQuBnpfs3+EmlvqKyxnCo9/PPlF+9MtY02S1aFg+Jw==} + engines: {node: '>=0.10.0'} + dependencies: + decode-uri-component: 0.2.2 + object-assign: 4.1.1 + strict-uri-encode: 1.1.0 + dev: false + + /querystring-es3@0.2.1: + resolution: {integrity: sha512-773xhDQnZBMFobEiztv8LIl70ch5MSF/jUQVlhwFyBILqq96anmoctVIYz+ZRp0qbCKATTn6ev02M3r7Ga5vqA==} + engines: {node: '>=0.4.x'} + + /querystringify@2.2.0: + resolution: {integrity: sha512-FIqgj2EUvTa7R50u0rGsyTftzjYmv/a3hO345bZNrqabNqjtgiDMgmo4mkUjd+nzU5oF3dClKqFIPUKybUyqoQ==} + dev: true + + /queue-microtask@1.2.3: + resolution: {integrity: sha512-NuaNSa6flKT5JaSYQzJok04JzTL1CA6aGhv5rfLW3PgqA+M2ChpZQnAC8h8i4ZFkBS8X5RqkDBHA7r4hej3K9A==} + + /quote-stream@1.0.2: + resolution: {integrity: sha512-kKr2uQ2AokadPjvTyKJQad9xELbZwYzWlNfI3Uz2j/ib5u6H9lDP7fUUR//rMycd0gv4Z5P1qXMfXR8YpIxrjQ==} + hasBin: true + dependencies: + buffer-equal: 0.0.1 + minimist: 1.2.8 + through2: 2.0.5 + dev: false + + /raf@3.4.1: + resolution: {integrity: sha512-Sq4CW4QhwOHE8ucn6J34MqtZCeWFP2aQSmrlroYgqAV1PjStIhJXxYuTgUIfkEk7zTLjmIjLmU5q+fbD1NnOJA==} + dependencies: + performance-now: 2.1.0 + dev: true + + /railroad-diagrams@1.0.0: + resolution: {integrity: sha512-cz93DjNeLY0idrCNOH6PviZGRN9GJhsdm9hpn1YCS879fj4W+x5IFJhhkRZcwVgMmFF7R82UA/7Oh+R8lLZg6A==} + dev: true + + /randexp@0.4.6: + resolution: {integrity: sha512-80WNmd9DA0tmZrw9qQa62GPPWfuXJknrmVmLcxvq4uZBdYqb1wYoKTmnlGUchvVWe0XiLupYkBoXVOxz3C8DYQ==} + engines: {node: '>=0.12'} + dependencies: + discontinuous-range: 1.0.0 + ret: 0.1.15 + dev: true + + /randomatic@3.1.1: + resolution: {integrity: sha512-TuDE5KxZ0J461RVjrJZCJc+J+zCkTb1MbH9AQUq68sMhOMcy9jLcb3BrZKgp9q9Ncltdg4QVqWrH02W2EFFVYw==} + engines: {node: '>= 0.10.0'} + dependencies: + is-number: 4.0.0 + kind-of: 6.0.3 + math-random: 1.0.4 + dev: true + + /randombytes@2.1.0: + resolution: {integrity: sha512-vYl3iOX+4CKUWuxGi9Ukhie6fsqXqS9FE2Zaic4tNFD2N2QQaXOMFbuKK4QmDHC0JO6B1Zp41J0LpT0oR68amQ==} + dependencies: + safe-buffer: 5.2.1 + + /randomfill@1.0.4: + resolution: {integrity: sha512-87lcbR8+MhcWcUiQ+9e+Rwx8MyR2P7qnt15ynUlbm3TU/fjbgz4GsvfSUDTemtCCtVCqb4ZcEFlyPNTh9bBTLw==} + dependencies: + randombytes: 2.1.0 + safe-buffer: 5.2.1 + + /range-parser@1.2.1: + resolution: {integrity: sha512-Hrgsx+orqoygnmhFbKaHE6c296J+HTAQXoxEF6gNupROmmGJRoyzfG3ccAveqCBrwr/2yxQ5BVd/GTl5agOwSg==} + engines: {node: '>= 0.6'} + dev: true + + /raw-body@2.5.1: + resolution: {integrity: sha512-qqJBtEyVgS0ZmPGdCFPWJ3FreoqvG4MVQln/kCgF7Olq95IbOp0/BWyMwbdtn4VTvkM8Y7khCQ2Xgk/tcrCXig==} + engines: {node: '>= 0.8'} + dependencies: + bytes: 3.1.2 + http-errors: 2.0.0 + iconv-lite: 0.4.24 + unpipe: 1.0.0 + dev: true + + /raw-loader@0.5.1: + resolution: {integrity: sha512-sf7oGoLuaYAScB4VGr0tzetsYlS8EJH6qnTCfQ/WVEa89hALQ4RQfCKt5xCyPQKPDUbVUAIP1QsxAwfAjlDp7Q==} + dev: false + + /react-contextmenu@2.9.4(prop-types@15.8.1)(react-dom@16.14.0)(react@16.14.0): + resolution: {integrity: sha512-ma4YQw4J7JNv8L8mMVd1NHHbvH3+gaK/rQ6FC5Tft7OCUweKi7PHqHEE0fDF2009FLSGoV5JnjPnTTEyThqaJg==} + peerDependencies: + prop-types: ^15.0.0 + react: ^0.14.0 || ^15.0.0 || ^16.0.0 + react-dom: ^0.14.0 || ^15.0.0 || ^16.0.0 + dependencies: + classnames: 2.2.6 + object-assign: 4.1.1 + prop-types: 15.8.1 + react: 16.14.0 + react-dom: 16.14.0(react@16.14.0) + dev: false + + /react-dom@16.14.0(react@16.14.0): + resolution: {integrity: sha512-1gCeQXDLoIqMgqD3IO2Ah9bnf0w9kzhwN5q4FGnHZ67hBm9yePzB5JJAIQCc8x3pFnNlwFq4RidZggNAAkzWWw==} + peerDependencies: + react: ^16.14.0 + dependencies: + loose-envify: 1.4.0 + object-assign: 4.1.1 + prop-types: 15.8.1 + react: 16.14.0 + scheduler: 0.19.1 + + /react-draggable@3.0.5(react-dom@16.14.0)(react@16.14.0): + resolution: {integrity: sha512-qo76q6+pafyGllbmfc+CgWfOkwY9v3UoJa3jp6xG2vdsRY8uJTN1kqNievLj0uVNjEqCvZ0OFiEBxlAJNj3OTg==} + peerDependencies: + react: '>= 16.3.0' + react-dom: '>= 16.3.0' + dependencies: + classnames: 2.2.6 + prop-types: 15.8.1 + react: 16.14.0 + react-dom: 16.14.0(react@16.14.0) + dev: false + + /react-ga@2.5.3: + resolution: {integrity: sha512-25wvPv1PVLDLhw1gEYP33h0V2sJHahKMfUCAxhq8JPYmNQwx1fcjJAkJk+WmSqGN93lHLhExDkxy3SQizQnx3A==} + optionalDependencies: + prop-types: 15.8.1 + react: 16.14.0 + dev: false + + /react-intl-redux@0.7.0(react-intl@2.9.0)(react-redux@5.0.7): + resolution: {integrity: sha512-T7I7Yy1UkvD8rOB1B+SCG63LYJBtBcvGJ8FVJ8g8Yjhm4+rEhKzJuh1MaQBhwKZNlVcHlx4SlKdtkw8urdZdrA==} + peerDependencies: + react-intl: ^2.2.2 + react-redux: ^5.0.1 + dependencies: + prop-types: 15.8.1 + react-intl: 2.9.0(prop-types@15.8.1)(react@16.14.0) + react-redux: 5.0.7(react@16.14.0)(redux@3.7.2) + dev: false + + /react-intl@2.9.0(prop-types@15.8.1)(react@16.14.0): + resolution: {integrity: sha512-27jnDlb/d2A7mSJwrbOBnUgD+rPep+abmoJE511Tf8BnoONIAUehy/U1zZCHGO17mnOwMWxqN4qC0nW11cD6rA==} + peerDependencies: + prop-types: ^15.5.4 + react: ^0.14.9 || ^15.0.0 || ^16.0.0 + dependencies: + hoist-non-react-statics: 3.3.2 + intl-format-cache: 2.2.9 + intl-messageformat: 2.2.0 + intl-relativeformat: 2.2.0 + invariant: 2.2.4 + prop-types: 15.8.1 + react: 16.14.0 + dev: false + + /react-is@16.13.1: + resolution: {integrity: sha512-24e6ynE2H+OKt4kqsOvNd8kBpV65zoxbA4BVsEOB3ARVWQki/DHzaUoC5KuON/BiccDaCCTZBuOcfZs70kR8bQ==} + + /react-lifecycles-compat@3.0.4: + resolution: {integrity: sha512-fBASbA6LnOU9dOU2eW7aQ8xmYBSXUIWr+UmF9b1efZBazGNO+rcXT/icdKnYm2pTwcRylVUYwW7H1PHfLekVzA==} + dev: false + + /react-modal@3.9.1(react-dom@16.14.0)(react@16.14.0): + resolution: {integrity: sha512-k+TUkhGWpIVHLsEyjNmlyOYL0Uz03fNZvlkhCImd1h+6fhNgTi6H6jexVXPVhD2LMMDzJyfugxMN+APN/em+eQ==} + peerDependencies: + react: ^0.14.0 || ^15.0.0 || ^16 + react-dom: ^0.14.0 || ^15.0.0 || ^16 + dependencies: + exenv: 1.2.2 + prop-types: 15.8.1 + react: 16.14.0 + react-dom: 16.14.0(react@16.14.0) + react-lifecycles-compat: 3.0.4 + warning: 4.0.3 + dev: false + + /react-popover@0.5.10: + resolution: {integrity: sha512-5SYDTfncywSH00I70oHd4gFRUR8V0rJ4sRADSI/P6G0RVXp9jUgaWloJ0Bk+SFnjpLPuipTKuzQNNd2CTs5Hrw==} + dependencies: + css-vendor: 0.3.8 + debug: 2.6.9(supports-color@6.1.0) + lodash.throttle: 3.0.4 + prop-types: 15.8.1 + transitivePeerDependencies: + - supports-color + dev: false + + /react-redux@5.0.7(react@16.14.0)(redux@3.7.2): + resolution: {integrity: sha512-5VI8EV5hdgNgyjfmWzBbdrqUkrVRKlyTKk1sGH3jzM2M2Mhj/seQgPXaz6gVAj2lz/nz688AdTqMO18Lr24Zhg==} + peerDependencies: + react: ^0.14.0 || ^15.0.0-0 || ^16.0.0-0 + redux: ^2.0.0 || ^3.0.0 || ^4.0.0-0 + dependencies: + hoist-non-react-statics: 2.5.5 + invariant: 2.2.4 + lodash: 4.17.21 + lodash-es: 4.17.21 + loose-envify: 1.4.0 + prop-types: 15.8.1 + react: 16.14.0 + redux: 3.7.2 + dev: false + + /react-responsive@4.1.0(react@16.14.0): + resolution: {integrity: sha512-ZuDraf0qsJlyiTwzeva+foHx83IP6SIhru9o7BvMwQ4ZHjRIL5WjdgVNNrKSRbmeWO9rEJoMpabei/5lJn8KaA==} + engines: {node: '>= 0.10'} + peerDependencies: + react: ^16.0.0 + dependencies: + hyphenate-style-name: 1.0.4 + matchmediaquery: 0.2.1 + prop-types: 15.8.1 + react: 16.14.0 + dev: false + + /react-string-replace@0.4.4: + resolution: {integrity: sha512-FAMkhxmDpCsGTwTZg7p/2v+/GTmxAp73so3fbSvlAcBBX36ujiGRNEaM/1u+jiYQrArhns+7eE92g2pi5E5FUA==} + engines: {node: '>=0.12.0'} + dependencies: + lodash: 4.17.21 + dev: false + + /react-style-proptype@3.2.2: + resolution: {integrity: sha512-ywYLSjNkxKHiZOqNlso9PZByNEY+FTyh3C+7uuziK0xFXu9xzdyfHwg4S9iyiRRoPCR4k2LqaBBsWVmSBwCWYQ==} + dependencies: + prop-types: 15.8.1 + dev: false + + /react-tabs@2.3.0(react@16.14.0): + resolution: {integrity: sha512-pYaefgVy76/36AMEP+B8YuVVzDHa3C5UFZ3REU78zolk0qMxEhKvUFofvDCXyLZwf0RZjxIfiwok1BEb18nHyA==} + peerDependencies: + react: ^0.14.9 || ^15.3.0 || ^16.0.0 + dependencies: + classnames: 2.2.6 + prop-types: 15.8.1 + react: 16.14.0 + dev: false + + /react-test-renderer@16.2.0(react@16.14.0): + resolution: {integrity: sha512-Kd4gJFtpNziR9ElOE/C23LeflKLZPRpNQYWP3nQBY43SJ5a+xyEGSeMrm2zxNKXcnCbBS/q1UpD9gqd5Dv+rew==} + peerDependencies: + react: ^16.0.0 + dependencies: + fbjs: 0.8.18 + object-assign: 4.1.1 + prop-types: 15.8.1 + react: 16.14.0 + dev: true + + /react-tooltip@3.8.0(react-dom@16.14.0)(react@16.14.0): + resolution: {integrity: sha512-Uj/vVd0uGuqwTkWeRjKS56T2iwOSvsSMbjqTK7AseHZEMND+WCXXUajaF7+ZsJWTZgnpeT9kBnaBFhchzeDTbw==} + engines: {node: '>=4.2.1'} + peerDependencies: + react: '>=0.14' + react-dom: '>=0.14' + dependencies: + classnames: 2.2.6 + prop-types: 15.8.1 + react: 16.14.0 + react-dom: 16.14.0(react@16.14.0) + dev: false + + /react-virtualized@9.20.1(react-dom@16.14.0)(react@16.14.0): + resolution: {integrity: sha512-xIWxBsyNAjceqD3hsE0nw5TcDVxKbIepsHhvS2XneHmNz0KlKxdLdGBmGZBM9ZesEmbZ5EO0Sw70TB1MeCmpbQ==} + peerDependencies: + react: ^15.3.0 || ^16.0.0-alpha + react-dom: ^15.3.0 || ^16.0.0-alpha + dependencies: + babel-runtime: 6.26.0 + classnames: 2.2.6 + dom-helpers: 3.4.0 + loose-envify: 1.4.0 + prop-types: 15.8.1 + react: 16.14.0 + react-dom: 16.14.0(react@16.14.0) + react-lifecycles-compat: 3.0.4 + dev: false + + /react@16.14.0: + resolution: {integrity: sha512-0X2CImDkJGApiAlcf0ODKIneSwBPhqJawOa5wCtKbu7ZECrmS26NvtSILynQ66cgkT/RJ4LidJOc3bUESwmU8g==} + engines: {node: '>=0.10.0'} + dependencies: + loose-envify: 1.4.0 + object-assign: 4.1.1 + prop-types: 15.8.1 + + /read-cache@1.0.0: + resolution: {integrity: sha512-Owdv/Ft7IjOgm/i0xvNDZ1LrRANRfew4b2prF3OWMQLxLfu3bS8FVhCsrSCMK4lR56Y9ya+AThoTpDCTxCmpRA==} + dependencies: + pify: 2.3.0 + dev: false + + /read-package-json@2.1.2: + resolution: {integrity: sha512-D1KmuLQr6ZSJS0tW8hf3WGpRlwszJOXZ3E8Yd/DNRaM5d+1wVRZdHlpGBLAuovjr28LbWvjpWkBHMxpRGGjzNA==} + dependencies: + glob: 7.2.3 + json-parse-even-better-errors: 2.3.1 + normalize-package-data: 2.5.0 + npm-normalize-package-bin: 1.0.1 + dev: false + + /read-pkg-up@1.0.1: + resolution: {integrity: sha512-WD9MTlNtI55IwYUS27iHh9tK3YoIVhxis8yKhLpTqWtml739uXc9NWTpxoHkfZf3+DkCCsXox94/VWZniuZm6A==} + engines: {node: '>=0.10.0'} + dependencies: + find-up: 1.1.2 + read-pkg: 1.1.0 + dev: true + + /read-pkg-up@2.0.0: + resolution: {integrity: sha512-1orxQfbWGUiTn9XsPlChs6rLie/AV9jwZTGmu2NZw/CUDJQchXJFYE0Fq5j7+n558T1JhDWLdhyd1Zj+wLY//w==} + engines: {node: '>=4'} + dependencies: + find-up: 2.1.0 + read-pkg: 2.0.0 + dev: true + + /read-pkg-up@3.0.0: + resolution: {integrity: sha512-YFzFrVvpC6frF1sz8psoHDBGF7fLPc+llq/8NB43oagqWkx8ar5zYtsTORtOjw9W2RHLpWP+zTWwBvf1bCmcSw==} + engines: {node: '>=4'} + dependencies: + find-up: 2.1.0 + read-pkg: 3.0.0 + dev: true + + /read-pkg@1.1.0: + resolution: {integrity: sha512-7BGwRHqt4s/uVbuyoeejRn4YmFnYZiFl4AuaeXHlgZf3sONF0SOGlxs2Pw8g6hCKupo08RafIO5YXFNOKTfwsQ==} + engines: {node: '>=0.10.0'} + dependencies: + load-json-file: 1.1.0 + normalize-package-data: 2.5.0 + path-type: 1.1.0 + dev: true + + /read-pkg@2.0.0: + resolution: {integrity: sha512-eFIBOPW7FGjzBuk3hdXEuNSiTZS/xEMlH49HxMyzb0hyPfu4EhVjT2DH32K1hSSmVq4sebAWnZuuY5auISUTGA==} + engines: {node: '>=4'} + dependencies: + load-json-file: 2.0.0 + normalize-package-data: 2.5.0 + path-type: 2.0.0 + dev: true + + /read-pkg@3.0.0: + resolution: {integrity: sha512-BLq/cCO9two+lBgiTYNqD6GdtK8s4NpaWrl6/rCO9w0TUS8oJl7cmToOZfRYllKTISY6nt1U7jQ53brmKqY6BA==} + engines: {node: '>=4'} + dependencies: + load-json-file: 4.0.0 + normalize-package-data: 2.5.0 + path-type: 3.0.0 + dev: true + + /readable-stream@2.0.6: + resolution: {integrity: sha512-TXcFfb63BQe1+ySzsHZI/5v1aJPCShfqvWJ64ayNImXMsN1Cd0YGk/wm8KB7/OeessgPc9QvS9Zou8QTkFzsLw==} + dependencies: + core-util-is: 1.0.3 + inherits: 2.0.4 + isarray: 1.0.0 + process-nextick-args: 1.0.7 + string_decoder: 0.10.31 + util-deprecate: 1.0.2 + dev: false + + /readable-stream@2.3.8: + resolution: {integrity: sha512-8p0AUk4XODgIewSi0l8Epjs+EVnWiK7NoDIEGU0HhE7+ZyY8D1IMY7odu5lRrFXGg71L15KG8QrPmum45RTtdA==} + dependencies: + core-util-is: 1.0.3 + inherits: 2.0.4 + isarray: 1.0.0 + process-nextick-args: 2.0.1 + safe-buffer: 5.1.2 + string_decoder: 1.1.1 + util-deprecate: 1.0.2 + + /readable-stream@3.6.2: + resolution: {integrity: sha512-9u/sniCrY3D5WdsERHzHE4G2YCXqoG5FTHUiCC4SIbr6XcLZBY05ya9EKjYek9O5xOAwjGq+1JdGBAS7Q9ScoA==} + engines: {node: '>= 6'} + dependencies: + inherits: 2.0.4 + string_decoder: 1.3.0 + util-deprecate: 1.0.2 + + /readdirp@2.2.1(supports-color@6.1.0): + resolution: {integrity: sha512-1JU/8q+VgFZyxwrJ+SVIOsh+KywWGpds3NTqikiKpDMZWScmAYyKIgqkO+ARvNWJfXeXR1zxz7aHF4u4CyH6vQ==} + engines: {node: '>=0.10'} + dependencies: + graceful-fs: 4.2.11 + micromatch: 3.1.10(supports-color@6.1.0) + readable-stream: 2.3.8 + transitivePeerDependencies: + - supports-color + + /readdirp@3.6.0: + resolution: {integrity: sha512-hOS089on8RduqdbhvQ5Z37A0ESjsqz6qnRcffsMU3495FuTdqSm+7bhJ29JvIOsBDEEnan5DPu9t3To9VRlMzA==} + engines: {node: '>=8.10.0'} + requiresBuild: true + dependencies: + picomatch: 2.3.1 + optional: true + + /readline2@0.1.1: + resolution: {integrity: sha512-qs8GGG+hLGMaDOGjd+mDglDoYcHDkjIY7z5RU0/ApsGT0qypyrWskNeemUqD+UxIXiZoMYT5aLwGp4ehoyZhIg==} + dependencies: + mute-stream: 0.0.4 + strip-ansi: 2.0.1 + dev: false + + /redux-mock-store@1.5.3: + resolution: {integrity: sha512-ryhkkb/4D4CUGpAV2ln1GOY/uh51aczjcRz9k2L2bPx/Xja3c5pSGJJPyR25GNVRXtKIExScdAgFdiXp68GmJA==} + dependencies: + lodash.isplainobject: 4.0.6 + dev: true + + /redux-throttle@0.1.1: + resolution: {integrity: sha512-24stzg4+1xtlO8ubP4HKudpBdPsG4qvbn0Z9hv8tz6fM6ZcQJe2dKEwYIqTl8+yPMGgjNKHp1lzTwRqjWCxj/Q==} + dependencies: + lodash.throttle: 4.0.1 + dev: false + + /redux@3.7.2: + resolution: {integrity: sha512-pNqnf9q1hI5HHZRBkj3bAngGZW/JMCmexDlOxw4XagXY2o1327nHH54LoTjiPJ0gizoqPDRqWyX/00g0hD6w+A==} + dependencies: + lodash: 4.17.21 + lodash-es: 4.17.21 + loose-envify: 1.4.0 + symbol-observable: 1.2.0 + dev: false + + /reflect.ownkeys@0.2.0: + resolution: {integrity: sha512-qOLsBKHCpSOFKK1NUOCGC5VyeufB6lEsFe92AL2bhIJsacZS1qdoOZSbPk3MYKuT2cFlRDnulKXuuElIrMjGUg==} + dev: true + + /regenerate-unicode-properties@10.1.1: + resolution: {integrity: sha512-X007RyZLsCJVVrjgEFVpLUTZwyOZk3oiL75ZcuYjlIWd6rNJtOjkBwQc5AsRrpbKVkxN6sklw/k/9m2jJYOf8Q==} + engines: {node: '>=4'} + dependencies: + regenerate: 1.4.2 + dev: true + + /regenerate@1.4.2: + resolution: {integrity: sha512-zrceR/XhGYU/d/opr2EKO7aRHUeiBI8qjtfHqADTwZd6Szfy16la6kqD0MIUs5z5hx6AaKa+PixpPrR289+I0A==} + dev: true + + /regenerator-runtime@0.11.1: + resolution: {integrity: sha512-MguG95oij0fC3QV3URf4V2SDYGJhJnJGqvIIgdECeODCT98wSWDAJ94SSuVpYQUoTcGUIL6L4yNB7j1DFFHSBg==} + + /regenerator-runtime@0.14.1: + resolution: {integrity: sha512-dYnhHh0nJoMfnkZs6GmmhFknAGRrLznOu5nc9ML+EJxGvrx6H7teuevqVqCuPcPK//3eDrrjQhehXVx9cnkGdw==} + + /regenerator-transform@0.15.2: + resolution: {integrity: sha512-hfMp2BoF0qOk3uc5V20ALGDS2ddjQaLrdl7xrGXvAIow7qeWRM2VA2HuCHkUKk9slq3VwEwLNK3DFBqDfPGYtg==} + dependencies: + '@babel/runtime': 7.23.7 + dev: true + + /regex-cache@0.4.4: + resolution: {integrity: sha512-nVIZwtCjkC9YgvWkpM55B5rBhBYRZhAaJbgcFYXXsHnbZ9UZI9nnVWYZpBlCqv9ho2eZryPnWrZGsOdPwVWXWQ==} + engines: {node: '>=0.10.0'} + dependencies: + is-equal-shallow: 0.1.3 + dev: true + + /regex-not@1.0.2: + resolution: {integrity: sha512-J6SDjUgDxQj5NusnOtdFxDwN/+HWykR8GELwctJ7mdqhcyy1xEc4SRFHUXvxTp661YaVKAjfRLZ9cCqS6tn32A==} + engines: {node: '>=0.10.0'} + dependencies: + extend-shallow: 3.0.2 + safe-regex: 1.1.0 + + /regexp.prototype.flags@1.5.1: + resolution: {integrity: sha512-sy6TXMN+hnP/wMy+ISxg3krXx7BAtWVO4UouuCN/ziM9UEne0euamVNafDfvC83bRNr95y0V5iijeDQFUNpvrg==} + engines: {node: '>= 0.4'} + dependencies: + call-bind: 1.0.5 + define-properties: 1.2.1 + set-function-name: 2.0.1 + dev: true + + /regexpp@2.0.1: + resolution: {integrity: sha512-lv0M6+TkDVniA3aD1Eg0DVpfU/booSu7Eev3TDO/mZKHBfVjgCGTV4t4buppESEYDtkArYFOxTJWv6S5C+iaNw==} + engines: {node: '>=6.5.0'} + dev: true + + /regexpu-core@5.3.2: + resolution: {integrity: sha512-RAM5FlZz+Lhmo7db9L298p2vHP5ZywrVXmVXpmAD9GuL5MPH6t9ROw1iA/wfHkQ76Qe7AaPF0nGuim96/IrQMQ==} + engines: {node: '>=4'} + dependencies: + '@babel/regjsgen': 0.8.0 + regenerate: 1.4.2 + regenerate-unicode-properties: 10.1.1 + regjsparser: 0.9.1 + unicode-match-property-ecmascript: 2.0.0 + unicode-match-property-value-ecmascript: 2.1.0 + dev: true + + /regjsparser@0.9.1: + resolution: {integrity: sha512-dQUtn90WanSNl+7mQKcXAgZxvUe7Z0SqXlgzv0za4LwiUhyzBC58yQO3liFoUgu8GiJVInAhJjkj1N0EtQ5nkQ==} + hasBin: true + dependencies: + jsesc: 0.5.0 + dev: true + + /relateurl@0.2.7: + resolution: {integrity: sha512-G08Dxvm4iDN3MLM0EsP62EDV9IuhXPR6blNz6Utcp7zyV3tr4HVNINt6MpaRWbxoOHT3Q7YN2P+jaHX8vUbgog==} + engines: {node: '>= 0.10'} + dev: true + + /remove-trailing-separator@1.1.0: + resolution: {integrity: sha512-/hS+Y0u3aOfIETiaiirUFwDBDzmXPvO+jAfKTitUngIPzdKc6Z0LoFjM/CK5PL4C+eKwHohlHAb6H0VFfmmUsw==} + requiresBuild: true + + /renderkid@2.0.7: + resolution: {integrity: sha512-oCcFyxaMrKsKcTY59qnCAtmDVSLfPbrv6A3tVbPdFMMrv5jaK10V6m40cKsoPNhAqN6rmHW9sswW4o3ruSrwUQ==} + dependencies: + css-select: 4.3.0 + dom-converter: 0.2.0 + htmlparser2: 6.1.0 + lodash: 4.17.21 + strip-ansi: 3.0.1 + dev: true + + /repeat-element@1.1.4: + resolution: {integrity: sha512-LFiNfRcSu7KK3evMyYOuCzv3L10TW7yC1G2/+StMjK8Y6Vqd2MG7r/Qjw4ghtuCOjFvlnms/iMmLqpvW/ES/WQ==} + engines: {node: '>=0.10.0'} + + /repeat-string@1.6.1: + resolution: {integrity: sha512-PV0dzCYDNfRi1jCDbJzpW7jNNDRuCOG/jI5ctQcGKt/clZD+YcPS3yIlWuTJMmESC8aevCFmWJy5wjAFgNqN6w==} + engines: {node: '>=0.10'} + + /repeating@2.0.1: + resolution: {integrity: sha512-ZqtSMuVybkISo2OWvqvm7iHSWngvdaW3IpsT9/uP8v4gMi591LY6h35wdOfvQdWCKFWZWm2Y1Opp4kV7vQKT6A==} + engines: {node: '>=0.10.0'} + dependencies: + is-finite: 1.1.0 + dev: true + + /request@2.88.2: + resolution: {integrity: sha512-MsvtOrfG9ZcrOwAW+Qi+F6HbD0CWXEh9ou77uOb7FM2WPhwT7smM833PzanhJLsgXjN89Ir6V2PczXNnMpwKhw==} + engines: {node: '>= 6'} + deprecated: request has been deprecated, see https://github.com/request/request/issues/3142 + dependencies: + aws-sign2: 0.7.0 + aws4: 1.12.0 + caseless: 0.12.0 + combined-stream: 1.0.8 + extend: 3.0.2 + forever-agent: 0.6.1 + form-data: 2.3.3 + har-validator: 5.1.5 + http-signature: 1.2.0 + is-typedarray: 1.0.0 + isstream: 0.1.2 + json-stringify-safe: 5.0.1 + mime-types: 2.1.35 + oauth-sign: 0.9.0 + performance-now: 2.1.0 + qs: 6.5.3 + safe-buffer: 5.2.1 + tough-cookie: 2.5.0 + tunnel-agent: 0.6.0 + uuid: 3.4.0 + + /require-directory@2.1.1: + resolution: {integrity: sha512-fGxEI7+wsG9xrvdjsrlmL22OMTTiHRwAMroiEeMgq8gzoLC/PQr7RsRDSTLUg/bZAZtF+TVIkHc6/4RIKrui+Q==} + engines: {node: '>=0.10.0'} + + /require-main-filename@1.0.1: + resolution: {integrity: sha512-IqSUtOVP4ksd1C/ej5zeEh/BIP2ajqpn8c5x+q99gvcIG/Qf0cud5raVnE/Dwd0ua9TXYDoDc0RE5hBSdz22Ug==} + dev: true + + /require-main-filename@2.0.0: + resolution: {integrity: sha512-NKN5kMDylKuldxYLSUfrbo5Tuzh4hd+2E8NPPX02mZtn1VuREQToYe/ZdlJy+J3uCpfaiGF05e7B8W0iXbQHmg==} + + /requires-port@1.0.0: + resolution: {integrity: sha512-KigOCHcocU3XODJxsu8i/j8T9tzT4adHiecwORRQ0ZZFcp7ahwXuRU1m+yuO90C5ZUyGeGfocHDI14M3L3yDAQ==} + dev: true + + /resolve-cwd@2.0.0: + resolution: {integrity: sha512-ccu8zQTrzVr954472aUVPLEcB3YpKSYR3cg/3lo1okzobPBM+1INXBbBZlDbnI/hbEocnf8j0QVo43hQKrbchg==} + engines: {node: '>=4'} + dependencies: + resolve-from: 3.0.0 + + /resolve-dir@1.0.1: + resolution: {integrity: sha512-R7uiTjECzvOsWSfdM0QKFNBVFcK27aHOUwdvK53BcW8zqnGdYp0Fbj82cy54+2A4P2tFM22J5kRfe1R+lM/1yg==} + engines: {node: '>=0.10.0'} + dependencies: + expand-tilde: 2.0.2 + global-modules: 1.0.0 + + /resolve-from@3.0.0: + resolution: {integrity: sha512-GnlH6vxLymXJNMBo7XP1fJIzBFbdYt49CuTwmB/6N53t+kMPRMFKz783LlQ4tv28XoQfMWinAJX6WCGf2IlaIw==} + engines: {node: '>=4'} + + /resolve-from@4.0.0: + resolution: {integrity: sha512-pb/MYmXstAkysRFx8piNI1tGFNQIFA3vkE3Gq4EuA1dF6gHp/+vgZqsCGJapvy8N3Q+4o7FwvquPJcnZ7RYy4g==} + engines: {node: '>=4'} + dev: true + + /resolve-url@0.2.1: + resolution: {integrity: sha512-ZuF55hVUQaaczgOIwqWzkEcEidmlD/xl44x1UZnhOXcYuFN2S6+rcxpG+C1N3So0wvNI3DmJICUFfu2SxhBmvg==} + deprecated: https://github.com/lydell/resolve-url#deprecated + + /resolve@1.1.7: + resolution: {integrity: sha512-9znBF0vBcaSN3W2j7wKvdERPwqTxSpCq+if5C0WoTCyV9n24rua28jeuQ2pL/HOf+yUe/Mef+H/5p60K0Id3bg==} + dev: true + + /resolve@1.22.8: + resolution: {integrity: sha512-oKWePCxqpd6FlLvGV1VU0x7bkPmmCNolxzjMf4NczoDnQcIWrAF+cPtZn5i6n+RfD2d9i0tzpKnG6Yk168yIyw==} + hasBin: true + dependencies: + is-core-module: 2.13.1 + path-parse: 1.0.7 + supports-preserve-symlinks-flag: 1.0.0 + + /resolve@2.0.0-next.5: + resolution: {integrity: sha512-U7WjGVG9sH8tvjW5SmGbQuui75FiyjAX72HX15DwBBwF9dNiQZRQAg9nnPhYy+TUnE0+VcrttuvNI8oSxZcocA==} + hasBin: true + dependencies: + is-core-module: 2.13.1 + path-parse: 1.0.7 + supports-preserve-symlinks-flag: 1.0.0 + dev: true + + /responselike@1.0.2: + resolution: {integrity: sha512-/Fpe5guzJk1gPqdJLJR5u7eG/gNY4nImjbRDaVWVMRhne55TCmj2i9Q+54PBRfatRC8v/rIiv9BN0pMd9OV5EQ==} + dependencies: + lowercase-keys: 1.0.1 + dev: false + + /restore-cursor@2.0.0: + resolution: {integrity: sha512-6IzJLuGi4+R14vwagDHX+JrXmPVtPpn4mffDJ1UdR7/Edm87fl6yi8mMBIVvFtJaNTUvjughmW4hwLhRG7gC1Q==} + engines: {node: '>=4'} + dependencies: + onetime: 2.0.1 + signal-exit: 3.0.7 + dev: true + + /ret@0.1.15: + resolution: {integrity: sha512-TTlYpa+OL+vMMNG24xSlQGEJ3B/RzEfUlLct7b5G/ytav+wPrplCpVMFuwzXbkecJrb6IYo1iFb0S9v37754mg==} + engines: {node: '>=0.12'} + + /retry@0.12.0: + resolution: {integrity: sha512-9LkiTwjUh6rT555DtE9rTX+BKByPfrMzEAtnlEtdEwr3Nkffwiihqe2bWADg+OQRjt9gl6ICdmB/ZFDCGAtSow==} + engines: {node: '>= 4'} + dev: true + + /reusify@1.0.4: + resolution: {integrity: sha512-U9nH88a3fc/ekCF1l0/UP1IosiuIjyTh7hBvXVMHYgVcfGvt897Xguj2UOLDeI5BG2m7/uwyaLVT6fbtCwTyzw==} + engines: {iojs: '>=1.0.0', node: '>=0.10.0'} + + /rimraf@2.6.3: + resolution: {integrity: sha512-mwqeW5XsA2qAejG46gYdENaxXjx9onRNCfn7L0duuP4hCuTIi/QO7PDK07KJfp1d+izWPrzEJDcSqBa0OZQriA==} + hasBin: true + dependencies: + glob: 7.2.3 + dev: true + + /rimraf@2.7.1: + resolution: {integrity: sha512-uWjbaKIK3T1OSVptzX7Nl6PvQ3qAGtKEtVRjRuazjfL3Bx5eI409VZSqgND+4UNnmzLVdPj9FqFJNPqBZFve4w==} + hasBin: true + dependencies: + glob: 7.2.3 + + /rimraf@3.0.2: + resolution: {integrity: sha512-JZkJMZkAGFFPP2YqXZXPbMlMBgsxzE8ILs4lMIX/2o0L9UBw9O/Y3o6wFw/i9YLapcUJWwqbi3kdxIPdC62TIA==} + hasBin: true + dependencies: + glob: 7.2.3 + + /ripemd160@2.0.2: + resolution: {integrity: sha512-ii4iagi25WusVoiC4B4lq7pbXfAp3D9v5CwfkY33vffw2+pkDjY1D8GaN7spsxvCSx8dkPqOZCEZyfxcmJG2IA==} + dependencies: + hash-base: 3.1.0 + inherits: 2.0.4 + + /rst-selector-parser@2.2.3: + resolution: {integrity: sha512-nDG1rZeP6oFTLN6yNDV/uiAvs1+FS/KlrEwh7+y7dpuApDBy6bI2HTBcc0/V8lv9OTqfyD34eF7au2pm8aBbhA==} + dependencies: + lodash.flattendeep: 4.4.0 + nearley: 2.20.1 + dev: true + + /rsvp@3.6.2: + resolution: {integrity: sha512-OfWGQTb9vnwRjwtA2QwpG2ICclHC3pgXZO5xt8H2EfgDquO0qVdSb5T88L4qJVAEugbS56pAuV4XZM58UX8ulw==} + engines: {node: 0.12.* || 4.* || 6.* || >= 7.*} + dev: true + + /run-async@2.4.1: + resolution: {integrity: sha512-tvVnVv01b8c1RrA6Ep7JkStj85Guv/YrMcwqYQnwjsAS2cTmmPGBBjAjpCW7RrSodNSoE2/qg9O4bceNvUuDgQ==} + engines: {node: '>=0.12.0'} + dev: true + + /run-parallel@1.2.0: + resolution: {integrity: sha512-5l4VyZR86LZ/lDxZTR6jqL8AFE2S0IFLMP26AbjsLVADxHdhB/c0GUsH+y39UfCi3dzz8OlQuPmnaJOMoDHQBA==} + dependencies: + queue-microtask: 1.2.3 + + /run-queue@1.0.3: + resolution: {integrity: sha512-ntymy489o0/QQplUDnpYAYUsO50K9SBrIVaKCWDOJzYJts0f9WH9RFJkyagebkw5+y1oi00R7ynNW/d12GBumg==} + dependencies: + aproba: 1.2.0 + + /rx@2.5.3: + resolution: {integrity: sha512-u5qvfulb7NXoY/+OE28920WEgFi6aiDjf5iF9rA2f9tBXejLgTLd0WxkclvIQWjFFHfNJlb7pSTsrjgiDh+Uug==} + dev: false + + /rxjs@6.6.7: + resolution: {integrity: sha512-hTdwr+7yYNIT5n4AMYp85KA6yw2Va0FLa3Rguvbpa4W3I5xynaBZo41cM3XM+4Q6fRMj3sBYIR1VAmZMXYJvRQ==} + engines: {npm: '>=2.0.0'} + dependencies: + tslib: 1.14.1 + dev: true + + /safe-array-concat@1.0.1: + resolution: {integrity: sha512-6XbUAseYE2KtOuGueyeobCySj9L4+66Tn6KQMOPQJrAJEowYKW/YR/MGJZl7FdydUdaFu4LYyDZjxf4/Nmo23Q==} + engines: {node: '>=0.4'} + dependencies: + call-bind: 1.0.5 + get-intrinsic: 1.2.2 + has-symbols: 1.0.3 + isarray: 2.0.5 + dev: true + + /safe-buffer@5.1.2: + resolution: {integrity: sha512-Gd2UZBJDkXlY7GbJxfsE8/nvKkUEU1G38c1siN6QP6a9PT9MmHB8GnpscSmMJSoF8LOIrt8ud/wPtojys4G6+g==} + + /safe-buffer@5.2.1: + resolution: {integrity: sha512-rp3So07KcdmmKbGvgaNxQSJr7bGVSVk5S9Eq1F+ppbRo70+YeaDxkw5Dd8NPN+GD6bjnYm2VuPuCXmpuYvmCXQ==} + + /safe-regex-test@1.0.0: + resolution: {integrity: sha512-JBUUzyOgEwXQY1NuPtvcj/qcBDbDmEvWufhlnXZIm75DEHp+afM1r1ujJpJsV/gSM4t59tpDyPi1sd6ZaPFfsA==} + dependencies: + call-bind: 1.0.5 + get-intrinsic: 1.2.2 + is-regex: 1.1.4 + dev: true + + /safe-regex@1.1.0: + resolution: {integrity: sha512-aJXcif4xnaNUzvUuC5gcb46oTS7zvg4jpMTnuqtrEPlR3vFr4pxtdTwaF1Qs3Enjn9HK+ZlwQui+a7z0SywIzg==} + dependencies: + ret: 0.1.15 + + /safer-buffer@2.1.2: + resolution: {integrity: sha512-YZo3K82SD7Riyi0E1EQPojLz7kpepnSQI9IyPbHHg1XXXevb5dJI7tpyN2ADxGcQbHG7vcyRHk0cbwqcQriUtg==} + + /sane@2.5.2: + resolution: {integrity: sha512-OuZwD1QJ2R9Dbnhd7Ur8zzD8l+oADp9npyxK63Q9nZ4AjhB2QwDQcQlD8iuUsGm5AZZqtEuCaJvK1rxGRxyQ1Q==} + engines: {node: '>=0.6.0'} + deprecated: some dependency vulnerabilities fixed, support for node < 10 dropped, and newer ECMAScript syntax/features added + hasBin: true + dependencies: + anymatch: 2.0.0(supports-color@6.1.0) + capture-exit: 1.2.0 + exec-sh: 0.2.2 + fb-watchman: 2.0.2 + micromatch: 3.1.10(supports-color@6.1.0) + minimist: 1.2.8 + walker: 1.0.8 + watch: 0.18.0 + optionalDependencies: + fsevents: 1.2.13 + transitivePeerDependencies: + - supports-color + dev: true + + /sax@1.3.0: + resolution: {integrity: sha512-0s+oAmw9zLl1V1cS9BtZN7JAd0cW5e0QH4W3LWEK6a4LaLEA2OTpGYWDY+6XasBLtz6wkm3u1xRw95mRuJ59WA==} + dev: true + + /scheduler@0.19.1: + resolution: {integrity: sha512-n/zwRWRYSUj0/3g/otKDRPMh6qv2SYMWNq85IEa8iZyAv8od9zDYpGSnpBEjNgcMNq6Scbu5KfIPxNF72R/2EA==} + dependencies: + loose-envify: 1.4.0 + object-assign: 4.1.1 + + /schema-utils@0.4.7: + resolution: {integrity: sha512-v/iwU6wvwGK8HbU9yi3/nhGzP0yGSuhQMzL6ySiec1FSrZZDkhm4noOSWzrNFo/jEc+SJY6jRTwuwbSXJPDUnQ==} + engines: {node: '>= 4'} + dependencies: + ajv: 6.12.6 + ajv-keywords: 3.5.2(ajv@6.12.6) + + /schema-utils@1.0.0: + resolution: {integrity: sha512-i27Mic4KovM/lnGsy8whRCHhc7VicJajAjTrYg11K9zfZXnYIt4k5F+kZkwjnrhKzLic/HLU4j11mjsz2G/75g==} + engines: {node: '>= 4'} + dependencies: + ajv: 6.12.6 + ajv-errors: 1.0.1(ajv@6.12.6) + ajv-keywords: 3.5.2(ajv@6.12.6) + + /schema-utils@2.7.1: + resolution: {integrity: sha512-SHiNtMOUGWBQJwzISiVYKu82GiV4QYGePp3odlY1tuKO7gPtphAT5R/py0fA6xtbgLL/RvtJZnU9b8s0F1q0Xg==} + engines: {node: '>= 8.9.0'} + dependencies: + '@types/json-schema': 7.0.15 + ajv: 6.12.6 + ajv-keywords: 3.5.2(ajv@6.12.6) + dev: true + + /schema-utils@3.3.0: + resolution: {integrity: sha512-pN/yOAvcC+5rQ5nERGuwrjLlYvLTbCibnZ1I7B1LaiAz9BRBlE9GMgE/eqV30P7aJQUf7Ddimy/RsbYO/GrVGg==} + engines: {node: '>= 10.13.0'} + dependencies: + '@types/json-schema': 7.0.15 + ajv: 6.12.6 + ajv-keywords: 3.5.2(ajv@6.12.6) + + /scratch-render-fonts@1.0.0-prerelease.20210401210003: + resolution: {integrity: sha512-sgU+LIXTLKk4f7FZOv/B61dpvmfpnlXFf912T6T4GpOfzx99JPRhXPyErZWuwPz8NEzthkhpO7iF2AqgzUxJfA==} + dependencies: + base64-loader: 1.0.0 + dev: false + + /scratch-sb1-converter@0.2.7: + resolution: {integrity: sha512-MF1NzmRLbgCiq7wiSTuk2C9rQC8uM5Wj7SaYsn1SEMWNK9rtK0uc3LSm8FnEt14QS/1Icx2YgMsUPKR0HaPDdQ==} + dependencies: + js-md5: 0.7.3 + minilog: 3.1.0 + text-encoding: 0.7.0 + dev: false + + /scratch-translate-extension-languages@0.0.20191118205314: + resolution: {integrity: sha512-r0lvpgQjPMjbhI2wROrgoXzBhCvWJdkbAqJMfl2CdNqrwBpUXqLvNNtI3VtNLPJAcp9VfxEylkU9lVZ0gvU46Q==} + dev: false + + /seedrandom@3.0.5: + resolution: {integrity: sha512-8OwmbklUNzwezjGInmZ+2clQmExQPvomqjL7LFqOYqtmuxRgQYqOD3mHaU+MvZn5FLUeVxVfQjwLZW/n/JFuqg==} + dev: false + + /seek-bzip@1.0.6: + resolution: {integrity: sha512-e1QtP3YL5tWww8uKaOCQ18UxIT2laNBXHjV/S2WYCiK4udiv8lkG89KRIoCjUagnAmCBurjF4zEVX2ByBbnCjQ==} + hasBin: true + dependencies: + commander: 2.20.3 + dev: false + + /select-hose@2.0.0: + resolution: {integrity: sha512-mEugaLK+YfkijB4fx0e6kImuJdCIt2LxCRcbEYPqRGCs4F2ogyfZU5IAZRdjCP8JPq2AtdNoC/Dux63d9Kiryg==} + dev: true + + /selenium-webdriver@3.6.0: + resolution: {integrity: sha512-WH7Aldse+2P5bbFBO4Gle/nuQOdVwpHMTL6raL3uuBj/vPG07k6uzt3aiahu352ONBr5xXh0hDlM3LhtXPOC4Q==} + engines: {node: '>= 6.9.0'} + dependencies: + jszip: 3.10.1 + rimraf: 2.7.1 + tmp: 0.0.30 + xml2js: 0.4.23 + dev: true + + /selfsigned@1.10.14: + resolution: {integrity: sha512-lkjaiAye+wBZDCBsu5BGi0XiLRxeUlsGod5ZP924CRSEoGuZAw/f7y9RKu28rwTfiHVhdavhB0qH0INV6P1lEA==} + dependencies: + node-forge: 0.10.0 + dev: true + + /semver@5.5.0: + resolution: {integrity: sha512-4SJ3dm0WAwWy/NVeioZh5AntkdJoWKxHxcmyP622fOkgHa4z3R0TdBJICINyaSDE6uNwVc8gZr+ZinwZAH4xIA==} + hasBin: true + dev: true + + /semver@5.7.2: + resolution: {integrity: sha512-cBznnQ9KjJqU67B52RMC65CMarK2600WFnbkcaiwWq3xy/5haFJlshgnpjovMVJ+Hff49d8GEn0b87C5pDQ10g==} + hasBin: true + + /semver@6.3.1: + resolution: {integrity: sha512-BR7VvDCVHO+q2xBEWskxS6DJE1qRnb7DxzUrogb71CWoSficBxYsiAGd+Kl0mmq/MprG9yArRkyrQxTO6XjMzA==} + hasBin: true + + /semver@7.5.4: + resolution: {integrity: sha512-1bCSESV6Pv+i21Hvpxp3Dx+pSD8lIPt8uVjRrxAUt/nbswYc+tK6Y2btiULjd4+fnq15PX+nqQDC7Oft7WkwcA==} + engines: {node: '>=10'} + hasBin: true + dependencies: + lru-cache: 6.0.0 + dev: false + + /send@0.18.0(supports-color@6.1.0): + resolution: {integrity: sha512-qqWzuOjSFOuqPjFe4NOsMLafToQQwBSOEpS+FwEt3A2V3vKubTquT3vmLTQpFgMXp8AlFWFuP1qKaJZOtPpVXg==} + engines: {node: '>= 0.8.0'} + dependencies: + debug: 2.6.9(supports-color@6.1.0) + 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 + transitivePeerDependencies: + - supports-color + dev: true + + /serialize-javascript@1.9.1: + resolution: {integrity: sha512-0Vb/54WJ6k5v8sSWN09S0ora+Hnr+cX40r9F170nT+mSkaxltoE/7R3OrIdBSUv1OoiobH1QoWQbCnAO+e8J1A==} + dev: true + + /serialize-javascript@4.0.0: + resolution: {integrity: sha512-GaNA54380uFefWghODBWEGisLZFj00nS5ACs6yHa9nLqlLpVLO8ChDGeKRjZnV4Nh4n0Qi7nhYZD/9fCPzEqkw==} + dependencies: + randombytes: 2.1.0 + + /serialize-javascript@5.0.1: + resolution: {integrity: sha512-SaaNal9imEO737H2c05Og0/8LUXG7EnsZyMa8MzkmuHoELfT6txuj0cMqRj6zfPKnmQ1yasR4PCJc8x+M4JSPA==} + dependencies: + randombytes: 2.1.0 + dev: false + + /serve-index@1.9.1(supports-color@6.1.0): + resolution: {integrity: sha512-pXHfKNP4qujrtteMrSBb0rc8HJ9Ms/GrXwcUtUtD5s4ewDJI8bT3Cz2zTVRMKtri49pLx2e0Ya8ziP5Ya2pZZw==} + engines: {node: '>= 0.8.0'} + dependencies: + accepts: 1.3.8 + batch: 0.6.1 + debug: 2.6.9(supports-color@6.1.0) + escape-html: 1.0.3 + http-errors: 1.6.3 + mime-types: 2.1.35 + parseurl: 1.3.3 + transitivePeerDependencies: + - supports-color + dev: true + + /serve-static@1.15.0(supports-color@6.1.0): + resolution: {integrity: sha512-XGuRDNjXUijsUL0vl6nSD7cwURuzEgglbOaFuZM9g3kwDXOWVTck0jLzjPzGD+TazWbboZYu52/9/XPdUgne9g==} + engines: {node: '>= 0.8.0'} + dependencies: + encodeurl: 1.0.2 + escape-html: 1.0.3 + parseurl: 1.3.3 + send: 0.18.0(supports-color@6.1.0) + transitivePeerDependencies: + - supports-color + dev: true + + /set-blocking@2.0.0: + resolution: {integrity: sha512-KiKBS8AnWGEyLzofFfmvKwpdPzqiy16LvQfK3yv/fVH7Bj13/wl3JSR1J+rfgRE9q7xUJK4qvgS8raSOeLUehw==} + + /set-function-length@1.1.1: + resolution: {integrity: sha512-VoaqjbBJKiWtg4yRcKBQ7g7wnGnLV3M8oLvVWwOk2PdYY6PEFegR1vezXR0tw6fZGF9csVakIRjrJiy2veSBFQ==} + engines: {node: '>= 0.4'} + dependencies: + define-data-property: 1.1.1 + get-intrinsic: 1.2.2 + gopd: 1.0.1 + has-property-descriptors: 1.0.1 + + /set-function-name@2.0.1: + resolution: {integrity: sha512-tMNCiqYVkXIZgc2Hnoy2IvC/f8ezc5koaRFkCjrpWzGpCd3qbZXPzVy9MAZzK1ch/X0jvSkojys3oqJN0qCmdA==} + engines: {node: '>= 0.4'} + dependencies: + define-data-property: 1.1.1 + functions-have-names: 1.2.3 + has-property-descriptors: 1.0.1 + dev: true + + /set-value@2.0.1: + resolution: {integrity: sha512-JxHc1weCN68wRY0fhCoXpyK55m/XPHafOmK4UWD7m2CI14GMcFypt4w/0+NV5f/ZMby2F6S2wwA7fgynh9gWSw==} + engines: {node: '>=0.10.0'} + dependencies: + extend-shallow: 2.0.1 + is-extendable: 0.1.1 + is-plain-object: 2.0.4 + split-string: 3.1.0 + + /setimmediate@1.0.5: + resolution: {integrity: sha512-MATJdZp8sLqDl/68LfQmbP8zKPLQNV6BIZoIgrscFDQ+RsvK/BxeDQOgyxKKoh0y/8h3BqVFnCqQ/gd+reiIXA==} + + /setprototypeof@1.1.0: + resolution: {integrity: sha512-BvE/TwpZX4FXExxOxZyRGQQv651MSwmWKZGqvmPcRIjDqWub67kTKuIMx43cZZrS/cBBzwBcNDWoFxt2XEFIpQ==} + dev: true + + /setprototypeof@1.2.0: + resolution: {integrity: sha512-E5LDX7Wrp85Kil5bhZv46j8jOeboKq5JMmYM3gVGdGH8xFpPWXUMsNrlODCrkoxMEeNi/XZIwuRvY4XNwYMJpw==} + dev: true + + /sha.js@2.4.11: + resolution: {integrity: sha512-QMEp5B7cftE7APOjk5Y6xgrbWu+WkLVQwk8JNjZ8nKRciZaByEW6MubieAiToS7+dwvrjGhH8jRXz3MVd0AYqQ==} + hasBin: true + dependencies: + inherits: 2.0.4 + safe-buffer: 5.2.1 + + /shallow-copy@0.0.1: + resolution: {integrity: sha512-b6i4ZpVuUxB9h5gfCxPiusKYkqTMOjEbBs4wMaFbkfia4yFv92UKZ6Df8WXcKbn08JNL/abvg3FnMAOfakDvUw==} + dev: false + + /shebang-command@1.2.0: + resolution: {integrity: sha512-EV3L1+UQWGor21OmnvojK36mhg+TyIKDh3iFBKBohr5xeXIhNBcx8oWdgkTEEQ+BEFFYdLRuqMfd5L84N1V5Vg==} + engines: {node: '>=0.10.0'} + dependencies: + shebang-regex: 1.0.0 + + /shebang-regex@1.0.0: + resolution: {integrity: sha512-wpoSFAxys6b2a2wHZ1XpDSgD7N9iVjg29Ph9uV/uaP9Ex/KXlkTZTeddxDPSYQpgvzKLGJke2UU0AzoGCjNIvQ==} + engines: {node: '>=0.10.0'} + + /shellwords@0.1.1: + resolution: {integrity: sha512-vFwSUfQvqybiICwZY5+DAWIPLKsWO31Q91JSKl3UYv+K5c2QRPzn0qzec6QPu1Qc9eHYItiP3NdJqNVqetYAww==} + dev: true + + /should-equal@2.0.0: + resolution: {integrity: sha512-ZP36TMrK9euEuWQYBig9W55WPC7uo37qzAEmbjHz4gfyuXrEUgF8cUvQVO+w+d3OMfPvSRQJ22lSm8MQJ43LTA==} + dependencies: + should-type: 1.4.0 + dev: false + + /should-format@3.0.3: + resolution: {integrity: sha512-hZ58adtulAk0gKtua7QxevgUaXTTXxIi8t41L3zo9AHvjXO1/7sdLECuHeIN2SRtYXpNkmhoUP2pdeWgricQ+Q==} + dependencies: + should-type: 1.4.0 + should-type-adaptors: 1.1.0 + dev: false + + /should-type-adaptors@1.1.0: + resolution: {integrity: sha512-JA4hdoLnN+kebEp2Vs8eBe9g7uy0zbRo+RMcU0EsNy+R+k049Ki+N5tT5Jagst2g7EAja+euFuoXFCa8vIklfA==} + dependencies: + should-type: 1.4.0 + should-util: 1.0.1 + dev: false + + /should-type@1.4.0: + resolution: {integrity: sha512-MdAsTu3n25yDbIe1NeN69G4n6mUnJGtSJHygX3+oN0ZbO3DTiATnf7XnYJdGT42JCXurTb1JI0qOBR65shvhPQ==} + dev: false + + /should-util@1.0.1: + resolution: {integrity: sha512-oXF8tfxx5cDk8r2kYqlkUJzZpDBqVY/II2WhvU0n9Y3XYvAYRmeaf1PvvIvTgPnv4KJ+ES5M0PyDq5Jp+Ygy2g==} + dev: false + + /should@13.2.3: + resolution: {integrity: sha512-ggLesLtu2xp+ZxI+ysJTmNjh2U0TsC+rQ/pfED9bUZZ4DKefP27D+7YJVVTvKsmjLpIi9jAa7itwDGkDDmt1GQ==} + dependencies: + should-equal: 2.0.0 + should-format: 3.0.3 + should-type: 1.4.0 + should-type-adaptors: 1.1.0 + should-util: 1.0.1 + dev: false + + /side-channel@1.0.4: + resolution: {integrity: sha512-q5XPytqFEIKHkGdiMIrY10mvLRvnQh42/+GoBlFW3b2LXLE2xxJpZFdm94we0BaoV3RwJyGqg5wS7epxTv0Zvw==} + dependencies: + call-bind: 1.0.5 + get-intrinsic: 1.2.2 + object-inspect: 1.13.1 + + /signal-exit@3.0.7: + resolution: {integrity: sha512-wnD2ZE+l+SPC/uoS0vXeE9L1+0wuaMqKlfz9AMUo38JsyLSBWSFcHR1Rri62LZc12vLr1gb3jl7iwQhgwpAbGQ==} + dev: true + + /simplex-noise@4.0.1: + resolution: {integrity: sha512-zl/+bdSqW7HJOQ0oDbxrNYaF4F5ik0i7M6YOYmEoIJNtg16NpvWaTTM1Y7oV/7T0jFljawLgYPS81Uu2rsfo1A==} + dev: false + + /slash@1.0.0: + resolution: {integrity: sha512-3TYDR7xWt4dIqV2JauJr+EJeW356RXijHeUlO+8djJ+uBXPn8/2dpzBc8yQhh583sVvc9CvFAeQVgijsH+PNNg==} + engines: {node: '>=0.10.0'} + dev: true + + /slash@2.0.0: + resolution: {integrity: sha512-ZYKh3Wh2z1PpEXWr0MpSBZ0V6mZHAQfYevttO11c51CaWjGTaadiKZ+wVt1PbMlDV5qhMFslpZCemhwOK7C89A==} + engines: {node: '>=6'} + + /slash@3.0.0: + resolution: {integrity: sha512-g9Q1haeby36OSStwb4ntCGGGaKsaVSjQ68fBxoQcutl5fS1vuY18H3wSt3jFyFtrkx+Kz0V1G85A4MyAdDMi2Q==} + engines: {node: '>=8'} + + /slice-ansi@2.1.0: + resolution: {integrity: sha512-Qu+VC3EwYLldKa1fCxuuvULvSJOKEgk9pi8dZeCVK7TqBfUNTH4sFkk4joj8afVSfAYgJoSOetjx9QWOJ5mYoQ==} + engines: {node: '>=6'} + dependencies: + ansi-styles: 3.2.1 + astral-regex: 1.0.0 + is-fullwidth-code-point: 2.0.0 + dev: true + + /slugo@0.2.3: + resolution: {integrity: sha512-4nav6mk321IWKaWxgvygjp2JB0d5sNGgkPUJ+EGQZmmcvuXS+4DwdhhPa9L8WBg6fVQDID3PO+t6wYM1NqVbkA==} + dev: false + + /snapdragon-node@2.1.1: + resolution: {integrity: sha512-O27l4xaMYt/RSQ5TR3vpWCAB5Kb/czIcqUFOM/C4fYcLnbZUc1PkjTAMjof2pBWaSTwOUd6qUHcFGVGj7aIwnw==} + engines: {node: '>=0.10.0'} + requiresBuild: true + dependencies: + define-property: 1.0.0 + isobject: 3.0.1 + snapdragon-util: 3.0.1 + + /snapdragon-util@3.0.1: + resolution: {integrity: sha512-mbKkMdQKsjX4BAL4bRYTj21edOf8cN7XHdYUJEe+Zn99hVEYcMvKPct1IqNe7+AZPirn8BCDOQBHQZknqmKlZQ==} + engines: {node: '>=0.10.0'} + requiresBuild: true + dependencies: + kind-of: 3.2.2 + + /snapdragon@0.8.2(supports-color@6.1.0): + resolution: {integrity: sha512-FtyOnWN/wCHTVXOMwvSv26d+ko5vWlIDD6zoUJ7LW8vh+ZBC8QdljveRP+crNrtBwioEUWy/4dMtbBjA4ioNlg==} + engines: {node: '>=0.10.0'} + dependencies: + base: 0.11.2 + debug: 2.6.9(supports-color@6.1.0) + define-property: 0.2.5 + extend-shallow: 2.0.1 + map-cache: 0.2.2 + source-map: 0.5.7 + source-map-resolve: 0.5.3 + use: 3.1.1 + transitivePeerDependencies: + - supports-color + + /sockjs-client@1.6.1(supports-color@6.1.0): + resolution: {integrity: sha512-2g0tjOR+fRs0amxENLi/q5TiJTqY+WXFOzb5UwXndlK6TO3U/mirZznpx6w34HVMoc3g7cY24yC/ZMIYnDlfkw==} + engines: {node: '>=12'} + dependencies: + debug: 3.2.7(supports-color@6.1.0) + eventsource: 2.0.2 + faye-websocket: 0.11.4 + inherits: 2.0.4 + url-parse: 1.5.10 + transitivePeerDependencies: + - supports-color + dev: true + + /sockjs@0.3.24: + resolution: {integrity: sha512-GJgLTZ7vYb/JtPSSZ10hsOYIvEYsjbNU+zPdIHcUaWVNUEPivzxku31865sSSud0Da0W4lEeOPlmw93zLQchuQ==} + dependencies: + faye-websocket: 0.11.4 + uuid: 8.3.2 + websocket-driver: 0.7.4 + dev: true + + /sort-keys-length@1.0.1: + resolution: {integrity: sha512-GRbEOUqCxemTAk/b32F2xa8wDTs+Z1QHOkbhJDQTvv/6G3ZkbJ+frYWsTcc7cBB3Fu4wy4XlLCuNtJuMn7Gsvw==} + engines: {node: '>=0.10.0'} + dependencies: + sort-keys: 1.1.2 + dev: false + + /sort-keys@1.1.2: + resolution: {integrity: sha512-vzn8aSqKgytVik0iwdBEi+zevbTYZogewTUM6dtpmGwEcdzbub/TX4bCzRhebDCRC3QzXgJsLRKB2V/Oof7HXg==} + engines: {node: '>=0.10.0'} + dependencies: + is-plain-obj: 1.1.0 + + /sort-keys@2.0.0: + resolution: {integrity: sha512-/dPCrG1s3ePpWm6yBbxZq5Be1dXGLyLn9Z791chDC3NFrpkVbWGzkBwPN1knaciexFXgRJ7hzdnwZ4stHSDmjg==} + engines: {node: '>=4'} + dependencies: + is-plain-obj: 1.1.0 + dev: false + + /source-list-map@2.0.1: + resolution: {integrity: sha512-qnQ7gVMxGNxsiL4lEuJwe/To8UnK7fAnmbGEEH8RpLouuKbeEm0lhbQVFIrNSuB+G7tVrAlVsZgETT5nljf+Iw==} + + /source-map-resolve@0.5.3: + resolution: {integrity: sha512-Htz+RnsXWk5+P2slx5Jh3Q66vhQj1Cllm0zvnaY98+NFx+Dv2CF/f5O/t8x+KaNdrdIAsruNzoh/KpialbqAnw==} + deprecated: See https://github.com/lydell/source-map-resolve#deprecated + dependencies: + atob: 2.1.2 + decode-uri-component: 0.2.2 + resolve-url: 0.2.1 + source-map-url: 0.4.1 + urix: 0.1.0 + + /source-map-support@0.4.18: + resolution: {integrity: sha512-try0/JqxPLF9nOjvSta7tVondkP5dwgyLDjVoyMDlmjugT2lRZ1OfsrYTkCd2hkDnJTKRbO/Rl3orm8vlsUzbA==} + dependencies: + source-map: 0.5.7 + dev: true + + /source-map-support@0.5.21: + resolution: {integrity: sha512-uBHU3L3czsIyYXKX88fdrGovxdSCoTGDRZ6SYXtSRxLZUzHg5P/66Ht6uoUlHu9EZod+inXhKo3qQgwXUT/y1w==} + dependencies: + buffer-from: 1.1.2 + source-map: 0.6.1 + + /source-map-url@0.4.1: + resolution: {integrity: sha512-cPiFOTLUKvJFIg4SKVScy4ilPPW6rFgMgfuZJPNoDuMs3nC1HbMUycBoJw77xFIp6z1UJQJOfx6C9GMH80DiTw==} + deprecated: See https://github.com/lydell/source-map-url#deprecated + + /source-map@0.5.7: + resolution: {integrity: sha512-LbrmJOMUSdEVxIKvdcJzQC+nQhe8FUZQTXQy6+I75skNgn3OoQ0DZA8YnFa7gp8tqtL3KPf1kmo0R5DoApeSGQ==} + engines: {node: '>=0.10.0'} + + /source-map@0.6.1: + resolution: {integrity: sha512-UjgapumWlbMhkBgzT7Ykc5YXUT46F0iKu8SGXq0bcwP5dz/h0Plj6enJqjz1Zbq2l5WaqYnrVbwWOWMyF3F47g==} + engines: {node: '>=0.10.0'} + + /source-map@0.7.4: + resolution: {integrity: sha512-l3BikUxvPOcn5E74dZiq5BGsTb5yEwhaTSzccU6t4sDOH8NWJCstKO5QT2CvtFoK6F0saL7p9xHAqHOlCPJygA==} + engines: {node: '>= 8'} + dev: true + + /spdx-correct@3.2.0: + resolution: {integrity: sha512-kN9dJbvnySHULIluDHy32WHRUu3Og7B9sbY7tsFLctQkIqnMh3hErYgdMjTYuqmcXX+lK5T1lnUt3G7zNswmZA==} + dependencies: + spdx-expression-parse: 3.0.1 + spdx-license-ids: 3.0.16 + + /spdx-exceptions@2.3.0: + resolution: {integrity: sha512-/tTrYOC7PPI1nUAgx34hUpqXuyJG+DTHJTnIULG4rDygi4xu/tfgmq1e1cIRwRzwZgo4NLySi+ricLkZkw4i5A==} + + /spdx-expression-parse@3.0.1: + resolution: {integrity: sha512-cbqHunsQWnJNE6KhVSMsMeH5H/L9EpymbzqTQ3uLwNCLZ1Q481oWaofqH7nO6V07xlXwY6PhQdQ2IedWx/ZK4Q==} + dependencies: + spdx-exceptions: 2.3.0 + spdx-license-ids: 3.0.16 + + /spdx-license-ids@3.0.16: + resolution: {integrity: sha512-eWN+LnM3GR6gPu35WxNgbGl8rmY1AEmoMDvL/QD6zYmPWgywxWqJWNdLGT+ke8dKNWrcYgYjPpG5gbTfghP8rw==} + + /spdy-transport@3.0.0(supports-color@6.1.0): + resolution: {integrity: sha512-hsLVFE5SjA6TCisWeJXFKniGGOpBgMLmerfO2aCyCU5s7nJ/rpAepqmFifv/GCbSbueEeAJJnmSQ2rKC/g8Fcw==} + dependencies: + debug: 4.3.4(supports-color@6.1.0) + detect-node: 2.1.0 + hpack.js: 2.1.6 + obuf: 1.1.2 + readable-stream: 3.6.2 + wbuf: 1.7.3 + transitivePeerDependencies: + - supports-color + dev: true + + /spdy@4.0.2(supports-color@6.1.0): + resolution: {integrity: sha512-r46gZQZQV+Kl9oItvl1JZZqJKGr+oEkB08A6BzkiR7593/7IbtuncXHd2YoYeTsG4157ZssMu9KYvUHLcjcDoA==} + engines: {node: '>=6.0.0'} + dependencies: + debug: 4.3.4(supports-color@6.1.0) + handle-thing: 2.0.1 + http-deceiver: 1.2.7 + select-hose: 2.0.0 + spdy-transport: 3.0.0(supports-color@6.1.0) + transitivePeerDependencies: + - supports-color + dev: true + + /split-string@3.1.0: + resolution: {integrity: sha512-NzNVhJDYpwceVVii8/Hu6DKfD2G+NrQHlS/V/qgv763EYudVwEcMQNxd2lh+0VrUByXN/oJkl5grOhYWvQUYiw==} + engines: {node: '>=0.10.0'} + dependencies: + extend-shallow: 3.0.2 + + /sprintf-js@1.0.3: + resolution: {integrity: sha512-D9cPgkvLlV3t3IzL0D0YLvGA9Ahk4PcvVwUbN0dSGr1aP0Nrt4AEnTUbuGvquEC0mA64Gqt1fzirlRs5ibXx8g==} + + /sshpk@1.18.0: + resolution: {integrity: sha512-2p2KJZTSqQ/I3+HX42EpYOa2l3f8Erv8MWKsy2I9uf4wA7yFIkXRffYdsx86y6z4vHtV8u7g+pPlr8/4ouAxsQ==} + engines: {node: '>=0.10.0'} + hasBin: true + dependencies: + asn1: 0.2.6 + assert-plus: 1.0.0 + bcrypt-pbkdf: 1.0.2 + dashdash: 1.14.1 + ecc-jsbn: 0.1.2 + getpass: 0.1.7 + jsbn: 0.1.1 + safer-buffer: 2.1.2 + tweetnacl: 0.14.5 + + /ssri@5.3.0: + resolution: {integrity: sha512-XRSIPqLij52MtgoQavH/x/dU1qVKtWUAAZeOHsR9c2Ddi4XerFy3mc1alf+dLJKl9EUIm/Ht+EowFkTUOA6GAQ==} + dependencies: + safe-buffer: 5.2.1 + dev: true + + /ssri@6.0.2: + resolution: {integrity: sha512-cepbSq/neFK7xB6A50KHN0xHDotYzq58wWCa5LeWqnPrHG8GzfEjO/4O8kpmcGW+oaxkvhEJCWgbgNk4/ZV93Q==} + dependencies: + figgy-pudding: 3.5.2 + + /ssri@8.0.1: + resolution: {integrity: sha512-97qShzy1AiyxvPNIkLWoGua7xoQzzPjQ0HAH4B0rWKo7SZ6USuPcrUiAFrws0UH8RrbWmgq3LMTObhPIHbbBeQ==} + engines: {node: '>= 8'} + dependencies: + minipass: 3.3.6 + dev: false + + /standardized-audio-context@25.3.61: + resolution: {integrity: sha512-ew5s1DOlSfU/oHtdIbRGhtPriGd2D4ttVY0uB63Ura1bQWG+c0YVFtmy2fBPLcKH5qkIbrHHlwJTikgVsJ62dg==} + dependencies: + '@babel/runtime': 7.23.7 + automation-events: 6.0.13 + tslib: 2.6.2 + dev: false + + /startaudiocontext@1.2.1: + resolution: {integrity: sha512-ooOQhOAoCwzMIRwWd9j7xF8kAMo1Wv7Zfw+q6dWDW5gxJUKx15HJXWDg89GMDqfdle9xsqPv+uioneX+bI643g==} + dev: false + + /static-eval@2.1.1: + resolution: {integrity: sha512-MgWpQ/ZjGieSVB3eOJVs4OA2LT/q1vx98KPCTTQPzq/aLr0YUXTsgryTXr4SLfR0ZfUUCiedM9n/ABeDIyy4mA==} + dependencies: + escodegen: 2.1.0 + dev: false + + /static-extend@0.1.2: + resolution: {integrity: sha512-72E9+uLc27Mt718pMHt9VMNiAL4LMsmDbBva8mxWUCkT07fSzEGMYUCk0XWY6lp0j6RBAG4cJ3mWuZv2OE3s0g==} + engines: {node: '>=0.10.0'} + dependencies: + define-property: 0.2.5 + object-copy: 0.1.0 + + /static-module@2.2.5: + resolution: {integrity: sha512-D8vv82E/Kpmz3TXHKG8PPsCPg+RAX6cbCOyvjM6x04qZtQ47EtJFVwRsdov3n5d6/6ynrOY9XB4JkaZwB2xoRQ==} + dependencies: + concat-stream: 1.6.2 + convert-source-map: 1.9.0 + duplexer2: 0.1.4 + escodegen: 1.9.1 + falafel: 2.2.5 + has: 1.0.4 + magic-string: 0.22.5 + merge-source-map: 1.0.4 + object-inspect: 1.4.1 + quote-stream: 1.0.2 + readable-stream: 2.3.8 + shallow-copy: 0.0.1 + static-eval: 2.1.1 + through2: 2.0.5 + dev: false + + /statuses@1.5.0: + resolution: {integrity: sha512-OpZ3zP+jT1PI7I8nemJX4AKmAX070ZkYPVWV/AaKTJl+tXCTGyVdC1a4SL8RUQYEwk/f34ZX8UTykN68FwrqAA==} + engines: {node: '>= 0.6'} + dev: true + + /statuses@2.0.1: + resolution: {integrity: sha512-RwNA9Z/7PrK06rYLIzFMlaF+l73iwpzsqRIFgbMLbTcLD6cOao82TaWefPXQvB2fOC4AjuYSEndS7N/mTCbkdQ==} + engines: {node: '>= 0.8'} + dev: true + + /stream-browserify@2.0.2: + resolution: {integrity: sha512-nX6hmklHs/gr2FuxYDltq8fJA1GDlxKQCz8O/IM4atRqBH8OORmBNgfvW5gG10GT/qQ9u0CzIvr2X5Pkt6ntqg==} + dependencies: + inherits: 2.0.4 + readable-stream: 2.3.8 + + /stream-each@1.2.3: + resolution: {integrity: sha512-vlMC2f8I2u/bZGqkdfLQW/13Zihpej/7PmSiMQsbYddxuTsJp8vRe2x2FvVExZg7FaOds43ROAuFJwPR4MTZLw==} + dependencies: + end-of-stream: 1.4.4 + stream-shift: 1.0.1 + + /stream-http@2.8.3: + resolution: {integrity: sha512-+TSkfINHDo4J+ZobQLWiMouQYB+UVYFttRA94FpEzzJ7ZdqcL4uUUQ7WkdkI4DSozGmgBUE/a47L+38PenXhUw==} + dependencies: + builtin-status-codes: 3.0.0 + inherits: 2.0.4 + readable-stream: 2.3.8 + to-arraybuffer: 1.0.1 + xtend: 4.0.2 + + /stream-shift@1.0.1: + resolution: {integrity: sha512-AiisoFqQ0vbGcZgQPY1cdP2I76glaVA/RauYR4G4thNFgkTqr90yXTo4LYX60Jl+sIlPNHHdGSwo01AvbKUSVQ==} + + /strict-uri-encode@1.1.0: + resolution: {integrity: sha512-R3f198pcvnB+5IpnBlRkphuE9n46WyVl8I39W/ZUTZLz4nqSP/oLYUrcnJrw462Ds8he4YKMov2efsTIw1BDGQ==} + engines: {node: '>=0.10.0'} + + /string-length@2.0.0: + resolution: {integrity: sha512-Qka42GGrS8Mm3SZ+7cH8UXiIWI867/b/Z/feQSpQx/rbfB8UGknGEZVaUQMOUVj+soY6NpWAxily63HI1OckVQ==} + engines: {node: '>=4'} + dependencies: + astral-regex: 1.0.0 + strip-ansi: 4.0.0 + dev: true + + /string-width@1.0.2: + resolution: {integrity: sha512-0XsVpQLnVCXHJfyEs8tC0zpTVIr5PKKsQtkT29IwupnPTjtPmQ3xT/4yCREF9hYkV/3M3kzcUTSAZT6a6h81tw==} + engines: {node: '>=0.10.0'} + dependencies: + code-point-at: 1.1.0 + is-fullwidth-code-point: 1.0.0 + strip-ansi: 3.0.1 + + /string-width@2.1.1: + resolution: {integrity: sha512-nOqH59deCq9SRHlxq1Aw85Jnt4w6KvLKqWVik6oA9ZklXLNIOlqg4F2yrT1MVaTjAqvVwdfeZ7w7aCvJD7ugkw==} + engines: {node: '>=4'} + dependencies: + is-fullwidth-code-point: 2.0.0 + strip-ansi: 4.0.0 + dev: true + + /string-width@3.1.0: + resolution: {integrity: sha512-vafcv6KjVZKSgz06oM/H6GDBrAtz8vdhQakGjFIvNrHA6y3HCF1CInLy+QLq8dTJPQ1b+KDUqDFctkdRW44e1w==} + engines: {node: '>=6'} + dependencies: + emoji-regex: 7.0.3 + is-fullwidth-code-point: 2.0.0 + strip-ansi: 5.2.0 + + /string.prototype.matchall@4.0.10: + resolution: {integrity: sha512-rGXbGmOEosIQi6Qva94HUjgPs9vKW+dkG7Y8Q5O2OYkWL6wFaTRZO8zM4mhP94uX55wgyrXzfS2aGtGzUL7EJQ==} + dependencies: + call-bind: 1.0.5 + define-properties: 1.2.1 + es-abstract: 1.22.3 + get-intrinsic: 1.2.2 + has-symbols: 1.0.3 + internal-slot: 1.0.6 + regexp.prototype.flags: 1.5.1 + set-function-name: 2.0.1 + side-channel: 1.0.4 + dev: true + + /string.prototype.trim@1.2.8: + resolution: {integrity: sha512-lfjY4HcixfQXOfaqCvcBuOIapyaroTXhbkfJN3gcB1OtyupngWK4sEET9Knd0cXd28kTUqu/kHoV4HKSJdnjiQ==} + engines: {node: '>= 0.4'} + dependencies: + call-bind: 1.0.5 + define-properties: 1.2.1 + es-abstract: 1.22.3 + dev: true + + /string.prototype.trimend@1.0.7: + resolution: {integrity: sha512-Ni79DqeB72ZFq1uH/L6zJ+DKZTkOtPIHovb3YZHQViE+HDouuU4mBrLOLDn5Dde3RF8qw5qVETEjhu9locMLvA==} + dependencies: + call-bind: 1.0.5 + define-properties: 1.2.1 + es-abstract: 1.22.3 + dev: true + + /string.prototype.trimstart@1.0.7: + resolution: {integrity: sha512-NGhtDFu3jCEm7B4Fy0DpLewdJQOZcQ0rGbwQ/+stjnrp2i+rlKeCvos9hOIeCmqwratM47OBxY7uFZzjxHXmrg==} + dependencies: + call-bind: 1.0.5 + define-properties: 1.2.1 + es-abstract: 1.22.3 + dev: true + + /string_decoder@0.10.31: + resolution: {integrity: sha512-ev2QzSzWPYmy9GuqfIVildA4OdcGLeFZQrq5ys6RtiuF+RQQiZWr8TZNyAcuVXyQRYfEO+MsoB/1BuQVhOJuoQ==} + dev: false + + /string_decoder@1.1.1: + resolution: {integrity: sha512-n/ShnvDi6FHbbVfviro+WojiFzv+s8MPMHBczVePfUpDJLwoLT0ht1l4YwBCbi8pJAveEEdnkHyPyTP/mzRfwg==} + dependencies: + safe-buffer: 5.1.2 + + /string_decoder@1.3.0: + resolution: {integrity: sha512-hkRX8U1WjJFd8LsDJ2yQ/wWWxaopEsABU1XfkM8A+j0+85JAGppt16cr1Whg6KIbb4okU6Mql6BOj+uup/wKeA==} + dependencies: + safe-buffer: 5.2.1 + + /strip-ansi@2.0.1: + resolution: {integrity: sha512-2h8q2CP3EeOhDJ+jd932PRMpa3/pOJFGoF22J1U/DNbEK2gSW2DqeF46VjCXsSQXhC+k/l8/gaaRBQKL6hUPfQ==} + engines: {node: '>=0.10.0'} + hasBin: true + dependencies: + ansi-regex: 1.1.1 + dev: false + + /strip-ansi@3.0.1: + resolution: {integrity: sha512-VhumSSbBqDTP8p2ZLKj40UjBCV4+v8bUSEpUb4KjRgWk9pbqGF4REFj6KEagidb2f/M6AzC0EmFyDNGaw9OCzg==} + engines: {node: '>=0.10.0'} + dependencies: + ansi-regex: 2.1.1 + + /strip-ansi@4.0.0: + resolution: {integrity: sha512-4XaJ2zQdCzROZDivEVIDPkcQn8LMFSa8kj8Gxb/Lnwzv9A8VctNZ+lfivC/sV3ivW8ElJTERXZoPBRrZKkNKow==} + engines: {node: '>=4'} + dependencies: + ansi-regex: 3.0.1 + dev: true + + /strip-ansi@5.2.0: + resolution: {integrity: sha512-DuRs1gKbBqsMKIZlrffwlug8MHkcnpjs5VPmL1PAh+mA30U0DTotfDZ0d2UUsXpPmPmMMJ6W773MaA3J+lbiWA==} + engines: {node: '>=6'} + dependencies: + ansi-regex: 4.1.1 + + /strip-bom@2.0.0: + resolution: {integrity: sha512-kwrX1y7czp1E69n2ajbG65mIo9dqvJ+8aBQXOGVxqwvNbsXdFM6Lq37dLAY3mknUwru8CfcCbfOLL/gMo+fi3g==} + engines: {node: '>=0.10.0'} + dependencies: + is-utf8: 0.2.1 + dev: true + + /strip-bom@3.0.0: + resolution: {integrity: sha512-vavAMRXOgBVNF6nyEEmL3DBK19iRpDcoIwW+swQ+CbGiu7lju6t+JklA1MHweoWtadgt4ISVUsXLyDq34ddcwA==} + engines: {node: '>=4'} + dev: true + + /strip-dirs@2.1.0: + resolution: {integrity: sha512-JOCxOeKLm2CAS73y/U4ZeZPTkE+gNVCzKt7Eox84Iej1LT/2pTWYpZKJuxwQpvX1LiZb1xokNR7RLfuBAa7T3g==} + dependencies: + is-natural-number: 4.0.1 + dev: false + + /strip-eof@1.0.0: + resolution: {integrity: sha512-7FCwGGmx8mD5xQd3RPUvnSpUXHM3BWuzjtpD4TXsfcZ9EL4azvVVUscFYwD9nx8Kh+uCBC00XBtAykoMHwTh8Q==} + engines: {node: '>=0.10.0'} + dev: true + + /strip-json-comments@2.0.1: + resolution: {integrity: sha512-4gB8na07fecVVkOI6Rs4e7T6NOTki5EmL7TUduTs6bu3EdnSycntVJ4re8kgZA+wx9IueI2Y11bfbgwtzuE0KQ==} + engines: {node: '>=0.10.0'} + dev: true + + /strip-outer@1.0.1: + resolution: {integrity: sha512-k55yxKHwaXnpYGsOzg4Vl8+tDrWylxDEpknGjhTiZB8dFRU5rTo9CAzeycivxV3s+zlTKwrs6WxMxR95n26kwg==} + engines: {node: '>=0.10.0'} + dependencies: + escape-string-regexp: 1.0.5 + + /strip-url-auth@1.0.1: + resolution: {integrity: sha512-++41PnXftlL3pvI6lpvhSEO+89g1kIJC4MYB5E6yH+WHa5InIqz51yGd1YOGd7VNSNdoEOfzTMqbAM/2PbgaHQ==} + engines: {node: '>=0.10.0'} + dev: true + + /style-loader@0.23.1: + resolution: {integrity: sha512-XK+uv9kWwhZMZ1y7mysB+zoihsEj4wneFWAS5qoiLwzW0WzSqMrrsIy+a3zkQJq0ipFtBpX5W3MqyRIBF/WFGg==} + engines: {node: '>= 0.12.0'} + dependencies: + loader-utils: 1.4.2 + schema-utils: 1.0.0 + dev: false + + /supports-color@2.0.0: + resolution: {integrity: sha512-KKNVtd6pCYgPIKU4cp2733HWYCpplQhddZLBUryaAHou723x+FRzQ5Df824Fj+IyyuiQTRoub4SnIFfIcrp70g==} + engines: {node: '>=0.8.0'} + + /supports-color@3.2.3: + resolution: {integrity: sha512-Jds2VIYDrlp5ui7t8abHN2bjAu4LV/q4N2KivFPpGH0lrka0BMq/33AmECUXlKPcHigkNaqfXRENFju+rlcy+A==} + engines: {node: '>=0.8.0'} + dependencies: + has-flag: 1.0.0 + dev: true + + /supports-color@4.4.0: + resolution: {integrity: sha512-rKC3+DyXWgK0ZLKwmRsrkyHVZAjNkfzeehuFWdGGcqGDTZFH73+RH6S/RDAAxl9GusSjZSUWYLmT9N5pzXFOXQ==} + engines: {node: '>=4'} + dependencies: + has-flag: 2.0.0 + dev: false + + /supports-color@5.5.0: + resolution: {integrity: sha512-QjVjwdXIt408MIiAqCX4oUKsgU2EqAGzs2Ppkm4aQYbjm+ZEWEcW4SfFNTr4uMNZma0ey4f5lgLrkB0aX0QMow==} + engines: {node: '>=4'} + dependencies: + has-flag: 3.0.0 + + /supports-color@6.1.0: + resolution: {integrity: sha512-qe1jfm1Mg7Nq/NSh6XE24gPXROEVsWHxC1LIx//XNlD9iw7YZQGjZNjYN7xGaEG6iKdA8EtNFW6R0gjnVXp+wQ==} + engines: {node: '>=6'} + dependencies: + has-flag: 3.0.0 + + /supports-preserve-symlinks-flag@1.0.0: + resolution: {integrity: sha512-ot0WnXS9fgdkgIcePe6RHNk1WA8+muPa6cSjeR3V8K27q9BB1rTE3R1p7Hv0z1ZyAc8s6Vvv8DIyWf681MAt0w==} + engines: {node: '>= 0.4'} + + /symbol-observable@1.2.0: + resolution: {integrity: sha512-e900nM8RRtGhlV36KGEU9k65K3mPb1WV70OdjfxlG2EAuM1noi/E/BaW/uMhL7bPEssK8QV57vN3esixjUvcXQ==} + engines: {node: '>=0.10.0'} + dev: false + + /symbol-tree@3.2.4: + resolution: {integrity: sha512-9QNk5KwDF+Bvz+PyObkmSYjI5ksVUYtjW7AU22r2NKcfLJcXp96hkDWU3+XndOsUb+AQ9QhfzfCT2O+CNWT5Tw==} + dev: true + + /table@5.4.6: + resolution: {integrity: sha512-wmEc8m4fjnob4gt5riFRtTu/6+4rSe12TpAELNSqHMfF3IqnA+CH37USM6/YR3qRZv7e56kAEAtd6nKZaxe0Ug==} + engines: {node: '>=6.0.0'} + dependencies: + ajv: 6.12.6 + lodash: 4.17.21 + slice-ansi: 2.1.0 + string-width: 3.1.0 + dev: true + + /tapable@0.1.10: + resolution: {integrity: sha512-jX8Et4hHg57mug1/079yitEKWGB3LCwoxByLsNim89LABq8NqgiX+6iYVOsq0vX8uJHkU+DZ5fnq95f800bEsQ==} + engines: {node: '>=0.6'} + dev: true + + /tapable@1.1.3: + resolution: {integrity: sha512-4WK/bYZmj8xLr+HUCODHGF1ZFzsYffasLUgEiMBY4fgtltdO6B4WJtlSbPaDTLpYTcGVwM2qLnFTICEcNxs3kA==} + engines: {node: '>=6'} + + /tar-stream@1.6.2: + resolution: {integrity: sha512-rzS0heiNf8Xn7/mpdSVVSMAWAoy9bfb1WOTYC78Z0UQKeKa/CWS8FOq0lKGNa8DWKAn9gxjCvMLYc5PGXYlK2A==} + engines: {node: '>= 0.8.0'} + dependencies: + bl: 1.2.3 + buffer-alloc: 1.2.0 + end-of-stream: 1.4.4 + fs-constants: 1.0.0 + readable-stream: 2.3.8 + to-buffer: 1.1.1 + xtend: 4.0.2 + dev: false + + /tar@6.2.0: + resolution: {integrity: sha512-/Wo7DcT0u5HUV486xg675HtjNd3BXZ6xDbzsCUZPt5iw8bTQ63bP0Raut3mvro9u+CUyq7YQd8Cx55fsZXxqLQ==} + engines: {node: '>=10'} + dependencies: + chownr: 2.0.0 + fs-minipass: 2.1.0 + minipass: 5.0.0 + minizlib: 2.1.2 + mkdirp: 1.0.3 + yallist: 4.0.0 + dev: false + + /tcp-port-used@1.0.2: + resolution: {integrity: sha512-l7ar8lLUD3XS1V2lfoJlCBaeoaWo/2xfYt81hM7VlvR4RrMVFqfmzfhLVk40hAb368uitje5gPtBRL1m/DGvLA==} + dependencies: + debug: 4.3.1 + is2: 2.0.9 + transitivePeerDependencies: + - supports-color + dev: true + + /terser-webpack-plugin@1.4.5(webpack@4.46.0): + resolution: {integrity: sha512-04Rfe496lN8EYruwi6oPQkG0vo8C+HT49X687FZnpPF0qMAIHONI6HEXYPKDOE8e5HjXTyKfqRd/agHtH0kOtw==} + engines: {node: '>= 6.9.0'} + peerDependencies: + webpack: ^4.0.0 + dependencies: + cacache: 12.0.4 + 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.8.1 + webpack: 4.46.0(webpack-cli@3.3.12) + webpack-sources: 1.4.3 + worker-farm: 1.7.0 + + /terser@4.8.1: + resolution: {integrity: sha512-4GnLC0x667eJG0ewJTa6z/yXrbLGv80D9Ru6HIpCQmO+Q4PfEtBFi0ObSckqwL6VyQv/7ENJieXHo2ANmdQwgw==} + engines: {node: '>=6.0.0'} + hasBin: true + dependencies: + acorn: 8.11.3 + commander: 2.20.3 + source-map: 0.6.1 + source-map-support: 0.5.21 + + /test-exclude@4.2.3: + resolution: {integrity: sha512-SYbXgY64PT+4GAL2ocI3HwPa4Q4TBKm0cwAVeKOt/Aoc0gSpNRjJX8w0pA1LMKZ3LBmd8pYBqApFNQLII9kavA==} + dependencies: + arrify: 1.0.1 + micromatch: 2.3.11 + object-assign: 4.1.1 + read-pkg-up: 1.0.1 + require-main-filename: 1.0.1 + dev: true + + /text-encoding@0.7.0: + resolution: {integrity: sha512-oJQ3f1hrOnbRLOcwKz0Liq2IcrvDeZRHXhd9RgLrsT+DjWY/nty1Hi7v3dtkaEYbPYe0mUoOfzRrMwfXXwgPUA==} + deprecated: no longer maintained + dev: false + + /text-table@0.2.0: + resolution: {integrity: sha512-N+8UisAXDGk8PFXP4HAzVR9nbfmVJ3zYLAWiTIoqC5v5isinhr+r5uaO8+7r3BMfuNIufIsA7RdpVgacC2cSpw==} + dev: true + + /three-mesh-bvh@0.6.0(three@0.153.0): + resolution: {integrity: sha512-4/oXeqVMLuN9/P0M3L5ezIVrFiXQXKvjVTErkiSYMjSaPoWfNPAwqulSgLf4bIUPn8/Lq3rmIJwxbCuD8qDobA==} + peerDependencies: + three: '>= 0.151.0' + dependencies: + three: 0.153.0 + dev: false + + /three@0.153.0: + resolution: {integrity: sha512-OCP2/uQR6GcDpSLnJt/3a4mdS0kNWcbfUXIwLoEMgLzEUIVIYsSDwskpmOii/AkDM+BBwrl6+CKgrjX9+E2aWg==} + dev: false + + /throat@4.1.0: + resolution: {integrity: sha512-wCVxLDcFxw7ujDxaeJC6nfl2XfHJNYs8yUYJnvMgtPEFlttP9tHSfRUv2vBe6C4hkVFPWoP1P6ZccbYjmSEkKA==} + dev: true + + /through2@2.0.5: + resolution: {integrity: sha512-/mrRod8xqpA+IHSLyGCQ2s8SPHiCDEeQJSep1jqLYeEUClOFG2Qsh+4FU6G9VeqpZnGW/Su8LQGc4YKni5rYSQ==} + dependencies: + readable-stream: 2.3.8 + xtend: 4.0.2 + + /through@2.3.8: + resolution: {integrity: sha512-w89qg7PI8wAdvX60bMDP+bFoD5Dvhm9oLheFp5O4a2QF0cSBGsBX4qZmadPMvVqlLJBBci+WqGGOAPvcDeNSVg==} + + /thunky@1.1.0: + resolution: {integrity: sha512-eHY7nBftgThBqOyHGVN+l8gF0BucP09fMo0oO/Lb0w1OF80dJv+lDVpXG60WMQvkcxAkNybKsrEIE3ZtKGmPrA==} + dev: true + + /timed-out@4.0.1: + resolution: {integrity: sha512-G7r3AhovYtr5YKOWQkta8RKAPb+J9IsO4uVmzjl8AZwfhs8UcUwTiD6gcJYSgOtzyjvQKrKYn41syHbUWMkafA==} + engines: {node: '>=0.10.0'} + dev: false + + /timers-browserify@2.0.12: + resolution: {integrity: sha512-9phl76Cqm6FhSX9Xe1ZUAMLtm1BLkKj2Qd5ApyWkXzsMRaA7dgr81kf4wJmQf/hAvg8EEyJxDo3du/0KlhPiKQ==} + engines: {node: '>=0.6.0'} + dependencies: + setimmediate: 1.0.5 + + /tiny-emitter@2.1.0: + resolution: {integrity: sha512-NB6Dk1A9xgQPMoGqC5CVXn123gWyte215ONT5Pp5a0yt4nlEoO1ZWeCwpncaekPHXO60i47ihFnZPiRPjRMq4Q==} + dev: false + + /tiny-inflate@1.0.3: + resolution: {integrity: sha512-pkY1fj1cKHb2seWDy0B16HeWyczlJA9/WW3u3c4z/NiWDsO3DOU5D7nhTLE9CF0yXv/QZFY7sEJmj24dK+Rrqw==} + dev: false + + /tmp@0.0.30: + resolution: {integrity: sha512-HXdTB7lvMwcb55XFfrTM8CPr/IYREk4hVBFaQ4b/6nInrluSL86hfHm7vu0luYKCfyBZp2trCjpc8caC3vVM3w==} + engines: {node: '>=0.4.0'} + dependencies: + os-tmpdir: 1.0.2 + dev: true + + /tmp@0.0.33: + resolution: {integrity: sha512-jRCJlojKnZ3addtTOjdIqoRuPEKBvNXcGYqzO6zWZX8KfKEpnGY5jfggJQ3EjKuu8D4bJRr0y+cYJFmYbImXGw==} + engines: {node: '>=0.6.0'} + dependencies: + os-tmpdir: 1.0.2 + dev: true + + /tmpl@1.0.5: + resolution: {integrity: sha512-3f0uOEAQwIqGuWW2MVzYg8fV/QNnc/IpuJNG837rLuczAaLVHslWHZQj4IGiEl5Hs3kkbhwL9Ab7Hrsmuj+Smw==} + dev: true + + /to-arraybuffer@1.0.1: + resolution: {integrity: sha512-okFlQcoGTi4LQBG/PgSYblw9VOyptsz2KJZqc6qtgGdes8VktzUQkj4BI2blit072iS8VODNcMA+tvnS9dnuMA==} + + /to-buffer@1.1.1: + resolution: {integrity: sha512-lx9B5iv7msuFYE3dytT+KE5tap+rNYw+K4jVkb9R/asAb+pbBSM17jtunHplhBe6RRJdZx3Pn2Jph24O32mOVg==} + dev: false + + /to-fast-properties@1.0.3: + resolution: {integrity: sha512-lxrWP8ejsq+7E3nNjwYmUBMAgjMTZoTI+sdBOpvNyijeDLa29LUn9QaoXAHv4+Z578hbmHHJKZknzxVtvo77og==} + engines: {node: '>=0.10.0'} + dev: true + + /to-fast-properties@2.0.0: + resolution: {integrity: sha512-/OaKK0xYrs3DmxRYqL/yDc+FxFUVYhDlXMhRmv3z915w2HF1tnN1omB354j8VUGO/hbRzyD6Y3sA7v7GS/ceog==} + engines: {node: '>=4'} + + /to-object-path@0.3.0: + resolution: {integrity: sha512-9mWHdnGRuh3onocaHzukyvCZhzvr6tiflAy/JRFXcJX0TjgfWA9pk9t8CMbzmBE4Jfw58pXbkngtBtqYxzNEyg==} + engines: {node: '>=0.10.0'} + dependencies: + kind-of: 3.2.2 + + /to-regex-range@2.1.1: + resolution: {integrity: sha512-ZZWNfCjUokXXDGXFpZehJIkZqq91BcULFq/Pi7M5i4JnxXdhMKAK682z8bCW3o8Hj1wuuzoKcW3DfVzaP6VuNg==} + engines: {node: '>=0.10.0'} + requiresBuild: true + dependencies: + is-number: 3.0.0 + repeat-string: 1.6.1 + + /to-regex-range@5.0.1: + resolution: {integrity: sha512-65P7iz6X5yEr1cwcgvQxbbIw7Uk3gOy5dIdtZ4rDveLqhrdJP+Li/Hx6tyK0NEb+2GCyneCMJiGqrADCSNk8sQ==} + engines: {node: '>=8.0'} + requiresBuild: true + dependencies: + is-number: 7.0.0 + + /to-regex@3.0.2: + resolution: {integrity: sha512-FWtleNAtZ/Ki2qtqej2CXTOayOH9bHDQF+Q48VpWyDXjbYxA4Yz8iDB31zXOBUlOHHKidDbqGVrTUvQMPmBGBw==} + engines: {node: '>=0.10.0'} + dependencies: + define-property: 2.0.2 + extend-shallow: 3.0.2 + regex-not: 1.0.2 + safe-regex: 1.1.0 + + /to-style@1.3.3: + resolution: {integrity: sha512-9K8KYegr9hrdm8yPpu5iZjJp5t6RPAp4gFDU5hD9zR8hwqgF4fsoSitMtkRKQG2qkP5j/uG3wajbgV09rjmIqg==} + dev: false + + /toidentifier@1.0.1: + resolution: {integrity: sha512-o5sSPKEkg/DIQNmH43V0/uerLrpzVedkUh8tGNvaeXpfpuwjKenlSox/2O/BTlZUtEe+JG7s5YhEz608PlAHRA==} + engines: {node: '>=0.6'} + dev: true + + /tone@14.7.77: + resolution: {integrity: sha512-tCfK73IkLHyzoKUvGq47gyDyxiKLFvKiVCOobynGgBB9Dl0NkxTM2p+eRJXyCYrjJwy9Y0XCMqD3uOYsYt2Fdg==} + dependencies: + standardized-audio-context: 25.3.61 + tslib: 2.6.2 + dev: false + + /tough-cookie@2.5.0: + resolution: {integrity: sha512-nlLsUzgm1kfLXSXfRZMc1KLAugd4hqJHDTvc2hDIwS3mZAfMEuMbc03SujMF+GEcpaX/qboeycw6iO8JwVv2+g==} + engines: {node: '>=0.8'} + dependencies: + psl: 1.9.0 + punycode: 2.3.1 + + /tr46@0.0.3: + resolution: {integrity: sha512-N3WMsuqV66lT30CrXNbEjx4GEwlow3v6rr4mCcv6prnfwhS01rkgyFdjPNBYd9br7LpXV1+Emh01fHnq2Gdgrw==} + dev: true + + /transformation-matrix@1.15.0: + resolution: {integrity: sha512-808EqPQbmUD6/IMpWUXLOZcblCHf9xaiB+un0RYNNE9+6VRjoiw6Be8R32tZ0ips1PX/15tlnA2Ev4UUgg827Q==} + dev: false + + /transifex@1.6.6: + resolution: {integrity: sha512-uHeRvhfLfZN+JdH+X0zR1jkQAbMGkgExZgcXm31CzaVVd4kq98YaPr4MCgCU0LwA7cgOuB97d2HZQ/WikOAxlg==} + engines: {node: '>=8.9.0'} + hasBin: true + dependencies: + commander: 2.20.3 + lodash: 4.17.21 + mkpath: 1.0.0 + mocha: 4.1.0 + request: 2.88.2 + should: 13.2.3 + dev: false + + /trim-repeated@1.0.0: + resolution: {integrity: sha512-pkonvlKk8/ZuR0D5tLW8ljt5I8kmxp2XKymhepUeOdCEfKpZaktSArkLHZt76OB1ZvO9bssUsDty4SWhLvZpLg==} + engines: {node: '>=0.10.0'} + dependencies: + escape-string-regexp: 1.0.5 + + /trim-right@1.0.1: + resolution: {integrity: sha512-WZGXGstmCWgeevgTL54hrCuw1dyMQIzWy7ZfqRJfSmJZBwklI15egmQytFP6bPidmw3M8d5yEowl1niq4vmqZw==} + engines: {node: '>=0.10.0'} + dev: true + + /tsconfig-paths@3.15.0: + resolution: {integrity: sha512-2Ac2RgzDe/cn48GvOe3M+o82pEFewD3UPbyoUHHdKasHwJKjds4fLXWf/Ux5kATBKN20oaFGu+jbElp1pos0mg==} + dependencies: + '@types/json5': 0.0.29 + json5: 1.0.2 + minimist: 1.2.8 + strip-bom: 3.0.0 + dev: true + + /tslib@1.14.1: + resolution: {integrity: sha512-Xni35NKzjgMrwevysHTCArtLDpPvye8zV/0E4EyYn43P7/7qvQwPh9BGkHewbMulVntbigmcT7rdX3BNo9wRJg==} + dev: true + + /tslib@2.6.2: + resolution: {integrity: sha512-AEYxH93jGFPn/a2iVAwW87VuUIkR1FVUKB77NwMF7nBTDkDrrT/Hpt/IrCJ0QXhW27jTBDcf5ZY7w6RiqTMw2Q==} + + /tty-browserify@0.0.0: + resolution: {integrity: sha512-JVa5ijo+j/sOoHGjw0sxw734b1LhBkQ3bvUGNdxnVXDCX81Yx7TFgnZygxrIIWn23hbfTaMYLwRmAxFyDuFmIw==} + + /tunnel-agent@0.6.0: + resolution: {integrity: sha512-McnNiV1l8RYeY8tBgEpuodCC1mLUdbSN+CYBL7kJsJNInOP8UjDDEwdk6Mw60vdLLrr5NHKZhMAOSrR2NZuQ+w==} + dependencies: + safe-buffer: 5.2.1 + + /tweetnacl@0.14.5: + resolution: {integrity: sha512-KXXFFdAbFXY4geFIwoyNK+f5Z1b7swfXABfL7HXCmoIWMKU3dmS26672A4EeQtDzLKy7SXmfBu51JolvEKwtGA==} + + /twgl.js@4.4.0: + resolution: {integrity: sha512-W+uFP2DyK2dNhE38PcpituNi8CBm+YO5gY6o/IWEILT7NNDTT1wo3YcMmydwiCfUbnT7tz+EcjV7KlZLgE1PlQ==} + dev: false + + /type-check@0.3.2: + resolution: {integrity: sha512-ZCmOJdvOWDBYJlzAoFkC+Q0+bUyEOS1ltgp1MGU03fqHG+dbi9tBFU2Rd9QKiDZFAYrhPh2JUf7rZRIuHRKtOg==} + engines: {node: '>= 0.8.0'} + dependencies: + prelude-ls: 1.1.2 + + /type-is@1.6.18: + resolution: {integrity: sha512-TkRKr9sUTxEH8MdfuCSP7VizJyzRNMjj2J2do2Jr3Kym598JVdEksuzPQCnlFPW4ky9Q+iA+ma9BGm06XQBy8g==} + engines: {node: '>= 0.6'} + dependencies: + media-typer: 0.3.0 + mime-types: 2.1.35 + dev: true + + /typed-array-buffer@1.0.0: + resolution: {integrity: sha512-Y8KTSIglk9OZEr8zywiIHG/kmQ7KWyjseXs1CbSo8vC42w7hg2HgYTxSWwP0+is7bWDc1H+Fo026CpHFwm8tkw==} + engines: {node: '>= 0.4'} + dependencies: + call-bind: 1.0.5 + get-intrinsic: 1.2.2 + is-typed-array: 1.1.12 + dev: true + + /typed-array-byte-length@1.0.0: + resolution: {integrity: sha512-Or/+kvLxNpeQ9DtSydonMxCx+9ZXOswtwJn17SNLvhptaXYDJvkFFP5zbfU/uLmvnBJlI4yrnXRxpdWH/M5tNA==} + engines: {node: '>= 0.4'} + dependencies: + call-bind: 1.0.5 + for-each: 0.3.3 + has-proto: 1.0.1 + is-typed-array: 1.1.12 + dev: true + + /typed-array-byte-offset@1.0.0: + resolution: {integrity: sha512-RD97prjEt9EL8YgAgpOkf3O4IF9lhJFr9g0htQkm0rchFp/Vx7LW5Q8fSXXub7BXAODyUQohRMyOc3faCPd0hg==} + engines: {node: '>= 0.4'} + dependencies: + available-typed-arrays: 1.0.5 + call-bind: 1.0.5 + for-each: 0.3.3 + has-proto: 1.0.1 + is-typed-array: 1.1.12 + dev: true + + /typed-array-length@1.0.4: + resolution: {integrity: sha512-KjZypGq+I/H7HI5HlOoGHkWUUGq+Q0TPhQurLbyrVrvnKTBgzLhIJ7j6J/XTQOi0d1RjyZ0wdas8bKs2p0x3Ng==} + dependencies: + call-bind: 1.0.5 + for-each: 0.3.3 + is-typed-array: 1.1.12 + dev: true + + /typed-function@4.1.1: + resolution: {integrity: sha512-Pq1DVubcvibmm8bYcMowjVnnMwPVMeh0DIdA8ad8NZY2sJgapANJmiigSUwlt+EgXxpfIv8MWrQXTIzkfYZLYQ==} + engines: {node: '>= 14'} + dev: false + + /typedarray@0.0.6: + resolution: {integrity: sha512-/aCDEGatGvZ2BIk+HmLf4ifCJFwvKFNb9/JeZPMulfgFracn9QFcAf5GO8B/mweUjSoblS5In0cWhqpfs/5PQA==} + + /ua-parser-js@0.7.37: + resolution: {integrity: sha512-xV8kqRKM+jhMvcHWUKthV9fNebIzrNy//2O9ZwWcfiBFR5f25XVZPLlEajk/sf3Ra15V92isyQqnIEXRDaZWEA==} + dev: true + + /uglify-es@3.3.9: + resolution: {integrity: sha512-r+MU0rfv4L/0eeW3xZrd16t4NZfK8Ld4SWVglYBb7ez5uXFWHuVRs6xCTrf1yirs9a4j4Y27nn7SRfO6v67XsQ==} + engines: {node: '>=0.8.0'} + deprecated: support for ECMAScript is superseded by `uglify-js` as of v3.13.0 + hasBin: true + dependencies: + commander: 2.13.0 + source-map: 0.6.1 + dev: true + + /uglify-js@3.17.4: + resolution: {integrity: sha512-T9q82TJI9e/C1TAxYvfb16xO120tMVFZrGA3f9/P4424DNu6ypK103y0GPFVa17yotwSyZW5iYXgjYHkGrJW/g==} + engines: {node: '>=0.8.0'} + hasBin: true + requiresBuild: true + dev: true + optional: true + + /uglifyjs-webpack-plugin@1.3.0(webpack@4.46.0): + resolution: {integrity: sha512-ovHIch0AMlxjD/97j9AYovZxG5wnHOPkL7T1GKochBADp/Zwc44pEWNqpKl1Loupp1WhFg7SlYmHZRUfdAacgw==} + engines: {node: '>= 4.8 < 5.0.0 || >= 5.10'} + peerDependencies: + webpack: ^2.0.0 || ^3.0.0 || ^4.0.0 + dependencies: + cacache: 10.0.4 + find-cache-dir: 1.0.0 + schema-utils: 0.4.7 + serialize-javascript: 1.9.1 + source-map: 0.6.1 + uglify-es: 3.3.9 + webpack: 4.46.0(webpack-cli@3.3.12) + webpack-sources: 1.4.3 + worker-farm: 1.7.0 + dev: true + + /unbox-primitive@1.0.2: + resolution: {integrity: sha512-61pPlCD9h51VoreyJ0BReideM3MDKMKnh6+V9L08331ipq6Q8OFXZYiqP6n/tbHx4s5I9uRhcye6BrbkizkBDw==} + dependencies: + call-bind: 1.0.5 + has-bigints: 1.0.2 + has-symbols: 1.0.3 + which-boxed-primitive: 1.0.2 + dev: true + + /unbzip2-stream@1.4.3: + resolution: {integrity: sha512-mlExGW4w71ebDJviH16lQLtZS32VKqsSfk80GCfUlwT/4/hNRFsoscrF/c++9xinkMzECL1uL9DDwXqFWkruPg==} + dependencies: + buffer: 5.7.1 + through: 2.3.8 + dev: false + + /undici-types@5.26.5: + resolution: {integrity: sha512-JlCMO+ehdEIKqlFxk6IfVoAUVmgz7cU7zD/h9XZ0qzeosSHmUJVOzSQvvYSYWXkFXC+IfLKSIffhv0sVZup6pA==} + + /unicode-canonical-property-names-ecmascript@2.0.0: + resolution: {integrity: sha512-yY5PpDlfVIU5+y/BSCxAJRBIS1Zc2dDG3Ujq+sR0U+JjUevW2JhocOF+soROYDSaAezOzOKuyyixhD6mBknSmQ==} + engines: {node: '>=4'} + dev: true + + /unicode-match-property-ecmascript@2.0.0: + resolution: {integrity: sha512-5kaZCrbp5mmbz5ulBkDkbY0SsPOjKqVS35VpL9ulMPfSl0J0Xsm+9Evphv9CoIZFwre7aJoa94AY6seMKGVN5Q==} + engines: {node: '>=4'} + dependencies: + unicode-canonical-property-names-ecmascript: 2.0.0 + unicode-property-aliases-ecmascript: 2.1.0 + dev: true + + /unicode-match-property-value-ecmascript@2.1.0: + resolution: {integrity: sha512-qxkjQt6qjg/mYscYMC0XKRn3Rh0wFPlfxB0xkt9CfyTvpX1Ra0+rAmdX2QyAobptSEvuy4RtpPRui6XkV+8wjA==} + engines: {node: '>=4'} + dev: true + + /unicode-property-aliases-ecmascript@2.1.0: + resolution: {integrity: sha512-6t3foTQI9qne+OZoVQB/8x8rk2k1eVy1gRXhV3oFQ5T6R1dqQ1xtin3XqSlx3+ATBkliTaR/hHyJBm+LVPNM8w==} + engines: {node: '>=4'} + dev: true + + /unicode-trie@0.3.1: + resolution: {integrity: sha512-WgVuO0M2jDl7hVfbPgXv2LUrD81HM0bQj/bvLGiw6fJ4Zo8nNFnDrA0/hU2Te/wz6pjxCm5cxJwtLjo2eyV51Q==} + dependencies: + pako: 0.2.9 + tiny-inflate: 1.0.3 + dev: false + + /union-value@1.0.1: + resolution: {integrity: sha512-tJfXmxMeWYnczCVs7XAEvIV7ieppALdyepWMkHkwciRpZraG/xwT+s2JN8+pr1+8jCRf80FFzvr+MpQeeoF4Xg==} + engines: {node: '>=0.10.0'} + dependencies: + arr-union: 3.1.0 + get-value: 2.0.6 + is-extendable: 0.1.1 + set-value: 2.0.1 + + /unique-filename@1.1.1: + resolution: {integrity: sha512-Vmp0jIp2ln35UTXuryvjzkjGdRyf9b2lTXuSYUiPmzRcl3FDtYqAwOnTJkAngD9SWhnoJzDbTKwaOrZ+STtxNQ==} + dependencies: + unique-slug: 2.0.2 + + /unique-slug@2.0.2: + resolution: {integrity: sha512-zoWr9ObaxALD3DOPfjPSqxt4fnZiWblxHIgeWqW8x7UqDzEtHEQLzji2cuJYQFCU6KmoJikOYAZlrTHHebjx2w==} + dependencies: + imurmurhash: 0.1.4 + + /universalify@0.1.2: + resolution: {integrity: sha512-rBJeI5CXAlmy1pV+617WB9J63U6XcazHHF2f2dbJix4XzpUF0RS3Zbj0FGIOCAva5P/d/GBOYaACQ1w+0azUkg==} + engines: {node: '>= 4.0.0'} + + /unpipe@1.0.0: + resolution: {integrity: sha512-pjy2bYhSsufwWlKwPc+l3cN7+wuJlK6uz0YdJEOlQDbl6jo/YlPi4mb8agUkVC8BF7V8NuzeyPNqRksA3hztKQ==} + engines: {node: '>= 0.8'} + dev: true + + /unset-value@1.0.0: + resolution: {integrity: sha512-PcA2tsuGSF9cnySLHTLSh2qrQiJ70mn+r+Glzxv2TWZblxsxCC52BDlZoPCsz7STd9pN7EZetkWZBAvk4cgZdQ==} + engines: {node: '>=0.10.0'} + dependencies: + has-value: 0.3.1 + isobject: 3.0.1 + + /upath@1.2.0: + resolution: {integrity: sha512-aZwGpamFO61g3OlfT7OQCHqhGnW43ieH9WZeP7QxN/G/jS4jfqUkZxoryvJgVPEcrl5NL/ggHsSmLMHuH64Lhg==} + engines: {node: '>=4'} + + /update-browserslist-db@1.0.13(browserslist@4.22.2): + resolution: {integrity: sha512-xebP81SNcPuNpPP3uzeW1NYXxI3rxyJzF3pD6sH4jE7o/IX+WtSpwnVU+qIsDPyk0d3hmFQ7mjqc6AtV604hbg==} + hasBin: true + peerDependencies: + browserslist: '>= 4.21.0' + dependencies: + browserslist: 4.22.2 + escalade: 3.1.1 + picocolors: 1.0.0 + + /uri-js@4.4.1: + resolution: {integrity: sha512-7rKUyy33Q1yc98pQ1DAmLtwX109F7TIfWlW1Ydo8Wl1ii1SeHieeh0HHfPeL2fMXK6z0s8ecKs9frCuLJvndBg==} + dependencies: + punycode: 2.3.1 + + /urix@0.1.0: + resolution: {integrity: sha512-Am1ousAhSLBeB9cG/7k7r2R0zj50uDRlZHPGbazid5s9rlF1F/QKYObEKSIunSjIOkJZqwRRLpvewjEkM7pSqg==} + deprecated: Please see https://github.com/lydell/urix#deprecated + + /url-loader@4.1.1(file-loader@2.0.0)(webpack@4.46.0): + resolution: {integrity: sha512-3BTV812+AVHHOJQO8O5MkWgZ5aosP7GnROJwvzLS9hWDj00lZ6Z0wNak423Lp9PBZN05N+Jk/N5Si8jRAlGyWA==} + engines: {node: '>= 10.13.0'} + peerDependencies: + file-loader: '*' + webpack: ^4.0.0 || ^5.0.0 + peerDependenciesMeta: + file-loader: + optional: true + dependencies: + file-loader: 2.0.0(webpack@4.46.0) + loader-utils: 2.0.4 + mime-types: 2.1.35 + schema-utils: 3.3.0 + webpack: 4.46.0(webpack-cli@3.3.12) + dev: true + + /url-parse-lax@3.0.0: + resolution: {integrity: sha512-NjFKA0DidqPa5ciFcSrXnAltTtzz84ogy+NebPvfEgAck0+TNg4UJ4IN+fB7zRZfbgUf0syOo9MDxFkDSMuFaQ==} + engines: {node: '>=4'} + dependencies: + prepend-http: 2.0.0 + dev: false + + /url-parse@1.5.10: + resolution: {integrity: sha512-WypcfiRhfeUP9vvF0j6rw0J3hrWrw6iZv3+22h6iRMJ/8z1Tj6XfLP4DsUix5MhMPnXpiHDoKyoZ/bdCkwBCiQ==} + dependencies: + querystringify: 2.2.0 + requires-port: 1.0.0 + dev: true + + /url-to-options@1.0.1: + resolution: {integrity: sha512-0kQLIzG4fdk/G5NONku64rSH/x32NOA39LVQqlK8Le6lvTF6GGRJpqaQFGgU+CLwySIqBSMdwYM0sYcW9f6P4A==} + engines: {node: '>= 4'} + dev: false + + /url@0.11.3: + resolution: {integrity: sha512-6hxOLGfZASQK/cijlZnZJTq8OXAkt/3YGfQX45vvMYXpZoo8NdWZcY73K108Jf759lS1Bv/8wXnHDTSz17dSRw==} + dependencies: + punycode: 1.4.1 + qs: 6.11.2 + + /use@3.1.1: + resolution: {integrity: sha512-cwESVXlO3url9YWlFW/TA9cshCEhtu7IKJ/p5soJ/gGpj7vbvFrAY/eIioQ6Dw23KjZhYgiIo8HOs1nQ2vr/oQ==} + engines: {node: '>=0.10.0'} + + /util-deprecate@1.0.2: + resolution: {integrity: sha512-EPD5q1uXyFxJpCrLnCc1nHnq3gOa6DZBocAIiI2TaSCA7VCJ1UJDMagCzIkXNsUYfD1daK//LTEQ8xiIbrHtcw==} + + /util.promisify@1.0.0: + resolution: {integrity: sha512-i+6qA2MPhvoKLuxnJNpXAGhg7HphQOSUq2LKMZD0m15EiskXUkMvKdF4Uui0WYeCUGea+o2cw/ZuwehtfsrNkA==} + dependencies: + define-properties: 1.2.1 + object.getownpropertydescriptors: 2.1.7 + dev: true + + /util@0.10.4: + resolution: {integrity: sha512-0Pm9hTQ3se5ll1XihRic3FDIku70C+iHUdT/W926rSgHV5QgXsYbKZN8MSC3tJtSkhuROzvsQjAaFENRXr+19A==} + dependencies: + inherits: 2.0.3 + + /util@0.11.1: + resolution: {integrity: sha512-HShAsny+zS2TZfaXxD9tYj4HQGlBezXZMZuM/S5PKLLoZkShZiGk9o5CzukI1LVHZvjdvZ2Sj1aW/Ndn2NB/HQ==} + dependencies: + inherits: 2.0.3 + + /utila@0.4.0: + resolution: {integrity: sha512-Z0DbgELS9/L/75wZbro8xAnT50pBVFQZ+hUEueGDU5FN51YSCYM+jdxsfCiHjwNP/4LCDD0i/graKpeBnOXKRA==} + dev: true + + /utils-merge@1.0.1: + resolution: {integrity: sha512-pMZTvIkT1d+TFGvDOqodOclx0QWkkgi6Tdoa8gC8ffGAAqz9pzPTZWAybbsHHoED/ztMtkv/VoYTYyShUn81hA==} + engines: {node: '>= 0.4.0'} + dev: true + + /uuid@3.4.0: + resolution: {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. + hasBin: true + + /uuid@8.3.2: + resolution: {integrity: sha512-+NYs2QeMWy+GWFOEm9xnn6HCDp0l7QBD7ml8zLUmJ+93Q5NF0NocErnwkTkXVFNiX3/fpC6afS8Dhb/gz7R7eg==} + hasBin: true + dev: true + + /v8-compile-cache@2.4.0: + resolution: {integrity: sha512-ocyWc3bAHBB/guyqJQVI5o4BZkPhznPYUG2ea80Gond/BgNWpap8TOmLSeeQG7bnh2KMISxskdADG59j7zruhw==} + + /validate-npm-package-license@3.0.4: + resolution: {integrity: sha512-DpKm2Ui/xN7/HQKCtpZxoRWBhZ9Z0kqtygG8XCgNQ8ZlDnxuQmWhj566j8fN4Cu3/JmbhsDo7fcAJq4s9h27Ew==} + dependencies: + spdx-correct: 3.2.0 + spdx-expression-parse: 3.0.1 + + /vary@1.1.2: + resolution: {integrity: sha512-BNGbWLfd0eUPabhkXUVm0j8uuvREyTh5ovRa/dyow/BqAbZJyC+5fU+IzQOzmAKzYqYRAISoRhdQr3eIZ/PXqg==} + engines: {node: '>= 0.8'} + dev: true + + /verror@1.10.0: + resolution: {integrity: sha512-ZZKSmDAEFOijERBLkmYfJ+vmk3w+7hOLYDNkRCuRuMJGEmqYNCNLyBBFwWKVMhfwaEF3WOd0Zlw86U/WC/+nYw==} + engines: {'0': node >=0.6.0} + dependencies: + assert-plus: 1.0.0 + core-util-is: 1.0.2 + extsprintf: 1.3.0 + + /vlq@0.2.3: + resolution: {integrity: sha512-DRibZL6DsNhIgYQ+wNdWDL2SL3bKPlVrRiBqV5yuMm++op8W4kGFtaQfCs4KEJn0wBZcHVHJ3eoywX8983k1ow==} + dev: false + + /vm-browserify@1.1.2: + resolution: {integrity: sha512-2ham8XPWTONajOR0ohOKOHXkm3+gaBmGut3SRuu75xLd/RRaY6vqgh8NBYYk7+RW3u5AtzPQZG8F10LHkl0lAQ==} + + /walker@1.0.8: + resolution: {integrity: sha512-ts/8E8l5b7kY0vlWLewOkDXMmPdLcVV4GmOQLyxuSswIJsweeFZtAsMF7k1Nszz+TYBQrlYRmzOnr398y1JemQ==} + dependencies: + makeerror: 1.0.12 + dev: true + + /warning@4.0.3: + resolution: {integrity: sha512-rpJyN222KWIvHJ/F53XSZv0Zl/accqHR8et1kpaMTD/fLCRxtV8iX8czMzY7sVZupTI3zcUTg8eycS2kNF9l6w==} + dependencies: + loose-envify: 1.4.0 + dev: false + + /watch@0.18.0: + resolution: {integrity: sha512-oUcoHFG3UF2pBlHcMORAojsN09BfqSfWYWlR3eSSjUFR7eBEx53WT2HX/vZeVTTIVCGShcazb+t6IcBRCNXqvA==} + engines: {node: '>=0.1.95'} + hasBin: true + dependencies: + exec-sh: 0.2.2 + minimist: 1.2.8 + dev: true + + /watchpack-chokidar2@2.0.1: + resolution: {integrity: sha512-nCFfBIPKr5Sh61s4LPpy1Wtfi0HE8isJ3d2Yb5/Ppw2P2B/3eVSEBjKfN0fmHJSK14+31KwMKmcrzs2GM4P0Ww==} + requiresBuild: true + dependencies: + chokidar: 2.1.8(supports-color@6.1.0) + transitivePeerDependencies: + - supports-color + optional: true + + /watchpack@1.7.5: + resolution: {integrity: sha512-9P3MWk6SrKjHsGkLT2KHXdQ/9SNkyoJbabxnKOoJepsvJjJG8uYTR3yTPxPQvNDI3w4Nz1xnE0TLHK4RIVe/MQ==} + dependencies: + graceful-fs: 4.2.11 + neo-async: 2.6.2 + optionalDependencies: + chokidar: 3.5.3 + watchpack-chokidar2: 2.0.1 + transitivePeerDependencies: + - supports-color + + /wav-encoder@1.3.0: + resolution: {integrity: sha512-FXJdEu2qDOI+wbVYZpu21CS1vPEg5NaxNskBr4SaULpOJMrLE6xkH8dECa7PiS+ZoeyvP7GllWUAxPN3AvFSEw==} + dev: false + + /wbuf@1.7.3: + resolution: {integrity: sha512-O84QOnr0icsbFGLS0O3bI5FswxzRr8/gHwWkDlQFskhSPryQXvrTMxjxGP4+iWYoauLoBvfDpkrOauZ+0iZpDA==} + dependencies: + minimalistic-assert: 1.0.1 + dev: true + + /web-audio-test-api@0.5.2: + resolution: {integrity: sha512-RevLfVjp+wwe/dBPe361IpmNpeXXW6JVmlp8dk0YIxLwAh7evn6JpEQQalVgX4PH/jA8tpLpjD/8tFNUYTf88w==} + dev: true + + /webidl-conversions@3.0.1: + resolution: {integrity: sha512-2JAn3z8AR6rjK8Sm8orRC0h/bcl/DqL7tRPdGZ4I1CjdF+EaMLmYxBHyXuKL849eucPFhvBoxMsflfOb8kxaeQ==} + dev: true + + /webidl-conversions@4.0.2: + resolution: {integrity: sha512-YQ+BmxuTgd6UXZW3+ICGfyqRyHXVlD5GtQr5+qjiNW7bF0cqrzX500HVXPBOvgXb5YnzDd+h0zqyv61KUD7+Sg==} + dev: true + + /webpack-cli@3.3.12(webpack@4.46.0): + resolution: {integrity: sha512-NVWBaz9k839ZH/sinurM+HcDvJOTXwSjYp1ku+5XKeOC03z8v5QitnK/x+lAxGXFyhdayoIf/GOpv85z3/xPag==} + engines: {node: '>=6.11.5'} + hasBin: true + peerDependencies: + webpack: 4.x.x + dependencies: + chalk: 2.4.2 + cross-spawn: 6.0.5 + enhanced-resolve: 4.5.0 + findup-sync: 3.0.0(supports-color@6.1.0) + global-modules: 2.0.0 + import-local: 2.0.0 + interpret: 1.4.0 + loader-utils: 1.4.2 + supports-color: 6.1.0 + v8-compile-cache: 2.4.0 + webpack: 4.46.0(webpack-cli@3.3.12) + yargs: 13.3.2 + + /webpack-dev-middleware@3.7.3(webpack@4.46.0): + resolution: {integrity: sha512-djelc/zGiz9nZj/U7PTBi2ViorGJXEWo/3ltkPbDyxCXhhEXkW0ce99falaok4TPj+AsxLiXJR0EBOb0zh9fKQ==} + engines: {node: '>= 6'} + peerDependencies: + webpack: ^4.0.0 || ^5.0.0 + dependencies: + memory-fs: 0.4.1 + mime: 2.6.0 + mkdirp: 0.5.6 + range-parser: 1.2.1 + webpack: 4.46.0(webpack-cli@3.3.12) + webpack-log: 2.0.0 + dev: true + + /webpack-dev-server@3.11.2(webpack-cli@3.3.12)(webpack@4.46.0): + resolution: {integrity: sha512-A80BkuHRQfCiNtGBS1EMf2ChTUs0x+B3wGDFmOeT4rmJOHhHTCH2naNxIHhmkr0/UillP4U3yeIyv1pNp+QDLQ==} + engines: {node: '>= 6.11.5'} + hasBin: true + peerDependencies: + webpack: ^4.0.0 || ^5.0.0 + webpack-cli: '*' + peerDependenciesMeta: + webpack-cli: + optional: true + dependencies: + ansi-html: 0.0.7 + bonjour: 3.5.0 + chokidar: 2.1.8(supports-color@6.1.0) + compression: 1.7.4(supports-color@6.1.0) + connect-history-api-fallback: 1.6.0 + debug: 4.3.4(supports-color@6.1.0) + del: 4.1.1 + express: 4.18.2(supports-color@6.1.0) + html-entities: 1.4.0 + http-proxy-middleware: 0.19.1(debug@4.3.4)(supports-color@6.1.0) + import-local: 2.0.0 + internal-ip: 4.3.0 + ip: 1.1.8 + is-absolute-url: 3.0.3 + killable: 1.0.1 + loglevel: 1.8.1 + opn: 5.5.0 + p-retry: 3.0.1 + portfinder: 1.0.32(supports-color@6.1.0) + schema-utils: 1.0.0 + selfsigned: 1.10.14 + semver: 6.3.1 + serve-index: 1.9.1(supports-color@6.1.0) + sockjs: 0.3.24 + sockjs-client: 1.6.1(supports-color@6.1.0) + spdy: 4.0.2(supports-color@6.1.0) + strip-ansi: 3.0.1 + supports-color: 6.1.0 + url: 0.11.3 + webpack: 4.46.0(webpack-cli@3.3.12) + webpack-cli: 3.3.12(webpack@4.46.0) + webpack-dev-middleware: 3.7.3(webpack@4.46.0) + webpack-log: 2.0.0 + ws: 6.2.2 + yargs: 13.3.2 + transitivePeerDependencies: + - bufferutil + - utf-8-validate + dev: true + + /webpack-log@2.0.0: + resolution: {integrity: sha512-cX8G2vR/85UYG59FgkoMamwHUIkSSlV3bBMRsbxVXVUk2j6NleCKjQ/WE9eYg9WY4w25O9w8wKP4rzNZFmUcUg==} + engines: {node: '>= 6'} + dependencies: + ansi-colors: 3.2.4 + uuid: 3.4.0 + dev: true + + /webpack-sources@1.4.3: + resolution: {integrity: sha512-lgTS3Xhv1lCOKo7SA5TjKXMjpSM4sBjNV5+q2bqesbSPs5FjGmU6jjtBSkX9b4qW87vDIsCIlUPOEhbZrMdjeQ==} + dependencies: + source-list-map: 2.0.1 + source-map: 0.6.1 + + /webpack-sources@3.2.3: + resolution: {integrity: sha512-/DyMEOrDgLKKIG0fmvtz+4dUX/3Ghozwgm6iPp8KRhvn+eQf9+Q7GWxVNMk3+uCPWfdXYC4ExGBckIXdFEfH1w==} + engines: {node: '>=10.13.0'} + dev: true + + /webpack@4.46.0(webpack-cli@3.3.12): + resolution: {integrity: sha512-6jJuJjg8znb/xRItk7bkT0+Q7AHCYjjFnvKIWQPkNIOyRqoCGvkOs0ipeQzrqz4l5FtN5ZI/ukEHroeX/o1/5Q==} + engines: {node: '>=6.11.5'} + hasBin: true + peerDependencies: + webpack-cli: '*' + webpack-command: '*' + peerDependenciesMeta: + webpack-cli: + optional: true + webpack-command: + optional: 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.2 + ajv: 6.12.6 + ajv-keywords: 3.5.2(ajv@6.12.6) + chrome-trace-event: 1.0.3 + 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.4.2 + memory-fs: 0.4.1 + micromatch: 3.1.10(supports-color@6.1.0) + mkdirp: 0.5.6 + neo-async: 2.6.2 + node-libs-browser: 2.2.1 + schema-utils: 1.0.0 + tapable: 1.1.3 + terser-webpack-plugin: 1.4.5(webpack@4.46.0) + watchpack: 1.7.5 + webpack-cli: 3.3.12(webpack@4.46.0) + webpack-sources: 1.4.3 + transitivePeerDependencies: + - supports-color + + /websocket-driver@0.7.4: + resolution: {integrity: sha512-b17KeDIQVjvb0ssuSDF2cYXSg2iztliJ4B9WdsuB6J952qCPKmnVq4DyW5motImXHDC1cBT/1UezrJVsKw5zjg==} + engines: {node: '>=0.8.0'} + dependencies: + http-parser-js: 0.5.8 + safe-buffer: 5.2.1 + websocket-extensions: 0.1.4 + dev: true + + /websocket-extensions@0.1.4: + resolution: {integrity: sha512-OqedPIGOfsDlo31UNwYbCFMSaO9m9G/0faIHj5/dZFDMFqPTcx6UwqyOy3COEaEOg/9VsGIpdqn62W5KhoKSpg==} + engines: {node: '>=0.8.0'} + dev: true + + /whatwg-encoding@1.0.5: + resolution: {integrity: sha512-b5lim54JOPN9HtzvK9HFXvBma/rnfFeqsic0hSpjtDbVxR3dJKLc+KB4V6GgiGOvl7CY/KNh8rxSo9DKQrnUEw==} + dependencies: + iconv-lite: 0.4.24 + dev: true + + /whatwg-fetch@3.6.20: + resolution: {integrity: sha512-EqhiFU6daOA8kpjOWTL0olhVOF3i7OrFzSYiGsEMB8GcXS+RrzauAERX65xMeNWVqxA6HXH2m69Z9LaKKdisfg==} + dev: true + + /whatwg-url@4.8.0: + resolution: {integrity: sha512-nUvUPuenPFtPfy/X+dAYh/TfRbTBlnXTM5iIfLseJFkkQewmpG9pGR6i87E9qL+lZaJzv+99kkQWoGOtLfkZQQ==} + dependencies: + tr46: 0.0.3 + webidl-conversions: 3.0.1 + dev: true + + /which-boxed-primitive@1.0.2: + resolution: {integrity: sha512-bwZdv0AKLpplFY2KZRX6TvyuN7ojjr7lwkg6ml0roIy9YeuSr7JS372qlNW18UQYzgYK9ziGcerWqZOmEn9VNg==} + dependencies: + is-bigint: 1.0.4 + is-boolean-object: 1.1.2 + is-number-object: 1.0.7 + is-string: 1.0.7 + is-symbol: 1.0.4 + dev: true + + /which-module@2.0.1: + resolution: {integrity: sha512-iBdZ57RDvnOR9AGBhML2vFZf7h8vmBjhoaZqODJBFWHVtKkDmKuHai3cx5PgVMrX5YDNp27AofYbAwctSS+vhQ==} + + /which-typed-array@1.1.13: + resolution: {integrity: sha512-P5Nra0qjSncduVPEAr7xhoF5guty49ArDTwzJ/yNuPIbZppyRxFQsRCWrocxIY+CnMVG+qfbU2FmDKyvSGClow==} + engines: {node: '>= 0.4'} + dependencies: + available-typed-arrays: 1.0.5 + call-bind: 1.0.5 + for-each: 0.3.3 + gopd: 1.0.1 + has-tostringtag: 1.0.0 + dev: true + + /which@1.3.1: + resolution: {integrity: sha512-HxJdYWq1MTIQbJ3nw0cqssHoTNU267KlrDuGZ1WYlxDStUtKUhOaJmh112/TZmHxxUfuJqPXSOm7tDyas0OSIQ==} + hasBin: true + dependencies: + isexe: 2.0.0 + + /window-size@0.1.4: + resolution: {integrity: sha512-2thx4pB0cV3h+Bw7QmMXcEbdmOzv9t0HFplJH/Lz6yu60hXYy5RT8rUu+wlIreVxWsGN20mo+MHeCSfUpQBwPw==} + engines: {node: '>= 0.10.0'} + hasBin: true + dev: false + + /word-wrap@1.2.5: + resolution: {integrity: sha512-BN22B5eaMMI9UMtjrGd5g5eCYPpCPDUy0FJXbYsaT5zYxjFOckS53SQDE3pWkVoWpHXVb3BrYcEN4Twa55B5cA==} + engines: {node: '>=0.10.0'} + + /wordwrap@1.0.0: + resolution: {integrity: sha512-gvVzJFlPycKc5dZN4yPkP8w7Dc37BtP1yczEneOb4uq34pXZcvrtRTmWV8W+Ume+XCxKgbjM+nevkyFPMybd4Q==} + dev: true + + /worker-farm@1.7.0: + resolution: {integrity: sha512-rvw3QTZc8lAxyVrqcSGVm5yP/IJ2UcB3U0graE3LCFoZ0Yn2x4EoVSqJKdB/T5M+FLcRPjz4TDacRf3OCfNUzw==} + dependencies: + errno: 0.1.8 + + /worker-loader@1.1.1(webpack@4.46.0): + resolution: {integrity: sha512-qJZLVS/jMCBITDzPo/RuweYSIG8VJP5P67mP/71alGyTZRe1LYJFdwLjLalY3T5ifx0bMDRD3OB6P2p1escvlg==} + engines: {node: '>= 4.8 < 5.0.0 || >= 5.10'} + peerDependencies: + webpack: ^2.0.0 || ^3.0.0 || ^4.0.0 + dependencies: + loader-utils: 1.4.2 + schema-utils: 0.4.7 + webpack: 4.46.0(webpack-cli@3.3.12) + dev: false + + /worker-loader@2.0.0(webpack@4.46.0): + resolution: {integrity: sha512-tnvNp4K3KQOpfRnD20m8xltE3eWh89Ye+5oj7wXEEHKac1P4oZ6p9oTj8/8ExqoSBnk9nu5Pr4nKfQ1hn2APJw==} + engines: {node: '>= 6.9.0 || >= 8.9.0'} + peerDependencies: + webpack: ^3.0.0 || ^4.0.0-alpha.0 || ^4.0.0 + dependencies: + loader-utils: 1.4.2 + schema-utils: 0.4.7 + webpack: 4.46.0(webpack-cli@3.3.12) + dev: false + + /wrap-ansi@2.1.0: + resolution: {integrity: sha512-vAaEaDM946gbNpH5pLVNR+vX2ht6n0Bt3GXwVB1AuAqZosOvHNF3P7wDnh8KLkSqgUh0uh77le7Owgoz+Z9XBw==} + engines: {node: '>=0.10.0'} + dependencies: + string-width: 1.0.2 + strip-ansi: 3.0.1 + + /wrap-ansi@5.1.0: + resolution: {integrity: sha512-QC1/iN/2/RPVJ5jYK8BGttj5z83LmSKmvbvrXPNCLZSEb32KKVDJDl/MOt2N01qU2H/FkzEa9PKto1BqDjtd7Q==} + engines: {node: '>=6'} + dependencies: + ansi-styles: 3.2.1 + string-width: 3.1.0 + strip-ansi: 5.2.0 + + /wrappy@1.0.2: + resolution: {integrity: sha512-l4Sp/DRseor9wL6EvV2+TuQn63dMkPjZ/sp9XkghTEbV9KlPS1xUsZ3u7/IQO4wxtcFB4bgpQPRcR3QCvezPcQ==} + + /write-file-atomic@2.4.3: + resolution: {integrity: sha512-GaETH5wwsX+GcnzhPgKcKjJ6M2Cq3/iZp1WyY/X1CSqrW+jVNM9Y7D8EC2sM4ZG/V8wZlSniJnCKWPmBYAucRQ==} + dependencies: + graceful-fs: 4.2.11 + imurmurhash: 0.1.4 + signal-exit: 3.0.7 + dev: true + + /write@1.0.3: + resolution: {integrity: sha512-/lg70HAjtkUgWPVZhZcm+T4hkL8Zbtp1nFNOn3lRrxnlv50SRBv7cR7RqR+GMsd3hUXy9hWBo4CHTbFTcOYwig==} + engines: {node: '>=4'} + dependencies: + mkdirp: 0.5.6 + dev: true + + /ws@6.2.2: + resolution: {integrity: sha512-zmhltoSR8u1cnDsD43TX59mzoMZsLKqUweyYBAIvTngR3shc0W6aOZylZmq/7hqyVxPdi+5Ud2QInblgyE72fw==} + peerDependencies: + bufferutil: ^4.0.1 + utf-8-validate: ^5.0.2 + peerDependenciesMeta: + bufferutil: + optional: true + utf-8-validate: + optional: true + dependencies: + async-limiter: 1.0.1 + dev: true + + /xhr@2.5.0: + resolution: {integrity: sha512-4nlO/14t3BNUZRXIXfXe+3N6w3s1KoxcJUUURctd64BLRe67E4gRwp4PjywtDY72fXpZ1y6Ch0VZQRY/gMPzzQ==} + dependencies: + global: 4.3.2 + is-function: 1.0.2 + parse-headers: 2.0.5 + xtend: 4.0.2 + dev: false + + /xml-name-validator@2.0.1: + resolution: {integrity: sha512-jRKe/iQYMyVJpzPH+3HL97Lgu5HrCfii+qSo+TfjKHtOnvbnvdVfMYrn9Q34YV81M2e5sviJlI6Ko9y+nByzvA==} + dev: true + + /xml2js@0.4.23: + resolution: {integrity: sha512-ySPiMjM0+pLDftHgXY4By0uswI3SPKLDw/i3UXbnO8M/p28zqexCUoPmQFrYD+/1BzhGJSs2i1ERWKJAtiLrug==} + engines: {node: '>=4.0.0'} + dependencies: + sax: 1.3.0 + xmlbuilder: 11.0.1 + dev: true + + /xml@1.0.1: + resolution: {integrity: sha512-huCv9IH9Tcf95zuYCsQraZtWnJvBtLVE0QHMOs8bWyZAFZNDcYjsPq1nEx8jKA9y+Beo9v+7OBPRisQTjinQMw==} + dev: true + + /xmlbuilder@11.0.1: + resolution: {integrity: sha512-fDlsI/kFEx7gLvbecc0/ohLG50fugQp8ryHzMTuW9vSa1GJ0XYWKnhsUx7oie3G98+r56aTQIUB4kht42R3JvA==} + engines: {node: '>=4.0'} + dev: true + + /xtend@4.0.2: + resolution: {integrity: sha512-LKYU1iAXJXUgAXn9URjiu+MWhyUXHsvfp7mcuYm9dSUKK0/CjtrUwFAxD82/mCWbtLsGjFIad0wIsod4zrTAEQ==} + engines: {node: '>=0.4'} + + /y18n@3.2.2: + resolution: {integrity: sha512-uGZHXkHnhF0XeeAPgnKfPv1bgKAYyVvmNL1xlKsPYZPaIHxGti2hHqvOCQv71XMsLxu1QjergkqogUnms5D3YQ==} + + /y18n@4.0.3: + resolution: {integrity: sha512-JKhqTOwSrqNA1NY5lSztJ1GrBiUodLMmIZuLiDaMRJ+itFd+ABVE8XBjOvIWL+rSqNDC74LCSFmlb/U4UZ4hJQ==} + + /yallist@2.1.2: + resolution: {integrity: sha512-ncTzHV7NvsQZkYe1DW7cbDLm0YpzHmZF5r/iyP3ZnQtMiJ+pjzisCiMNI+Sj+xQF5pXhSHxSB3uDbsBTzY/c2A==} + dev: true + + /yallist@3.1.1: + resolution: {integrity: sha512-a4UGQaWPH59mOXUYnAG2ewncQS4i4F43Tv3JoAM+s2VDAmS9NsK8GpDMLrCHPksFT7h3K6TOoUNn2pb7RoXx4g==} + + /yallist@4.0.0: + resolution: {integrity: sha512-3wdGidZyq5PB084XLES5TpOSRA3wjXAlIWMhum2kRcv/41Sn2emQ0dycQW4uZXLejwKvg6EsvbdlVL+FYEct7A==} + dev: false + + /yargs-parser@13.1.2: + resolution: {integrity: sha512-3lbsNRf/j+A4QuSZfDRA7HRSfWrzO0YjqTJd5kjAq37Zep1CEgaYmrH9Q3GwPiB9cHyd1Y1UwggGhJGoxipbzg==} + dependencies: + camelcase: 5.3.1 + decamelize: 1.2.0 + + /yargs-parser@7.0.0: + resolution: {integrity: sha512-WhzC+xgstid9MbVUktco/bf+KJG+Uu6vMX0LN1sLJvwmbCQVxb4D8LzogobonKycNasCZLdOzTAk1SK7+K7swg==} + dependencies: + camelcase: 4.1.0 + dev: true + + /yargs@13.3.2: + resolution: {integrity: sha512-AX3Zw5iPruN5ie6xGRIDgqkT+ZhnRlZMLMHAs8tg7nRruy2Nb+i5o9bwghAogtM08q1dpr2LVoS8KSTMYpWXUw==} + dependencies: + cliui: 5.0.0 + find-up: 3.0.0 + get-caller-file: 2.0.5 + require-directory: 2.1.1 + require-main-filename: 2.0.0 + set-blocking: 2.0.0 + string-width: 3.1.0 + which-module: 2.0.1 + y18n: 4.0.3 + yargs-parser: 13.1.2 + + /yargs@3.32.0: + resolution: {integrity: sha512-ONJZiimStfZzhKamYvR/xvmgW3uEkAUFSP91y2caTEPhzF6uP2JfPiVZcq66b/YR0C3uitxSV7+T1x8p5bkmMg==} + dependencies: + camelcase: 2.1.1 + cliui: 3.2.0 + decamelize: 1.2.0 + os-locale: 1.4.0 + string-width: 1.0.2 + window-size: 0.1.4 + y18n: 3.2.2 + dev: false + + /yargs@9.0.1: + resolution: {integrity: sha512-XS0NJoM9Iz0azh1cdgfLF5VFK6BSWfrrqA0V2tIx3fV6aGrWCseVDwOkIBg746ev0hes59od5ZvQAfdET4H0pw==} + dependencies: + camelcase: 4.1.0 + cliui: 3.2.0 + decamelize: 1.2.0 + get-caller-file: 1.0.3 + os-locale: 2.1.0 + read-pkg-up: 2.0.0 + require-directory: 2.1.1 + require-main-filename: 1.0.1 + set-blocking: 2.0.0 + string-width: 2.1.1 + which-module: 2.0.1 + y18n: 3.2.2 + yargs-parser: 7.0.0 + dev: true + + /yauzl@2.10.0: + resolution: {integrity: sha512-p4a9I6X6nu6IhoGmBqAcbJy1mlC4j27vEPZX9F4L4/vZT3Lyq1VkFHw/V/PUcB9Buo+DG3iHkT0x3Qya58zc3g==} + dependencies: + buffer-crc32: 0.2.13 + fd-slicer: 1.1.0 + + /yocto-queue@0.1.0: + resolution: {integrity: sha512-rVksvsnNCdJ/ohGc6xgPwyN8eheCxsiLM8mxuE/t/mOVqJewPuO1miLpTHQiRgTKCLexL4MeAFVagts7HmNZ2Q==} + engines: {node: '>=10'} + dev: false + + github.com/FreshPenguin112/gh-pages-webpack-plugin/af8291f79f5e90f62c4f312d1fc5e4a8a2aec5b0: + resolution: {tarball: https://codeload.github.com/FreshPenguin112/gh-pages-webpack-plugin/tar.gz/af8291f79f5e90f62c4f312d1fc5e4a8a2aec5b0} + name: gh-pages-webpack-plugin + version: 1.0.2 + dependencies: + gh-pages: 1.2.0 + dev: true + + github.com/FreshPenguin112/theia-pnpm/13571e769ea006f4061f0eaf316cf3c7d214bad6: + resolution: {tarball: https://codeload.github.com/FreshPenguin112/theia-pnpm/tar.gz/13571e769ea006f4061f0eaf316cf3c7d214bad6} + name: theia + version: 2.1.2 + hasBin: true + dependencies: + chalk: 1.1.3 + inquirer: 0.8.5 + pnpm: 7.33.6 + q: 1.5.1 + yargs: 3.32.0 + dev: false + + github.com/PenguinMod/PenguinMod-Audio/67c441461c16fed75c471abb1213b7b919badb6c: + resolution: {tarball: https://codeload.github.com/PenguinMod/PenguinMod-Audio/tar.gz/67c441461c16fed75c471abb1213b7b919badb6c} + name: scratch-audio + version: 0.1.0 + dependencies: + audio-context: 1.0.1 + minilog: 3.1.0 + startaudiocontext: 1.2.1 + dev: false + + github.com/PenguinMod/PenguinMod-Blocks/898ffafdb69df711e56e3362686badd3e4553bfb: + resolution: {tarball: https://codeload.github.com/PenguinMod/PenguinMod-Blocks/tar.gz/898ffafdb69df711e56e3362686badd3e4553bfb} + name: scratch-blocks + version: 0.1.0 + dev: false + + github.com/PenguinMod/PenguinMod-MarkDown/af23e940551a5ea30f8c6aa118c84a791ecf0f02: + resolution: {tarball: https://codeload.github.com/PenguinMod/PenguinMod-MarkDown/tar.gz/af23e940551a5ea30f8c6aa118c84a791ecf0f02} + name: md + version: 0.6.0 + dependencies: + slugo: 0.2.3 + dev: false + + github.com/PenguinMod/PenguinMod-Paint/e4bd0050300d2597f5037e75ea3697d970e7baf7(react-dom@16.14.0)(react-intl-redux@0.7.0)(react-intl@2.9.0)(react-popover@0.5.10)(react-redux@5.0.7)(react-responsive@4.1.0)(react-style-proptype@3.2.2)(react-tooltip@3.8.0)(react@16.14.0)(redux@3.7.2)(scratch-render-fonts@1.0.0-prerelease.20210401210003): + resolution: {tarball: https://codeload.github.com/PenguinMod/PenguinMod-Paint/tar.gz/e4bd0050300d2597f5037e75ea3697d970e7baf7} + id: github.com/PenguinMod/PenguinMod-Paint/e4bd0050300d2597f5037e75ea3697d970e7baf7 + name: scratch-paint + version: 0.2.0 + peerDependencies: + react: ^16 + react-dom: ^16 + react-intl: ^2 + react-intl-redux: ^0.7 + react-popover: ^0.5 + react-redux: ^5 + react-responsive: ^4 + react-style-proptype: ^3 + react-tooltip: ^3 + redux: ^3 + scratch-render-fonts: ^1.0.0-prerelease.20210401210003 + dependencies: + '@scratch/paper': 0.11.20200728195508 + classnames: 2.2.5 + keymirror: 0.1.1 + lodash.bindall: 4.4.0 + lodash.omit: 4.5.0 + minilog: 3.1.0 + parse-color: 1.0.0 + prop-types: 15.8.1 + react: 16.14.0 + react-dom: 16.14.0(react@16.14.0) + react-intl: 2.9.0(prop-types@15.8.1)(react@16.14.0) + react-intl-redux: 0.7.0(react-intl@2.9.0)(react-redux@5.0.7) + react-popover: 0.5.10 + react-redux: 5.0.7(react@16.14.0)(redux@3.7.2) + react-responsive: 4.1.0(react@16.14.0) + react-style-proptype: 3.2.2 + react-tooltip: 3.8.0(react-dom@16.14.0)(react@16.14.0) + redux: 3.7.2 + scratch-render-fonts: 1.0.0-prerelease.20210401210003 + dev: false + + github.com/PenguinMod/PenguinMod-Parser/c56c7aad93f71aa5d1a126bae1d5e663c161e8eb: + resolution: {tarball: https://codeload.github.com/PenguinMod/PenguinMod-Parser/tar.gz/c56c7aad93f71aa5d1a126bae1d5e663c161e8eb} + name: scratch-parser + version: 0.0.0-development + engines: {node: '>=8.0'} + dependencies: + '@turbowarp/json': 0.1.2 + ajv: 6.3.0 + jszip: 3.1.5 + pify: 4.0.1 + dev: false + + github.com/PenguinMod/PenguinMod-Render/f73221d7efde3d39077470ecb5431bf9a6a33a53(scratch-render-fonts@1.0.0-prerelease.20210401210003): + resolution: {tarball: https://codeload.github.com/PenguinMod/PenguinMod-Render/tar.gz/f73221d7efde3d39077470ecb5431bf9a6a33a53} + id: github.com/PenguinMod/PenguinMod-Render/f73221d7efde3d39077470ecb5431bf9a6a33a53 + name: scratch-render + version: 0.1.0 + peerDependencies: + scratch-render-fonts: ^1.0.0-prerelease + dependencies: + grapheme-breaker: 0.3.2 + hull.js: 0.2.10 + ify-loader: 1.0.4 + linebreak: 0.3.0 + minilog: 3.1.0 + raw-loader: 0.5.1 + scratch-render-fonts: 1.0.0-prerelease.20210401210003 + scratch-svg-renderer: github.com/TurboWarp/scratch-svg-renderer/62fe825405a451ab981c33d601d5c6c3581ced69(scratch-render-fonts@1.0.0-prerelease.20210401210003) + twgl.js: 4.4.0 + dev: false + + github.com/PenguinMod/PenguinMod-Storage/96f45f701dc11648bc88fcc5307193d591afea84(webpack@4.46.0): + resolution: {tarball: https://codeload.github.com/PenguinMod/PenguinMod-Storage/tar.gz/96f45f701dc11648bc88fcc5307193d591afea84} + id: github.com/PenguinMod/PenguinMod-Storage/96f45f701dc11648bc88fcc5307193d591afea84 + name: scratch-storage + version: 0.0.0-development + dependencies: + arraybuffer-loader: 1.0.8 + base64-js: 1.3.0 + fastestsmallesttextencoderdecoder: 1.0.22 + js-md5: 0.7.3 + minilog: 3.1.0 + worker-loader: 2.0.0(webpack@4.46.0) + transitivePeerDependencies: + - webpack + dev: false + + github.com/PenguinMod/PenguinMod-Vm/e4dc0bbbdda4b5546beadd482cd3cbef8c7525c0(@turbowarp/scratch-svg-renderer@1.0.0)(webpack@4.46.0): + resolution: {tarball: https://codeload.github.com/PenguinMod/PenguinMod-Vm/tar.gz/e4dc0bbbdda4b5546beadd482cd3cbef8c7525c0} + id: github.com/PenguinMod/PenguinMod-Vm/e4dc0bbbdda4b5546beadd482cd3cbef8c7525c0 + name: scratch-vm + version: 0.2.0 + peerDependencies: + scratch-svg-renderer: ^0.2.0-prerelease + dependencies: + '@turbowarp/json': 0.1.2 + '@vernier/godirect': 1.5.0 + arraybuffer-loader: 1.0.8 + atob: 2.1.2 + btoa: 1.2.1 + cannon-es: 0.20.0 + canvas-toBlob: 1.0.0 + decode-html: 2.0.0 + diff-match-patch: 1.0.4 + format-message: 6.2.1 + htmlparser2: 3.10.1 + immutable: 3.8.2 + jszip: 3.10.1 + lz-string: 1.5.0 + mathjs: 11.12.0 + mersenne-twister: 1.1.0 + minilog: 3.1.0 + pathfinding: 0.4.18 + scratch-parser: github.com/PenguinMod/PenguinMod-Parser/c56c7aad93f71aa5d1a126bae1d5e663c161e8eb + scratch-sb1-converter: 0.2.7 + scratch-svg-renderer: github.com/TurboWarp/scratch-svg-renderer/62fe825405a451ab981c33d601d5c6c3581ced69(scratch-render-fonts@1.0.0-prerelease.20210401210003) + scratch-translate-extension-languages: 0.0.20191118205314 + simplex-noise: 4.0.1 + text-encoding: 0.7.0 + three: 0.153.0 + three-mesh-bvh: 0.6.0(three@0.153.0) + tone: 14.7.77 + worker-loader: 1.1.1(webpack@4.46.0) + transitivePeerDependencies: + - webpack + dev: false + + github.com/TurboWarp/scratch-svg-renderer/62fe825405a451ab981c33d601d5c6c3581ced69(scratch-render-fonts@1.0.0-prerelease.20210401210003): + resolution: {tarball: https://codeload.github.com/TurboWarp/scratch-svg-renderer/tar.gz/62fe825405a451ab981c33d601d5c6c3581ced69} + id: github.com/TurboWarp/scratch-svg-renderer/62fe825405a451ab981c33d601d5c6c3581ced69 + name: '@turbowarp/scratch-svg-renderer' + version: 1.0.0 + peerDependencies: + scratch-render-fonts: ^1.0.0-prerelease + dependencies: + base64-js: 1.2.1 + base64-loader: 1.0.0 + css-tree: 1.1.3 + dompurify: 2.2.7 + fastestsmallesttextencoderdecoder: 1.0.22 + minilog: 3.1.0 + scratch-render-fonts: 1.0.0-prerelease.20210401210003 + transformation-matrix: 1.15.0 + dev: false diff --git a/prune-gh-pages.sh b/prune-gh-pages.sh new file mode 100644 index 0000000000000000000000000000000000000000..3de6c40e8aa0274fc85d87234af24125253e281a --- /dev/null +++ b/prune-gh-pages.sh @@ -0,0 +1,64 @@ +#!/bin/bash +# gh-pages cleanup script: Switches to gh-pages branch, and removes all +# directories that aren't listed as remote branches + +function deslash () { + # Recursively build a string of a directory's parents. E.g., + # deslashed "feature/test/branch" returns feature/test feature + deslashed=$(dirname $1) + if [[ $deslashed =~ .*/.* ]] + then + echo $deslashed $(deslash $deslashed) + else + echo $deslashed + fi +} + +repository=origin + +if [[ $1 != "" ]] +then + repository=$1 +fi + +# Cache current branch +current=$(git rev-parse --abbrev-ref HEAD) + +# Checkout most recent gh-pages +git fetch --force $repository gh-pages:gh-pages +git checkout gh-pages +git clean -fdx + +# Make an array of directories to not delete, from the list of remote branches +branches=$(git ls-remote --refs --quiet $repository | awk '{print $2}' | sed -e 's/refs\/heads\///') + +# Add parent directories of branches to the exclusion list (e.g. greenkeeper/) +for branch in $branches; do + if [[ $branch =~ .*/.* ]]; then + branches+=" $(deslash $branch)" + fi +done + +# Dedupe all the greenkeepers (or other duplicate parent directories) +branches=$(echo "${branches[@]}" | tr ' ' '\n' | sort -u | tr '\n' ' ') + +# Remove all directories that don't have corresponding branches +# It would be nice if we could exclude everything in .gitignore, but we're +# not on the branch with the .gitignore anymore... so we can't. +find . -type d \ + \( \ + -path ./.git -o \ + -path ./node_modules \ + $(printf " -o -path ./%s" $branches) \ + \) -prune \ + -o -mindepth 1 -type d \ + -exec rm -rfv {} \; + +# Push +git add -u +git commit -m "Remove stale directories" +git push $repository gh-pages + +# Return to where we were +git checkout -f $current +exit diff --git a/renovate.json5 b/renovate.json5 new file mode 100644 index 0000000000000000000000000000000000000000..5615b310dbab76f23ee84ce5281503ac818cfc77 --- /dev/null +++ b/renovate.json5 @@ -0,0 +1,7 @@ +{ + "$schema": "https://docs.renovatebot.com/renovate-schema.json", + + "extends": [ + "github>LLK/scratch-renovate-config:conservative" + ] +} diff --git a/src/.eslintrc.js b/src/.eslintrc.js new file mode 100644 index 0000000000000000000000000000000000000000..c611a8f7b4011eea705267a60a8114682b04f30b --- /dev/null +++ b/src/.eslintrc.js @@ -0,0 +1,35 @@ +const path = require('path'); +module.exports = { + root: true, + extends: ['scratch', 'scratch/es6', 'scratch/react', 'plugin:import/errors'], + env: { + browser: true + }, + globals: { + process: true + }, + rules: { + 'import/no-mutable-exports': 'error', + 'import/no-commonjs': 'error', + 'import/no-amd': 'error', + 'import/no-nodejs-modules': 'error', + 'react/jsx-no-literals': 'error', + 'no-confusing-arrow': ['error', { + 'allowParens': true + }], + 'operator-linebreak': 'off', + 'no-console': 'off', + 'space-before-function-paren': 'off', + 'no-lonely-if': 'off' + }, + settings: { + react: { + version: '16.2' // Prevent 16.3 lifecycle method errors + }, + 'import/resolver': { + webpack: { + config: path.resolve(__dirname, '../webpack.config.js') + } + } + } +}; diff --git a/src/.gitignore b/src/.gitignore new file mode 100644 index 0000000000000000000000000000000000000000..7466331438121319122ad68a411e9fcfe9b297b3 --- /dev/null +++ b/src/.gitignore @@ -0,0 +1,3 @@ +!dist/ +!build/ +#hi diff --git a/src/addons/.gitignore b/src/addons/.gitignore new file mode 100644 index 0000000000000000000000000000000000000000..ff8ed621180604b0adc58a23133bd8de22478d58 --- /dev/null +++ b/src/addons/.gitignore @@ -0,0 +1 @@ +ScratchAddons diff --git a/src/addons/README.md b/src/addons/README.md new file mode 100644 index 0000000000000000000000000000000000000000..d684279b516ece5f9bdb6b222c63de88328d15eb --- /dev/null +++ b/src/addons/README.md @@ -0,0 +1,18 @@ +# Addons + +Addons and translations are from the [Scratch Addons browser extension](https://scratchaddons.com/). Feature requests should be sent [upstream](https://github.com/ScratchAddons/ScratchAddons/issues), but bug reports should be opened here first incase it's a bug caused by PenguinMod. + +We apply some patches on top of the original source files. These patches are maintained in https://github.com/TurboWarp/addons. + +entry.js exports a function that begins running addons. + +pull.js is a magical script that automatically pulls code from GitHub, parses it with regex, applies some more automated patches, and copies everything to the proper folders. + +Directory structure: + + - addons - the addons (managed by pull.js) + - addons-l10n - addon translations used at runtime (managed by pull.js) + - addons-l10n-settings - addon translations used by the settings page (managed by pull.js) + - libraries - libraries used by addons (managed by pull.js) + - generated - additional generated files (managed by pull.js) + - settings - the settings page and its translations diff --git a/src/addons/addon-precedence.js b/src/addons/addon-precedence.js new file mode 100644 index 0000000000000000000000000000000000000000..9d29e64a3909e248b98a7b4c0cdcd7325d869951 --- /dev/null +++ b/src/addons/addon-precedence.js @@ -0,0 +1,16 @@ +// This list is a subset of `addons` and defines the order by which addon CSS should +// applied in. Items later in this list are given higher precedence. Addons not listed +// here are implied to have the lowest possible precedence. +const addonPrecedence = [ + 'columns', + 'editor-stage-left', + 'editor-theme3' +]; + +/** + * @param {string} addonId The addon ID + * @returns {number} An integer >= 0 + */ +const getPrecedence = addonId => addonPrecedence.indexOf(addonId) + 1; + +export default getPrecedence; diff --git a/src/addons/addons-l10n-settings/de.json b/src/addons/addons-l10n-settings/de.json new file mode 100644 index 0000000000000000000000000000000000000000..d24bb5f488d6f3cc44a52cd2f11e291a12e5164d --- /dev/null +++ b/src/addons/addons-l10n-settings/de.json @@ -0,0 +1,346 @@ +{ + "cat-blocks/@description": "Fügt die Katzenstartblöcke vom Aprilscherz 2020 wieder zum Editor hinzu.", + "cat-blocks/@info-watch": "Die \"Mauscursor ansehen\"-Option könnte die Leistung beeinträchtigen, wenn der Editor geöffnet ist.", + "cat-blocks/@name": "Katzenblöcke", + "cat-blocks/@settings-name-watch": "Mauscursor ansehen", + "editor-devtools/@description": "Fügt neue Menüoptionen zum Editor hinzu: Blöcke kopieren/einfügen, besseres Aufräumen und mehr!", + "editor-devtools/@name": "Entwicklertools", + "editor-devtools/@settings-name-enableCleanUpPlus": "Verbessere \"Blöcke aufräumen\"", + "editor-devtools/@settings-name-enablePasteBlocksAtMouse": "Blöcke beim Mauscursor einfügen", + "find-bar/@description": "Fügt eine Leiste neben dem Klänge-Tab im Editor hinzu, mit der du Skripte, Kostüme und Klänge durchsuchen kannst. Verwende Strg+Links und Strg+Rechts im Codebereich, um zur vorher bzw. nachher besuchten Position nach Verwendung der Finden-Leiste zu navigieren.", + "find-bar/@info-developer-tools": "Dieses Addon gehörte früher zum \"Entwicklertools\"-Addon, aber es wurde hierher verschoben.", + "find-bar/@name": "Finden-Leiste im Editor", + "middle-click-popup/@description": "Drücke Strg+Leertaste, Umschalt+Leertaste oder klicke mit der mittleren Maustaste auf den Codebereich, um ein schwebendes Eingabefeld hervorzubringen, in dem du den Namen eines Blocks (oder Teile davon) eingeben und in den Codebereich ziehen kannst. Halte die Umschalttaste während des Ziehens gedrückt, um das Popup beim Hinzufügen von mehreren Blöcken geöffnet zu halten.", + "middle-click-popup/@info-developer-tools": "Dieses Addon gehörte früher zum \"Entwicklertools\"-Addon, aber es wurde hierher verschoben.", + "middle-click-popup/@name": "Blöcke mit Namen einfügen", + "jump-to-def/@description": "Ermöglicht das Springen zur Definition eines benutzerdefinierten Blocks durch Klicken mit der mittleren oder rechten Maustaste mit gedrückter Umschalttaste.", + "jump-to-def/@info-developer-tools": "Dieses Addon gehörte früher zum \"Entwicklertools\"-Addon, aber es wurde hierher verschoben.", + "jump-to-def/@name": "Zu Blockdefinition springen", + "editor-searchable-dropdowns/@description": "Ermöglicht es dir, Block-Dropdowns zu durchsuchen.", + "editor-searchable-dropdowns/@name": "Durchsuchbare Dropdown-Menüs", + "data-category-tweaks-v2/@description": "Bietet Optimierungen für die Kategorie Daten (\"Variablen\") im Editor.", + "data-category-tweaks-v2/@name": "Optimierungen für die Datenkategorie", + "data-category-tweaks-v2/@settings-name-moveReportersDown": "Datenblöcke über die Variablenliste bewegen", + "data-category-tweaks-v2/@settings-name-separateListCategory": "Separate Listen-Kategorie", + "data-category-tweaks-v2/@settings-name-separateLocalVariables": "Separate Kategorie für Variablen Nur für diese Figur", + "block-palette-icons/@description": "Fügt Icons innerhalb der Farbigen Kreise, die die Blockkategorien unterscheiden, hinzu.", + "block-palette-icons/@name": "Kategorienicons in Blockpalette", + "hide-flyout/@description": "Blendet die Blockpalette automatisch aus, wenn sich die Maus nicht darüber befindet. Klicke auf das Schlossymbol, um es temporär zu fixieren. Alternativ kannst du den \"Kategorien klicken\"-Modus verwenden.", + "hide-flyout/@info-hoverExplanation": "Der \"Palettenbereich-Hover\"-Modus erweitert nur den angezeigten Bereich. Wenn du Blöcke dort hinziehen willst, ohne dass sie gelöscht werden, verwende einen der anderen Modi.", + "hide-flyout/@name": "Automatisches Ausblenden für Blockpalette", + "hide-flyout/@settings-name-speed": "Animationsgeschwindigkeit", + "hide-flyout/@settings-name-toggle": "Festlegen...", + "hide-flyout/@settings-select-speed-default": "Standard", + "hide-flyout/@settings-select-speed-long": "Langsam", + "hide-flyout/@settings-select-speed-none": "Sofort", + "hide-flyout/@settings-select-speed-short": "Schnell", + "hide-flyout/@settings-select-toggle-category": "Kategorien klicken", + "hide-flyout/@settings-select-toggle-cathover": "Kategorien hovern", + "hide-flyout/@settings-select-toggle-hover": "Hover auf Palettenbereich", + "hide-flyout/@update": "Dieses Addon wurde überarbeitet und viele Fehler wurden behoben.", + "mediarecorder/@description": "Fügt einen \"Aufnehmen\"-Knopf zur Menüleiste im Editor hinzu, mit dem du die Bühne des Projekts aufnehmen kannst.", + "mediarecorder/@name": "Projektvideorekorder", + "drag-drop/@description": "Lässt dich BIlder und Klänge vom Dateimanager zur Figuren-, Kostüm- und Klangliste ziehen. Du kannst auch Textdateien in Listen oder \"frage und warte\"-Felder ziehen.", + "drag-drop/@name": "Drag and Drop-Unterstützung für Dateien", + "drag-drop/@settings-name-use-hd-upload": "HD-Upload verwenden", + "debugger/@settings-name-log_broadcasts": "Nachrichten loggen", + "debugger/@settings-name-log_clear_greenflag": "Logs beim Klicken auf die grüne Flagge löschen", + "debugger/@settings-name-log_clone_create": "Klon-Erzeugungen loggen", + "debugger/@settings-name-log_failed_clone_creation": "Überschreitung des Klonlimits loggen", + "debugger/@settings-name-log_greenflag": "Klicks auf dei grüne Flagge loggen", + "debugger/@update": "Neue \"Threads\"- und \"Leistung\"-Tabs im Debugger-Fenster.", + "pause/@description": "Fügt eine Pausetaste neben der grünen Flagge hinzu.", + "pause/@name": "Pausetaste", + "mute-project/@description": "Strg+Klicke auf die grüne Flagge, um das Projekt stummzuschalten bzw. die Stummschaltung aufzuheben.", + "mute-project/@info-macOS": "Verwende auf macOS statt der Strg-Taste die Cmd-Taste.", + "mute-project/@name": "Projektplayer stummschalten-Knopf", + "vol-slider/@description": "Fügt einen Lautstärkeregler neben der grünen Flagge hinzu.", + "vol-slider/@name": "Lautstärkeregler", + "vol-slider/@settings-name-defVol": "Standard-Lautstärke", + "clones/@description": "Fügt einen Zähler zum Editor hinzu, der die Anzahl aller Klone anzeigt.", + "clones/@name": "Klonzähler", + "clones/@settings-name-showicononly": "Nur Symbol anzeigen", + "mouse-pos/@description": "Zeigt die x/y-Position des Mauszeigers über der Bühne im Editor an.", + "mouse-pos/@name": "Mauszeigerposition", + "color-picker/@description": "Fügt Hexadezimalcode-Eingaben zum Farbwähler hinzu.", + "color-picker/@name": "Hexadezimal-Farbwähler", + "remove-sprite-confirm/@description": "Fragt, ob du sicher bist, wenn du eine Figur in einem Projekt löschst.", + "remove-sprite-confirm/@name": "Löschen von Figuren bestätigen", + "block-count/@description": "Zeigt die volle Anzahl von Blöcken in der Menüleiste des Projekteditors an. Früher Teil von \"Figuren- und Skriptanzahl\".", + "block-count/@name": "Blockanzahl", + "onion-skinning/@description": "Zeigt ein transparentes Bild des vorherigen oder nächsten Kostüms während dem Bearbeiten eines Kostüms. Du kannst es mit Knöpfen neben den Zoom-Knöpfen im Kostümeditor steuern.", + "onion-skinning/@name": "Onion Skinning", + "onion-skinning/@settings-name-afterTint": "Färbung für nächstes Kostüm", + "onion-skinning/@settings-name-beforeTint": "Färbung für vorheriges Kostüm", + "onion-skinning/@settings-name-default": "Standardmäßig einschalten", + "onion-skinning/@settings-name-layering": "Standardschichtung", + "onion-skinning/@settings-name-mode": "Standardmodus", + "onion-skinning/@settings-name-next": "Standard nächste Kostüme", + "onion-skinning/@settings-name-opacity": "Transparenz (%)", + "onion-skinning/@settings-name-opacityStep": "Transparenz-Abstufung (%)", + "onion-skinning/@settings-name-previous": "Standard vorherige Kostüme", + "onion-skinning/@settings-select-layering-behind": "Hinten", + "onion-skinning/@settings-select-layering-front": "Vorne", + "onion-skinning/@settings-select-mode-merge": "Bilder verbinden", + "onion-skinning/@settings-select-mode-tint": "Farbüberlagerung", + "paint-snap/@description": "Rastet Objekte im Kostümeditor an Kasten und Vektorpunkten ein.", + "paint-snap/@name": "Einrasten im Kostümeditor", + "paint-snap/@settings-name-boxCenter": "Von Auswahlmitte einrasten", + "paint-snap/@settings-name-boxCorners": "Von Auswahlecken einrasten", + "paint-snap/@settings-name-boxEdgeMids": "Von Mittelpunkten von Auswahlrand einrasten", + "paint-snap/@settings-name-enable-default": "Standardmäßig aktivieren", + "paint-snap/@settings-name-guide-color": "Farbe der Einrasthilfe", + "paint-snap/@settings-name-objectCenters": "An Objektmitte einrasten", + "paint-snap/@settings-name-objectCorners": "An Objektecken einrasten", + "paint-snap/@settings-name-objectEdges": "An Objektrand einrasten", + "paint-snap/@settings-name-objectMidlines": "An Objektmittellinien einrasten", + "paint-snap/@settings-name-pageAxes": "An X- und Y- Achsen der Seite einrasten", + "paint-snap/@settings-name-pageCenter": "An Seitenmitte einrasten", + "paint-snap/@settings-name-pageCorners": "An Seitenecken einrasten", + "paint-snap/@settings-name-pageEdges": "An Seitenrand einrasten", + "paint-snap/@settings-name-threshold": "Einrasteabstand", + "default-costume-editor-color/@description": "Ändert die standardmäßige Farbe und Randbreite im Kostümeditor.", + "default-costume-editor-color/@name": "Benutzerdefinierte Standardfarbe im Kostümeditor", + "default-costume-editor-color/@settings-name-fill": "Standardmäßige Füllfarbe", + "default-costume-editor-color/@settings-name-persistence": "Beim Wechseln zwischen Werkzeugen vorherige Farbe beibehalten, anstatt sie zurückzusetzen", + "default-costume-editor-color/@settings-name-stroke": "Standardmäßige Randfarbe", + "default-costume-editor-color/@settings-name-strokeSize": "Standardmäßige Randbreite", + "bitmap-copy/@description": "Ermöglicht es dir, Raster-Bilder aus dem Maleditor in die Zwischenablage des Systems zu kopieren, sodass sie auf anderen Seiten oder Programmen eingefügt werden können.", + "bitmap-copy/@info-norightclick": "\"Rechtsklick → kopieren\" ist nicht unterstützt. Du musst Strg+C drücken, während ein Bitmap Bild ausgewählt ist.", + "bitmap-copy/@name": "Kopieren von Raster-Bildern", + "2d-color-picker/@description": "Ersetzt die Schattierungs- und Helligkeitsschieberegler im Kostümeditor durch einen 2D-Farbenwähler. Halte die Umschalttaste während dem Ziehen des Mauszeigers gedrückt, um die Werte auf einer einzigen Achse zu ändern.", + "2d-color-picker/@name": "2D-Farbenwähler", + "better-img-uploads/@description": "Fügt einen neuen Knopf über dem \"Kostüm hochladen\"-Knopf, der hochgeladene Raster-Bilder automatisch in SVG (Vektor) umwandelt, um die Qualität nicht zu verlieren.", + "better-img-uploads/@info-notSuitableEdit": "Verwende den HD Hochladen-Knopf lieber nicht, wenn du planst, das Bild nach dem Hochladen zu bearbeiten.", + "better-img-uploads/@name": "Bilder mit hoher Auflösung hochladen", + "better-img-uploads/@settings-name-fitting": "Bildgröße", + "better-img-uploads/@settings-select-fitting-fill": "Durch Vergrößern an Bühne anpassen", + "better-img-uploads/@settings-select-fitting-fit": "Durch Verkleinern an Bühne anpassen", + "better-img-uploads/@settings-select-fitting-full": "Originalgröße", + "pick-colors-from-stage/@description": "Ermöglicht es dem Pipettenwerkzeug des Kostümeditors, auch Farben von der Bühne zu wählen.", + "pick-colors-from-stage/@name": "Farben von der Bühne im Kostümeditor auswählen", + "custom-block-shape/@description": "Ändere die Blockhöhe, den Eckenradius und die Höhe der Laschen von Scratch-Blöcken.", + "custom-block-shape/@info-paddingWarning": "Die Änderung der Blockhöhe ist nur für dich sichtbar, deshalb könnten sich deine Skripte, wenn andere Nutzer deine Projekte ansehen, überlappen.", + "custom-block-shape/@name": "Anpassbare Blockform", + "custom-block-shape/@preset-description-default2": "Scratch 2.0-ähnliche Blöcke", + "custom-block-shape/@preset-description-default3": "Die normale Ansicht von Scratch 3.0-Blöcken", + "custom-block-shape/@preset-description-flat2": "Scratch 2.0-Blöcke ohne Laschen und Ecken", + "custom-block-shape/@preset-description-flat3": "Scratch 3.0-Blöcke ohne Laschen und Ecken", + "custom-block-shape/@preset-name-default2": "2.0-Blöcke", + "custom-block-shape/@preset-name-default3": "3.0-Blöcke", + "custom-block-shape/@preset-name-flat2": "Flache 2.0", + "custom-block-shape/@preset-name-flat3": "Flache 3.0", + "custom-block-shape/@settings-name-cornerSize": "Eckengröße (0-300%)", + "custom-block-shape/@settings-name-notchSize": "Laschenhöhe (0-150%)", + "custom-block-shape/@settings-name-paddingSize": "Blockhöhe (50-200%)", + "zebra-striping/@description": "Macht, dass Blöcke der selben Kategorie zwischen helleren und dünkleren Schattierungen abwechseln, wenn sie ineinander verschachtelt sind. Auch als Zebrastreifen bekannt.", + "zebra-striping/@name": "Abwechselnde Farben für verschachtelte Blöcke", + "zebra-striping/@settings-name-intensity": "Stärke (0-100%)", + "zebra-striping/@settings-name-shade": "Schattierung", + "zebra-striping/@settings-select-shade-darker": "Dünkler", + "zebra-striping/@settings-select-shade-lighter": "Heller", + "editor-theme3/@description": "Bearbeite die Farben der Blöcke für jede Kategorie im Editor.", + "editor-theme3/@name": "Anpassbare Blockfarben", + "editor-theme3/@preset-description-black": "Macht Blockhintergründe schwarz", + "editor-theme3/@preset-description-dark": "Dunkle Versionen der Standardfarben", + "editor-theme3/@preset-description-original": "Die originalen Blockfarben von Scratch 2.0", + "editor-theme3/@preset-description-tweaks": "Ereignisse, Steuerung, und Benutzerdefinierte Blöcke mit 2.0-inspirierten Farben", + "editor-theme3/@preset-name-black": "Schwarz", + "editor-theme3/@preset-name-dark": "Dunkel", + "editor-theme3/@preset-name-original": "2.0-Farben", + "editor-theme3/@preset-name-tweaks": "3.0-Optimierungen", + "editor-theme3/@settings-name-Pen-color": "Erweiterungen", + "editor-theme3/@settings-name-comment-color": "Kommentare", + "editor-theme3/@settings-name-control-color": "Steuerung", + "editor-theme3/@settings-name-custom-color": "Benutzerdefiniert", + "editor-theme3/@settings-name-data-color": "Variablen", + "editor-theme3/@settings-name-data-lists-color": "Listen", + "editor-theme3/@settings-name-events-color": "Ereignisse", + "editor-theme3/@settings-name-input-color": "Eingabefelder in Blöcken", + "editor-theme3/@settings-name-looks-color": "Aussehen", + "editor-theme3/@settings-name-motion-color": "Bewegung", + "editor-theme3/@settings-name-operators-color": "Operatoren", + "editor-theme3/@settings-name-sensing-color": "Fühlen", + "editor-theme3/@settings-name-sounds-color": "Klänge", + "editor-theme3/@settings-name-text": "Textfarbe", + "editor-theme3/@settings-select-text-black": "Schwarz", + "editor-theme3/@settings-select-text-colorOnBlack": "Farbig auf schwarzem Hintergrund", + "editor-theme3/@settings-select-text-colorOnWhite": "Farbig auf weißem Hintergrund", + "editor-theme3/@settings-select-text-white": "Weiß", + "editor-theme3/@update": "Die \"Dunkle Kommentare\"-Einstellung von \"Dunkler Modus und anpassbare Farben im Editor\" wurde hierher verschoben und ist jetzt anpassbar.", + "custom-block-text/@description": "Ändert die Dicke von Text auf Blöcken und fügt einen Textschatten hinzu.", + "custom-block-text/@name": "Benutzerdefinierter Stil von Text auf Blöcken", + "custom-block-text/@settings-name-bold": "Fetter Text", + "custom-block-text/@settings-name-shadow": "Schatten unter Text", + "editor-colored-context-menus/@description": "Macht die Kontextmenüs beim Rechtsklicken auf Blöcken farbig.", + "editor-colored-context-menus/@name": "Farbige Kontextmenüs", + "editor-stage-left/@description": "Verschiebt die Bühne auf die linke Seite des Editors, wie in Scratch 2.0.", + "editor-stage-left/@info-reverseOrder": "Um die Position der Schaltflächen über der Bühne zu verändern, verwende das \"Verkehrte Anordnung von Playersteuerelementen\"-Addon.", + "editor-stage-left/@name": "Bühne links anzeigen", + "editor-buttons-reverse-order/@description": "Verschiebt die grüne Flagge und den Stopp-Knopf auf die rechte und den Vollbild-Knopf auf die linke Seite, wie in Scratch 2.0.", + "editor-buttons-reverse-order/@name": "Verkehrte Anordnung von Playersteuerelementen", + "variable-manager/@description": "Fügt einen Tab neben \"Klänge\" im Editor hinzu, um Variablen und Listen einfach zu aktualisieren.", + "variable-manager/@name": "Variablenmanager", + "variable-manager/@update": "Listenelemente können jetzt ohne Gedrückthalten der Umschlttaste eingefügt werden.", + "search-sprites/@description": "Fügt ein Suchfeld zur Figurenleiste hinzu.", + "search-sprites/@name": "Figuren nach Namen suchen", + "sprite-properties/@description": "Versteckt die Eigenschaftenleiste von Figuren, wie in Scratch 2.0. Benutze die Info-Schaltfläche auf der aktuell ausgewählten FIgur oder doppelklicke auf eine Figur, um die Leiste anzuzeigen oder zu verstecken.", + "sprite-properties/@name": "Figureneigenschaften ausblenden", + "sprite-properties/@settings-name-autoCollapse": "Automatisch ausblenden, wenn die Maus den Bereich verlässt", + "sprite-properties/@settings-name-hideByDefault": "Leiste standardmäßig ausblenden", + "sprite-properties/@settings-name-transitionDuration": "Animationsgeschwindigkeit", + "sprite-properties/@settings-select-transitionDuration-default": "Standard", + "sprite-properties/@settings-select-transitionDuration-long": "Langsam", + "sprite-properties/@settings-select-transitionDuration-none": "Sofort", + "sprite-properties/@settings-select-transitionDuration-short": "Schnell", + "gamepad/@description": "Interagiere mit einem USB- oder Bluetoothcontroller/Gamepad mit Projekten.", + "gamepad/@name": "Gamepad-Unterstützung", + "gamepad/@settings-name-hide": "Einstellungenknopf ausblenden, wenn keine Controller erkannt wurden", + "editor-sounds/@description": "Soundeffekte beim Verbinden und Löschen von Blöcken.", + "editor-sounds/@name": "Soundeffekte im Editor", + "folders/@description": "Fügt Ordner zur Figurenliste hinzu, sowie zur Kostüm- und Klangliste. Um einen Ordner zu erstellen, klicke mit der rechten Maustaste auf eine Figur und wähle \"neuer Ordner\". Klicke mit der rechten Maustaste eine Figur an, um sie in einen Ordner zu verschieben, oder ziehe sie in einen offenen Ordner. Dieses Feature funktioniert durch Hinzufügen von \"[Orndername]//\" vor dem Namen deiner Figuren.", + "folders/@info-notice-folders-are-public": "Nutzer, die dieses Feature aktiviert haben, werden die Ordner in deinem Projekt sehen. Alle anderen werden die normale Figurenliste sehen (ohne Ordner).", + "folders/@name": "Figurenordner", + "block-switching/@description": "Klicke mit der rechten Maustaste auf einen Block, um ihn mit einem ähnlichen Block zu ersetzen.", + "block-switching/@name": "Block-Austausch", + "block-switching/@settings-name-control": "Steuerung-Blöcke", + "block-switching/@settings-name-customargs": "Argumente von benutzerdefinierten Blöcken", + "block-switching/@settings-name-customargsmode": "Optionen für angezeigte Blockargumente", + "block-switching/@settings-name-data": "Variablen-Blöcke", + "block-switching/@settings-name-event": "Ereignisse-Blöcke", + "block-switching/@settings-name-extension": "Erweiterungen-Blöcke", + "block-switching/@settings-name-looks": "Aussehen-Blöcke", + "block-switching/@settings-name-motion": "Bewegung-Blöcke", + "block-switching/@settings-name-noop": "Zeige Option zum Ändern des Blocks auf sich selbst", + "block-switching/@settings-name-operator": "Operatoren-Blöcke", + "block-switching/@settings-name-sensing": "Fühlen-Blöcke", + "block-switching/@settings-name-sound": "Klang-Blöcke", + "block-switching/@settings-select-customargsmode-all": "Argumente in allen benutzerdefinierten Blöcken in der Figur", + "block-switching/@settings-select-customargsmode-defOnly": "Argumente in eigenem benutzerdefiniertem Block", + "load-extensions/@description": "Fügt Musik, Malstift, und weitere Erweiterungen automatisch zur Blockkategorienliste hinzu.", + "load-extensions/@name": "Erweiterungen automatisch hinzufügen", + "load-extensions/@settings-name-music": "Musik", + "load-extensions/@settings-name-pen": "Malstift", + "load-extensions/@settings-name-text2speech": "Text zu Sprache", + "load-extensions/@settings-name-translate": "Übersetzen", + "custom-zoom/@description": "Personalisiere den Minimum-, Maximum-, und Startzoom und die Zoom-Geschwindigkeit für den Skriptbereich im Editor, und blende die Steuerelemente automatisch aus.", + "custom-zoom/@name": "Benutzerdefinierter Codebereichzoom", + "custom-zoom/@settings-name-autohide": "Zoom-Steuerelemente automatisch ausblenden", + "custom-zoom/@settings-name-maxZoom": "Maximale Größe (100-500%)", + "custom-zoom/@settings-name-minZoom": "Zoom-Minimum (1-100%)", + "custom-zoom/@settings-name-speed": "Animationsdauer für Ausblenden", + "custom-zoom/@settings-name-startZoom": "Startzoom (50-500%)", + "custom-zoom/@settings-name-zoomSpeed": "Zoom-Geschwindigkeit (50-200%)", + "custom-zoom/@settings-select-speed-default": "Standard", + "custom-zoom/@settings-select-speed-long": "Langsam", + "custom-zoom/@settings-select-speed-none": "Sofort", + "custom-zoom/@settings-select-speed-short": "Schnell", + "initialise-sprite-position/@description": "Ändere die Standard X/Y-Position von neuen Figuren.", + "initialise-sprite-position/@name": "Personalisierbare Standardposition von neuen Figuren", + "initialise-sprite-position/@settings-name-duplicate": "Verhalten beim Duplizieren von Figuren", + "initialise-sprite-position/@settings-name-library": "Position der Figuren aus der Bibliothek zufällig festlegen", + "initialise-sprite-position/@settings-name-x": "X-Position", + "initialise-sprite-position/@settings-name-y": "Y-Position", + "initialise-sprite-position/@settings-select-duplicate-custom": "An spezifische x/y-Werte schicken", + "initialise-sprite-position/@settings-select-duplicate-keep": "Dieselbe Position wie die Originalfigur", + "initialise-sprite-position/@settings-select-duplicate-randomize": "Zufällig", + "blocks2image/@description": "Klicke mit der rechten Maustaste auf den Codebereich, um Blöcke als SVG/PNG-Bilder zu exportieren", + "blocks2image/@name": "Blöcke als Bild speichern", + "remove-curved-stage-border/@description": "Entfernt den runden Rand um die Bühne, um die Ecken sichtbar zu machen.", + "remove-curved-stage-border/@name": "Runden Bühnenrand entfernen", + "transparent-orphans/@description": "Stelle die Transparenz für Blöcke im Editor ein, mit separaten Optionen für alleinstehende Blöcke (solche ohne Startblock) und Blöcke, die gerade gezogen werden.", + "transparent-orphans/@name": "Durchsichtige Blöcke", + "transparent-orphans/@settings-name-block": "Block Transparenz (%)", + "transparent-orphans/@settings-name-dragged": "Gezogene Transparenz (%)", + "transparent-orphans/@settings-name-orphan": "Alleinstehende Transparenz (%)", + "paint-by-default/@description": "Ändert die Standardaktion von \"Figur/Kostüm/Hintergrund/Klang\" wählen\"-Knöpfen, die die Bibliothek standardmäßig öffnen.", + "paint-by-default/@name": "Benutzerdefiniertes Verhalten von Hinzufügen-Buttons", + "paint-by-default/@settings-name-backdrop": "Hintergrund hinzufügen", + "paint-by-default/@settings-name-costume": "Kostüm hinzufügen", + "paint-by-default/@settings-name-sound": "Klang hinzufügen", + "paint-by-default/@settings-name-sprite": "Figur hinzufügen", + "paint-by-default/@settings-select-backdrop-library": "Bibliothek", + "paint-by-default/@settings-select-backdrop-paint": "Malen", + "paint-by-default/@settings-select-backdrop-surprise": "Überraschung", + "paint-by-default/@settings-select-backdrop-upload": "Hochladen", + "paint-by-default/@settings-select-costume-library": "Bibliothek", + "paint-by-default/@settings-select-costume-paint": "Malen", + "paint-by-default/@settings-select-costume-surprise": "Überraschen", + "paint-by-default/@settings-select-costume-upload": "Hochladen", + "paint-by-default/@settings-select-sound-library": "Bibliothek", + "paint-by-default/@settings-select-sound-record": "Aufnehmen", + "paint-by-default/@settings-select-sound-surprise": "Überraschung", + "paint-by-default/@settings-select-sound-upload": "Hochladen", + "paint-by-default/@settings-select-sprite-library": "Bibliothek", + "paint-by-default/@settings-select-sprite-paint": "Malen", + "paint-by-default/@settings-select-sprite-surprise": "Überraschung", + "paint-by-default/@settings-select-sprite-upload": "Hochladen", + "block-cherry-picking/@description": "Halte die Strg-Taste gedrückt, um einzelne Blöcke (anstatt des ganzen Stapels darunter) aus der Mitte eines Skripts zu nehmen.", + "block-cherry-picking/@info-flipControls": "\"Steuerung invertieren\" legt das individuelle Nehmen von Blöcken als Standardmäßiges Verhalten fest. Halte Strg gedrückt, um den ganzen Stapel zu ziehen.", + "block-cherry-picking/@info-macContextDisabled": "Auf macOS, verwende anstatt der Strg-Taste die Cmd-Taste.", + "block-cherry-picking/@name": "Einzelne Blöcke mit Strg-Taste nehmen", + "block-cherry-picking/@settings-name-invertDrag": "Steuerung invertieren", + "hide-new-variables/@description": "Keine Anzeigen für neu erstellte Variablen oder Listen automatisch erstellen.", + "hide-new-variables/@name": "Neue Variablen verstecken", + "editor-extra-keys/@description": "Fügt mehr Tasten zum \"Taste () gedrückt?\" und \"Wenn Taste () gedrückt\" Block-Dropdown hinzu, wie Enter, Punkt, Komma und mehr. Diese Tasten werden auch für Nutzer ohne das Addon funktionieren.", + "editor-extra-keys/@info-experimentalKeysWarn": "\"Experimentelle Tasten\" sind Tasten wie Gleich-Zeichen, Schrägstrich, Strichpunkt und mehr. Sie könnten auf manchen Betriebssystemen und Tastaturlayouts nicht funktionieren.", + "editor-extra-keys/@info-shiftKeysWarn": "\"Umschalttasten\" sind Tasten, die normalerweise das Drücken der Umschalt-Taste und eine Zahl benötigen, wie Rufezeichen, Dollar-Symbol und mehr. Diese Tasten funktionieren nur mit dem \"wenn Taste () gedrückt\"-Block und könnten auf manchen Betriebssystemen und Tastaturlayouts nicht funktionieren. ", + "editor-extra-keys/@name": "Zusätzliche Tastenoptionen", + "editor-extra-keys/@settings-name-experimentalKeys": "Experimentelle Tasten anzeigen", + "editor-extra-keys/@settings-name-shiftKeys": "Umschalttasten anzeigen", + "hide-delete-button/@description": "Versteckt den Löschen-Knopf (das Mülleimer-Icon) von FIguren, Kostümen und Klängen. Sie können weiterhin mit dem Rechtsklick-Kontextmenü glöscht werden.", + "hide-delete-button/@name": "Löschen-Knopf verstecken", + "hide-delete-button/@settings-name-costumes": "Kostüme und Hintergründe", + "hide-delete-button/@settings-name-sounds": "Klänge", + "hide-delete-button/@settings-name-sprites": "Figuren", + "no-script-bumping/@description": "Erlaubt es Skripten, herumbewegt und bearbeitet zu werden, ohne dabei das Fortbewegen von überlappenden Skripten zu verursachen.", + "no-script-bumping/@name": "Überlappende Skripte nicht automatisch verschieben", + "disable-stage-drag-select/@description": "Entfernt die Möglichkeit, Figuren auf der Bühne herumzuziehen, explizit ziehbare Figuren ausgenommen. Halte Shift gedrückt, um Figuren normal zu verschieben.", + "disable-stage-drag-select/@name": "Nicht ziehbare Figuren im Editor", + "move-to-top-bottom/@description": "Fügt Optionen zum Verschieben von Kostümen und Klängen an erste oder letzte Stelle der Liste zum Rechtsklick-Kontextmenü hinzu.", + "move-to-top-bottom/@info-developer-tools": "Dieses Addon gehörte früher zum \"Entwicklertools\"-Addon, aber es wurde hierher verschoben.", + "move-to-top-bottom/@name": "Element an erste/letzte Stelle verschieben", + "disable-paste-offset/@description": "Fügt kopierte Elemente an ihrer ursprünglichen Position im Kostümeditor ein, antstatt die leicht zu verschieben.", + "disable-paste-offset/@info-vanilla": "Dieses Verhalten kann auch ohne das Addon durch Alt+Klick auf das Objekt erhalten werden.", + "disable-paste-offset/@name": "Eingefügte Elemente nicht verschieben", + "block-duplicate/@description": "Dupliziere schnell ein SKript, indem du es mit gedrückter Alt-Taste ziehst. Halte gleichzeitig auch Strg gedrückt, um nur den einzelnen Block zu duplizieren.", + "block-duplicate/@info-mac": "Verwende auf macOS die Option-Taste statt der Alt-Taste und die Command-Taste statt der Strg-Taste.", + "block-duplicate/@name": "Skripte mit Alt-Taste duplizieren", + "rename-broadcasts/@description": "Fügt eine Option im Dropdownmenü von Nachrichtenblöcken hinzu, mit der du Nachrichten umbenennen kannst.", + "rename-broadcasts/@name": "Nachrichten umbenennen", + "swap-local-global/@description": "Fügt weitere Optionen beim Umbenennen einer vorhandenen Variablen oder Liste hinzu: ermöglicht das Wechseln zwischen \"Für alle Figuren\" und \"Nur für diese Figur\" und ob Variablen in der Cloud gespeichert werden. Fügt auch eine neue Option beim Rechtsklicken auf eine Variable/Liste hinzu, um deren Typ schnell zu ändern.", + "swap-local-global/@name": "Variablentyp ändern", + "editor-comment-previews/@description": "Ermöglicht das Anzeigen einer Vorschau, wenn die Maus über reduzierten Kommentaren und Blöcken. Du kannst dies verwenden, um Kommentare außerhalb des Bildschirms anzuzeigen, einen Schleifenblock von seiner Unterseite anhand der Vorschau zu identifizieren, mehrere lange Kommentare in einen kleinen Bereich anzupassen und mehr.", + "editor-comment-previews/@name": "Vorschau für Editorkommentare", + "editor-comment-previews/@settings-name-delay": "Verzögerungsdauer", + "editor-comment-previews/@settings-name-follow-mouse": "Maus folgen", + "editor-comment-previews/@settings-name-hover-view": "Zum Vorschauen mit der Maus über reduzierten Kommentaren schweben", + "editor-comment-previews/@settings-name-hover-view-block": "Zum Vorschauen von angehängten Kommentaren mit der Maus über Blöcken schweben", + "editor-comment-previews/@settings-name-hover-view-procedure": "Zum Vorschauen von Definitionskommentaren mit der Maus über benutzerdefinierten Blöcken schweben", + "editor-comment-previews/@settings-name-reduce-animation": "Animation reduzieren", + "editor-comment-previews/@settings-name-reduce-transparency": "Durchsichtigkeit vermindern", + "editor-comment-previews/@settings-select-delay-long": "Lang", + "editor-comment-previews/@settings-select-delay-none": "Keine", + "editor-comment-previews/@settings-select-delay-short": "Kurz", + "columns/@description": "Trennt das Blockkategorienmenü in zwei Spalten und verschiebt es über die Blockpalette, wie in Scratch 2.0.", + "columns/@name": "Zweispaltiges Kategorienmenü", + "number-pad/@description": "Zeigt Scratchs Zahleneingabepad, das bei der Eingabe in Zahlenfeldern auf Touchscreen-Geräten geöffnet wird, auf allen Geräten an.", + "number-pad/@info-explanation": "Die Zifferntastatur wird beim Bearbeiten von Zahlenfeldern auf bestimmten Blöcken wie \"setze x auf\" angezeigt.", + "number-pad/@name": "Zifferntastatur immer anzeigen", + "script-snap/@description": "Richtet Skripte nach dem Ziehen automatisch an den Punkten des Codebereichs aus.", + "script-snap/@name": "Skripte am Raster ausrichten", + "script-snap/@preset-name-default": "Standard", + "script-snap/@preset-name-half-block": "Halbblöckig", + "script-snap/@preset-name-whole-block": "Ganzblöckig", + "script-snap/@settings-name-grid": "Rastergröße (px)", + "fullscreen/@description": "Behebt einige unerwünschte Effekte im Vollbildmodus des Projektplayers, öffnet ihn im Vollbildmodus deines Browsers und blendet die Symbolleiste mit der grünen Flagge aus.", + "fullscreen/@info-hideToolbarNotice": "Wenn du die Symbolleiste ausblendest, denke daran, dass du mit der Esc-Taste den Vollbildmodus des Projektplayers verlassen kannst.", + "fullscreen/@name": "Verbesserter Vollbildmodus", + "fullscreen/@settings-name-browserFullscreen": "Projektplayer im Vollbildmodus des Browsers öffnen", + "fullscreen/@settings-name-hideToolbar": "Titelleiste im Vollbild ausblenden", + "hide-stage/@description": "Fügt einen Knopf neben dem \"Kleine Bühne\"-Knopf hinzu, mit dem du die Bühne und die Figurenleiste vollständig ausblenden und damit den Codebereich viel größer machen kannst.", + "hide-stage/@name": "Bühne und Figurenleiste ausblenden", + "editor-stepping/@description": "Fügt eine farbige Markierung zu den Blöcken, die gerade in einem Projekt ausgeführt werden, hinzu.", + "editor-stepping/@name": "Markierung für ausgeführte Blöcke", + "editor-stepping/@settings-name-highlight-color": "Markierungsfarbe" +} \ No newline at end of file diff --git a/src/addons/addons-l10n-settings/es.json b/src/addons/addons-l10n-settings/es.json new file mode 100644 index 0000000000000000000000000000000000000000..2340bea8d9b26fea9e500731a5b343f339bb5915 --- /dev/null +++ b/src/addons/addons-l10n-settings/es.json @@ -0,0 +1,343 @@ +{ + "cat-blocks/@description": "Regresa los cat blocks de April Fools 2020.", + "cat-blocks/@info-watch": "La opción \"mirar cursor\" puede afectar el rendimiento cuando está abierto el editor.", + "cat-blocks/@settings-name-watch": "Mirar cursor", + "editor-devtools/@description": "Añade nuevas opciones de menú al editor: copiar/pegar bloques, mejor ordenado de bloques, ¡y más!", + "editor-devtools/@name": "Herramientas de desarrollador", + "editor-devtools/@settings-name-enableCleanUpPlus": "Mejorar \"Ordenar Bloques\"", + "editor-devtools/@settings-name-enablePasteBlocksAtMouse": "Pegar bloques en la posición del cursor", + "find-bar/@description": "Agrega una barra de búsqueda al lado de la pestaña de sonidos para encontrar y saltar a scripts, disfraces y sonidos. Use Ctrl+Izquierda y Ctrl+Derecha en el área de código para navegar a la posición visitada anterior o siguiente luego de usar la barra de búsqueda.", + "find-bar/@info-developer-tools": "Este addon era parte de \"herramientas de desarrollador\", pero se ha mudado aquí.", + "find-bar/@name": "Barra de búsqueda en editor", + "middle-click-popup/@info-developer-tools": "Este addon era parte de \"herramientas de desarrollador\", pero se ha mudado aquí.", + "middle-click-popup/@name": "Insertar bloques por nombre", + "jump-to-def/@description": "Le permite saltar a la definición de un bloque personalizado usando el botón del medio del ratón o presionando Shift+Click en el bloque.", + "jump-to-def/@info-developer-tools": "Este addon era parte de \"herramientas de desarrollador\", pero se ha mudado aquí.", + "jump-to-def/@name": "Saltar a definición de bloque personalizado", + "editor-searchable-dropdowns/@description": "Le permite buscar en bloques que tienen menús.", + "editor-searchable-dropdowns/@name": "Búsqueda en menús ", + "data-category-tweaks-v2/@description": "Proporciona retoques para la categoría de bloques \"datos\" (variables).", + "data-category-tweaks-v2/@name": "Retoques en categoría \"datos\"", + "data-category-tweaks-v2/@settings-name-moveReportersDown": "Mover bloques de datos arriba de la lista de variables", + "data-category-tweaks-v2/@settings-name-separateListCategory": "Categoría Listas Separada", + "data-category-tweaks-v2/@settings-name-separateLocalVariables": "Separar Variables Locales", + "block-palette-icons/@description": "Agrega íconos dentro de los círculos de colores que identifican las categorías de bloques.", + "block-palette-icons/@name": "Ãconos de categoría en paleta de bloques", + "hide-flyout/@description": "Oculta la paleta de bloques si el cursor no esta arriba de ella. Haga click en el icono de candado para mantenerlo en el lugar temporalmente. Alternativamente, use el modo \"click en categoría\".", + "hide-flyout/@info-hoverExplanation": "El modo \"cursor sobre área de paleta\" solo extiende el área de visión. Si quiere poder arrastrar bloques a este área sin que se tiren a la basura, use alguno de los otros modos.", + "hide-flyout/@name": "Ocultar paleta de bloques automáticamente", + "hide-flyout/@settings-name-speed": "Velocidad de animación", + "hide-flyout/@settings-name-toggle": "Activar/desactivar en...", + "hide-flyout/@settings-select-speed-default": "Por defecto", + "hide-flyout/@settings-select-speed-long": "Lenta", + "hide-flyout/@settings-select-speed-none": "Instantánea", + "hide-flyout/@settings-select-speed-short": "Rápida", + "hide-flyout/@settings-select-toggle-category": "Click en categoría", + "hide-flyout/@settings-select-toggle-cathover": "Cursor sobre categoría", + "hide-flyout/@settings-select-toggle-hover": "Cursor sobre área de paleta", + "hide-flyout/@update": "Este addon fue revisado y se arreglaron muchos errores.", + "mediarecorder/@description": "Agrega un botón \"empezar grabación\" al menú del editor que le permite grabar el escenario del proyecto.", + "mediarecorder/@name": "Grabador de video de proyectos", + "drag-drop/@description": "Le permite arrastrar imágenes y sonidos de su administrador de archivos y soltarlos en el panel de objetos o la lista de disfraces/sonidos. También puede arrastrar archivos de texto a listas y cajas de respuesta.", + "drag-drop/@name": "Arrastrar y soltar archivos", + "drag-drop/@settings-name-use-hd-upload": "Usar subidas HD", + "debugger/@name": "Depurador", + "debugger/@settings-name-log_broadcasts": "Loguear mensajes enviados", + "debugger/@settings-name-log_clear_greenflag": "Borrar logs al tocar bandera verde", + "debugger/@settings-name-log_clone_create": "Loguear creación de clones", + "debugger/@settings-name-log_failed_clone_creation": "Loguear máximo de clones excedido", + "debugger/@settings-name-log_greenflag": "Loguear clicks a bandera verde", + "debugger/@update": "Nuevas pestañas \"Hilos\" y \"Rendimiento\" en la ventana del depurador.", + "pause/@description": "Agrega un botón de pausa al lado de la bandera verde.", + "pause/@name": "Botón de pausa", + "mute-project/@description": "Presione Ctrl+Click sobre la bandera verde para silenciar o desilenciar el proyecto.", + "mute-project/@info-macOS": "En macOS, use la tecla Cmd en vez de Ctrl.", + "mute-project/@name": "Modo silenciado de reproductor de proyectos", + "vol-slider/@description": "Agrega un control deslizante de volumen al lado de los controles de la bandera verde.", + "vol-slider/@name": "Deslizador de volumen del proyecto", + "vol-slider/@settings-name-defVol": "Volumen por defecto", + "clones/@description": "Agrega un contador de clones arriba del escenario en el editor que muestra la cantidad total de clones del proyecto.", + "clones/@name": "Contador de clones", + "clones/@settings-name-showicononly": "Mostrar ícono solamente", + "mouse-pos/@description": "Muestra la posición x/y del ratón arriba del escenario en el editor.", + "mouse-pos/@name": "Posición del ratón", + "color-picker/@description": "Agrega una entrada de colores hex a los selectores de color.", + "color-picker/@name": "Selector de color hex", + "remove-sprite-confirm/@description": "Le pregunta si está seguro cuando borre un objecto en un proyecto", + "remove-sprite-confirm/@name": "Confirmación de eliminación de objeto", + "block-count/@description": "Muestra el número total de bloques de un proyecto en la barra de menú del editor. Previamente parte de \"contador de objetos y scripts\".", + "block-count/@name": "Contador de bloques", + "onion-skinning/@description": "Muestra capas transparentes de los disfraces anteriores o siguientes mientras edita un disfraz. Controlado con los botones debajo del editor de disfraces, al lado de los botones de zoom.", + "onion-skinning/@name": "Capa sobre capa (onion skinning)", + "onion-skinning/@settings-name-afterTint": "Teñir color de disfraz siguiente", + "onion-skinning/@settings-name-beforeTint": "Teñir color de disfraz anterior", + "onion-skinning/@settings-name-default": "Activar por defecto", + "onion-skinning/@settings-name-layering": "Método de superposición por defecto", + "onion-skinning/@settings-name-mode": "Modo por defecto", + "onion-skinning/@settings-name-next": "Valor predeterminado de disfraces siguientes", + "onion-skinning/@settings-name-opacity": "Opacidad (%)", + "onion-skinning/@settings-name-opacityStep": "Salto de Opacidad (%)", + "onion-skinning/@settings-name-previous": "Valor predeterminado de disfraces anteriores", + "onion-skinning/@settings-select-layering-behind": "Detrás", + "onion-skinning/@settings-select-layering-front": "Frente", + "onion-skinning/@settings-select-mode-merge": "Combinar imagenes", + "onion-skinning/@settings-select-mode-tint": "Teñir color", + "paint-snap/@description": "Ajusta objetos en el editor de disfraces a cuadros de delimitación y nodos de vectores.", + "paint-snap/@name": "Ajustar posición del editor de disfraces ", + "paint-snap/@settings-name-boxCenter": "Ajustar desde centro de caja de selección", + "paint-snap/@settings-name-boxCorners": "Ajustar desde esquinas de caja de selección", + "paint-snap/@settings-name-boxEdgeMids": "Ajustar desde puntos medios de lados de caja de selección", + "paint-snap/@settings-name-enable-default": "Habilitar por defecto", + "paint-snap/@settings-name-guide-color": "Color de la guía del ajuste", + "paint-snap/@settings-name-objectCenters": "Ajustar a centros de objetos", + "paint-snap/@settings-name-objectCorners": "Ajustar a esquinas de objetos", + "paint-snap/@settings-name-objectEdges": "Ajustar a lados de objetos", + "paint-snap/@settings-name-objectMidlines": "Ajustar a líneas centrales de objetos", + "paint-snap/@settings-name-pageAxes": "Ajustar a ejes x e y de la página", + "paint-snap/@settings-name-pageCenter": "Ajustar a centro de página", + "paint-snap/@settings-name-pageCorners": "Ajustar a esquinas de la página", + "paint-snap/@settings-name-pageEdges": "Ajustar a lados de la página", + "paint-snap/@settings-name-threshold": "Distancia de ajuste", + "default-costume-editor-color/@description": "Cambia los colores predeterminados y el tamaño del borde utilizados por el editor de disfraces.", + "default-costume-editor-color/@name": "Color predeterminado personalizable en el editor de disfraces", + "default-costume-editor-color/@settings-name-fill": "Color de relleno predeterminado", + "default-costume-editor-color/@settings-name-persistence": "Usar color anterior en vez de reiniciar al cambiar de herramienta", + "default-costume-editor-color/@settings-name-stroke": "Color de borde predeterminado", + "default-costume-editor-color/@settings-name-strokeSize": "Tamaño de borde predeterminado", + "bitmap-copy/@description": "Le permite copiar una imagen bitmap en el editor de disfraces al portapapeles de su sistema, para que la puedas pegar en otros sitios web o programas.", + "bitmap-copy/@info-norightclick": "\"Click derecho → copiar\" no está soportado. Debe presionar Ctrl+C cuando la imagen bitmap este seleccionada.", + "bitmap-copy/@name": "Copiar imágenes bitmap", + "2d-color-picker/@description": "Remplaza los deslizadores de saturación y brillo con un selector de color 2D. Presione Shift mientras arrastra el cursor para cambiar los valores en un solo eje.", + "2d-color-picker/@name": "Selector de color 2D", + "better-img-uploads/@description": "Agrega un nuevo botón arriba del botón \"subir disfraz\" que automáticamente convierte imágenes bitmap subidas a imágenes SVG (vector) para evitar perder calidad.", + "better-img-uploads/@info-notSuitableEdit": "Evite usar el botón de subida HD si tiene planeado editar la imagen luego de subirla.", + "better-img-uploads/@name": "Subida de imágenes HD", + "better-img-uploads/@settings-name-fitting": "Tamaño de imagen", + "better-img-uploads/@settings-select-fitting-fill": "Estirar para llenar escenario", + "better-img-uploads/@settings-select-fitting-fit": "Achicar para encajar en escenario", + "better-img-uploads/@settings-select-fitting-full": "Tamaño original", + "pick-colors-from-stage/@description": "Permite que el cuentagotas también pueda elegir colores del escenario.", + "pick-colors-from-stage/@name": "Seleccionar colores del escenario en el editor de disfraces", + "custom-block-shape/@description": "Ajuste el relleno, radio de esquinas y altura de la muesca de los bloques.", + "custom-block-shape/@info-paddingWarning": "Si baja el valor de tamaño del relleno, cuando otros usuarios vean su proyecto, podría parecer que sus scripts se superponen.", + "custom-block-shape/@name": "Forma de bloque personalizada", + "custom-block-shape/@preset-description-default2": "Una apariencia similar a bloques de Scratch 2.0", + "custom-block-shape/@preset-description-default3": "La apariencia regular de bloques de Scratch 3.0", + "custom-block-shape/@preset-description-flat2": "Bloques de Scratch 2.0 sin muesca ni esquinas", + "custom-block-shape/@preset-description-flat3": "Bloques de Scratch 3.0 sin muesca ni esquinas", + "custom-block-shape/@preset-name-default2": "Bloques 2.0", + "custom-block-shape/@preset-name-default3": "Bloques 3.0", + "custom-block-shape/@preset-name-flat2": "2.0 Plano", + "custom-block-shape/@preset-name-flat3": "3.0 Plano", + "custom-block-shape/@settings-name-cornerSize": "Tamaño de esquinas (0-300%)", + "custom-block-shape/@settings-name-notchSize": "Altura de muesca (0-150%)", + "custom-block-shape/@settings-name-paddingSize": "Tamaño de relleno/padding (50-200%)", + "zebra-striping/@description": "Alterna entre tonos más claros y más oscuros a los bloques de la misma categoría anidados entre sí. Esto también es conocido como \"zebra striping\".", + "zebra-striping/@name": "Alternar colores de bloques anidados", + "zebra-striping/@settings-name-intensity": "Intensidad (0-100%)", + "zebra-striping/@settings-name-shade": "Tonalidad", + "zebra-striping/@settings-select-shade-darker": "Oscura", + "zebra-striping/@settings-select-shade-lighter": "Clara", + "editor-theme3/@description": "Edite los colores para cada categoría de bloques del editor.", + "editor-theme3/@name": "Colores de bloques personalizables", + "editor-theme3/@preset-description-black": "Hace negros los fondos de los bloques", + "editor-theme3/@preset-description-dark": "Versiones oscuras de colores predeterminados", + "editor-theme3/@preset-description-original": "Los colores originales de Scratch 2.0", + "editor-theme3/@preset-description-tweaks": "Usa colores inspirados en 2.0 en las categorías Eventos, Control y Mis bloques. ", + "editor-theme3/@preset-name-black": "Negro", + "editor-theme3/@preset-name-dark": "Oscuro", + "editor-theme3/@preset-name-original": "Colores de la 2.0", + "editor-theme3/@preset-name-tweaks": "3.0 Mejorado", + "editor-theme3/@settings-name-Pen-color": "extensiones", + "editor-theme3/@settings-name-comment-color": "Comentarios", + "editor-theme3/@settings-name-custom-color": "personalizado", + "editor-theme3/@settings-name-data-lists-color": "listas", + "editor-theme3/@settings-name-events-color": "eventos", + "editor-theme3/@settings-name-input-color": "Campos de bloques", + "editor-theme3/@settings-name-looks-color": "apariencia", + "editor-theme3/@settings-name-motion-color": "movimiento", + "editor-theme3/@settings-name-operators-color": "operadores", + "editor-theme3/@settings-name-sensing-color": "sensores", + "editor-theme3/@settings-name-sounds-color": "sonidos", + "editor-theme3/@settings-name-text": "Color del texto", + "editor-theme3/@settings-select-text-black": "Negro", + "editor-theme3/@settings-select-text-colorOnBlack": "Con color en fondo negro", + "editor-theme3/@settings-select-text-colorOnWhite": "Con color en fondo blanco", + "editor-theme3/@settings-select-text-white": "Blanco", + "editor-theme3/@update": "El ajuste \"Comentarios oscuros\" de \"Modo oscuro del editor y colores personalizados\" se ha movido aquí y ahora es personalizable.", + "custom-block-text/@description": "Cambia el grosor del texto en bloques y opcionalmente agrega una sombra al texto.", + "custom-block-text/@name": "Estilo de texto de bloques personalizado", + "custom-block-text/@settings-name-bold": "Texto en negrita", + "custom-block-text/@settings-name-shadow": "Sombra bajo texto", + "editor-colored-context-menus/@description": "Hace que los menús al dar click derecho en un bloque sean coloridos.", + "editor-colored-context-menus/@name": "Menús coloridos", + "editor-stage-left/@description": "Mueve el escenario al lado izquierdo del editor, como en Scratch 2.0.", + "editor-stage-left/@info-reverseOrder": "Para cambiar la posición de los botones arriba del escenario, use el addon \"invertir orden de los controles del proyecto\".", + "editor-stage-left/@name": "Mostrar escenario del lado izquierdo", + "editor-buttons-reverse-order/@description": "Mueve la bandera verde y el botón de detener a la derecha, y el botón de pantalla completa a la izquierda, como en Scratch 2.0.", + "editor-buttons-reverse-order/@name": "Invertir orden de los controles del proyecto", + "variable-manager/@description": "Agrega una pestaña al lado de \"sonidos\" en el editor para que pueda fácilmente editar variables y listas.", + "variable-manager/@name": "Gestor de variables", + "variable-manager/@update": "Los elementos de las listas ahora pueden ser insertados sin estar manteniendo la tecla Shift.", + "search-sprites/@description": "Agrega una barra de búsqueda al panel de objetos para buscar objetos por nombre.", + "search-sprites/@name": "Buscar objetos por nombre", + "sprite-properties/@description": "Esconde en panel de propiedades de sprite por defecto, como en Scratch 2.0. Use el botón de información en el sprite actualmente seleccionado o haga doble click en un sprite para mostrar el panel de propiedades otra vez. Para volver a esconderlo, use el botón de colapsar en el panel de propiedades o haga doble click en un sprite.", + "sprite-properties/@name": "Colapsar propiedades de sprites", + "sprite-properties/@settings-name-autoCollapse": "Colapsar automáticamente cuando el cursor se aleja del panel de sprites", + "sprite-properties/@settings-name-hideByDefault": "Colapsar panel por defecto", + "sprite-properties/@settings-name-transitionDuration": "Velocidad de animación", + "sprite-properties/@settings-select-transitionDuration-default": "Predeterminada", + "sprite-properties/@settings-select-transitionDuration-long": "Lenta", + "sprite-properties/@settings-select-transitionDuration-none": "Instantánea", + "sprite-properties/@settings-select-transitionDuration-short": "Rápida", + "gamepad/@description": "Interactúe con proyectos usando un control/mando de videojuegos mediante USB o Bluetooth.", + "gamepad/@name": "Soporte de mando de videojuegos", + "gamepad/@settings-name-hide": "Esconder botón de ajustes cuando no hay mandos conectados", + "editor-sounds/@description": "Reproduce efectos de sonido cuando conecta o elimina bloques.", + "editor-sounds/@name": "Efectos de sonido en editor", + "folders/@description": "Agrega carpetas a listas de objetos, como también a las listas de disfraces y sonidos. Para crear una carpeta, haga click derecho en un objeto y seleccione \"crear carpeta\". Haga click en una carpeta para abrirla o cerrarla. Haga click derecho en un objeto para ver a qué carpetas lo puede mover, o alternativamente arrastre y suelte a una carpeta abierta. Esta función agrega \"[nombreDeLaCarpeta]//\" al principio del nombre de sus objetos.", + "folders/@info-notice-folders-are-public": "Usuarios con esta función activada podrán ver las carpetas en su proyecto. Cualquier otra persona verá las listas de objetos normalmente (sin carpetas)", + "folders/@name": "Carpetas de objetos", + "block-switching/@description": "Haga click derecho en un bloque para cambiarlo por otro bloque relacionado.", + "block-switching/@name": "Cambio entre bloques", + "block-switching/@settings-name-control": "Bloques de control", + "block-switching/@settings-name-customargs": "Argumentos de bloques personalizados", + "block-switching/@settings-name-customargsmode": "Opciones mostradas de argumentos de bloques personalizados", + "block-switching/@settings-name-data": "Bloques de variables", + "block-switching/@settings-name-event": "Bloques de eventos", + "block-switching/@settings-name-extension": "Bloques de extensiones", + "block-switching/@settings-name-looks": "Bloques de apariencia", + "block-switching/@settings-name-motion": "Bloques de movimiento", + "block-switching/@settings-name-noop": "Permitir cambiar un bloque a sí mismo", + "block-switching/@settings-name-operator": "Bloques de operadores", + "block-switching/@settings-name-sensing": "Bloques de sensores", + "block-switching/@settings-name-sound": "Bloques de sonido", + "block-switching/@settings-select-customargsmode-all": "Argumentos en todos los bloques personalizados del objeto", + "block-switching/@settings-select-customargsmode-defOnly": "Argumentos en bloque personalizado propio", + "load-extensions/@description": "Muestra automáticamente música, lápiz y otras extensiones del editor en el menú de categorías del editor.", + "load-extensions/@name": "Agregar extensiones automáticamente", + "load-extensions/@settings-name-music": "Música", + "load-extensions/@settings-name-pen": "Lápiz", + "load-extensions/@settings-name-text2speech": "Texto a Voz", + "load-extensions/@settings-name-translate": "Traducir", + "custom-zoom/@description": "Elija ajustes personalizados para el mínimo, máximo, velocidad y tamaño inicial del zoom en el área de código y esconda los controles automáticamente.", + "custom-zoom/@name": "Zoom de área de código personalizado", + "custom-zoom/@settings-name-autohide": "Esconder controles cuando el cursor no está sobre ellos", + "custom-zoom/@settings-name-maxZoom": "Zoom Máximo (100-500%)", + "custom-zoom/@settings-name-minZoom": "Zoom mínimo (1-100%)", + "custom-zoom/@settings-name-speed": "Velocidad de animación al esconder controles", + "custom-zoom/@settings-name-startZoom": "Zoom inicial (50-500%)", + "custom-zoom/@settings-name-zoomSpeed": "Velocidad de zoom (50-200%)", + "custom-zoom/@settings-select-speed-default": "Predeterminada", + "custom-zoom/@settings-select-speed-long": "Lenta", + "custom-zoom/@settings-select-speed-none": "Instantánea", + "custom-zoom/@settings-select-speed-short": "Rápida", + "initialise-sprite-position/@description": "Cambia la posición x/y predeterminada de nuevos objetos.", + "initialise-sprite-position/@name": "Posición predeterminada de nuevos objetos personalizable", + "initialise-sprite-position/@settings-name-duplicate": "Comportamiento al duplicar objetos", + "initialise-sprite-position/@settings-name-library": "Posiciones aleatorias al agregar objetos de la librería", + "initialise-sprite-position/@settings-name-x": "Posición X", + "initialise-sprite-position/@settings-name-y": "Posición Y", + "initialise-sprite-position/@settings-select-duplicate-custom": "Enviar a valores x/y especificados", + "initialise-sprite-position/@settings-select-duplicate-keep": "Mantener como el objeto original", + "initialise-sprite-position/@settings-select-duplicate-randomize": "Aleatorizar", + "blocks2image/@description": "Haga click derecho en el área de código para exportar bloques como imágenes SVG/PNG.", + "blocks2image/@name": "Guardar bloques como imagen", + "remove-curved-stage-border/@description": "Quita los bordes curvos alrededor del escenario, permitiéndole ver las esquinas.", + "remove-curved-stage-border/@name": "Quitar curva del borde del escenario", + "transparent-orphans/@description": "Ajuste la transparencia de los bloques del editor, con opciones separadas para bloques huérfanos (aquellos sin un bloque de evento en su parte superior) y bloques que están siendo arrastrados.", + "transparent-orphans/@name": "Bloques transparentes", + "transparent-orphans/@settings-name-block": "Transparencia de bloques (%)", + "transparent-orphans/@settings-name-dragged": "Transparencia arrastrando (%)", + "transparent-orphans/@settings-name-orphan": "Transparencia de huérfanos (%)", + "paint-by-default/@description": "Cambia la acción por defecto de los botones \"Elegir un objeto/disfraz/fondo/sonido\", que abren la biblioteca por defecto.", + "paint-by-default/@name": "Pintar disfraz por defecto", + "paint-by-default/@settings-name-backdrop": "Agregar fondo", + "paint-by-default/@settings-name-costume": "Agregar disfraz", + "paint-by-default/@settings-name-sound": "Agregar sonido", + "paint-by-default/@settings-name-sprite": "Agregar objeto", + "paint-by-default/@settings-select-backdrop-library": "Biblioteca", + "paint-by-default/@settings-select-backdrop-paint": "Pintar", + "paint-by-default/@settings-select-backdrop-surprise": "Sorpresa", + "paint-by-default/@settings-select-backdrop-upload": "Subir", + "paint-by-default/@settings-select-costume-library": "Biblioteca", + "paint-by-default/@settings-select-costume-paint": "Pintar", + "paint-by-default/@settings-select-costume-surprise": "Sorpresa", + "paint-by-default/@settings-select-costume-upload": "Subir", + "paint-by-default/@settings-select-sound-library": "Biblioteca", + "paint-by-default/@settings-select-sound-record": "Grabar", + "paint-by-default/@settings-select-sound-surprise": "Sorpresa", + "paint-by-default/@settings-select-sound-upload": "Subir", + "paint-by-default/@settings-select-sprite-library": "Biblioteca", + "paint-by-default/@settings-select-sprite-paint": "Pintar", + "paint-by-default/@settings-select-sprite-surprise": "Sorpresa", + "paint-by-default/@settings-select-sprite-upload": "Subir", + "block-cherry-picking/@description": "Le permite arrastrar un único bloque del medio de un script (en vez de toda la pila adjunta debajo) mientras mantenga la tecla Ctrl.", + "block-cherry-picking/@info-flipControls": "Si \"revertir controles\" está activado, agarrar bloques individualmente será el comportamiento predeterminado. Mantenga Ctrl para arrastrar la pila completa.", + "block-cherry-picking/@info-macContextDisabled": "En macOS, use la tecla Cmd en vez de Ctrl.", + "block-cherry-picking/@name": "Agarrar un único bloque con tecla Ctrl", + "block-cherry-picking/@settings-name-invertDrag": "Revertir controles", + "hide-new-variables/@description": "No crear automáticamente monitores para variables y listas nuevas.", + "hide-new-variables/@name": "Esconder variables nuevas", + "editor-extra-keys/@description": "Añade más teclas a los menús desplegables de los bloques \"¿tecla () presionada?\" y \"al presionar tecla ()\", como enter, coma, y más. Estas teclas incluso funcionarán para usuarios que no tengan este addon.", + "editor-extra-keys/@info-experimentalKeysWarn": "Las \"teclas experimentales\" incluyen signo igual, barra, punto y coma y más. Pueden no funcionar en todos los sistemas operativos o diseños de teclado.", + "editor-extra-keys/@info-shiftKeysWarn": "Las \"teclas Shift\" incluyen teclas que típicamente requieren la tecla Shift y una tecla de número, como hashtag, símbolo de exclamación y más. Estas teclas solo funcionan con el bloque \"al presionar tecla ()\" y no funcionan en todos los sistemas operativos o diseños de teclado.", + "editor-extra-keys/@name": "Opciones de teclas extra", + "editor-extra-keys/@settings-name-experimentalKeys": "Mostrar teclas experimentales", + "editor-extra-keys/@settings-name-shiftKeys": "Mostrar teclas Shift", + "hide-delete-button/@description": "Esconde el botón de eliminar (ícono de bote de basura) de objetos, disfraces y sonidos. Estos pueden seguirse eliminando utilizando el menú contextual al dar click derecho.", + "hide-delete-button/@name": "Esconder botón de eliminar", + "hide-delete-button/@settings-name-costumes": "Disfraces y fondos", + "hide-delete-button/@settings-name-sounds": "Sonidos", + "hide-delete-button/@settings-name-sprites": "Objetos", + "no-script-bumping/@description": "Permite que los scripts sean movidos y modificados sin causar que scripts superpuestos se muevan.", + "no-script-bumping/@name": "No espaciar automáticamente scripts superpuestos", + "disable-stage-drag-select/@description": "Elimina la posibilidad de arrastrar objetos en el escenario, exceptuando aquellos fijados explícitamente como arrastrables. Presione Shift mientras arrastra un objeto para moverlo normalmente.", + "disable-stage-drag-select/@name": "Objetos no arrastrables en el editor", + "move-to-top-bottom/@description": "Agrega opciones al menú de click derecho para mover un disfraz o sonido a la primera o última posición de la lista.", + "move-to-top-bottom/@info-developer-tools": "Este addon era parte de \"herramientas de desarrollador\", pero se ha mudado aquí.", + "move-to-top-bottom/@name": "Mover disfraz a la cima o al fondo", + "disable-paste-offset/@description": "Pega items copiados en su posición original en vez de movidos levemente en el editor de disfraces.", + "disable-paste-offset/@info-vanilla": "Este comportamiento también puede ser logrado sin este addon mediante Alt+Click a un objeto.", + "disable-paste-offset/@name": "No mover items pegados", + "block-duplicate/@description": "Duplique rápidamente un script arrastrándolo mientras mantiene la tecla Alt. Apriete Ctrl también para solo duplicar un bloque en vez de toda la pila adjunta debajo.", + "block-duplicate/@info-mac": "En macOS, use la tecla Option en vez de la tecla Alt y la tecla Command en vez de la tecla Control.", + "block-duplicate/@name": "Duplicar script con tecla Alt", + "rename-broadcasts/@description": "Añade una opción para renombrar mensajes en los menús desplegables de los bloques de transmisión de mensajes.", + "rename-broadcasts/@name": "Renombrar mensajes", + "swap-local-global/@description": "Agrega más opciones al renombrar una variable o lista existente: permite cambiar entre \"Para todos los objetos\" y \"Solo para este objeto\" y si las variables son almacenadas en la nube. También agrega una nueva opción al hacer click derecho en una variable/lista para cambiar rápidamente su ámbito.", + "swap-local-global/@name": "Cambiar variables entre \"Para todos los objetos\" y \"Solo para este objeto\"", + "editor-comment-previews/@description": "Le permite previsualizar los contenidos de comentarios al poner el cursor sobre comentarios encogidos y bloques. Puede usar esto para ver comentarios que están fuera de la pantalla, identificar un bloque bucle desde el final por su previsualización, meter muchos comentarios en un lugar pequeño y más.", + "editor-comment-previews/@name": "Previsualización de comentarios del editor", + "editor-comment-previews/@settings-name-delay": "Tiempo de retardo", + "editor-comment-previews/@settings-name-follow-mouse": "Seguir cursor", + "editor-comment-previews/@settings-name-hover-view": "Poner el cursor sobre comentarios encogidos para previsualizar", + "editor-comment-previews/@settings-name-hover-view-block": "Poner cursor sobre bloques para previsualizar comentarios enganchados", + "editor-comment-previews/@settings-name-hover-view-procedure": "Poner cursor sobre bloques personalizados para previsualizar comentarios en su definición", + "editor-comment-previews/@settings-name-reduce-animation": "Reducir animación", + "editor-comment-previews/@settings-name-reduce-transparency": "Reducir transparencia", + "editor-comment-previews/@settings-select-delay-long": "Largo", + "editor-comment-previews/@settings-select-delay-none": "Ninguno", + "editor-comment-previews/@settings-select-delay-short": "Corto", + "columns/@description": "Divide el menú de categorías de bloques en dos columnas y lo mueve a la cima de la paleta de bloques, como en Scratch 2.0.", + "columns/@name": "Menú de categorías de dos columnas", + "number-pad/@description": "Mostrar el teclado numérico de Scratch cuando se editen campos numéricos en cualquier dispositivo, en vez de solo en los con pantalla táctil.", + "number-pad/@info-explanation": "Un teclado numérico se mostrará cuando se editen campos numéricos de ciertos bloques, como \"dar a x el valor\".", + "number-pad/@name": "Siempre mostrar teclado numérico", + "script-snap/@description": "Arrastre un script para automáticamente ajustar su posición a los puntos del área de código.", + "script-snap/@name": "Ajustar scripts a cuadrícula", + "script-snap/@preset-name-default": "Predeterminado", + "script-snap/@preset-name-half-block": "Medio bloque", + "script-snap/@preset-name-whole-block": "Bloque entero", + "script-snap/@settings-name-grid": "Tamaño de la grilla (px)", + "fullscreen/@description": "Arregla algunos efectos no deseados del modo de pantalla completa del reproductor de proyectos, abre el reproductor en modo de pantalla completa de su navegador y esconde la barra de herramientas de bandera verde.", + "fullscreen/@info-hideToolbarNotice": "Si elige esconder la barra de herramientas, recuerde que puede usar la tecla Esc para salir del modo de pantalla completa.", + "fullscreen/@name": "Pantalla completa mejorada", + "fullscreen/@settings-name-browserFullscreen": "Abrir reproductor de proyectos en modo pantalla completa del navegador", + "fullscreen/@settings-name-hideToolbar": "Esconder barra de herramientas en pantalla completa", + "hide-stage/@description": "Agrega un botón al lado de los botones de \"escenario pequeño\" y \"escenario grande\" que esconde el escenario y el panel de objetos, haciendo mucho más grande el área de código.", + "hide-stage/@name": "Esconder escenario y panel de objetos", + "editor-stepping/@description": "Agrega un borde colorido a los bloques que están ejecutándose actualmente en un proyecto.", + "editor-stepping/@name": "Borde de bloque en ejecución", + "editor-stepping/@settings-name-highlight-color": "Color de destacado" +} \ No newline at end of file diff --git a/src/addons/addons-l10n-settings/fr.json b/src/addons/addons-l10n-settings/fr.json new file mode 100644 index 0000000000000000000000000000000000000000..841648278f564bacb85c13385965e7ce802e27a0 --- /dev/null +++ b/src/addons/addons-l10n-settings/fr.json @@ -0,0 +1,319 @@ +{ + "cat-blocks/@description": "Ramène les blocs chapeaux avec une tête de chat, venant du poisson d'avril 2020.", + "cat-blocks/@info-watch": "L'option \"regarder le curseur\" peut impacter les performances quand l'éditeur est ouvert.", + "cat-blocks/@name": "Blocs chat", + "cat-blocks/@settings-name-watch": "Regarder le curseur", + "editor-devtools/@name": "Outils pour développeurs", + "editor-devtools/@settings-name-enableCleanUpPlus": "Améliorer l'option \"Nettoyer les blocs\"", + "editor-devtools/@settings-name-enablePasteBlocksAtMouse": "Coller les blocs à l'emplacement du curseur", + "find-bar/@description": "Ajoute une barre de recherche à côté de l'onglet des son pour rechercher et accéder à des scripts, costumes et sons. Utilisez Ctrl + Flèche gauche et Ctrl + Flèche droite dans la zone de code pour naviguer vers la position précédente ou suivante après avoir utilisé la barre de recherche.", + "find-bar/@info-developer-tools": "Cet addon faisait auparavant partie de l'addon \"outils de développement\" mais a été déplacé ici.", + "find-bar/@name": "Barre de recherche de l'éditeur", + "middle-click-popup/@description": "Cliquez au milieu de la zone de code, utilisez Ctrl+Espace ou Shift+Clic pour faire apparaître une boîte de saisie flottante dans laquelle vous pouvez taper le nom d'un bloc (ou des parties de celui-ci) et faire glisser le bloc dans la zone de code. Maintenez la touche Maj tout en faisant glisser le bloc pour éviter de fermer la boîte lorsque vous ajoutez plusieurs blocs à la fois.", + "middle-click-popup/@info-developer-tools": "Cet addon faisait auparavant partie de l'addon \"developer tools\" mais a été déplacé ici.", + "middle-click-popup/@name": "Insérer des blocs par nom", + "jump-to-def/@description": "Permet d'accéder à la définition d'un bloc personnalisé à l'aide du bouton central de la souris ou de Maj + Clic sur le bloc.", + "jump-to-def/@info-developer-tools": "Cet addon faisait auparavant partie de l'addon \"outils de développement\" mais a été déplacé ici.", + "jump-to-def/@name": "Accéder à la définition d'un bloc personnalisé", + "editor-searchable-dropdowns/@description": "Vous permet d'afficher une liste déroulante pour rechercher des blocs.", + "editor-searchable-dropdowns/@name": "Menus déroulants recherchables", + "data-category-tweaks-v2/@description": "Apporte des améliorations pour la catégorie des blocs de donnée (\"Variables\") dans l'éditeur.", + "data-category-tweaks-v2/@name": "Améliorations pour la catégorie des blocs de donnée", + "data-category-tweaks-v2/@settings-name-moveReportersDown": "Déplacer les blocs au dessus de la liste des variables", + "data-category-tweaks-v2/@settings-name-separateListCategory": "Catégorie séparée pour les listes", + "data-category-tweaks-v2/@settings-name-separateLocalVariables": "Séparer les variables uniques aux sprites", + "block-palette-icons/@description": "Ajoute des icônes dans les cercles colorés qui identifient les catégories de blocs", + "block-palette-icons/@name": "Icônes des catégories de la palette des blocs", + "hide-flyout/@description": "Cache la palette des blocs si elle n'est pas survolée. Cliquez sur l'icône de cadenas pour la maintenir en place temporairement. Sinon, utilisez le mode \"Clic sur la catégorie\".", + "hide-flyout/@info-hoverExplanation": "Le mode \"Survol de la palette\" n'étend seulement la zone affichée. Si vous voulez pouvoir glisser les blocs dans cette zone sans qu'ils soient supprimés, utilisez un des autres modes.", + "hide-flyout/@name": "Masquer automatiquement la palette de blocs", + "hide-flyout/@settings-name-speed": "Vitesse d’animation", + "hide-flyout/@settings-name-toggle": "Activer...", + "hide-flyout/@settings-select-speed-default": "Par défaut", + "hide-flyout/@settings-select-speed-long": "Lent", + "hide-flyout/@settings-select-speed-none": "Instantané", + "hide-flyout/@settings-select-speed-short": "Rapide", + "hide-flyout/@settings-select-toggle-category": "Au clic de la catégorie", + "hide-flyout/@settings-select-toggle-cathover": "Au survol de la catégorie", + "hide-flyout/@settings-select-toggle-hover": "Au survol de la palette", + "hide-flyout/@update": "Cet addon a été révisé et de nombreux bugs ont été corrigés.", + "mediarecorder/@description": "Ajoute un bouton \"démarrer l'enregistrement\" à la barre de menu de l'éditeur qui vous permet d'enregistrer la scène du projet.", + "mediarecorder/@name": "Enregistreur vidéo de projet", + "drag-drop/@description": "Vous permet de glisser des images ou des sons depuis votre explorateur de fichiers directement dans la listes des sprites, des sons et des costumes. Vous pouvez également faire glisser des fichiers texte dans les listes ou dans la boîte de dialogue \"demander et attendre\".", + "drag-drop/@name": "Glisser-déposer de fichier", + "drag-drop/@settings-name-use-hd-upload": "Utiliser les upload HD", + "debugger/@settings-name-log_broadcasts": "Enregistrer les envois de messages à tous les sprites", + "debugger/@settings-name-log_clear_greenflag": "Effacer logs quand le drapeau vert est cliqué", + "debugger/@settings-name-log_clone_create": "Enregistrer les créations de clone", + "debugger/@settings-name-log_failed_clone_creation": "Enregistrer le dépassement du nombre maximal de clones", + "debugger/@settings-name-log_greenflag": "Enregistrer les clics du drapeau vert", + "debugger/@update": "Nouveaux onglets \"Processus\" et \"Performance\" dans la fenêtre du débogueur.", + "pause/@description": "Ajoute un bouton pause a côté du drapeau vert.", + "pause/@name": "Bouton pause", + "mute-project/@description": "Ctrl + Clic sur le drapeau vert pour couper/rétablir le son du projet.", + "mute-project/@info-macOS": "Sur macOS, utilisez la touche Cmd plutôt que la touche Ctrl.", + "mute-project/@name": "Mode lecture de projet en sourdine", + "vol-slider/@description": "Ajoute un curseur de volume à côté du drapeau vert.", + "vol-slider/@name": "Curseur de volume de projet", + "vol-slider/@settings-name-defVol": "Volume par défaut", + "clones/@description": "Ajoute un compteur dans l'éditeur pour voir le compte total de clones.", + "clones/@name": "Compteur de clones", + "clones/@settings-name-showicononly": "Afficher l'icône uniquement", + "mouse-pos/@description": "Affiche la position X/Y de la souris a côté du drapeau vert dans l'éditeur.", + "mouse-pos/@name": "Position de la souris", + "color-picker/@description": "Ajoute une entrée pour code hexa aux palettes de couleurs.", + "color-picker/@name": "Palette de couleurs hexa", + "remove-sprite-confirm/@description": "Vous demande si vous êtes sûrs de supprimer un sprite dans un projet.", + "remove-sprite-confirm/@name": "Confirmation pour la suppression de sprite", + "block-count/@description": "Affiche le nombre total de blocs d'un projet dans la barre de menus de l'éditeur. Faisait auparavant partie de \"nombre de sprites et de scripts\".", + "block-count/@name": "Compteur de Blocs", + "onion-skinning/@description": "Affiche des superpositions transparentes des costumes précédents ou suivants lors de l'édition d'un costume. Contrôlé par des boutons sous l'éditeur de costumes par les boutons de zoom.", + "onion-skinning/@name": "Pelure d'oignon", + "onion-skinning/@settings-name-afterTint": "Couleur du costume suivant", + "onion-skinning/@settings-name-beforeTint": "Couleur du costume précédent", + "onion-skinning/@settings-name-default": "Activer par défaut", + "onion-skinning/@settings-name-layering": "Calque par défaut", + "onion-skinning/@settings-name-mode": "Mode par défaut", + "onion-skinning/@settings-name-next": "Costumes suivants par défaut", + "onion-skinning/@settings-name-opacity": "Opacité (%)", + "onion-skinning/@settings-name-opacityStep": "Différence d'opacité (%)", + "onion-skinning/@settings-name-previous": "Costumes précédents par défaut", + "onion-skinning/@settings-select-layering-behind": "Derrière", + "onion-skinning/@settings-select-layering-front": "Devant", + "onion-skinning/@settings-select-mode-merge": "Combiner les images", + "onion-skinning/@settings-select-mode-tint": "Teinte", + "default-costume-editor-color/@description": "Modifie les couleurs par défaut et la taille du contour utilisées par l'éditeur de costumes.", + "default-costume-editor-color/@name": "Couleurs par défaut de l'éditeur de costumes personnalisables ", + "default-costume-editor-color/@settings-name-fill": "Couleur de remplissage par défaut", + "default-costume-editor-color/@settings-name-persistence": "Conserve la même couleur au lieu de la changer à chaque changement d'outil", + "default-costume-editor-color/@settings-name-stroke": "Couleur de contour par défaut", + "default-costume-editor-color/@settings-name-strokeSize": "Taille de contour par défaut", + "bitmap-copy/@description": "Vous permet de copier une image bitmap de l'éditeur d'images, pour pouvoir la coller ensuite dans d'autres sites ou logiciels.", + "bitmap-copy/@info-norightclick": "\"Clic droit → copier\" n'est pas pris en charge. Vous devez appuyer sur Ctrl + C lorsqu'une image est sélectionnée.", + "bitmap-copy/@name": "Copie des images bitmap", + "2d-color-picker/@description": "Remplace les curseurs de saturation et de luminosité par un sélecteur de couleurs 2D. Maintenez Maj. enfoncé tout en déplaçant le curseur pour changer les valeurs sur un seul axe.", + "2d-color-picker/@name": "Sélecteur de couleurs 2D", + "better-img-uploads/@description": "Ajoute un nouveau bouton au-dessus du bouton \"importer un costume\" qui convertit automatiquement les images bitmap téléchargées en images SVG (vecteur) pour éviter de perdre en qualité.", + "better-img-uploads/@info-notSuitableEdit": "Évitez d'utiliser le bouton de téléchargement HD si vous prévoyez de modifier l'image après le téléchargement.", + "better-img-uploads/@name": "Charger des images en HD", + "better-img-uploads/@settings-name-fitting": "Taille de l'image", + "better-img-uploads/@settings-select-fitting-fill": "Étirer pour remplir la scène", + "better-img-uploads/@settings-select-fitting-fit": "Étirer pour remplir la scène", + "better-img-uploads/@settings-select-fitting-full": "Taille originale", + "pick-colors-from-stage/@description": "Permet à la pipette de l'éditeur de costume de récupérer des couleur de la scène.", + "pick-colors-from-stage/@name": "Sélectionner les couleurs de l'éditeur de costumes", + "custom-block-shape/@description": "Ajustez les marges, le rayon des coins et la hauteur de l'entaille des blocs Scratch.", + "custom-block-shape/@info-paddingWarning": "Diminuer la marge est uniquement visible par vous, donc si vos projets sont vus par d'autres utilisateurs, vos scripts pourraient se chevaucher.", + "custom-block-shape/@name": "Forme de bloc personnalisable", + "custom-block-shape/@preset-description-default2": "Une apparence similaire aux blocs de Scratch 2.0", + "custom-block-shape/@preset-description-default3": "L'apparence classique des blocs de Scratch 3.0", + "custom-block-shape/@preset-description-flat2": "Les blocs de Scratch 2.0 sans entailles et coins arrondis", + "custom-block-shape/@preset-description-flat3": "Les blocs de Scratch 3.0 sans entailles et coins arrondis", + "custom-block-shape/@preset-name-default2": "Blocs 2.0", + "custom-block-shape/@preset-name-default3": "Blocs 3.0", + "custom-block-shape/@settings-name-cornerSize": "Taille des coins (0-300%)", + "custom-block-shape/@settings-name-notchSize": "Hauteur de l'entaille (0-150%)", + "custom-block-shape/@settings-name-paddingSize": "Taille de la marge (50-200%)", + "zebra-striping/@description": "Fait alterner les blocs de la même catégorie entre des nuances plus claires et plus foncées lorsqu'ils sont imbriqués les uns dans les autres. Ceci est également connu sous le nom de \"rayures zébrées\" (\"zebra striping\" en Anglais).", + "zebra-striping/@name": "Alternance de la couleur des blocs imbriqués", + "zebra-striping/@settings-name-intensity": "Intensité (0-100%)", + "zebra-striping/@settings-name-shade": "Ombre", + "zebra-striping/@settings-select-shade-darker": "Plus sombre", + "zebra-striping/@settings-select-shade-lighter": "Plus clair", + "editor-theme3/@description": "Personnalisez la couleur des blocs pour chaque catégorie de bloc dans l'éditeur.", + "editor-theme3/@name": "Couleurs de bloc personnalisables", + "editor-theme3/@preset-description-black": "Rendre l'arrière-plan des blocs noir.", + "editor-theme3/@preset-description-dark": "Version sombre des couleurs par défaut", + "editor-theme3/@preset-description-original": "Les couleurs originales des blocs de Scratch 2.0", + "editor-theme3/@preset-description-tweaks": "Évènements, Contrôles et Blocs personnalisés avec les couleurs inspirées de Scratch 2.0", + "editor-theme3/@preset-name-black": "Noir", + "editor-theme3/@preset-name-dark": "Sombre", + "editor-theme3/@preset-name-original": "Couleurs de la version Scratch 2.0", + "editor-theme3/@preset-name-tweaks": "Ajustements de la version Scratch 3.0", + "editor-theme3/@settings-name-comment-color": "Commentaires", + "editor-theme3/@settings-name-control-color": "contrôle", + "editor-theme3/@settings-name-custom-color": "personnalisé", + "editor-theme3/@settings-name-data-lists-color": "listes", + "editor-theme3/@settings-name-events-color": "événements", + "editor-theme3/@settings-name-input-color": "Entrées de blocs", + "editor-theme3/@settings-name-looks-color": "apparence", + "editor-theme3/@settings-name-motion-color": "mouvement", + "editor-theme3/@settings-name-operators-color": "opérateurs", + "editor-theme3/@settings-name-sensing-color": "capteurs", + "editor-theme3/@settings-name-sounds-color": "son", + "editor-theme3/@settings-name-text": "Couleur du texte", + "editor-theme3/@settings-select-text-black": "Noir", + "editor-theme3/@settings-select-text-colorOnBlack": "Coloré sur fond noir", + "editor-theme3/@settings-select-text-colorOnWhite": "Coloré sur fond blanc", + "editor-theme3/@settings-select-text-white": "Blanc", + "editor-theme3/@update": "Le paramètre \"Commentaires sombres\" de \"Thème sombre de l'éditeur et couleurs personnalisables\" a été déplacé ici et est maintenant personnalisable.", + "custom-block-text/@description": "Change l'épaisseur du texte des blocs et y ajoute éventuellement une ombre.", + "custom-block-text/@name": "Style de texte des blocs personnalisés", + "custom-block-text/@settings-name-bold": "Texte en gras", + "custom-block-text/@settings-name-shadow": "Ombre sous le texte", + "editor-colored-context-menus/@description": "Menus contextuels colorés quand on fait un clic droit sur un bloc.", + "editor-colored-context-menus/@name": "Menus déroulants colorés", + "editor-stage-left/@description": "Déplace la scène à gauche de l'éditeur, comme dans Scratch 2.0.", + "editor-stage-left/@info-reverseOrder": "Pour modifier la position des boutons au-dessus de la scène, utilisez l'addon \"inverser l'ordre des contrôles du projet\".", + "editor-stage-left/@name": "Afficher la scène sur le côté gauche", + "editor-buttons-reverse-order/@description": "Bouge le drapeau vert et le bouton stop sur la droite, et le bouton plein écran à la gauche, comme dans Scratch 2.0", + "editor-buttons-reverse-order/@name": "Inverse l'ordre des contrôles du projet", + "variable-manager/@description": "Ajoute un nouvel onglet à côté de \"sons\" dans l'éditeur pour mettre à jour facilement les variables et les listes.", + "variable-manager/@name": "Gestionnaire de variables", + "variable-manager/@update": "Les éléments de liste peuvent désormais être insérés sans maintenir la touche Maj enfoncée.", + "search-sprites/@description": "Ajoute un champ de recherche au volet des sprites pour les rechercher par nom.", + "search-sprites/@name": "Recherche de sprites par nom", + "sprite-properties/@description": "Cache le panneau de propriétés du sprite par défaut, comme dans Scratch 2.0. Utilisez le bouton info sur le sprite actuellement sélectionné ou double-cliquez sur un sprite pour afficher à nouveau le panneau des propriétés. Pour le réafficher, utilisez le bouton de réduction dans le panneau de propriétés ou double-cliquez sur un sprite.", + "sprite-properties/@name": "Réduire les propriétés des sprites", + "sprite-properties/@settings-name-autoCollapse": "Réduction automatique lorsque la souris quitte le panneau des sprites", + "sprite-properties/@settings-name-hideByDefault": "Réduire le panneau par défaut", + "sprite-properties/@settings-name-transitionDuration": "Vitesse d’animation", + "sprite-properties/@settings-select-transitionDuration-default": "Par défaut", + "sprite-properties/@settings-select-transitionDuration-long": "Lent", + "sprite-properties/@settings-select-transitionDuration-none": "Instantané", + "sprite-properties/@settings-select-transitionDuration-short": "Rapide", + "gamepad/@description": "Interagissez avec les projets en utilisant une manette USB ou Bluetooth.", + "gamepad/@name": "Support manette", + "gamepad/@settings-name-hide": "Cacher le bouton des paramètres lorsque aucune manette n'est détectée", + "editor-sounds/@description": "Produit un son lorsque vous connectez ou supprimez des blocs.", + "editor-sounds/@name": "Effets sonores dans l'éditeur", + "folders/@description": "Ajoute des dossiers au volet sprite, ainsi que dans les listes de costumes et de sons. Pour créer un dossier, faites un clic droit sur n'importe quel sprite et cliquez sur \"créer un dossier\". Appuyez sur un dossier pour l'ouvrir ou le fermer. Faites un clic droit sur un sprite pour voir dans quels dossiers vous pouvez le déplacer, ou faites-le glisser et déposez-le dans un dossier ouvert. Cette fonctionnalité fonctionne en ajoutant \"[NomDuDossier]//\" au début des noms de vos sprites.", + "folders/@info-notice-folders-are-public": "Les utilisateurs ayant cette fonctionnalité activée seront capables de voir les dossiers présents dans vos projets. N'importe qui d'autre verra la liste des sprites normalement (sans les dossiers).", + "folders/@name": "Dossiers de sprites", + "block-switching/@description": "Faites un clic droit sur un bloc pour le remplacer par un autre bloc associé.", + "block-switching/@name": "Échanger de bloc", + "block-switching/@settings-name-control": "Blocs de contrôle", + "block-switching/@settings-name-customargs": "Arguments de bloc personnalisés", + "block-switching/@settings-name-customargsmode": "Options d'arguments de bloc personnalisés affichées", + "block-switching/@settings-name-data": "Blocs de données", + "block-switching/@settings-name-event": "Blocs d'événements", + "block-switching/@settings-name-extension": "Blocs d'extension", + "block-switching/@settings-name-looks": "Blocs d'apparence", + "block-switching/@settings-name-motion": "Blocs de mouvement", + "block-switching/@settings-name-noop": "Afficher la possibilité de remplacer le bloc par lui-même", + "block-switching/@settings-name-operator": "Blocs d'opérateurs", + "block-switching/@settings-name-sensing": "Blocs de capteurs", + "block-switching/@settings-name-sound": "Blocs de son", + "block-switching/@settings-select-customargsmode-all": "Arguments dans tous les blocs personnalisés du sprite", + "block-switching/@settings-select-customargsmode-defOnly": "Arguments dans le bloc personnalisé actuel", + "load-extensions/@description": "Ouvre automatiquement la musique, le stylet et d'autres extensions dans le menu des catégories de blocs de l'éditeur.", + "load-extensions/@name": "Ajout automatique d'extensions", + "load-extensions/@settings-name-music": "Musique", + "load-extensions/@settings-name-pen": "Stylo", + "load-extensions/@settings-name-text2speech": "Synthèse Vocale", + "load-extensions/@settings-name-translate": "Traduire", + "custom-zoom/@description": "Ajuste le minimum, le maximum, la vitesse et la taille de base du zoom dans l'éditeur de code du projet, et cache automatiquement les contrôles.", + "custom-zoom/@name": "Zoom de la zone de code personnalisable", + "custom-zoom/@settings-name-autohide": "Masquer automatiquement les contrôles pour le zoom", + "custom-zoom/@settings-name-maxZoom": "Zoom maximum (100-500%)", + "custom-zoom/@settings-name-minZoom": "Zoom minimum (1-100 %)", + "custom-zoom/@settings-name-startZoom": "Zoom de base (50-500 %)", + "custom-zoom/@settings-name-zoomSpeed": "Vitesse du zoom (50-200 %)", + "custom-zoom/@settings-select-speed-default": "Par défaut", + "custom-zoom/@settings-select-speed-long": "Lent", + "custom-zoom/@settings-select-speed-none": "Instantané", + "custom-zoom/@settings-select-speed-short": "Rapide", + "initialise-sprite-position/@description": "Changer les position par défaut des ordonnées et abscisses lors de la création d'un nouveau costume", + "initialise-sprite-position/@name": "Position d'un nouveau sprite personnalisable", + "initialise-sprite-position/@settings-name-duplicate": "Comportement lors de la duplication de sprites", + "initialise-sprite-position/@settings-name-library": "Place les sprites de la bibliothèque aléatoirement", + "initialise-sprite-position/@settings-name-x": "Abscisse x", + "initialise-sprite-position/@settings-name-y": "Ordonnée y", + "initialise-sprite-position/@settings-select-duplicate-custom": "Envoyer aux valeurs x/y spécifiées", + "initialise-sprite-position/@settings-select-duplicate-keep": "Identique au sprite d'origine", + "initialise-sprite-position/@settings-select-duplicate-randomize": "Randomiser", + "blocks2image/@description": "Faites un clic droit sur la zone de code de l'éditeur pour exporter les blocs sous formes d'images SVG / PNG.", + "blocks2image/@name": "Enregistrer les blocs en tant qu'image", + "remove-curved-stage-border/@description": "Enlève les bords arrondis de la scène, vous permettant de voir les coins.", + "remove-curved-stage-border/@name": "Enlever les bords arrondis de la scène", + "transparent-orphans/@description": "Ajuste la transparence des blocs dans l'éditeur, avec des options séparées pour les blocs orphelins (ceux sans chapeau en haut de la pile) et les blocs qui sont déplacés.", + "transparent-orphans/@name": "Transparence des blocs", + "transparent-orphans/@settings-name-block": "Transparence des blocs (%)", + "transparent-orphans/@settings-name-dragged": "Transparence des blocs déplacés (%)", + "transparent-orphans/@settings-name-orphan": "Transparence des blocs orphelins (%)", + "paint-by-default/@description": "Modifie l'action par défaut des boutons \"Choisir un Sprite/Costume/Backdrop/Son\", qui ouvrent la bibliothèque par défaut.", + "paint-by-default/@name": "Éditeur de costume par défaut", + "paint-by-default/@settings-name-backdrop": "Ajouter un arrière-plan", + "paint-by-default/@settings-name-costume": "Ajouter un costume", + "paint-by-default/@settings-name-sound": "Ajouter un son", + "paint-by-default/@settings-name-sprite": "Ajouter un sprite", + "paint-by-default/@settings-select-backdrop-library": "Bibliothèque", + "paint-by-default/@settings-select-backdrop-paint": "Peindre", + "paint-by-default/@settings-select-backdrop-upload": "Importer", + "paint-by-default/@settings-select-costume-library": "Bibliothèque", + "paint-by-default/@settings-select-costume-paint": "Peindre", + "paint-by-default/@settings-select-costume-upload": "Importer", + "paint-by-default/@settings-select-sound-library": "Bibliothèque", + "paint-by-default/@settings-select-sound-record": "Enregistrer", + "paint-by-default/@settings-select-sound-upload": "Importer", + "paint-by-default/@settings-select-sprite-library": "Bibliothèque", + "paint-by-default/@settings-select-sprite-paint": "Peindre", + "paint-by-default/@settings-select-sprite-upload": "Importer", + "block-cherry-picking/@description": "Ajoutes la possibilité de déplacé les blocs un par un avec la touche Ctrl (plutôt que le script le suivant)", + "block-cherry-picking/@info-flipControls": "Si les \"contrôles inversés\" sont activés, la saisie de blocs individuellement sera activer par défaut. Maintenez la touche Ctrl enfoncée pour faire glisser toute la pile.", + "block-cherry-picking/@info-macContextDisabled": "Sur macOS, utilisé la touche cmd plutôt que la touche Ctrl.", + "block-cherry-picking/@name": "Prendre un seul bloc avec la touche Ctrl", + "block-cherry-picking/@settings-name-invertDrag": "Contrôle inversé", + "hide-new-variables/@description": "N'affiche pas automatiquement les nouvelles variables ou listes.", + "hide-new-variables/@name": "Masquer les nouvelles variables", + "editor-extra-keys/@description": "Ajoute plus de touches aux listes déroulantes des blocs \"touche () pressée ?\" et \"quand la touche () est pressée\", telles qu'entrée, point, virgule, etc. Ces touches marcheront même pour les utilisateurs qui n'ont pas cet addon.", + "editor-extra-keys/@info-experimentalKeysWarn": "Les « touches expérimentales » comprennent le égale, le slash, le point-virgule et plus encore. Ils peuvent ne pas fonctionner sur tous les systèmes d'exploitation ou toutes les configurations de clavier.", + "editor-extra-keys/@info-shiftKeysWarn": "Les « touches Shift ou Maj.» incluent des touches qui nécessitent généralement la touche Shift ou Maj. et une touche numérique, comme le hashtag, le point d'exclamation, etc. Ces touches ne fonctionnent qu'avec le bloc « quand la touche () est pressée» et ne fonctionnent pas sur tous les systèmes d'exploitation ou configurations de clavier.", + "editor-extra-keys/@name": "Prise en charge de touches supplémentaire", + "editor-extra-keys/@settings-name-experimentalKeys": "Afficher les touches expérimentales", + "editor-extra-keys/@settings-name-shiftKeys": "Afficher les touches Maj et Shift.", + "hide-delete-button/@description": "Masque le bouton de suppression (icône de la corbeille) des sprites, costumes et sons. Ils peuvent toujours être supprimés à l'aide du clic droit.", + "hide-delete-button/@name": "Cacher le bouton supprimer", + "hide-delete-button/@settings-name-costumes": "Costumes et fond d'écrans", + "hide-delete-button/@settings-name-sounds": "Sons", + "hide-delete-button/@settings-name-sprites": "Lutin", + "no-script-bumping/@description": "Permet aux scripts d'être déplacés et modifiés sans provoquer le déplacement des scripts qui se chevauchent.", + "no-script-bumping/@name": "Ne pas espacer automatiquement les scripts qui se chevauchent", + "disable-stage-drag-select/@description": "Supprime la possibilité de faire glisser des sprites sur la scène dans l'éditeur, à l'exception de ceux explicitement définis comme déplaçables. Maintenez la touche Maj enfoncée tout en faisant glisser un sprite pour le déplacer normalement.", + "disable-stage-drag-select/@name": "Sprites non glissables dans l'éditeur", + "move-to-top-bottom/@description": "Ajouter une option au menu du clic droit des costumes et des sons pour les déplacer en haut ou en bas de la liste.", + "move-to-top-bottom/@info-developer-tools": "Cet addon faisait auparavant partie de l'addon \"outils de développement\" mais a été déplacé ici.", + "move-to-top-bottom/@name": "Déplacer le costume en haut ou en bas", + "disable-paste-offset/@description": "Collez les éléments copiés à leur position d'origine au lieu de les déplacer légèrement dans l'éditeur de costumes.", + "disable-paste-offset/@info-vanilla": "Ce comportement peut également être obtenu sans cet addon en faisant Alt+clic sur l'élément.", + "disable-paste-offset/@name": "Ne pas déplacer les éléments collés", + "block-duplicate/@description": "Dupliquez rapidement un script en le déplaçant tout en maintenant la touche Alt enfoncée. Maintenez la touche Ctrl enfoncée pour ne dupliquer qu'un seul bloc au lieu de toute la pile attachée en dessous.", + "block-duplicate/@info-mac": "Sur macOS, utilisez la touche Option au lieu de la touche Alt et la touche Commande au lieu de la touche Contrôle.", + "block-duplicate/@name": "Dupliquer le script avec la touche Alt", + "rename-broadcasts/@description": "Ajoute une option pour renommer les messages de diffusion dans le menu déroulant de ces blocs.", + "rename-broadcasts/@name": "Renommer les diffusions", + "swap-local-global/@description": "Ajoute plus d'options lors du renommage d'une variable ou d'une liste existante : permet de basculer entre « Pour tous les sprites » et « Pour ce sprite uniquement » et si les variables sont stockées dans le cloud. Ajoute également une nouvelle option lors d'un clic droit sur une variable/liste pour changer rapidement sa portée.", + "swap-local-global/@name": "Basculer les variables entre \"Pour tous les sprites\" et \"Pour ce sprite uniquement.", + "editor-comment-previews/@description": "Vous permet de prévisualiser le contenu des commentaires en survolant les commentaires et blocs réduits. Vous pouvez l'utiliser pour afficher les commentaires hors écran, identifier un bloc de boucle à partir du bas par son aperçu, insérer de nombreux commentaires longs dans un petit espace, etc.", + "editor-comment-previews/@name": "Prévisualisation des commentaires dans l'éditeur", + "editor-comment-previews/@settings-name-delay": "Durée du délai", + "editor-comment-previews/@settings-name-follow-mouse": "Suivre le pointeur de souris", + "editor-comment-previews/@settings-name-hover-view": "Survolez les commentaires réduits pour prévisualiser", + "editor-comment-previews/@settings-name-hover-view-block": "Survolez les blocs pour prévisualiser les commentaires joints", + "editor-comment-previews/@settings-name-hover-view-procedure": "Survolez les blocs personnalisés pour prévisualiser les commentaires de définition", + "editor-comment-previews/@settings-name-reduce-animation": "Réduire l'animation", + "editor-comment-previews/@settings-name-reduce-transparency": "Réduire la transparence", + "editor-comment-previews/@settings-select-delay-none": "Aucun", + "editor-comment-previews/@settings-select-delay-short": "Court", + "columns/@description": "Divise le menu des catégories de blocs en deux colonnes et le déplace vers le haut de la palette de blocs, comme dans Scratch 2.0", + "columns/@name": "Menu catégorie à deux colonnes", + "number-pad/@description": "Afficher l'entrée du pavé numérique de Scratch lors de l'édition des champs numériques sur tous les appareils, au lieu de seulement l'afficher sur les appareils à écran tactile.", + "number-pad/@info-explanation": "Un pavé numérique s'affichera lors de l'édition des entrées numériques de certains blocs, comme \"set x to\".", + "number-pad/@name": "Toujours afficher le pavé numérique", + "script-snap/@description": "Les script vont automatiquement s'aligner sur les points de l'arrière-plan.", + "script-snap/@name": "Aligner les scripts sur la grille", + "script-snap/@preset-name-default": "Par défaut", + "script-snap/@preset-name-half-block": "Demi-bloc", + "script-snap/@preset-name-whole-block": "Bloc entier", + "script-snap/@settings-name-grid": "Taille de la grille (pixels)", + "fullscreen/@description": "Corrige certains effets indésirables dans le mode plein écran des projets, l'ouvre dans le mode plein écran de votre navigateur et masque la barre d'outils du drapeau vert.", + "fullscreen/@info-hideToolbarNotice": "Si vous choisissez de masquer la barre d'outils, n'oubliez pas que vous pouvez utiliser la touche Échap pour quitter le mode plein écran du projet", + "fullscreen/@name": "Plein écran amélioré", + "fullscreen/@settings-name-browserFullscreen": "Ouvrir le projet en mode plein écran", + "fullscreen/@settings-name-hideToolbar": "Masquer la bar d'outils en grand écran", + "hide-stage/@description": "Ajoute un bouton à côté des boutons \"petite scène\" et \"grande scène\" qui cache la scène et la liste des sprites, rendant la zone de code plus grande.", + "hide-stage/@name": "Cacher la scène et la liste des sprites", + "editor-stepping/@description": "Ajoute un contour bleu sur les blocs qui sont actuellement exécutés dans un projet.", + "editor-stepping/@name": "Bordure du bloc executé", + "editor-stepping/@settings-name-highlight-color": "Couleurs de surbrillance" +} \ No newline at end of file diff --git a/src/addons/addons-l10n-settings/hu.json b/src/addons/addons-l10n-settings/hu.json new file mode 100644 index 0000000000000000000000000000000000000000..7902291187d415690f2567c5bfd3aaadd93d3cc0 --- /dev/null +++ b/src/addons/addons-l10n-settings/hu.json @@ -0,0 +1,344 @@ +{ + "cat-blocks/@description": "Visszahozza a szerkesztÅ‘be a macskás kinézetű kezdÅ‘blokkokat a 2020-as Ãprilisi Bolondok napról.", + "cat-blocks/@info-watch": "A \"Figyeld az egérmutatót\" opció hatással lehet a teljesítményre, miközben a szerkesztÅ‘ meg van nyitva.", + "cat-blocks/@name": "Cica-blokkok", + "cat-blocks/@settings-name-watch": "Figyeld az egérmutatót", + "editor-devtools/@description": "Hozzáad új menüopciókat a szerkesztÅ‘höz: másolj/illessz be blokkokat, jobb rendrakás, és még sok más!", + "editor-devtools/@name": "FejlesztÅ‘i eszközök", + "editor-devtools/@settings-name-enableCleanUpPlus": "Fejlesztett \"Rendrakás\"", + "editor-devtools/@settings-name-enablePasteBlocksAtMouse": "Blokkok beillesztése a kurzorhoz", + "find-bar/@description": "Hozzáad egy keresÅ‘mezÅ‘t a hang fültÅ‘l jobbra, ami megkeresi és odavisz egy adott kód részhez, jelmezhez vagy hanghoz. Használd a Ctrl+Bal-t és Ctrl+Jobb-ot a kód mezÅ‘ben, hogy navigálj az elÅ‘fordulások között.", + "find-bar/@info-developer-tools": "Ez a bÅ‘vítmény korábban a \"FejlesztÅ‘i eszközök\" bÅ‘vítmény része volt, de mostanra át lett helyezve ide.", + "find-bar/@name": "SzerkesztÅ‘ keresÅ‘mezÅ‘", + "middle-click-popup/@description": "KözépsÅ‘ egérgombbal kattintás a kódterületre, Ctrl+Szóköz vagy Shift+Kattintás használatakor felugrik egy lebegÅ‘ bemeneti mezÅ‘, ahova be lehet írni egy blokk nevét (vagy nevének részeit), majd azt ki is lehet a kódterületre húzni. Tartsd a Shiftet lenyomva egy blokk kihúzása közben, hogy nyitva maradjon a mezÅ‘, s több blokk is hozzáadható lehessen egyszerre.", + "middle-click-popup/@info-developer-tools": "Ez a kiegészítÅ‘ korábban a „fejlesztÅ‘i eszközök†része volt, de most ide költözött.", + "middle-click-popup/@name": "Blokkok beillesztése név alapján", + "jump-to-def/@description": "Megengedi, hogy egy egyéni blokk definiálásához ugorj a középsÅ‘ egérgombbal, vagy Shift+Kattintással az adott blokkon.", + "jump-to-def/@info-developer-tools": "Ez a bÅ‘vítmény korábban a \"FejlesztÅ‘i eszközök\" bÅ‘vítmény része volt, de mostanra át lett helyezve ide.", + "jump-to-def/@name": "Ugrás egyéni blokk definiálásához", + "editor-searchable-dropdowns/@description": "Megengedi, hogy keress a blokkok legördülÅ‘ menüiben.", + "editor-searchable-dropdowns/@name": "Keresés a legördülÅ‘ menükben", + "data-category-tweaks-v2/@description": "Igazításokat hajt végre az Adat (\"Változók\") blokk kategórián.", + "data-category-tweaks-v2/@name": "Adat kategória igazítások", + "data-category-tweaks-v2/@settings-name-moveReportersDown": "Adat blokkok mozgatása a váltózó lista fölé", + "data-category-tweaks-v2/@settings-name-separateListCategory": "Különálló Lista Kategória", + "data-category-tweaks-v2/@settings-name-separateLocalVariables": "Adott szereplÅ‘ változóinak elkülönítése", + "block-palette-icons/@description": "Ikonokat helyez el a színes körökben, amelyekkel könnyebben azonosíthatod a kategóriákat.", + "block-palette-icons/@name": "Blokk választó kategória ikonok", + "hide-flyout/@description": "Elrejti a blokk választót, ha nem felette van a kurzor. Kattints a lakat ikonra, hogy átmenetileg zárold a pozícióját. Alternatívaként használd a \"kategória kattintásra\" módot.", + "hide-flyout/@info-hoverExplanation": "A \"kurzor a választó felület felett\" mód csak a látóteredet növeli meg. Ha oda is szeretnél húzni blokkokat a törlÅ‘désük nélkül, akkor használj egy másik módot.", + "hide-flyout/@name": "Blokk választó automatikus elrejtése", + "hide-flyout/@settings-name-speed": "Animáció sebessége", + "hide-flyout/@settings-name-toggle": "Váltás ha...", + "hide-flyout/@settings-select-speed-default": "Alap", + "hide-flyout/@settings-select-speed-long": "Lassú", + "hide-flyout/@settings-select-speed-none": "Azonnali", + "hide-flyout/@settings-select-speed-short": "Gyors", + "hide-flyout/@settings-select-toggle-category": "Kategória kattintásra", + "hide-flyout/@settings-select-toggle-cathover": "Kurzor a kategóriák felett", + "hide-flyout/@settings-select-toggle-hover": "Kurzor a választó felület felett", + "hide-flyout/@update": "Erre a kiegészítÅ‘re átdolgozás került sorra, amely során sok hiba javítva lett.", + "mediarecorder/@description": "Hozzáad egy \"felvétel indítása\" gombot a szerkesztÅ‘ menü sorába, ami megengedi, hogy felvedd a projekt színpadját.", + "mediarecorder/@name": "Projekt videó felvevÅ‘", + "drag-drop/@description": "ElérhetÅ‘vé teszi, hogy behúzzál képeket és hangokat a fájlkezelÅ‘dbÅ‘l a szereplÅ‘k táblába, vagy a jelmezek/hangok nevű oldalsávba. Még szövegfájlokat is be tudsz húzni listákba, vagy a \"kérdezd meg és várj\" blokk bemeneteli szövegét.", + "drag-drop/@name": "Fájlok behúzása", + "drag-drop/@settings-name-use-hd-upload": "Használja a HD feltöltést", + "debugger/@name": "HibakeresÅ‘", + "debugger/@settings-name-log_broadcasts": "Üzenetküldések naplózása", + "debugger/@settings-name-log_clear_greenflag": "Zöld zászlóra való kattintáskor jegyzetek kitörlése", + "debugger/@settings-name-log_clone_create": "Másolat-készítés feljegyzése", + "debugger/@settings-name-log_failed_clone_creation": "Klónok maximum számának elérésének feljegyzése", + "debugger/@settings-name-log_greenflag": "Zöld zászlóra való kattintás naplózása", + "debugger/@update": "Új \"Szálak\" és \"Teljesítmény\" fülek a hibakeresÅ‘ ablakban.", + "pause/@description": "Hozzáad egy megállítás gombot a zöld zászló mellé.", + "pause/@name": "Megállítás gomb", + "mute-project/@description": "Ctrl+Kattints a zöld zászlóra, hogy némítsd/feloldd a némítást egy projektben.", + "mute-project/@info-macOS": "MacOS-en használja a Cmd billentyűt a Ctrl helyett.", + "mute-project/@name": "Némított projekt lejátszó mód", + "vol-slider/@description": "Hozzáad egy hangcsúszkát a zöld zászló mellé", + "vol-slider/@name": "Projekt-hangerÅ‘csúszka", + "vol-slider/@settings-name-defVol": "Alapértelmezett hangerÅ‘", + "clones/@description": "Hozzáad egy számlálót a szerkesztÅ‘höz a színpad fölé, ami megmutatja a másolatok számát.", + "clones/@name": "Másolatszámláló", + "clones/@settings-name-showicononly": "Csak az ikon megjelenítése", + "mouse-pos/@description": "Megjeleníti az egered x és y helyét a színpad fölött a szerkesztÅ‘ben.", + "mouse-pos/@name": "Egér pozíciója", + "color-picker/@description": "Hozzáad egy hexadecimális kódbemenetet a színválasztókhoz.", + "color-picker/@name": "Hex szín választó", + "remove-sprite-confirm/@description": "Megkérdezi egy projekten belüli szereplÅ‘ törölésénél, hogy biztos vagy-e benne.", + "remove-sprite-confirm/@name": "SzereplÅ‘ törlésének megerÅ‘sítése", + "block-count/@description": "Megmutatja hány blokk van összesen egy projektben a szerkesztÅ‘ menü bárjában. Korábban a \"szereplÅ‘k és kódok száma\" részét képezte.", + "block-count/@name": "Blokkok száma", + "onion-skinning/@description": "ÃttetszÅ‘ rétegekként mutatja az elÅ‘zÅ‘ illetve következÅ‘ jelmezeket, amikor jelmezt szerkesztesz. Gombokkal irányítható, amik a jelmez szerkesztÅ‘ alatt vannak a zoom gombok mellett.", + "onion-skinning/@settings-name-afterTint": "KövetkezÅ‘ jelmez árnyalata", + "onion-skinning/@settings-name-beforeTint": "ElÅ‘zÅ‘ jelmez árnyalata", + "onion-skinning/@settings-name-default": "AlapvetÅ‘ engedélyezés", + "onion-skinning/@settings-name-layering": "AlapvetÅ‘ rétegezés", + "onion-skinning/@settings-name-mode": "AlapvetÅ‘ mód", + "onion-skinning/@settings-name-next": "AlapvetÅ‘ következÅ‘ jelmezek", + "onion-skinning/@settings-name-opacity": "Ãtlátszatlanság (%)", + "onion-skinning/@settings-name-opacityStep": "Ãtlátszatlanság Változás (%)", + "onion-skinning/@settings-name-previous": "AlapvetÅ‘ elÅ‘zÅ‘ jelmezek", + "onion-skinning/@settings-select-layering-behind": "Mögé", + "onion-skinning/@settings-select-layering-front": "Elé", + "onion-skinning/@settings-select-mode-merge": "Képek összeolvasztása", + "onion-skinning/@settings-select-mode-tint": "Szín árnyalás", + "paint-snap/@description": "Illessz objektumokat a körülvevÅ‘ mezÅ‘khöz és vektorvégpontokhoz a jelmezszerkesztÅ‘ben .", + "paint-snap/@name": "Illesztés a jelmezszerkesztÅ‘ben", + "paint-snap/@settings-name-boxCenter": "Illesztés a kijelölés középpontjától", + "paint-snap/@settings-name-boxCorners": "Illesztés a kijelölés sarkaitól", + "paint-snap/@settings-name-boxEdgeMids": "Illesztés a kijelölés széleinek középpontjától", + "paint-snap/@settings-name-enable-default": "Automatikus bekapcsolása", + "paint-snap/@settings-name-guide-color": "Illesztésmutató színe", + "paint-snap/@settings-name-objectCenters": "Illesztés az objektumok középpontjához", + "paint-snap/@settings-name-objectCorners": "Illesztés az objektumok sarkaihoz", + "paint-snap/@settings-name-objectEdges": "Illesztés az objektumok széleihez", + "paint-snap/@settings-name-objectMidlines": "Illesztés az objektumok középvonalához", + "paint-snap/@settings-name-pageAxes": "Illesztés a lap x és y tengelyeihez", + "paint-snap/@settings-name-pageCenter": "Illesztés a lap középpontjához", + "paint-snap/@settings-name-pageCorners": "Illesztés a lap sarkaihoz", + "paint-snap/@settings-name-pageEdges": "Illesztés a lap széleihez", + "paint-snap/@settings-name-threshold": "Illesztési távolság", + "default-costume-editor-color/@description": "Megváltoztatja az alap színeit és körvonal méreteit a jelmezszerkesztÅ‘nek.", + "default-costume-editor-color/@name": "Személyre szabható alapértelmezett jelmezszerkesztÅ‘színek", + "default-costume-editor-color/@settings-name-fill": "AlapkitöltÅ‘szín", + "default-costume-editor-color/@settings-name-persistence": "Használja az elÅ‘zÅ‘ színt eszközváltásnál, alaphelyzetbe állás helyett", + "default-costume-editor-color/@settings-name-stroke": "Alapkörvonalszín", + "default-costume-editor-color/@settings-name-strokeSize": "Alapkörvonal-méret", + "bitmap-copy/@description": "Engedélyezi, hogy kimásolj a rendszer vágólapjára egy bitmap képet a Scratch szerkesztÅ‘jében, amit aztán be tudsz illeszteni más weboldalaknál, vagy alkalmazásoknál.", + "bitmap-copy/@info-norightclick": "A \"Jobb kattintás → másolás\" nem támogatott. Ctrl+C-t kell nyomjál, miközben ki van jelölve egy bitmap kép.", + "bitmap-copy/@name": "Bitmap képek másolása", + "2d-color-picker/@description": "Kicseréli egy 2D-s színválasztóra a telítettség és fényerÅ‘ csúszkákat a szereplÅ‘k szerkesztÅ‘jében. Tartsd lenyomva a Shiftet miközben húzod az egérmutatót, hogy csak egy tengely mentén változtassad a színértéket.", + "2d-color-picker/@name": "2D-s színválasztó", + "better-img-uploads/@description": "Hozzáad egy új gombot a \"Jelmez feltöltése\" gomb fölé, ami automatikusan átalakítja a feltöltött bitmap képeket SVG (vektorgrafikus formátum) képekké, így azok nem vesztenek a minÅ‘ségükbÅ‘l.", + "better-img-uploads/@info-notSuitableEdit": "Kerüld el a HD feltöltés opciót, ha még módosítani szeretnéd utána a képet.", + "better-img-uploads/@name": "HD minÅ‘ségű képek feltöltése", + "better-img-uploads/@settings-name-fitting": "Kép méretezése", + "better-img-uploads/@settings-select-fitting-fill": "Kinyújtás, hogy kitöltse a színpadot", + "better-img-uploads/@settings-select-fitting-fit": "Összezsugorítással illesztés a színpadhoz", + "better-img-uploads/@settings-select-fitting-full": "Eredeti méret", + "pick-colors-from-stage/@description": "LehetÅ‘vé teszi a jelmez szerkesztÅ‘ pipetta eszközének, hogy a színpadról is felvehessen színeket.", + "pick-colors-from-stage/@name": "Háttér színének választása a jelmez szerkesztÅ‘ben", + "custom-block-shape/@description": "Ãllítsd be a kipárnázást, sarok sugarat, és a bemetszés magasságát a blokkokon.", + "custom-block-shape/@info-paddingWarning": "A kipárnázás méretének csökkentése csak általad látható, szóval ha a projektjeidet mások tekintik meg, a kódjaid lehet, hogy fedni fogják egymást.", + "custom-block-shape/@name": "Személyre szabható blokk forma", + "custom-block-shape/@preset-description-default2": "Egy olyan kinézet, amely hasonlít a Scratch 2.0 blokkjaihoz", + "custom-block-shape/@preset-description-default3": "A Scratch 3.0 alapértelmezett blokk kinézetei", + "custom-block-shape/@preset-description-flat2": "A Scratch 2.0 blokkjai bemetszés és sarkak nélkül", + "custom-block-shape/@preset-description-flat3": "A Scratch 3.0 blokkjai bemetszés és sarkak nélkül", + "custom-block-shape/@preset-name-default2": "2.0ás blokkok", + "custom-block-shape/@preset-name-default3": "3.0-ás blokkok", + "custom-block-shape/@preset-name-flat2": "2.0 Lapos", + "custom-block-shape/@preset-name-flat3": "3.0 Lapos", + "custom-block-shape/@settings-name-cornerSize": "Sarok méret (0-300%)", + "custom-block-shape/@settings-name-notchSize": "Bemetszés magassága (0-150%)", + "custom-block-shape/@settings-name-paddingSize": "Kipárnázás mérete (50-200%)", + "zebra-striping/@description": "Használatkor az ugyanazon blokk kategóriából származó blokkok színei váltakoznak világosabb és sötétebb árnyalatok között, amikor egymásba vannak ágyazva. Ezt úgy is nevezik, hogy zebra csíkozás.", + "zebra-striping/@name": "Váltakozó egymásba ágyazott blokk színek", + "zebra-striping/@settings-name-intensity": "Intenzitás (0-100%)", + "zebra-striping/@settings-name-shade": "Ãrnyalat", + "zebra-striping/@settings-select-shade-darker": "Sötétebb", + "zebra-striping/@settings-select-shade-lighter": "Világosabb", + "editor-theme3/@description": "Szerkeszd a blokkok színeit kategóriánként a szerkesztÅ‘ben.", + "editor-theme3/@name": "Személyre szabható blokk színek", + "editor-theme3/@preset-description-black": "Sötétté teszi a blokkok háttereit", + "editor-theme3/@preset-description-dark": "Az alapvetÅ‘ színek sötétebb változatai", + "editor-theme3/@preset-description-original": "A Scratch 2.0 eredeti blokk színei", + "editor-theme3/@preset-description-tweaks": "Események, Vezérlés és Blokkjaim kategóriák blokkjai 2.0 inspirálta színekkel.", + "editor-theme3/@preset-name-black": "Fekete", + "editor-theme3/@preset-name-dark": "Sötét", + "editor-theme3/@preset-name-original": "2.0-ás Színek", + "editor-theme3/@preset-name-tweaks": "3.0 Kis Igazítással", + "editor-theme3/@settings-name-Pen-color": "BÅ‘vítmények", + "editor-theme3/@settings-name-comment-color": "Kommentek", + "editor-theme3/@settings-name-control-color": "Vezérlés", + "editor-theme3/@settings-name-custom-color": "Blokkjaim", + "editor-theme3/@settings-name-data-color": "Változók", + "editor-theme3/@settings-name-data-lists-color": "Listák", + "editor-theme3/@settings-name-events-color": "Események", + "editor-theme3/@settings-name-input-color": "Blokk bemenetek", + "editor-theme3/@settings-name-looks-color": "Kinézet", + "editor-theme3/@settings-name-motion-color": "Mozgás", + "editor-theme3/@settings-name-operators-color": "Műveletek", + "editor-theme3/@settings-name-sensing-color": "Érzékelés", + "editor-theme3/@settings-name-sounds-color": "Hangok", + "editor-theme3/@settings-name-text": "Szöveg színe", + "editor-theme3/@settings-select-text-black": "Fekete", + "editor-theme3/@settings-select-text-colorOnBlack": "Színes fekete háttéren", + "editor-theme3/@settings-select-text-colorOnWhite": "Színes fehér háttéren", + "editor-theme3/@settings-select-text-white": "Fehér", + "editor-theme3/@update": "A \"Sötét kommentek\" beállítás a \"SzerkesztÅ‘ sötét mód és személyre szabható színek\" bÅ‘vítménybÅ‘l ide lett áthelyezve és most már személyre szabható.", + "custom-block-text/@description": "Megváltoztatja a szövegek vastagságát a blokkokon és ezen kívül opcionális árnyékot is adhatsz a szövegekhez.", + "custom-block-text/@name": "Személyre szabható blokk szöveg stílus", + "custom-block-text/@settings-name-bold": "Félkövér szöveg", + "custom-block-text/@settings-name-shadow": "Ãrnyék a szöveg alatt", + "editor-colored-context-menus/@description": "Ãtszínezi a blokkok jobb kattintásra megjelenÅ‘ helyi menüjét.", + "editor-colored-context-menus/@name": "Színezett helyi menük", + "editor-stage-left/@description": "Ãthelyezi a színpadot a szerkesztÅ‘ baloldalára, ahogy a Scratch 2.0-ban volt.", + "editor-stage-left/@info-reverseOrder": "A színpad fölötti gombok elhelyezésének változtatásához használd a „Projektirányító gombok fordított sorrendben†kiegészítÅ‘t.", + "editor-stage-left/@name": "Színpad áthelyezése bal oldalra", + "editor-buttons-reverse-order/@description": "Ãthelyezi a zöld zászlót és a megállító gombot a jobboldalra, valamint a teljes képernyÅ‘ gombot pedig baloldalra, ahogy a Scratch 2.0-ban volt.", + "editor-buttons-reverse-order/@name": "Projektirányító gombok fordított sorrendben", + "variable-manager/@description": "Hozzáad egy fület a \"hangok\" mellé a szerkesztÅ‘ben, melyben könnyen frissítheted a változókat és listákat.", + "variable-manager/@name": "Változó kezelÅ‘", + "variable-manager/@update": "Lista elemek már Shift nyomvatartása nélkül is beszúrhatók.", + "search-sprites/@description": "Hozzáad egy keresÅ‘ mezÅ‘t a szereplÅ‘ kijelzÅ‘hÅ‘z, hogy kereshess a szereplÅ‘k között név alapján.", + "search-sprites/@name": "SzereplÅ‘k keresése név alapján", + "sprite-properties/@description": "Elrejti alapértelmezetten a szereplÅ‘jellemzÅ‘k panelt, mint a Scratch 2.0-ban. Használd az információs gombot az éppen kiválasztott szereplÅ‘nél vagy kattints duplán egy szereplÅ‘re, hogy elÅ‘bújtasd ismét a tulajdonságokat mutató panelt. Az újra-elrejtéséhez pedig használd az összecsukó gombot a panelen, vagy kattints kétszer egy szereplÅ‘re.", + "sprite-properties/@name": "Összecsukható szereplÅ‘jellemzÅ‘k", + "sprite-properties/@settings-name-autoCollapse": "Csukódjon automatikusan, amikor az egér elhagyja a szereplÅ‘i panelt", + "sprite-properties/@settings-name-hideByDefault": "Panel összecsukása alapból", + "sprite-properties/@settings-name-transitionDuration": "Animáció sebessége", + "sprite-properties/@settings-select-transitionDuration-default": "Alapértelmezett", + "sprite-properties/@settings-select-transitionDuration-long": "Lassú", + "sprite-properties/@settings-select-transitionDuration-none": "Azonnali", + "sprite-properties/@settings-select-transitionDuration-short": "Gyors", + "gamepad/@description": "Lépj kapcsolatba projektekkel USB, vagy Bluetooth kontroller/gamepad használata által.", + "gamepad/@name": "Gamepad támogatás", + "gamepad/@settings-name-hide": "Tüntesd el a beállítások gombot, amikor nem érzékelhetÅ‘k kontrollerek", + "editor-sounds/@description": "Hangeffekteket játszik le, amikor csatlakoztatsz, vagy kitörölsz blokkokat.", + "editor-sounds/@name": "SzerkesztÅ‘ hangeffektekkel", + "folders/@description": "Mappákat ad a szereplÅ‘ kijelzÅ‘höz, illetve a jelmez és hang listához. Mappa létrehozásához, jobb kattints bármely szereplÅ‘re és kattints a \"mappa létrehozása\" lehetÅ‘ségre. Kattints egy mappára, hogy megnyisd vagy összezárd azt. Jobb kattints egy szereplÅ‘re, hogy lásd milyen mappákba tudod átmozgatni, vagy csak húzd az egérrel egy nyitott mappába. Ez a funkció a szerepelÅ‘k neveinek elé a következÅ‘ hozzáadásával érhetÅ‘ el: \"[mappa neve]//\".", + "folders/@info-notice-folders-are-public": "Azok a felhasználók, akiknek be van kapcsolva ez a bÅ‘vítmény láthatják a mappákat a projektjeidben. Bárki más normálisan fogja látni a szereplÅ‘ kijelzÅ‘t (mappák nélkül).", + "folders/@name": "SzereplÅ‘ mappák", + "block-switching/@description": "Jobb klikk egy blokkra, hogy lecserélhesd egy hozzá kapcsolódó blokkra.", + "block-switching/@name": "Blokk lecserélés", + "block-switching/@settings-name-control": "Vezérlés blokkok", + "block-switching/@settings-name-customargs": "Saját blokk független változói", + "block-switching/@settings-name-customargsmode": "Mutatott saját blokk bemenetválasztása", + "block-switching/@settings-name-data": "Adat blokkok", + "block-switching/@settings-name-event": "Esemény blokkok", + "block-switching/@settings-name-extension": "KiegészítÅ‘ blokkok", + "block-switching/@settings-name-looks": "Kinézet blokkok", + "block-switching/@settings-name-motion": "Mozgás blokkok", + "block-switching/@settings-name-noop": "Saját magára állító opció mutatása", + "block-switching/@settings-name-operator": "Művelet blokkok", + "block-switching/@settings-name-sensing": "Érzékelés blokkok", + "block-switching/@settings-name-sound": "Hang blokkok", + "block-switching/@settings-select-customargsmode-all": "A szereplÅ‘ összes bemenetei között", + "block-switching/@settings-select-customargsmode-defOnly": "Csak az adott saját blokknak bemenetei között", + "load-extensions/@description": "Automatikusan megjeleníti a zene, toll, és más bÅ‘vítményeket a szerkesztÅ‘ oldalsó blokk kategóriás menüjében.", + "load-extensions/@name": "Automatikusan add hozzá a bÅ‘vítményeket", + "load-extensions/@settings-name-music": "Zene", + "load-extensions/@settings-name-pen": "Toll", + "load-extensions/@settings-name-text2speech": "Text to Speech (Szöveget Beszéddé)", + "load-extensions/@settings-name-translate": "Fordítás", + "custom-zoom/@description": "Válassz egyedi beállításokat a kódterület nagyításának minimumára, maximumára, sebességére és indító méretére, valamint rejtsd el az irányító gombokat hozzá", + "custom-zoom/@name": "Szemelyre szabható kódterület nagyítása", + "custom-zoom/@settings-name-autohide": "Nagyítás irányítógombjainak automatikus elrejtése", + "custom-zoom/@settings-name-maxZoom": "Maximum nagyítás (100-500%)", + "custom-zoom/@settings-name-minZoom": "Minimum nagyítás (1-100%)", + "custom-zoom/@settings-name-speed": "Animáció sebességének automatikus elrejtése", + "custom-zoom/@settings-name-startZoom": "Kezdeti nagyítás (50-500%)", + "custom-zoom/@settings-name-zoomSpeed": "Nagyítási sebesség (50-200%)", + "custom-zoom/@settings-select-speed-default": "Alapértelmezett", + "custom-zoom/@settings-select-speed-long": "Lassú", + "custom-zoom/@settings-select-speed-none": "Azonnali", + "custom-zoom/@settings-select-speed-short": "Gyors", + "initialise-sprite-position/@description": "Megváltoztatja az alapértelmezett x/y pozícióját az újonnan készített szereplÅ‘knek", + "initialise-sprite-position/@name": "Személyre szabható pozíció az új szereplÅ‘knek", + "initialise-sprite-position/@settings-name-duplicate": "SzereplÅ‘duplikáláskori viselkedés", + "initialise-sprite-position/@settings-name-library": "Könyvtárból betöltött szereplÅ‘k pozíciójának véletlenszerűsítése", + "initialise-sprite-position/@settings-name-x": "X pozíció", + "initialise-sprite-position/@settings-name-y": "Y pozíció", + "initialise-sprite-position/@settings-select-duplicate-custom": "Meghatározott x/y értékekhez küldés", + "initialise-sprite-position/@settings-select-duplicate-keep": "Az eredeti szereplÅ‘nek megfelelÅ‘nél tartása", + "initialise-sprite-position/@settings-select-duplicate-randomize": "Véletlenszerűsítés", + "blocks2image/@description": "Jobb kattintás a kódterületre, hogy exportálni lehessen a blokkokat SVG/PNG képekként", + "blocks2image/@name": "Blokkokmentése képként", + "remove-curved-stage-border/@description": "Eltávolítja az íveltségét a színpad széleinek, így láthatóvá téve a sarkokban lévÅ‘ dolgokat is.", + "remove-curved-stage-border/@name": "Színpad lekerekített sarkainak eltávolítása", + "transparent-orphans/@description": "Ãllítsd be kedvedre az átlátszóságát a blokkoknak a szerkesztÅ‘ben különféle opciókkal a magányos blokkok részére (akik nem kapcsolódnak kezdeti blokkhoz) és a húzott blokkok részére is.", + "transparent-orphans/@name": "Blokk átlátszóság", + "transparent-orphans/@settings-name-block": "Blokk átlátszóság (%)", + "transparent-orphans/@settings-name-dragged": "Húzottak átlátszósága (%)", + "transparent-orphans/@settings-name-orphan": "Magányosok átlátszósága (%)", + "paint-by-default/@description": "Ãtéllítja az alapvetÅ‘ műveletet a \"Válassz SzereplÅ‘t/Jelmezt/Hátteret/Hangot\" gomboknak, amik alapvetÅ‘en a könyvtárat nyitják meg.", + "paint-by-default/@name": "Jelmez festése alapvetÅ‘en", + "paint-by-default/@settings-name-backdrop": "Háttér hozzáadása", + "paint-by-default/@settings-name-costume": "Jelmez hozzáadása", + "paint-by-default/@settings-name-sound": "Hang hozzáadása", + "paint-by-default/@settings-name-sprite": "SzereplÅ‘ hozzáadása", + "paint-by-default/@settings-select-backdrop-library": "Könyvtár", + "paint-by-default/@settings-select-backdrop-paint": "Festés", + "paint-by-default/@settings-select-backdrop-surprise": "Meglepetés", + "paint-by-default/@settings-select-backdrop-upload": "Feltöltés", + "paint-by-default/@settings-select-costume-library": "Könyvtár", + "paint-by-default/@settings-select-costume-paint": "Festés", + "paint-by-default/@settings-select-costume-surprise": "Meglepetés", + "paint-by-default/@settings-select-costume-upload": "Feltöltés", + "paint-by-default/@settings-select-sound-library": "Könyvtár", + "paint-by-default/@settings-select-sound-record": "Felvétel", + "paint-by-default/@settings-select-sound-surprise": "Meglepetés", + "paint-by-default/@settings-select-sound-upload": "Feltöltés", + "paint-by-default/@settings-select-sprite-library": "Könyvtár", + "paint-by-default/@settings-select-sprite-paint": "Festés", + "paint-by-default/@settings-select-sprite-surprise": "Meglepetés", + "paint-by-default/@settings-select-sprite-upload": "Feltöltés", + "block-cherry-picking/@description": "Hozzáadja a képességet, hogy kihúzhass egy blokkot egy kódsor közepérÅ‘l, (ahelyett, hogy az egész parancssort mozgatnád, ami alatta van) amíg a Ctrl-t nyomva tartod.", + "block-cherry-picking/@info-flipControls": "Ha a \"fordított irányítás\" engedélyezve van, akkor a blokkok egyedülálló megfogása alapvetÅ‘ viselkedés lesz. Tartsd lenyomva a Ctrl-t, ha az egész kódsort mozgatni szeretnéd.", + "block-cherry-picking/@info-macContextDisabled": "A macOS-on, használd a Cmd gombot a Ctrl helyett.", + "block-cherry-picking/@name": "Egy blokk megfogása Ctrl gombbal", + "block-cherry-picking/@settings-name-invertDrag": "Fordított irányítás", + "hide-new-variables/@description": "Ne készíts automatikusan kijelzÅ‘ket az újonnan készített változóknak vagy listáknak.", + "hide-new-variables/@name": "Új változók elrejtése", + "editor-extra-keys/@description": "Több billentyűvel bÅ‘víti a „() gomb lenyomva?†és a „() gomb lenyomásakor†blokk lenyíló listáját, mint például sz enterrel, a ponttal, a vesszÅ‘vel, de még többel is. Ezek a gombok működni fognak azoknak a szereplÅ‘knek is, akiknek nincs meg ez a kiegészítÅ‘", + "editor-extra-keys/@info-experimentalKeysWarn": "A \"kísérleti gombok\" tartalmaz egyenlÅ‘ségjelet, perjelet, pontosvesszÅ‘t és még pár irásjelet. Ezek lehet nem működnek minden operációs rendszeren vagy billentyűzet nyelvezetben.", + "editor-extra-keys/@info-shiftKeysWarn": "A \"Shift billentyűk\" tartalmaznak olyan billentyűket, amiket a Shift billentyű nyomvatartásakor lehet csak begépelni, ilyen a hashtag, a felkijáltójel és még pár. Ezek a billentyűk csak a \"() gomb lenyomásakor\" bolkkal működnek és nem működnek minden operációs rendszeren illetve billentyűzeten.", + "editor-extra-keys/@name": "Extra billentyűopciók", + "editor-extra-keys/@settings-name-experimentalKeys": "Mutassa a kísérleti billentyűket is", + "editor-extra-keys/@settings-name-shiftKeys": "Mutassa a Shiftes billentyűket is (angol billentyűzeten)", + "hide-delete-button/@description": "Elrejti a törlés gombot (kuka ikont) a szereplÅ‘kbÅ‘l, jelmezekbÅ‘l és hangokból. Ezután még törölhetÅ‘ek lesznek a jobb kattos helyi menübÅ‘l.", + "hide-delete-button/@name": "Törlés gomb elrejtése", + "hide-delete-button/@settings-name-costumes": "Jelmezek és hátterek", + "hide-delete-button/@settings-name-sounds": "Hangok", + "hide-delete-button/@settings-name-sprites": "SzereplÅ‘k", + "no-script-bumping/@description": "Megengedi a kódok mozgatását anélkül, hogy odébb mozdulnának az egymást fedÅ‘ kódoszlopok.", + "no-script-bumping/@name": "Ne mozgasd automatikusan a kódokat", + "disable-stage-drag-select/@description": "Eltávolítja a lehetÅ‘séget, hogy áthelyezd a szereplÅ‘ket a színpadon, kivéve azoknál, amik kifejezetten húzogathatóvá lettek beállítva. Tarsd lenyomva a Shiftet egy szereplÅ‘ megragadása közben, hogy áthelyezhesd normálisan.", + "disable-stage-drag-select/@name": "Nem-mozdítható szereplÅ‘k a szerkesztÅ‘ben", + "move-to-top-bottom/@description": "Hozzáad egy opctiót a jobb katt index menüjéhez a jelmezek és hangok mozgatására a lista legtetejére vagy legaljára.", + "move-to-top-bottom/@info-developer-tools": "Ez a bÅ‘vítmény korábban a \"FejlesztÅ‘i eszközök\" bÅ‘vítmény része volt, de mostanra át lett helyezve ide.", + "move-to-top-bottom/@name": "Jelmez áthelyezése legfelülre vagy legalulra", + "disable-paste-offset/@description": "A bemásolt elemeket az eredeti helyükre kerülnek, nem tolódnak el a jelmez szerkesztÅ‘ben.", + "disable-paste-offset/@info-vanilla": "Ez a viselkedés elérhetÅ‘ ezen kiegészítÅ‘ nélkül is Alt+Kattintással az elemre", + "disable-paste-offset/@name": "Ne helyezd át a bemásolt elemeket", + "block-duplicate/@description": "Duplikálj egy kódot gyorsan azzal, hogy az Alt lenyomva tartása közben mozgatod. Ha a Ctrl-t is nyomva tartod, akkor csak egy blokkot duplikálsz az egész alatta levÅ‘ blokk sor helyett.", + "block-duplicate/@info-mac": "A macOS-on, használd az Option gombot Alt helyett és a Command gombot a Control helyett.", + "block-duplicate/@name": "Kód duplikálása Alt gombbal", + "swap-local-global/@description": "További opciókat ad hozzá a már létezÅ‘ változók vagy listák átnevezésénél: megengedi a váltást \"Minden szereplőé\" és \"A kiválasztott szereplőé\" között, állítható továbbá a változók megosztottsága. Hozzáad még egy új opciót, amikor jobb kattintasz egy változót/listát, hogy gyorsabban állíthasd az elérhetÅ‘ségét.", + "swap-local-global/@name": "Változók váltása \"Minden szereplőé\" és \"A kiválasztott szereplé\" között", + "editor-comment-previews/@description": "Megengedi, hogy megtekintsd a kommentek tartalmát azzal, hogy fölé viszed az egered egy összecsukott kommentnek vagy blokknak. Ezzel elolvashatsz képernyÅ‘n kívüli kommenteket, azonosíthatsz egy ismétlÅ‘ blokkot az aljáról az elÅ‘nézet alapján, sok hosszú komment elhelyezése kis helyen, és további lehetÅ‘ségek.", + "editor-comment-previews/@name": "SzerkesztÅ‘i komment elÅ‘nézetek", + "editor-comment-previews/@settings-name-delay": "Késleltetés idÅ‘tartama", + "editor-comment-previews/@settings-name-follow-mouse": "Egér követése", + "editor-comment-previews/@settings-name-hover-view": "Tartsd az egeret egy összecsukott komment fölött az elÅ‘nézethez", + "editor-comment-previews/@settings-name-hover-view-block": "Tartsd az egeret egy blokk fölé, hogy megtekintsd a csatolt kommenteket", + "editor-comment-previews/@settings-name-hover-view-procedure": "Tartsd az egeret egy saját blokk fölé, hogy megtekintsd a definícióhoz fűzött kommenteket", + "editor-comment-previews/@settings-name-reduce-animation": "Animáció csökkentése", + "editor-comment-previews/@settings-name-reduce-transparency": "Ãtlátszóság csökkentése", + "editor-comment-previews/@settings-select-delay-long": "Hosszú", + "editor-comment-previews/@settings-select-delay-none": "Nincs", + "editor-comment-previews/@settings-select-delay-short": "Rövid", + "columns/@description": "Felosztja a blokk kategória menüt két oszlopra és a blokk választó tetejére helyezi, mint a Scratch 2.0-ban.", + "columns/@name": "Két oszlopos kategória menü", + "number-pad/@description": "Mindig megjeleníti minden eszközön a Scratch számbillentyűzet-bemenetét szám-mezÅ‘k szerkesztésénél, ahelyett, hogy csak érintÅ‘képernyÅ‘seknél tenné meg.", + "number-pad/@info-explanation": "Egy számbillentyűzet fog megjelenni számterületi bemenetek szerkesztésénél, mint amilyen az \"x legyen\" blokknál van.", + "number-pad/@name": "Mindig mutass számbillentyűzetet", + "script-snap/@description": "Mozgass egy kódot és automatikusan a kód mezÅ‘ pontjaihoz fog igazodni.", + "script-snap/@name": "Kódok rácspontokhoz való igazítása", + "script-snap/@preset-name-default": "Alap", + "script-snap/@preset-name-half-block": "Fél-blokk", + "script-snap/@preset-name-whole-block": "Egész-blokk", + "script-snap/@settings-name-grid": "Rács méret (px)", + "fullscreen/@description": "Kijavít pár nemkívánatos effektet a projekt lejátszó teljes képernyÅ‘s módjában, megnyitja a böngészÅ‘d teljes képernyÅ‘s módjában, és elrejti a zöld zászlós eszköztárat.", + "fullscreen/@info-hideToolbarNotice": "Ha kiválasztod az eszköztár elrejtését, emlékezz hogy úgy léphetsz ki a projekt lejátszó teljes képernyÅ‘s módjából, hogy megnyomod az Esc gombot.", + "fullscreen/@name": "Fejlesztett teljes képernyÅ‘", + "fullscreen/@settings-name-browserFullscreen": "Teljes képernyÅ‘s projekt lejátszó megnyitása a böngészÅ‘ teljes képernyÅ‘s módjában", + "fullscreen/@settings-name-hideToolbar": "Eszköztár elrejtése teljes képernyÅ‘ben", + "hide-stage/@description": "Egy gombot ad hozzá a \"kicsi színpad\" és \"nagy színpad\" gombok mellé, ami a színpad és a szereplÅ‘mezÅ‘ elrejtésével jelentÅ‘s mértékben megnöveli a kódterületet.", + "hide-stage/@name": "A Színpad és a SzereplÅ‘mezÅ‘ elrejtése", + "editor-stepping/@description": "Hozzáad egy színes körvonalat azon blokkokhoz, amik éppen futnak egy projektben.", + "editor-stepping/@name": "Futó blokkok körvonalai", + "editor-stepping/@settings-name-highlight-color": "Kiemelés színe" +} \ No newline at end of file diff --git a/src/addons/addons-l10n-settings/it.json b/src/addons/addons-l10n-settings/it.json new file mode 100644 index 0000000000000000000000000000000000000000..060730b9a284ac1dbbfcad584563ba9bc1e5e47d --- /dev/null +++ b/src/addons/addons-l10n-settings/it.json @@ -0,0 +1,344 @@ +{ + "cat-blocks/@description": "Mostra nell'editor i blocchi di tipo cappello con le orecchie del gatto che erano comparsi come Pesce di Aprile 2020.", + "cat-blocks/@info-watch": "L'impostazione \"Guarda il puntatore del mouse\" può avere un certo impatto sulla performance quando l'editor è aperto", + "cat-blocks/@name": "Cappelli con le orecchie del gatto", + "cat-blocks/@settings-name-watch": "Guarda il puntatore del mouse", + "editor-devtools/@description": "Aggiunge nuove opzioni nei menu dell'editor: copia/incolla dei blocchi, riordino degli script migliorato, e molto altro!", + "editor-devtools/@name": "Strumenti per sviluppatori", + "editor-devtools/@settings-name-enableCleanUpPlus": "Migliora \"Riordina i Blocchi\"", + "editor-devtools/@settings-name-enablePasteBlocksAtMouse": "Incolla i blocchi dove si trova il puntatore del mouse.", + "find-bar/@description": "Aggiunge una barra di ricerca a fianco alla scheda suoni per trovare script, costumi e suoni e per passare direttamente agli elementi trovati. Usa Ctrl+Sinistra a Ctrl+Destra nell'area degli script per andare alla precedente o alla seguente posizione che hai visitato dopo che hai usato la barra di ricerca.", + "find-bar/@info-developer-tools": " Questo addon faceva parte in precedenza dell'addon \"strumenti per sviluppatori\" ma è stato spostato qui.", + "find-bar/@name": "Barra di ricerca dell'editor", + "middle-click-popup/@description": "Cliccando con il tasto centrale nell'area degli script oppure usando Ctrl+Spazio o Shift+Click puoi far comparire una casella dove digitare il nome di un blocco (o parte del nome) e trascinare il blocco nell'area del codice. Se vuoi aggiungere più di un blocco e non non vuoi che la casella si chiuda mentre lo trascini, tieni premuto Shift mentre lo trascini.", + "middle-click-popup/@info-developer-tools": " Questo addon faceva parte in precedenza dell'addon \"strumenti per sviluppatori\" ma è stato spostato qui.", + "middle-click-popup/@name": "Inserisci il nome dei blocchi ", + "jump-to-def/@description": "Ti permette di andare alla definizione di un blocco personalizzato usando il pulsante centrale del mouse oppure cliccando il blocco mentre si preme Shift.", + "jump-to-def/@info-developer-tools": "Questo addon faceva parte in precedenza dell'addon \"strumenti per sviluppatori\" ma è stato spostato qui.", + "jump-to-def/@name": "Vai alla definizione del blocco personalizzato", + "editor-searchable-dropdowns/@description": "TI permette di cercare nel menu contestuale dei blocchi", + "editor-searchable-dropdowns/@name": "Ricerca nei Menu drop-down", + "data-category-tweaks-v2/@description": "Modifica nell'editor la categoria \"Variabili\".", + "data-category-tweaks-v2/@name": "Modifiche per la categoria Variabili", + "data-category-tweaks-v2/@settings-name-moveReportersDown": "Muovi blocchi dati sopra alla lista delle variabili", + "data-category-tweaks-v2/@settings-name-separateListCategory": "Categoria Liste separata", + "data-category-tweaks-v2/@settings-name-separateLocalVariables": "Separa Variabili Solo per lo Sprite", + "block-palette-icons/@description": "Aggiunge delle icone all'interno dei cerchi colorati che identificano le categorie dei blocchi.", + "block-palette-icons/@name": "Icone per le categorie del pannello dei blocchi", + "hide-flyout/@description": "Nasconde il pannello dei blocchi se non è a contatto con il mouse. Clicca il lucchetto per bloccarlo temporaneamente. In alternativa, usa la modalità \"Clic categoria\".", + "hide-flyout/@info-hoverExplanation": "La modalità \"Movimento del mouse sull'area dei blocchi\" estende soltanto l'area degli script. Se vuoi poter trascinarvi i blocchi in questa aria senza che vengano cancellati, usa una delle altre modalità.", + "hide-flyout/@name": "Nascondi pannello blocchi automaticamente", + "hide-flyout/@settings-name-speed": "Velocità animazione", + "hide-flyout/@settings-name-toggle": "Nascondi quando...", + "hide-flyout/@settings-select-speed-default": "Predefinita", + "hide-flyout/@settings-select-speed-long": "Lenta", + "hide-flyout/@settings-select-speed-none": "Istantanea", + "hide-flyout/@settings-select-speed-short": "Veloce", + "hide-flyout/@settings-select-toggle-category": "Clic categoria", + "hide-flyout/@settings-select-toggle-cathover": "Movimento del mouse sull'area delle categorie", + "hide-flyout/@settings-select-toggle-hover": "Movimento del mouse sull'area dei blocchi", + "hide-flyout/@update": "Questo addon è stato rivisto e sono stati corretti molti bug.", + "mediarecorder/@description": "Aggiunge all’editor un pulsante “Avvia registrazione†che permette di registrare cioè che avviene sullo stage del progetto.", + "mediarecorder/@name": "Registratore video progetti", + "drag-drop/@description": "TI permette di trascinare immagini e suoni da una cartella nella lista degli sprite o dei costumi/suoni. Puoi anche trascinare file di testo su una lista o nella casella dei blocchi \"chiedi e attendi\".", + "drag-drop/@name": "Trascinamento file", + "drag-drop/@settings-name-use-hd-upload": "Usa importazione di immagini HD", + "debugger/@settings-name-log_broadcasts": "Registra nei log l'invio di messaggi", + "debugger/@settings-name-log_clear_greenflag": "Svuota i log quando si clicca la bandiera verde", + "debugger/@settings-name-log_clone_create": "Registra nei log la creazione di cloni", + "debugger/@settings-name-log_failed_clone_creation": "Registra nei log quando si supera il massimo dei cloni ammessi ", + "debugger/@settings-name-log_greenflag": "Registra nei log i click della bandiera verde", + "debugger/@update": "Nuove schede \"Thread\" e \"Performance\" nella finestra del debugger.", + "pause/@description": "Aggiunge un tasto pausa accanto alla bandiera verde.", + "pause/@name": "Pulsante Pausa", + "mute-project/@description": "Ctrl+Clic sulla bandiera verde per attivare o disattivare l'audio del progetto.", + "mute-project/@info-macOS": "In macOS usa il tasto Cmd invece del tasto Ctrl.", + "mute-project/@name": "Modalità dell'editor di progetti con audio disattivato", + "vol-slider/@description": "Aggiunge un cursore per il volume vicino ai controlli della bandiera verde.", + "vol-slider/@name": "Cursore volume progetto ", + "vol-slider/@settings-name-defVol": "Volume predefinito", + "clones/@description": "Mostra sopra lo stage dell'editor il numero totale di cloni.", + "clones/@name": "Numero dei cloni", + "clones/@settings-name-showicononly": "Mostra solo icona", + "mouse-pos/@description": "Mostra la posizione x/y del mouse sopra lo stage dell'editor.", + "mouse-pos/@name": "Posizione del mouse", + "color-picker/@description": "Aggiunge la selezione del colore esadecimale alla selezione dei colori.", + "color-picker/@name": "Selettore colore esadecimale", + "remove-sprite-confirm/@description": "Chiede conferma quando cancelli uno sprite di un progetto.", + "remove-sprite-confirm/@name": "Conferma cancellazione sprite", + "block-count/@description": "Mostra il numero totale di blocchi del progetto nella barra dei menu dell'editori. Incluso in precedenza in \"numero di sprite e di script\"", + "block-count/@name": "Numero dei blocchi", + "onion-skinning/@description": "Mostra anteprime dei costumi precedenti o seguenti nell'editor dei costumi. Puoi controllarlo con i tasti al di sotto dell'editor di costumi, accanto ai tasti per lo zoom.", + "onion-skinning/@name": "Onion Skin", + "onion-skinning/@settings-name-afterTint": "Tinta del costume seguente", + "onion-skinning/@settings-name-beforeTint": "Tinta del costume precedente", + "onion-skinning/@settings-name-default": "Attiva per impostazione predefinita", + "onion-skinning/@settings-name-layering": "Livello predefinito", + "onion-skinning/@settings-name-mode": "Modalità predefinita", + "onion-skinning/@settings-name-next": "Costumi seguenti predefiniti", + "onion-skinning/@settings-name-opacity": "Opacità (%)", + "onion-skinning/@settings-name-opacityStep": "Livello opacità (%)", + "onion-skinning/@settings-name-previous": "Costumi precedenti predefiniti", + "onion-skinning/@settings-select-layering-behind": "Secondo piano", + "onion-skinning/@settings-select-layering-front": "Primo piano", + "onion-skinning/@settings-select-mode-merge": "Unisci immagini", + "onion-skinning/@settings-select-mode-tint": "Tinta colore", + "paint-snap/@description": "Allinea gli oggetti dell'editor dei costumi ai riquadri che bordano gli oggetti e ai nodi degli elementi vettoriali", + "paint-snap/@name": "Editor dei costumi magnetico", + "paint-snap/@settings-name-boxCenter": "Attacca dal centro del riquadro di selezione", + "paint-snap/@settings-name-boxCorners": "Attacca dal bordo del riquadro di selezione", + "paint-snap/@settings-name-boxEdgeMids": "Attacca dai punti mediani dei bordi del riquadro di selezione", + "paint-snap/@settings-name-enable-default": "Abilita per impostazione predefinita", + "paint-snap/@settings-name-guide-color": "Colore della guida magnetica", + "paint-snap/@settings-name-objectCenters": "Attacca al centro degli oggetti", + "paint-snap/@settings-name-objectCorners": "Attacca agli angoli degli oggetti", + "paint-snap/@settings-name-objectEdges": "Attacca al bordo degli oggetti", + "paint-snap/@settings-name-objectMidlines": "Attacca alla linee mediane degli oggetti", + "paint-snap/@settings-name-pageAxes": "Attacca agli assi x e y della pagina", + "paint-snap/@settings-name-pageCenter": "Attacca al centro della pagina", + "paint-snap/@settings-name-pageCorners": "Attacca agli angoli della pagina", + "paint-snap/@settings-name-pageEdges": "Attacca ai bordi delle pagina", + "paint-snap/@settings-name-threshold": "Distanza magnetica", + "default-costume-editor-color/@description": "Cambia i colori e la dimensione del contorno predefiniti nell'editor di immagini.", + "default-costume-editor-color/@name": "Colori predefiniti dell'editor di immagini personalizzabili", + "default-costume-editor-color/@settings-name-fill": "Colore di riempimento predefinito", + "default-costume-editor-color/@settings-name-persistence": "Usa colore precedente invece di resettare dopo aver cambiato gli strumenti", + "default-costume-editor-color/@settings-name-stroke": "Colore di contorno predefinito", + "default-costume-editor-color/@settings-name-strokeSize": "Dimensione contorno predefinita", + "bitmap-copy/@description": "Ti permette di copiare negli appunti un'immagine bitmap dall'editor di immagini per poterla poi incollare in altri siti o in altre app.", + "bitmap-copy/@info-norightclick": "\"Clic destro → Copia\" non è supportato. Devi premere Ctrl+C quando l'immagine bitmap è selezionata.", + "bitmap-copy/@name": "Copia immagini bitmap", + "2d-color-picker/@description": "Sostituisce i cursori della saturazione e della luminosità con un selettore colori 2D. Tieni premuto Shift mentre trascini il cursore per cambiare i valori su un solo asse.", + "2d-color-picker/@name": "Selettore colori 2D", + "better-img-uploads/@description": "Aggiunge un pulsante sopra il pulsante \"carica costume\" che converte automaticamente le immagini bitmap in immagini SVG (vettoriali) durante il caricamento per evitare di perdere qualità.", + "better-img-uploads/@info-notSuitableEdit": "Evita di usare il pulsante \"carica HD\" se vuoi modificare l'immagine dopo averla caricata.", + "better-img-uploads/@name": "Caricamento di immagini HD", + "better-img-uploads/@settings-name-fitting": "Ridimensionamento immagine", + "better-img-uploads/@settings-select-fitting-fill": "Estendi per riempire lo stage", + "better-img-uploads/@settings-select-fitting-fit": "Riduci per entrare tutta nello stage", + "better-img-uploads/@settings-select-fitting-full": "Dimensione originale", + "pick-colors-from-stage/@description": "Permetti al contagocce dell'editor di costumi di selezionare colori anche dallo Stage.", + "pick-colors-from-stage/@name": "Seleziona i colori dello Stage nell'editor dei costumi", + "custom-block-shape/@description": "Modifica lo spazio interno, l'ampiezza degli angoli e l'altezza degli agganci dei blocchi di Scratch.", + "custom-block-shape/@info-paddingWarning": "La diminuzione dello spazio interno è visibile soltanto a te, quindi se i tuoi progetti vengono visualizzati da altri utenti i tuoi script potrebbero essere sovrapposti.", + "custom-block-shape/@name": "Forma dei blocchi personalizzata", + "custom-block-shape/@preset-description-default2": "Un aspetto simile ai blocchi di Scratch 2.0", + "custom-block-shape/@preset-description-default3": "L'aspetto standard dei blocchi di Scratch 3.0", + "custom-block-shape/@preset-description-flat2": "I blocchi di Scratch 2.0 senza agganci e senza angoli", + "custom-block-shape/@preset-description-flat3": "Blocchi Scratch 3.0 senza agganci e angoli", + "custom-block-shape/@preset-name-default2": "Blocchi 2.0", + "custom-block-shape/@preset-name-default3": "Blocchi 3.0", + "custom-block-shape/@preset-name-flat2": "2.0 piatti", + "custom-block-shape/@preset-name-flat3": "3.0 piatti", + "custom-block-shape/@settings-name-cornerSize": "Dimensione angoli (0-300%)", + "custom-block-shape/@settings-name-notchSize": "Altezza agganci (0-150%)", + "custom-block-shape/@settings-name-paddingSize": "Spaziatura interna (50-200%)", + "zebra-striping/@description": "Rende i blocchi della stessa categoria più chiari o più scuri quando sono annidati uno dentro l'altro. E' conosciuto anche come \"zebra striping\".", + "zebra-striping/@name": "Colorazione alternata dei blocchi annidati. ", + "zebra-striping/@settings-name-intensity": "Intensità (0-100%)", + "zebra-striping/@settings-name-shade": "Tonalità", + "zebra-striping/@settings-select-shade-darker": "Più scuro", + "zebra-striping/@settings-select-shade-lighter": "Più chiaro", + "editor-theme3/@description": "Modifica i colori dei blocchi per ogni categoria nell'editor.", + "editor-theme3/@name": "Colori blocchi personalizzabili", + "editor-theme3/@preset-description-black": "Rende nero lo sfondo dei blocchi", + "editor-theme3/@preset-description-dark": "Versione scura dei colori predefiniti", + "editor-theme3/@preset-description-original": "I colori originali di Scratch 2.0", + "editor-theme3/@preset-description-tweaks": "Situazioni, Controllo e Blocchi personalizzati con colori ispirati a 2.0", + "editor-theme3/@preset-name-black": "Nero", + "editor-theme3/@preset-name-dark": "Scuro", + "editor-theme3/@preset-name-original": "Colori 2.0", + "editor-theme3/@preset-name-tweaks": "Variazioni 3.0", + "editor-theme3/@settings-name-Pen-color": "estensioni", + "editor-theme3/@settings-name-comment-color": "Commenti", + "editor-theme3/@settings-name-control-color": "controllo", + "editor-theme3/@settings-name-custom-color": "personalizzati", + "editor-theme3/@settings-name-data-color": "variabili", + "editor-theme3/@settings-name-data-lists-color": "liste", + "editor-theme3/@settings-name-events-color": "situazioni", + "editor-theme3/@settings-name-input-color": "Argomenti dei blocchi", + "editor-theme3/@settings-name-looks-color": "aspetto", + "editor-theme3/@settings-name-motion-color": "movimento", + "editor-theme3/@settings-name-operators-color": "operatori", + "editor-theme3/@settings-name-sensing-color": "sensori", + "editor-theme3/@settings-name-sounds-color": "suoni", + "editor-theme3/@settings-name-text": "Colore del testo", + "editor-theme3/@settings-select-text-black": "Nero", + "editor-theme3/@settings-select-text-colorOnBlack": "Colorato su sfondo nero", + "editor-theme3/@settings-select-text-colorOnWhite": "Colorato su sfondo bianco", + "editor-theme3/@settings-select-text-white": "Bianco", + "editor-theme3/@update": "L'impostazione \"Commenti scuri\" è stato spostata da \"Modalità scura dell'editor e colori personalizzabili\" a qui ed è ora personalizzabile.", + "custom-block-text/@description": "Modifica lo spessore del testo dei blocchi e opzionalmente aggiunge un'ombreggiatura al testo.", + "custom-block-text/@name": "Stile del testo dei blocchi personalizzato", + "custom-block-text/@settings-name-bold": "Testo grassetto", + "custom-block-text/@settings-name-shadow": "Ombreggiatura sotto al testo", + "editor-colored-context-menus/@description": "Rende colorato il menu contestuale degli script.", + "editor-colored-context-menus/@name": "Menu contestuali colorati", + "editor-stage-left/@description": "Sposta lo stage nella parte sinistra dell'editor, come in Scratch 2.0.", + "editor-stage-left/@info-reverseOrder": "Per cambiare la posizione dei pulsanti sopra lo Stage usa l'addon \"inverti ordine dei controlli del progetto\".", + "editor-stage-left/@name": "Sposta stage a sinistra", + "editor-buttons-reverse-order/@description": "Sposta la bandiera verde e il pulsante di stop a destra e il pulsante modalità presentazione a sinistra, come in Scratch 2.0.", + "editor-buttons-reverse-order/@name": "Inverti l'ordine dei controlli del progetto", + "variable-manager/@description": "Aggiunge una scheda nell'editor a fianco a \"suoni\" per gestire facilmente variabili e liste.", + "variable-manager/@name": "Gestore variabili", + "variable-manager/@update": "Gli elementi delle liste possono ora essere aggiunti senza premere il tasto Shift. ", + "search-sprites/@description": "Aggiunge una casella di ricerca all'area degli sprite per cercare uno sprite basandosi sul nome.", + "search-sprites/@name": "Cerca gli sprite per nome", + "sprite-properties/@description": "Nasconde l'area delle informazioni per impostazione predefinita, come in Scratch 2.0. Usa il pulsante informazioni dello sprite selezionato o fai doppio-click su uno sprite per mostrare di l'area delle informazioni. Per nasconderla nuovamente usa il pulsante nascondi nell'area delle informazioni o fai di nuovo doppio-click su uno sprite.", + "sprite-properties/@name": "Informazioni degli sprite collassabili", + "sprite-properties/@settings-name-autoCollapse": "Nascondi automaticamente quando il mouse lascia l'area informazioni", + "sprite-properties/@settings-name-hideByDefault": "Nascondi l'area per impostazione predefinita", + "sprite-properties/@settings-name-transitionDuration": "Velocità animazione", + "sprite-properties/@settings-select-transitionDuration-default": "Predefinita", + "sprite-properties/@settings-select-transitionDuration-long": "Lenta", + "sprite-properties/@settings-select-transitionDuration-none": "Istantanea", + "sprite-properties/@settings-select-transitionDuration-short": "Veloce", + "gamepad/@description": "Interagisci con i progetti usando un controller/gamepad USB o bluetooth.", + "gamepad/@name": "Supporto Gamepad", + "gamepad/@settings-name-hide": "Nascondi pulsante impostazioni quando non è rilevato nessun controller", + "editor-sounds/@description": "Riproduce effetti sonori quando attacchi o cancelli i blocchi.", + "editor-sounds/@name": "Effetti sonori dell'editor", + "folders/@description": "Permette di organizzare in cartelle le liste degli sprite, dei costumi e dei suoni. Per creare una cartella clicca con il tasto destro su qualunque sprite, costume o suono e seleziona \"crea cartella\". Clicca una cartella per aprirla o chiuderla. Clicca con il tasto destro uno sprite, un costume o un suono per seleziona la cartella in cui spostarlo, oppure trascinalo in una cartella aperta. Questa funzione aggiunge \"[nomeCartella]//\" all'inizio del nome dei tuoi sprite. ", + "folders/@info-notice-folders-are-public": "Gli utenti che abilitano questo addon vedranno le cartelle nel loro progetto. Tutti gli altri vedranno le liste degli sprite, dei costumi e dei suoni normalmente (senza cartelle)", + "folders/@name": "Cartelle degli sprite", + "block-switching/@description": "Fai clic con il pulsante destro su un blocco per sostituirlo con un blocco correlato.", + "block-switching/@name": "Sostituzione blocchi", + "block-switching/@settings-name-control": "Blocchi Controllo", + "block-switching/@settings-name-customargs": "Argomenti dei blocchi personalizzati", + "block-switching/@settings-name-customargsmode": "Mostra le opzioni degli argomenti dei blocchi personalizzati", + "block-switching/@settings-name-data": "Blocchi Variabili", + "block-switching/@settings-name-event": "Blocchi Situazioni", + "block-switching/@settings-name-extension": "Blocchi Estensioni", + "block-switching/@settings-name-looks": "Blocchi Aspetto", + "block-switching/@settings-name-motion": "Blocchi Movimento", + "block-switching/@settings-name-noop": "Visualizza l'opzione per scambiare un blocco con se stesso", + "block-switching/@settings-name-operator": "Blocchi Operatori", + "block-switching/@settings-name-sensing": "Blocchi Sensori", + "block-switching/@settings-name-sound": "Blocchi Suono", + "block-switching/@settings-select-customargsmode-all": "Argomenti di tutti i blocchi personalizzati dello sprite", + "block-switching/@settings-select-customargsmode-defOnly": "Argomenti nei propri blocchi personalizzati", + "load-extensions/@description": "Fa comparire automaticamente nelle categorie dei blocchi dell'editor le estensioni musica e penna e altre estensioni.", + "load-extensions/@name": "Aggiungi automaticamente le estensioni", + "load-extensions/@settings-name-music": "Musica", + "load-extensions/@settings-name-pen": "Penna", + "load-extensions/@settings-name-text2speech": "Da Testo a Voce", + "load-extensions/@settings-name-translate": "Traduci", + "custom-zoom/@description": "Personalizza il minimo e il massimo zoom, la velocità e la dimensione di avvio dello zoom nell'area degli script e nasconde i controlli automaticamente.", + "custom-zoom/@name": "Zoom personalizzato dell'area degli script", + "custom-zoom/@settings-name-autohide": "Nascondi Controlli Zoom Automaticamente", + "custom-zoom/@settings-name-maxZoom": "Zoom Max (100-500%)", + "custom-zoom/@settings-name-minZoom": "Zoom Minimo (1-100%)", + "custom-zoom/@settings-name-speed": "Velocità Animazione di Entrata/Uscita Controlli", + "custom-zoom/@settings-name-startZoom": "Zoom Iniziale (50-500%)", + "custom-zoom/@settings-name-zoomSpeed": "Velocità Zoom (50-200%)", + "custom-zoom/@settings-select-speed-default": "Predefinita", + "custom-zoom/@settings-select-speed-long": "Lenta", + "custom-zoom/@settings-select-speed-none": "Istantanea", + "custom-zoom/@settings-select-speed-short": "Veloce", + "initialise-sprite-position/@description": "Cambia la posizione x/y predefinita dei nuovi sprite. ", + "initialise-sprite-position/@name": "Posizione iniziale dei nuovi sprite personalizzata", + "initialise-sprite-position/@settings-name-duplicate": "Comportamento quando si duplicano gli sprite", + "initialise-sprite-position/@settings-name-library": "Rendi casuale la posizione degli sprite della libreria", + "initialise-sprite-position/@settings-name-x": "Posizione X", + "initialise-sprite-position/@settings-name-y": "Posizione Y", + "initialise-sprite-position/@settings-select-duplicate-custom": "Compaiono a coordinate x/y specifiche", + "initialise-sprite-position/@settings-select-duplicate-keep": "Compaiono nella stessa posizione dello sprite originale", + "initialise-sprite-position/@settings-select-duplicate-randomize": "Compaiono in un punto a caso", + "blocks2image/@description": "Clicca con il tasto destro l'area degli script per esportare i blocchi come immagini SVG/PNG.", + "blocks2image/@name": "Salva i blocchi come immagine", + "remove-curved-stage-border/@description": "Rimuove i bordi curvi intorno allo stage, permettendoti di vedere gli angoli.", + "remove-curved-stage-border/@name": "Rimuove i bordi curvi dello stage", + "transparent-orphans/@description": "Decidi tu la trasparenza dei blocchi nell'editor, con opzioni separate per i blocchi \"orfani\" (blocchi che non sono attaccati ad un cappello) e i blocchi trascinati.", + "transparent-orphans/@name": "Trasparenza dei blocchi", + "transparent-orphans/@settings-name-block": "Trasparenza dei blocchi (%)", + "transparent-orphans/@settings-name-dragged": "Trasparenza dei blocchi trascinati (%)", + "transparent-orphans/@settings-name-orphan": "Trasparenza dei blocchi orfani (%)", + "paint-by-default/@description": "Cambia l'azione predefinita dei pulsanti \"Scegli uno Sprite/Costume/Sfondo/Suono\" che come azione predefinita apre la libreria.", + "paint-by-default/@name": "Disegno costume come azione predefinita", + "paint-by-default/@settings-name-backdrop": "Scegli uno sfondo", + "paint-by-default/@settings-name-costume": "Scegli un costume", + "paint-by-default/@settings-name-sound": "Scegli un suono", + "paint-by-default/@settings-name-sprite": "Scegli uno Sprite", + "paint-by-default/@settings-select-backdrop-library": "Scegli uno sfondo dalla Libreria", + "paint-by-default/@settings-select-backdrop-paint": "Disegna un nuovo sfondo", + "paint-by-default/@settings-select-backdrop-surprise": "Disegna uno sfondo a sorpresa", + "paint-by-default/@settings-select-backdrop-upload": "Importa sfondo", + "paint-by-default/@settings-select-costume-library": "Scegli un costume dalla Libreria", + "paint-by-default/@settings-select-costume-paint": "Disegna un nuovo costume", + "paint-by-default/@settings-select-costume-surprise": "Disegna un costume a sorpresa", + "paint-by-default/@settings-select-costume-upload": "Importa costume", + "paint-by-default/@settings-select-sound-library": "Scegli un suono dalla Libreria", + "paint-by-default/@settings-select-sound-record": "Registra", + "paint-by-default/@settings-select-sound-surprise": "Scegli un suono a sorpresa", + "paint-by-default/@settings-select-sound-upload": "Importa suono", + "paint-by-default/@settings-select-sprite-library": "Scegli uno sprite dalla Libreria", + "paint-by-default/@settings-select-sprite-paint": "Disegna un nuovo sprite", + "paint-by-default/@settings-select-sprite-surprise": "Aggiunti uno sprite a sorpresa", + "paint-by-default/@settings-select-sprite-upload": "Importa sprite", + "block-cherry-picking/@description": "Aggiunge la possibilità di trascinare un singolo blocco dall'interno di uno script (invece di tutta la sequenza attacca al di sotto) se si preme contemporaneamente il tasto CTRL.", + "block-cherry-picking/@info-flipControls": "Se \"inverti i controlli\" è abilitato, il comportamento standard sarà trascinare singoli i blocchi. Tenendo premuto CTRL verrà invece trascinata tutta la sequenza", + "block-cherry-picking/@info-macContextDisabled": "In macOS usa il tasto Cmd invece del tasto Ctrl.", + "block-cherry-picking/@name": "Afferra i singoli blocchi con il tasto CTRL", + "block-cherry-picking/@settings-name-invertDrag": "Inverti i controlli", + "hide-new-variables/@description": "Non crea automaticamente il monitor sullo Stage per le variabili e le liste appena create.", + "hide-new-variables/@name": "Nascondi nuove variabili", + "editor-extra-keys/@description": "Aggiunge ulteriori tasti ai menu dei blocchi \"tasto () premuto\" e \"quando si preme il tasto ()\", ad esempio invio, punto, virgola e altri ancora. Questi tasti funzioneranno anche per gli utenti che non hanno installato l'addon.", + "editor-extra-keys/@info-experimentalKeysWarn": "I \"tasti sperimentali\" includono i segni uguale, slash, punto e virgola e altri. Potrebbero non funzionare per tutti i sistemi operativi e per tutte le configurazioni della tastiera.", + "editor-extra-keys/@info-shiftKeysWarn": "I \"Tasti shift\" includono tasti che solitamente richiedono la pressione del tasto shift e di un tasto numerico, ad esempio il punto esclamativo, il dollaro, e altri. Questi tasti funzionando soltanto con il blocco \"quando si preme il tasto ()\" e non funzionano per tutti i sistemi operativi e tutte le configurazioni della tastiera.", + "editor-extra-keys/@name": "Supporto per tasti extra", + "editor-extra-keys/@settings-name-experimentalKeys": "Mostra tasti sperimentali", + "editor-extra-keys/@settings-name-shiftKeys": "Mostra tasti Shift", + "hide-delete-button/@description": "Nasconde il pulsante cancella (icona del cestino) dagli sprite, costumi e suoni. E' possibile cancellarli usando il menu contestuale.", + "hide-delete-button/@name": "Nasconde il pulsante cancella", + "hide-delete-button/@settings-name-costumes": "Costumi e sfondi", + "hide-delete-button/@settings-name-sounds": "Suoni", + "hide-delete-button/@settings-name-sprites": "Sprite", + "no-script-bumping/@description": "Permette agli script di essere spostati e modificati senza che gli script che si sovrappongono vengano spostati.", + "no-script-bumping/@name": "Non spaziare automaticamente gli script che si sovrappongono", + "disable-stage-drag-select/@description": "Impedisce di trascinare gli sprite visibili sullo stage, tranne quelli esplicitamente indicati come trascinabili. Tieni premuto Shift mentre li trascini per spostarli normalmente.", + "disable-stage-drag-select/@name": "Sprite non trascinabili nell'editor", + "move-to-top-bottom/@description": "Aggiunge opzione al menu contestuale per spostare i costumi e i suoni in cima o in fondo alla lista.", + "move-to-top-bottom/@info-developer-tools": " Questo addon faceva parte in precedenza dell'addon \"strumenti per sviluppatori\" ma è stato spostato qui.", + "move-to-top-bottom/@name": "Sposta costumi in cima o in fondo", + "disable-paste-offset/@description": "Nell'editor dei costumi incolla gli elementi copiati nella loro posizione originale invece di spostarli leggermente.", + "disable-paste-offset/@info-vanilla": "Questo comportamento può essere ottenuto anche usando Alt+Click sugli oggettim, senza abilitare questo addon.", + "disable-paste-offset/@name": "Non spostare gli elementi copiati", + "block-duplicate/@description": "Duplica rapidamente uno script trascinandolo mentre tieni premuto il tasto Alt. Tenendo premuto anche Ctrl duplicherai solo il blocco cliccato dal mouse invece di tutta la sequenza attaccata al di sotto. ", + "block-duplicate/@info-mac": "In macOS usa il tasto Opzione invece del tasto Alt key e il tasto Command invece del tasto Control.", + "block-duplicate/@name": "Duplica uno script con il tasto Alt", + "swap-local-global/@description": "Aggiunge più opzioni quando si rinomina una variabile o una lista esistente: permette di cambiare da \"Per tutti gli sprite\" e \"Solo per questo sprite\" e tra variabile locale e variabile cloud. Aggiunge un'ulteriore opzione quando si clicca una variabile/lista con il pulsante destro per cambiarne rapidamente la visibilità.", + "swap-local-global/@name": "Cambia le variabili da \"Per tutti gli sprite\" a \"Solo per questo sprite\"", + "editor-comment-previews/@description": "Ti permette di vedere l'anteprima del contenuto dei commenti passando il mouse sui commenti chiusi o sui blocchi. Puoi usarlo per vedere i commenti che sono al di fuori dell'area visibile dell'editor, identificare un blocco di tipo ciclo dal basso attraverso la sua anteprima, far entrare i commenti lunghi in uno spazio piccolo e molto altro. ", + "editor-comment-previews/@name": "Anteprime dei commenti dell'editor", + "editor-comment-previews/@settings-name-delay": "Durata della pausa", + "editor-comment-previews/@settings-name-follow-mouse": "Segui il mouse", + "editor-comment-previews/@settings-name-hover-view": "Passa il mouse sui commenti chiusi per vedere l'anteprima", + "editor-comment-previews/@settings-name-hover-view-block": "Passa il mouse sui blocchi per vedere l'anteprima dei commenti attaccati", + "editor-comment-previews/@settings-name-hover-view-procedure": "Passa il mouse sui blocchi personalizzati per vedere l'anteprima dei commenti della definizione", + "editor-comment-previews/@settings-name-reduce-animation": "Riduci le animazioni", + "editor-comment-previews/@settings-name-reduce-transparency": "Riduci la trasparenza", + "editor-comment-previews/@settings-select-delay-long": "Lunga", + "editor-comment-previews/@settings-select-delay-none": "Nessuna", + "editor-comment-previews/@settings-select-delay-short": "Breve", + "columns/@description": "Divide il menu delle categorie dei blocchi in due colonne e lo sposta in cima alla lista dei blocchi, come in Scratch 2.0.", + "columns/@name": "Menu delle categorie a due colonne", + "number-pad/@description": "Mostra il tastierino numerico di Scratch su tutti i dispositivi quando si modificano gli argomenti numerici, non soltanto sui dispositivi touch.", + "number-pad/@info-explanation": "Comparirà un tastierino numerico quando si modificano gli argomenti numerici di un blocco, ad esempio il blocco \"vai dove x è\".", + "number-pad/@name": "Mostra sempre tastierino numerico", + "script-snap/@description": "Trascina uno script per allinearlo automaticamente ai puntini presenti nell'area del codice.", + "script-snap/@name": "Aggancia gli script alla griglia", + "script-snap/@preset-name-default": "Predefinito", + "script-snap/@preset-name-half-block": "Dimensione di mezzo blocco", + "script-snap/@preset-name-whole-block": "Dimensione di un blocco intero", + "script-snap/@settings-name-grid": "Dimensione della griglia (px)", + "fullscreen/@description": "Corregge alcuni effetti indesiderati della modalità fullscreen, apre il progetto nella modalità fullscreen del tuo browser e nasconde la barra che contiene la bandiera verde.", + "fullscreen/@info-hideToolbarNotice": "Se decidi di nascondere la barra ricorda che puoi usare il tasto Esc per uscire dalla modalità fullscreen.", + "fullscreen/@name": "Schermo intero migliorato", + "fullscreen/@settings-name-browserFullscreen": "Apre il fullscreen del player nella modalità fullscreen del browser.", + "fullscreen/@settings-name-hideToolbar": "Nascondi la barra in modalità fullscreen", + "hide-stage/@description": "Aggiunge un pulsante vicino ai pulsanti \"stage piccolo\" e \"stage grande\" per nascondere lo stage e l'area degli sprite, rendendo l'area degli script molto più ampia.", + "hide-stage/@name": "Nasconde lo stage e l'area degli sprite", + "editor-stepping/@description": "Aggiunge un bordo colorato ai blocchi in esecuzione nel progetto.", + "editor-stepping/@name": "Bordo blocchi in esecuzione", + "editor-stepping/@settings-name-highlight-color": "Colore evidenziazione" +} \ No newline at end of file diff --git a/src/addons/addons-l10n-settings/ja.json b/src/addons/addons-l10n-settings/ja.json new file mode 100644 index 0000000000000000000000000000000000000000..38182b1da2fc63ad110049d3cfc2a6b57a95caad --- /dev/null +++ b/src/addons/addons-l10n-settings/ja.json @@ -0,0 +1,344 @@ +{ + "cat-blocks/@description": "2020å¹´ã®ã‚¨ã‚¤ãƒ—リルフールã®ã€Œã‚­ãƒ£ãƒƒãƒˆãƒ–ロックã€ã‚’追加ã™ã‚‹ã€‚", + "cat-blocks/@info-watch": "「カーソルをå‘ãã€è¨­å®šã‚’使用ã™ã‚‹ã¨ã€ã‚¨ãƒ‡ã‚£ã‚¿ãƒ¼ãŒé‡ããªã‚‹ã‹ã‚‚ã—れã¾ã›ã‚“。", + "cat-blocks/@name": "キャットブロック", + "cat-blocks/@settings-name-watch": "カーソルをå‘ã", + "editor-devtools/@description": "メニューオプションã€ãƒ–ロックã®ã‚³ãƒ”ペã€ã€Œãれã„ã«ã™ã‚‹ã€ãªã©ã‚’追加ã™ã‚‹ã€‚", + "editor-devtools/@name": "開発者ツール", + "editor-devtools/@settings-name-enableCleanUpPlus": "ãれã„ã«ã™ã‚‹ +", + "editor-devtools/@settings-name-enablePasteBlocksAtMouse": "カーソルã®ä½ç½®ã«ãƒ–ロックをé…ç½®", + "find-bar/@description": "スクリプトã€ã‚³ã‚¹ãƒãƒ¥ãƒ¼ãƒ ã€éŸ³ã‚’検索ã™ã‚‹æ¤œç´¢ãƒãƒ¼ã‚’éŸ³ã‚¿ãƒ–ã®æ¨ªã«è¿½åŠ ã™ã‚‹ã€‚Ctrl+å·¦å³ã‚­ãƒ¼ã§æ¤œç´¢å±¥æ­´ã‹ã‚‰ç§»å‹•ã™ã‚‹ã€‚", + "find-bar/@info-developer-tools": "ã“ã®ã‚¢ãƒ‰ã‚ªãƒ³ã¯ä»¥å‰ã€Œé–‹ç™ºè€…ツールã€ã®ä¸€éƒ¨ã§ã—ãŸãŒã€ç§»å‹•ã—ã¾ã—ãŸã€‚", + "find-bar/@name": "エディター検索ãƒãƒ¼", + "middle-click-popup/@description": "コードエリアã«ã¦ãƒžã‚¦ã‚¹ã®ä¸­ãƒœã‚¿ãƒ³ã‚’押ã™ã‹ã€Ctrl+スペースã¾ãŸã¯Shift+クリックã§è¡¨ç¤ºã•れる入力欄ã«ãƒ–ロックã®åå‰ã‚’入力ã—ã¦ãƒ‰ãƒ©ãƒƒã‚°ã™ã‚‹ã¨ã€ãƒ–ロックを追加ã§ãる。Shiftキーを押ã—ãªãŒã‚‰ãƒ‰ãƒ©ãƒƒã‚°ã™ã‚‹ã¨ã€ç”»é¢ã‚’é–‰ã˜ãšã«è¤‡æ•°ã®ãƒ–ロックを追加ã§ãる。", + "middle-click-popup/@info-developer-tools": "ã“ã®ã‚¢ãƒ‰ã‚ªãƒ³ã¯ä»¥å‰ã€Œé–‹ç™ºè€…ツールã€ã®ä¸€éƒ¨ã§ã—ãŸãŒã€ç§»å‹•ã—ã¾ã—ãŸã€‚", + "middle-click-popup/@name": "åå‰ã‹ã‚‰ãƒ–ロックを追加", + "jump-to-def/@description": "中マウスボタンやShift+Clickã§ã€ã‚«ã‚¹ã‚¿ãƒ ãƒ–ロックã®å®šç¾©ãƒ–ロックã«ç§»å‹•ã§ãるよã†ã«ã™ã‚‹ã€‚", + "jump-to-def/@info-developer-tools": "ã“ã®ã‚¢ãƒ‰ã‚ªãƒ³ã¯ä»¥å‰ã€Œé–‹ç™ºè€…ツールã€ã®ä¸€éƒ¨ã§ã—ãŸãŒã€ç§»å‹•ã—ã¾ã—ãŸã€‚", + "jump-to-def/@name": "カスタムブロック定義ã«ç§»å‹•", + "editor-searchable-dropdowns/@description": "ブロックã®ãƒ‰ãƒ­ãƒƒãƒ—ダウンã®é¸æŠžè‚¢ã‚’検索ã™ã‚‹ã€‚", + "editor-searchable-dropdowns/@name": "ドロップダウン検索", + "data-category-tweaks-v2/@description": "変数ブロックã®è¡¨ç¤ºã‚’改良ã™ã‚‹ã€‚", + "data-category-tweaks-v2/@name": "変数ブロック改良", + "data-category-tweaks-v2/@settings-name-moveReportersDown": "変数ブロックを変数リストã®ä¸Šã«ç§»å‹•", + "data-category-tweaks-v2/@settings-name-separateListCategory": "リストを分離", + "data-category-tweaks-v2/@settings-name-separateLocalVariables": "スプライトã®ã¿ã®å¤‰æ•°ã‚’分離", + "block-palette-icons/@description": "ブロックパレットã®ã‚«ãƒ†ã‚´ãƒªãƒ¼ã«ã‚¢ã‚¤ã‚³ãƒ³ã‚’追加ã™ã‚‹ã€‚", + "block-palette-icons/@name": "ブロックパレットアイコン", + "hide-flyout/@description": "ブロックパレットをホãƒãƒ¼ã—ã¦ã„ãªã„ã¨ãã«éš ã™ã€‚ロックアイコンをクリックã—ã¦è¡¨ç¤ºã—ç¶šã‘ãŸã‚Šã€ã€Œã‚«ãƒ†ã‚´ãƒªãƒ¼ãƒ»ã‚¯ãƒªãƒƒã‚¯ã€ã‚’使ã†ã“ã¨ã‚‚ã§ãる。", + "hide-flyout/@info-hoverExplanation": "「パレット部分ã®ãƒ›ãƒãƒ¼ã€ã¯ã€é–²è¦§éƒ¨åˆ†ã®ã¿æ‹¡å¤§ã—ã¾ã™ã€‚誤ã£ã¦ãƒ–ロックを削除ã—ãªã„よã†ã«ã™ã‚‹ã«ã¯ã€ä»–ã®ãƒ¢ãƒ¼ãƒ‰ã‚’使ã£ã¦ãã ã•ã„。", + "hide-flyout/@name": "ブロックパレット隠ã—", + "hide-flyout/@settings-name-speed": "アニメーションã®é€Ÿã•", + "hide-flyout/@settings-name-toggle": "固定方法", + "hide-flyout/@settings-select-speed-default": "既定", + "hide-flyout/@settings-select-speed-long": "é…ã", + "hide-flyout/@settings-select-speed-none": "峿™‚", + "hide-flyout/@settings-select-speed-short": "速ã", + "hide-flyout/@settings-select-toggle-category": "カテゴリー・クリック", + "hide-flyout/@settings-select-toggle-cathover": "カテゴリーã®ãƒ›ãƒãƒ¼", + "hide-flyout/@settings-select-toggle-hover": "パレット部分ã®ãƒ›ãƒãƒ¼", + "hide-flyout/@update": "アドオンãŒè¦‹ç›´ã•れã€å¤šãã®ãƒã‚°ãŒä¿®æ­£ã•れã¾ã—ãŸã€‚", + "mediarecorder/@description": "ステージを録画ã™ã‚‹ãƒœã‚¿ãƒ³ã‚’エディターã®ãƒ¡ãƒ‹ãƒ¥ãƒ¼ãƒãƒ¼ã«è¿½åŠ ã™ã‚‹ã€‚", + "mediarecorder/@name": "ステージを録画", + "drag-drop/@description": "エディターã®ã‚¹ãƒ—ライトペインやコスãƒãƒ¥ãƒ¼ãƒ ãƒšã‚¤ãƒ³ã«ãƒ•ァイルをドロップã—ãŸã‚Šã€ãƒªã‚¹ãƒˆã‚„「èžã„ã¦å¾…ã¤ã€ç”»é¢ã«ãƒ†ã‚­ã‚¹ãƒˆãƒ•ァイルをドロップã§ãるよã†ã«ã™ã‚‹ã€‚", + "drag-drop/@name": "ファイルをドロップ", + "drag-drop/@settings-name-use-hd-upload": "HDアップロードを使用", + "debugger/@name": "デãƒãƒƒã‚¬ãƒ¼", + "debugger/@settings-name-log_broadcasts": "メッセージを記録", + "debugger/@settings-name-log_clear_greenflag": "ç·‘ã®æ——ãŒæŠ¼ã•れãŸã¨ãã«ãƒ­ã‚°ã‚’消去", + "debugger/@settings-name-log_clone_create": "クローンã®ä½œæˆã‚’記録", + "debugger/@settings-name-log_failed_clone_creation": "クローン作æˆå¤±æ•—時ã«è¨˜éŒ²", + "debugger/@settings-name-log_greenflag": "ç·‘ã®æ——を記録", + "debugger/@update": "デãƒãƒƒã‚¬ãƒ¼ç”»é¢ã«ã€Œã‚¹ãƒ¬ãƒƒãƒ‰ã€ã¨ã€Œãƒ‘フォーマンスã€ã‚¿ãƒ–ãŒè¿½åŠ ã•れã¾ã—ãŸã€‚", + "pause/@description": "ç·‘ã®æ——ã®æ¨ªã«ä¸€æ™‚åœæ­¢ãƒœã‚¿ãƒ³ã‚’追加ã™ã‚‹ã€‚", + "pause/@name": "ä¸€æ™‚åœæ­¢ãƒœã‚¿ãƒ³", + "mute-project/@description": "ç·‘ã®æ——ã‚’Ctr+クリックã§ãƒŸãƒ¥ãƒ¼ãƒˆã™ã‚‹ã€‚", + "mute-project/@info-macOS": "macOSã§ã¯ã€Ctrlã®ä»£ã‚りã«Commandキーを押ã—ã¦ãã ã•ã„。", + "mute-project/@name": "プロジェクトをミュート", + "vol-slider/@description": "ç·‘ã®æ——ã®æ¨ªã«éŸ³é‡ã‚¹ãƒ©ã‚¤ãƒ€ãƒ¼ã‚’追加ã™ã‚‹ã€‚", + "vol-slider/@name": "プロジェクト音é‡ã‚¹ãƒ©ã‚¤ãƒ€ãƒ¼", + "vol-slider/@settings-name-defVol": "デフォルトã®éŸ³é‡", + "clones/@description": "クローンã®åˆè¨ˆæ•°ã‚’ステージã®ä¸Šã«è¡¨ç¤ºã™ã‚‹ã€‚", + "clones/@name": "クローンカウンター", + "clones/@settings-name-showicononly": "アイコンã®ã¿è¡¨ç¤º", + "mouse-pos/@description": "ステージã®ä¸Šã«ãƒžã‚¦ã‚¹ã®åº§æ¨™ã‚’表示ã™ã‚‹ã€‚", + "mouse-pos/@name": "マウスã®åº§æ¨™", + "color-picker/@description": "16進数カラーコードã®å…¥åŠ›æ¬„ã‚’è¿½åŠ ã™ã‚‹ã€‚", + "color-picker/@name": "16進数カラーピッカー", + "remove-sprite-confirm/@description": "スプライトã®å‰Šé™¤æ™‚ã«ç¢ºèªç”»é¢ã‚’表示ã™ã‚‹ã€‚", + "remove-sprite-confirm/@name": "スプライト削除確èªç”»é¢", + "block-count/@description": "エディターã®ãƒ¡ãƒ‹ãƒ¥ãƒ¼ãƒãƒ¼ã«åˆè¨ˆãƒ–ロック数を表示ã™ã‚‹ã€‚", + "block-count/@name": "ブロックカウント", + "onion-skinning/@description": "コスãƒãƒ¥ãƒ¼ãƒ ç·¨é›†æ™‚ã«å‰å¾Œã®ã‚³ã‚¹ãƒãƒ¥ãƒ¼ãƒ ãŒè¡¨ç¤ºã•れるåŠé€æ˜Žãªãƒ¬ã‚¤ãƒ¤ãƒ¼ã‚’追加ã™ã‚‹ã€‚æ‹¡å¤§ãƒœã‚¿ãƒ³ã®æ¨ªã®ãƒœã‚¿ãƒ³ã§åˆ¶å¾¡å¯èƒ½ã€‚", + "onion-skinning/@name": "åŠé€æ˜Žã‚³ã‚¹ãƒãƒ¥ãƒ¼ãƒ ã‚¨ãƒ‡ã‚£ã‚¿ãƒ¼", + "onion-skinning/@settings-name-afterTint": "次ã®ã‚³ã‚¹ãƒãƒ¥ãƒ¼ãƒ ã«è‰²", + "onion-skinning/@settings-name-beforeTint": "å‰ã®ã‚³ã‚¹ãƒãƒ¥ãƒ¼ãƒ ã«è‰²", + "onion-skinning/@settings-name-default": "æ—¢å®šã§æœ‰åŠ¹åŒ–", + "onion-skinning/@settings-name-layering": "既定ã®ãƒ¬ã‚¤ãƒ¤ãƒ¼", + "onion-skinning/@settings-name-mode": "既定ã®ãƒ¢ãƒ¼ãƒ‰", + "onion-skinning/@settings-name-next": "次ã®ã‚³ã‚¹ãƒãƒ¥ãƒ¼ãƒ ", + "onion-skinning/@settings-name-opacity": "逿˜Žåº¦ (%)", + "onion-skinning/@settings-name-opacityStep": "逿˜Žåº¦ã®å¤‰åŒ–ã®å‰²åˆ (%)", + "onion-skinning/@settings-name-previous": "å‰ã®ã‚³ã‚¹ãƒãƒ¥ãƒ¼ãƒ ", + "onion-skinning/@settings-select-layering-behind": "後ã‚", + "onion-skinning/@settings-select-layering-front": "å‰", + "onion-skinning/@settings-select-mode-merge": "ç”»åƒã‚’マージ", + "onion-skinning/@settings-select-mode-tint": "色åˆã„", + "paint-snap/@description": "コスãƒãƒ¥ãƒ¼ãƒ ã‚¨ãƒ‡ã‚£ã‚¿ãƒ¼ã«ã¦ã€ã‚ªãƒ–ジェクトを枠線やベクターã®ãƒŽãƒ¼ãƒ‰ã«ã‚¹ãƒŠãƒƒãƒ—ã•ã›ã‚‹ã€‚", + "paint-snap/@name": "グリッドã«ã‚¹ãƒŠãƒƒãƒ—", + "paint-snap/@settings-name-boxCenter": "é¸æŠžã—ãŸã‚ªãƒ–ジェクトã®ä¸­å¤®ã‹ã‚‰ã‚¹ãƒŠãƒƒãƒ—", + "paint-snap/@settings-name-boxCorners": "é¸æŠžã—ãŸã‚ªãƒ–ジェクトã®è§’ã‹ã‚‰ã‚¹ãƒŠãƒƒãƒ—", + "paint-snap/@settings-name-boxEdgeMids": "é¸æŠžã—ãŸã‚ªãƒ–ジェクトã®ä¸­ç‚¹ã‹ã‚‰ã‚¹ãƒŠãƒƒãƒ—", + "paint-snap/@settings-name-enable-default": "æ—¢å®šã§æœ‰åŠ¹åŒ–", + "paint-snap/@settings-name-guide-color": "ガイド色", + "paint-snap/@settings-name-objectCenters": "オブジェクトã®ä¸­å¤®ã«ã‚¹ãƒŠãƒƒãƒ—", + "paint-snap/@settings-name-objectCorners": "オブジェクトã®è§’ã«ã‚¹ãƒŠãƒƒãƒ—", + "paint-snap/@settings-name-objectEdges": "オブジェクトã®ç«¯ã«ã‚¹ãƒŠãƒƒãƒ—", + "paint-snap/@settings-name-objectMidlines": "オブジェクトã®ä¸­å¤®ç·šã«ã‚¹ãƒŠãƒƒãƒ—", + "paint-snap/@settings-name-pageAxes": "ページã®åº§æ¨™è»¸ã«ã‚¹ãƒŠãƒƒãƒ—", + "paint-snap/@settings-name-pageCenter": "ページã®ä¸­å¤®ã«ã‚¹ãƒŠãƒƒãƒ—", + "paint-snap/@settings-name-pageCorners": "ページã®è§’ã«ã‚¹ãƒŠãƒƒãƒ—", + "paint-snap/@settings-name-pageEdges": "ページã®ç«¯ã«ã‚¹ãƒŠãƒƒãƒ—", + "paint-snap/@settings-name-threshold": "スナップè·é›¢", + "default-costume-editor-color/@description": "コスãƒãƒ¥ãƒ¼ãƒ ã‚¨ãƒ‡ã‚£ã‚¿ãƒ¼ã®æ—¢å®šã®è‰²ã¨è¼ªéƒ­ã®å¤§ãã•を変更ã™ã‚‹ã€‚", + "default-costume-editor-color/@name": "コスãƒãƒ¥ãƒ¼ãƒ ã‚¨ãƒ‡ã‚£ã‚¿ãƒ¼ã®æ—¢å®šã®è‰²ã‚’変更", + "default-costume-editor-color/@settings-name-fill": "既定ã®å¡—りã¤ã¶ã—色", + "default-costume-editor-color/@settings-name-persistence": "ツール変更時ã«è‰²ã‚’リセットã›ãšã€ä»¥å‰ã®è‰²ã‚’使用ã™ã‚‹", + "default-costume-editor-color/@settings-name-stroke": "既定ã®è¼ªéƒ­è‰²", + "default-costume-editor-color/@settings-name-strokeSize": "既定ã®è¼ªéƒ­ã®å¤§ãã•", + "bitmap-copy/@description": "ペイントエディターã§ãƒ“ットマップ画åƒã‚’コピーå¯èƒ½ã«ã™ã‚‹ã€‚", + "bitmap-copy/@info-norightclick": "å³ã‚¯ãƒªãƒƒã‚¯ãƒ¡ãƒ‹ãƒ¥ãƒ¼ã¯ä½¿ãˆã¾ã›ã‚“。ビットマップ画åƒã‚’é¸æŠžã—ã€Ctrl+Cを押ã—ã¦ãã ã•ã„。", + "bitmap-copy/@name": "ビットマップ画åƒã‚’コピー", + "2d-color-picker/@description": "コスãƒãƒ¥ãƒ¼ãƒ ã‚¨ãƒ‡ã‚£ã‚¿ãƒ¼ã®é®®ã‚„ã‹ã•ã¨æ˜Žã‚‹ã•ã®ã‚¹ãƒ©ã‚¤ãƒ€ãƒ¼ã‚’2Dカラーピッカーã«ã™ã‚‹ã€‚Shiftキーを押ã—ã¦ä¸€æ–¹ã®ã¿ã‚’変更ã™ã‚‹ã€‚", + "2d-color-picker/@name": "2D カラーピッカー", + "better-img-uploads/@description": "「コスãƒãƒ¥ãƒ¼ãƒ ã‚’アップロードã€ãƒœã‚¿ãƒ³ã®ä¸Šã«ã€ç”»åƒã‚’自動的ã«SVGã«å¤‰æ›ã—ã¦ç”»è³ªã‚’ä¿ã¤ã€ŒHDアップロードã€ãƒœã‚¿ãƒ³ã‚’追加ã™ã‚‹ã€‚", + "better-img-uploads/@info-notSuitableEdit": "ã“ã®ã‚¢ãƒ‰ã‚ªãƒ³ã‚’使ã£ã¦ã‚¢ãƒƒãƒ—ロードã—ãŸç”»åƒã¯ã€ç·¨é›†ã«ã¯é©ã—ã¾ã›ã‚“。", + "better-img-uploads/@name": "ç”»åƒã®HD アップロード", + "better-img-uploads/@settings-name-fitting": "ç”»åƒã®ã‚µã‚¤ã‚º", + "better-img-uploads/@settings-select-fitting-fill": "伸ã°ã™", + "better-img-uploads/@settings-select-fitting-fit": "縮ã‚ã‚‹", + "better-img-uploads/@settings-select-fitting-full": "元サイズ", + "pick-colors-from-stage/@description": "コスãƒãƒ¥ãƒ¼ãƒ ã‚¨ãƒ‡ã‚£ã‚¿ãƒ¼ã®ã‚«ãƒ©ãƒ¼ãƒ”ッカーã§ã‚¹ãƒ†ãƒ¼ã‚¸ã‹ã‚‰è‰²ã‚’é¸ã¹ã‚‹ã‚ˆã†ã«ã™ã‚‹ã€‚", + "pick-colors-from-stage/@name": "コスãƒãƒ¥ãƒ¼ãƒ ã‚¨ãƒ‡ã‚£ã‚¿ãƒ¼ã§ã‚¹ãƒ†ãƒ¼ã‚¸ã®è‰²ã‚’é¸æŠž", + "custom-block-shape/@description": "ブロックã®ãƒ‘ディングã€è§’ã€åˆ‡ã‚Œè¾¼ã¿ã‚’調節ã™ã‚‹ã€‚", + "custom-block-shape/@info-paddingWarning": "パディングã®ã‚µã‚¤ã‚ºã¯ä»–ã®ãƒ¦ãƒ¼ã‚¶ãƒ¼ã«ã¯é©ç”¨ã•れã¾ã›ã‚“。", + "custom-block-shape/@name": "ブロックã®å½¢ã‚’カスタマイズ", + "custom-block-shape/@preset-description-default2": "Scratch 2.0風ã®ãƒ–ロック", + "custom-block-shape/@preset-description-default3": "Scratch 3.0ãƒ–ãƒ­ãƒƒã‚¯ã®æ—¢å®šå€¤", + "custom-block-shape/@preset-description-flat2": "切れ込ã¿ã¨è§’ã‚’ãªãã—ãŸScratch 2.0ブロック", + "custom-block-shape/@preset-description-flat3": "切れ込ã¿ã¨è§’ã‚’ãªãã—ãŸScratch 3.0ブロック", + "custom-block-shape/@preset-name-default2": "2.0ブロック", + "custom-block-shape/@preset-name-default3": "3.0ブロック", + "custom-block-shape/@preset-name-flat2": "2.0 フラット", + "custom-block-shape/@preset-name-flat3": "3.0 フラット", + "custom-block-shape/@settings-name-cornerSize": "è§’ã®ã‚µã‚¤ã‚º (0-300%)", + "custom-block-shape/@settings-name-notchSize": "切れ込ã¿ã®é«˜ã• (0-150%)", + "custom-block-shape/@settings-name-paddingSize": "パディングã®ã‚µã‚¤ã‚º (50-200%)", + "zebra-striping/@description": "é‡ãªã£ã¦ã„ã‚‹åŒã˜ã‚«ãƒ†ã‚´ãƒªãƒ¼ã®ãƒ–ロックã®è‰²ã®å½©åº¦ã‚’交互ã«å¤‰ãˆã‚‹ã€‚「ゼブラストライピングã€ã¨ã‚‚呼ã°ã‚Œã¦ã„る。", + "zebra-striping/@name": "ブロックã®è‰²ã‚’交互ã«å¤‰æ›´", + "zebra-striping/@settings-name-intensity": "å€çއ (0-100%)", + "zebra-striping/@settings-name-shade": "明るã•", + "zebra-striping/@settings-select-shade-darker": "æš—ã", + "zebra-striping/@settings-select-shade-lighter": "明るã", + "editor-theme3/@description": "ブロックã®è‰²ã‚’カテゴリーã”ã¨ã«å¤‰æ›´ã™ã‚‹ã€‚", + "editor-theme3/@name": "ブロックã®è‰²ã‚’カスタマイズ", + "editor-theme3/@preset-description-black": "ブロックã®èƒŒæ™¯è‰²ã‚’é»’ã«ã™ã‚‹", + "editor-theme3/@preset-description-dark": "既定ã®è‰²ã‚’æš—ãã—ãŸãƒãƒ¼ã‚¸ãƒ§ãƒ³", + "editor-theme3/@preset-description-original": "Scratch 2.0ã®è‰²", + "editor-theme3/@preset-description-tweaks": "Scratch 2.0風ã®ã‚¤ãƒ™ãƒ³ãƒˆã€åˆ¶å¾¡ã€å®šç¾©ãƒ–ロック", + "editor-theme3/@preset-name-black": "é»’", + "editor-theme3/@preset-name-dark": "ダーク", + "editor-theme3/@preset-name-original": "2.0ã®è‰²", + "editor-theme3/@settings-name-Pen-color": "拡張機能", + "editor-theme3/@settings-name-comment-color": "コメント", + "editor-theme3/@settings-name-control-color": "制御", + "editor-theme3/@settings-name-custom-color": "定義", + "editor-theme3/@settings-name-data-color": "変数", + "editor-theme3/@settings-name-data-lists-color": "リスト", + "editor-theme3/@settings-name-events-color": "イベント", + "editor-theme3/@settings-name-input-color": "ブロックã®å…¥åŠ›", + "editor-theme3/@settings-name-looks-color": "見ãŸç›®", + "editor-theme3/@settings-name-motion-color": "å‹•ã", + "editor-theme3/@settings-name-operators-color": "演算", + "editor-theme3/@settings-name-sensing-color": "調ã¹ã‚‹", + "editor-theme3/@settings-name-sounds-color": "音", + "editor-theme3/@settings-name-text": "文字色", + "editor-theme3/@settings-select-text-black": "é»’", + "editor-theme3/@settings-select-text-colorOnBlack": "黒背景ã«è‰²", + "editor-theme3/@settings-select-text-colorOnWhite": "白背景ã«è‰²", + "editor-theme3/@settings-select-text-white": "白", + "editor-theme3/@update": "「エディターã®ãƒ€ãƒ¼ã‚¯ãƒ¢ãƒ¼ãƒ‰ã¨ã‚«ã‚¹ã‚¿ãƒžã‚¤ã‚ºã€ã‚¢ãƒ‰ã‚ªãƒ³ã®ã€Œã‚³ãƒ¡ãƒ³ãƒˆã«ãƒ€ãƒ¼ã‚¯ãƒ¢ãƒ¼ãƒ‰ã‚’é©ç”¨ã€è¨­å®šãŒã“ã“ã«ç§»å‹•ã•れã€è‰²ã‚’変更ã§ãるよã†ã«ãªã‚Šã¾ã—ãŸã€‚", + "custom-block-text/@description": "ブロック内ã®ãƒ†ã‚­ã‚¹ãƒˆã®å¤ªã•を変更ã—ãŸã‚Šã€å½±ã‚’追加ã—ãŸã‚Šã™ã‚‹ã€‚", + "custom-block-text/@name": "ブロック内ã®ãƒ†ã‚­ã‚¹ãƒˆè£…飾変更", + "custom-block-text/@settings-name-bold": "太字", + "custom-block-text/@settings-name-shadow": "å½±", + "editor-colored-context-menus/@description": "コンテキストメニューã«è‰²ã‚’付ã‘る。", + "editor-colored-context-menus/@name": "å³ã‚¯ãƒªãƒƒã‚¯ãƒ¡ãƒ‹ãƒ¥ãƒ¼ã‚’色付ã‘", + "editor-stage-left/@description": "Scratch 2.0ã®ã‚ˆã†ã«ã€ã‚¹ãƒ†ãƒ¼ã‚¸ã‚’å·¦å´ã«è¡¨ç¤ºã™ã‚‹ã€‚", + "editor-stage-left/@info-reverseOrder": "ステージ上ã®ãƒœã‚¿ãƒ³ã®ä½ç½®ã‚’変更ã™ã‚‹ã«ã¯ã€ã€Œãƒ—ロジェクトæ“作ボタンå転ã€ã‚¢ãƒ‰ã‚ªãƒ³ã‚’使用ã—ã¦ãã ã•ã„。", + "editor-stage-left/@name": "ステージを左å´ã«è¡¨ç¤º", + "editor-buttons-reverse-order/@description": "Scratch 2.0ã®ã‚ˆã†ã«ã€ç·‘ã®æ——ã¨åœæ­¢ãƒœã‚¿ãƒ³ã‚’å³ã«ã€å…¨ç”»é¢è¡¨ç¤ºãƒœã‚¿ãƒ³ã‚’å·¦ã«ç§»å‹•ã•ã›ã‚‹ã€‚", + "editor-buttons-reverse-order/@name": "プロジェクトæ“作ボタンå転", + "variable-manager/@description": "エディターã«å¤‰æ•°ã¨ãƒªã‚¹ãƒˆã‚’管ç†ã™ã‚‹ãŸã‚ã®ã‚¿ãƒ–を追加ã™ã‚‹ã€‚", + "variable-manager/@name": "変数マãƒãƒ¼ã‚¸ãƒ£ãƒ¼", + "variable-manager/@update": "リスト項目ãŒShiftキーを押ã•ãšã«è¿½åŠ ã§ãるよã†ã«ãªã‚Šã¾ã—ãŸã€‚", + "search-sprites/@description": "スプライトペインã«ã€ã‚¹ãƒ—ライトをåå‰ã§æ¤œç´¢ã™ã‚‹é …目を追加ã™ã‚‹ã€‚", + "search-sprites/@name": "スプライトを検索", + "sprite-properties/@description": "Scratch 2.0ã®ã‚ˆã†ã«ã€ã‚¹ãƒ—ライトプロパティ―パãƒãƒ«ã‚’既定ã§éš ã™ã€‚é¸æŠžã•れãŸã‚¹ãƒ—ãƒ©ã‚¤ãƒˆã®æƒ…報ボタンをクリックã™ã‚‹ã‹ã€ã‚¹ãƒ—ライトをダブルクリックã—ã¦ãƒ—ロパティ―パãƒãƒ«ã‚’表示ã™ã‚‹ã€‚プロパティ―パãƒãƒ«ã®é–‰ã˜ã‚‹ãƒœã‚¿ãƒ³ã‚’クリックã™ã‚‹ã‹ã€ã‚¹ãƒ—ライトをダブルクリックã—ã¦ãƒ—ロパティ―パãƒãƒ«ã‚’é–‰ã˜ã‚‹ã€‚", + "sprite-properties/@name": "スプライトプロパティーを隠ã™", + "sprite-properties/@settings-name-autoCollapse": "スプライトパãƒãƒ«å¤–ã«ãƒžã‚¦ã‚¹ãŒç§»å‹•ã—ãŸã¨ãã«è‡ªå‹•çš„ã«éš ã™", + "sprite-properties/@settings-name-hideByDefault": "プロパティ―パãƒãƒ«ã‚’既定ã§éš ã™", + "sprite-properties/@settings-name-transitionDuration": "アニメーションã®é€Ÿã•", + "sprite-properties/@settings-select-transitionDuration-default": "既定", + "sprite-properties/@settings-select-transitionDuration-long": "é…ã", + "sprite-properties/@settings-select-transitionDuration-none": "峿™‚", + "sprite-properties/@settings-select-transitionDuration-short": "速ã", + "gamepad/@description": "USBã‹Bluetoothã®ã‚³ãƒ³ãƒˆãƒ­ãƒ¼ãƒ©ãƒ¼ã‚„ゲームパッドを利用ã™ã‚‹ã€‚", + "gamepad/@name": "ゲームパッド", + "gamepad/@settings-name-hide": "ã‚³ãƒ³ãƒˆãƒ­ãƒ¼ãƒ©ãƒ¼ãŒæ¤œå‡ºã•れãªã„å ´åˆã«è¨­å®šãƒœã‚¿ãƒ³ã‚’éš ã™", + "editor-sounds/@description": "ブロックをã¤ãªã’ãŸã‚Šå‰Šé™¤ã—ãŸã‚Šã™ã‚‹ã¨ãã«åŠ¹æžœéŸ³ã‚’é³´ã‚‰ã™ã€‚", + "editor-sounds/@name": "エディター効果音", + "folders/@description": "スプライト・コスãƒãƒ¥ãƒ¼ãƒ ãƒ»éŸ³ã®ãƒªã‚¹ãƒˆã«ãƒ•ォルダーを追加ã™ã‚‹ã€‚フォルダーを作æˆã™ã‚‹ã«ã¯ã€ã‚¹ãƒ—ライトをå³ã‚¯ãƒªãƒƒã‚¯ã—「フォルダーを作æˆã€ã‚’押ã™ã€‚クリックã—ã¦é–‹é–‰ã—ã€ã‚¹ãƒ—ライトをドラッグã‹å³ã‚¯ãƒªãƒƒã‚¯ã—ã¦ãƒ•ォルダーã«ç§»å‹•ã•ã›ã‚‹ã€‚ã“れã¯ã€ã€Œ[フォルダーå]//ã€ã‚’スプライトåã®å…ˆé ­ã«è¿½åŠ ã™ã‚‹ã“ã¨ã«ã‚ˆã£ã¦å‹•作ã™ã‚‹ã€‚", + "folders/@info-notice-folders-are-public": "ã“ã®æ©Ÿèƒ½ã‚’有効化ã—ã¦ã„ãªã„å ´åˆã¯ã€ã‚¹ãƒ—ライトã¯ã™ã¹ã¦è¡¨ç¤ºã•れã¾ã™ãŒã€ãƒ•ォルダーã¯è¡¨ç¤ºã•れã¾ã›ã‚“。", + "folders/@name": "スプライトフォルダー", + "block-switching/@description": "ブロックをå³ã‚¯ãƒªãƒƒã‚¯ã—ã¦é¡žä¼¼ã®ãƒ–ロックã«å¤‰ãˆã‚‹ã€‚", + "block-switching/@name": "ブロック置æ›", + "block-switching/@settings-name-control": "制御ブロック", + "block-switching/@settings-name-customargs": "定義ブロックã®å¼•æ•°", + "block-switching/@settings-name-customargsmode": "表示ã™ã‚‹å®šç¾©ãƒ–ロック引数", + "block-switching/@settings-name-data": "変数ブロック", + "block-switching/@settings-name-event": "イベントブロック", + "block-switching/@settings-name-extension": "拡張機能ブロック", + "block-switching/@settings-name-looks": "見ãŸç›®ãƒ–ロック", + "block-switching/@settings-name-motion": "å‹•ãブロック", + "block-switching/@settings-name-noop": "ç¾åœ¨ã®ãƒ–ロックを表示", + "block-switching/@settings-name-operator": "演算ブロック", + "block-switching/@settings-name-sensing": "調ã¹ã‚‹ãƒ–ロック", + "block-switching/@settings-name-sound": "音ブロック", + "block-switching/@settings-select-customargsmode-all": "スプライト内ã®ã™ã¹ã¦ã®å®šç¾©ãƒ–ロックã®å¼•æ•°", + "block-switching/@settings-select-customargsmode-defOnly": "åŒã˜å®šç¾©ãƒ–ロック内ã®å¼•æ•°", + "load-extensions/@description": "プロジェクトã«è‡ªå‹•ã§æ‹¡å¼µæ©Ÿèƒ½ã‚’追加ã™ã‚‹ã€‚", + "load-extensions/@name": "拡張機能ã®è‡ªå‹•追加", + "load-extensions/@settings-name-music": "音楽", + "load-extensions/@settings-name-pen": "ペン", + "load-extensions/@settings-name-text2speech": "éŸ³å£°åˆæˆ", + "load-extensions/@settings-name-translate": "翻訳", + "custom-zoom/@description": "コードペインã®ã‚ºãƒ¼ãƒ è¨­å®šã‚’カスタマイズã™ã‚‹ã€‚", + "custom-zoom/@name": "カスタムズーム設定", + "custom-zoom/@settings-name-autohide": "ズームボタンを隠ã™", + "custom-zoom/@settings-name-maxZoom": "最大値 (100-500%)", + "custom-zoom/@settings-name-minZoom": "最å°å€¤ (1-100%)", + "custom-zoom/@settings-name-speed": "アニメーションã®é€Ÿã•", + "custom-zoom/@settings-name-startZoom": "åˆæœŸå€¤ (50-500%)", + "custom-zoom/@settings-name-zoomSpeed": "ズームã®å‰²åˆ (50-200%)", + "custom-zoom/@settings-select-speed-default": "既定", + "custom-zoom/@settings-select-speed-long": "é…ã", + "custom-zoom/@settings-select-speed-none": "峿™‚", + "custom-zoom/@settings-select-speed-short": "速ã", + "initialise-sprite-position/@description": "æ–°ã—ã„スプライトã®ãƒ‡ãƒ•ォルトã®X・Y座標を変更ã™ã‚‹ã€‚", + "initialise-sprite-position/@name": "æ–°ã—ã„スプライトã®ä½ç½®ã‚’変更", + "initialise-sprite-position/@settings-name-duplicate": "スプライト複製時ã®å‹•作", + "initialise-sprite-position/@settings-name-library": "ランダム", + "initialise-sprite-position/@settings-name-x": "X座標", + "initialise-sprite-position/@settings-name-y": "Y座標", + "initialise-sprite-position/@settings-select-duplicate-custom": "指定ã—ãŸåº§æ¨™ã«ç§»å‹•", + "initialise-sprite-position/@settings-select-duplicate-keep": "元スプライトã¨åŒã˜åº§æ¨™ã«ã™ã‚‹", + "initialise-sprite-position/@settings-select-duplicate-randomize": "ランダムã«ã™ã‚‹", + "blocks2image/@description": "コードエリアをå³ã‚¯ãƒªãƒƒã‚¯ã—ã¦ãƒ–ロックをSVG/PNGã¨ã—ã¦å‡ºåŠ›ã™ã‚‹ã€‚", + "blocks2image/@name": "ブロックを画åƒã«å‡ºåŠ›", + "remove-curved-stage-border/@description": "ã‚¹ãƒ†ãƒ¼ã‚¸ã®æž ã®ä¸¸ã¿ã‚’ãªãã—ã€è§’を見れるよã†ã«ã™ã‚‹ã€‚", + "remove-curved-stage-border/@name": "ã‚¹ãƒ†ãƒ¼ã‚¸ã®æž ã®ä¸¸ã¿é™¤åŽ»", + "transparent-orphans/@description": "エディター内ã®ã¤ãªãŒã£ã¦ã„ãªã„ブロックやドラッグ中ã®ãƒ–ロックã®é€æ˜Žåº¦ã‚’調整ã™ã‚‹ã€‚", + "transparent-orphans/@name": "逿˜Žãƒ–ロック", + "transparent-orphans/@settings-name-block": "ブロックã®é€æ˜Žåº¦ (%)", + "transparent-orphans/@settings-name-dragged": "ドラッグ中ã®ãƒ–ロックã®é€æ˜Žåº¦ (%)", + "transparent-orphans/@settings-name-orphan": "ã¤ãªãŒã£ã¦ã„ãªã„ブロックã®é€æ˜Žåº¦ (%)", + "paint-by-default/@description": "「スプライト・コスãƒãƒ¥ãƒ¼ãƒ ãƒ»èƒŒæ™¯ãƒ»éŸ³ã‚’é¸ã¶ã€ãƒœã‚¿ãƒ³ã®æ—¢å®šã®å‹•作を変更ã™ã‚‹ã€‚", + "paint-by-default/@name": "空ã®ã‚³ã‚¹ãƒãƒ¥ãƒ¼ãƒ ã‚’追加ボタン", + "paint-by-default/@settings-name-backdrop": "背景", + "paint-by-default/@settings-name-costume": "コスãƒãƒ¥ãƒ¼ãƒ ", + "paint-by-default/@settings-name-sound": "音", + "paint-by-default/@settings-name-sprite": "スプライト", + "paint-by-default/@settings-select-backdrop-library": "ライブラリー", + "paint-by-default/@settings-select-backdrop-paint": "空ã®èƒŒæ™¯", + "paint-by-default/@settings-select-backdrop-surprise": "サプライズ", + "paint-by-default/@settings-select-backdrop-upload": "アップロード", + "paint-by-default/@settings-select-costume-library": "ライブラリー", + "paint-by-default/@settings-select-costume-paint": "空ã®ã‚³ã‚¹ãƒãƒ¥ãƒ¼ãƒ ", + "paint-by-default/@settings-select-costume-surprise": "サプライズ", + "paint-by-default/@settings-select-costume-upload": "アップロード", + "paint-by-default/@settings-select-sound-library": "ライブラリー", + "paint-by-default/@settings-select-sound-record": "録音", + "paint-by-default/@settings-select-sound-surprise": "サプライズ", + "paint-by-default/@settings-select-sound-upload": "アップロード", + "paint-by-default/@settings-select-sprite-library": "ライブラリー", + "paint-by-default/@settings-select-sprite-paint": "空ã®ã‚¹ãƒ—ライト", + "paint-by-default/@settings-select-sprite-surprise": "サプライズ", + "paint-by-default/@settings-select-sprite-upload": "アップロード", + "block-cherry-picking/@description": "Ctrlキーを押ã—ã¦ã„ã‚‹é–“ã€ãƒ–ロックをã¤ã‹ã‚€ã¨ãã®ãƒ–ロックã ã‘ãŒç§»å‹•ã™ã‚‹ã‚ˆã†ã«ã™ã‚‹ã€‚", + "block-cherry-picking/@info-flipControls": "「入力をå転ã€ã‚’利用ã—ã¦ã„ã‚‹å ´åˆã¯ã€Ctrlキーを押ã•ãšã«ãƒ–ロックをã¤ã‹ã‚€ã¨ãã®ãƒ–ロックã ã‘ãŒç§»å‹•ã—ã€Ctrlキーを押ã™ã¨ä¸‹ã®ãƒ–ロックも一緒ã«ç§»å‹•ã™ã‚‹ã‚ˆã†ã«ãªã‚Šã¾ã™ã€‚", + "block-cherry-picking/@info-macContextDisabled": "macOSã§ã¯ã€Ctrlã®ä»£ã‚りã«Commandキーを押ã—ã¦ãã ã•ã„。", + "block-cherry-picking/@name": "Ctrlキーã§ãƒ–ロックをã¤ã‹ã‚€", + "block-cherry-picking/@settings-name-invertDrag": "入力をå転", + "hide-new-variables/@description": "æ–°ã—ã作æˆã—ãŸå¤‰æ•°ã‚„リストã®ãƒ¢ãƒ‹ã‚¿ãƒ¼ã‚’自動ã§éš ã™ã€‚", + "hide-new-variables/@name": "変数を自動ã§éš ã™", + "editor-extra-keys/@description": "\"() ã‚­ãƒ¼ãŒæŠ¼ã•れãŸ?\" ブロックã®ãƒ‰ãƒ­ãƒƒãƒ—ダウンã«ã€Enterã€ãƒ‰ãƒƒãƒˆã€ã‚«ãƒ³ãƒžãªã©ã®ã‚­ãƒ¼ã‚’追加ã™ã‚‹ã€‚ã“れらã¯ã€ã‚¢ãƒ‰ã‚ªãƒ³ã‚’有効化ã—ãªãã¦ã‚‚動作ã™ã‚‹ã€‚", + "editor-extra-keys/@info-experimentalKeysWarn": "「実験的ãªã‚­ãƒ¼ã€ã«ã¯ã€ç­‰å·ã€ã‚¹ãƒ©ãƒƒã‚·ãƒ¥ã€ã‚»ãƒŸã‚³ãƒ­ãƒ³ãªã©ãŒå«ã¾ã‚Œã¾ã™ã€‚OSやキーボードã®ãƒ¬ã‚¤ã‚¢ã‚¦ãƒˆã«ã‚ˆã£ã¦ã¯ã€ã†ã¾ã動作ã—ãªã„ã“ã¨ãŒã‚りã¾ã™ã€‚", + "editor-extra-keys/@info-shiftKeysWarn": "「Shiftキーã€è¨­å®šã‚’有効化ã™ã‚‹ã¨ã€Shiftã‚­ãƒ¼ã¨æ•°å­—キーを押ã—ã¦å…¥åŠ›ã™ã‚‹ã€ãƒãƒƒã‚·ãƒ¥ã€æ„Ÿå˜†ç¬¦ãªã©ã®ã‚­ãƒ¼ãŒè¿½åŠ ã•れã¾ã™ã€‚ã“れらã®ã‚­ãƒ¼ã¯ã€Œ() ã‚­ãƒ¼ãŒæŠ¼ã•れãŸã¨ãã€ãƒ–ロックã§ã®ã¿å‹•作ã—ã€OSやキーボードã®ãƒ¬ã‚¤ã‚¢ã‚¦ãƒˆã«ã‚ˆã£ã¦ã¯ä¸€åˆ‡å‹•作ã—ãªã„ã“ã¨ãŒã‚りã¾ã™ã€‚", + "editor-extra-keys/@name": "キー入力オプションã®è¿½åŠ ", + "editor-extra-keys/@settings-name-experimentalKeys": "実験的ãªã‚­ãƒ¼", + "editor-extra-keys/@settings-name-shiftKeys": "Shiftキー", + "hide-delete-button/@description": "削除ボタン(ゴミ箱アイコン)ã‚’ã€ã‚¹ãƒ—ライトã€ã‚³ã‚¹ãƒãƒ¥ãƒ¼ãƒ ã‚„音ã‹ã‚‰éš ã™ã€‚コンテキストメニューを使ãˆã°ã€é€šå¸¸é€šã‚Šå‰Šé™¤ã§ãる。", + "hide-delete-button/@name": "削除ボタンを隠ã™", + "hide-delete-button/@settings-name-costumes": "コスãƒãƒ¥ãƒ¼ãƒ ã¨èƒŒæ™¯", + "hide-delete-button/@settings-name-sounds": "音", + "hide-delete-button/@settings-name-sprites": "スプライト", + "no-script-bumping/@description": "スクリプトをé‡ã­ã¦é…ç½®ã§ãるよã†ã«ã™ã‚‹ã€‚", + "no-script-bumping/@name": "スクリプトé‡ã­é…ç½®", + "disable-stage-drag-select/@description": "ステージã§ã¯Shiftキーを押ã•ãªã„ã¨ã‚¹ãƒ—ライトをドラッグã§ããªã„よã†ã«ã™ã‚‹ã€‚", + "disable-stage-drag-select/@name": "ドラッグã§ããªã„スプライト", + "move-to-top-bottom/@description": "コスãƒãƒ¥ãƒ¼ãƒ ã‚„音を一覧ã®ä¸€ç•ªä¸Šã‚„一番下ã«ç§»å‹•ã™ã‚‹å³ã‚¯ãƒªãƒƒã‚¯ãƒ¡ãƒ‹ãƒ¥ãƒ¼é …目を追加ã™ã‚‹ã€‚", + "move-to-top-bottom/@info-developer-tools": "ã“ã®ã‚¢ãƒ‰ã‚ªãƒ³ã¯ä»¥å‰ã€Œé–‹ç™ºè€…ツールã€ã®ä¸€éƒ¨ã§ã—ãŸãŒã€ç§»å‹•ã—ã¾ã—ãŸã€‚", + "move-to-top-bottom/@name": "コスãƒãƒ¥ãƒ¼ãƒ ã‚’一番上や一番下ã«ç§»å‹•", + "disable-paste-offset/@description": "コスãƒãƒ¥ãƒ¼ãƒ ã‚¨ãƒ‡ã‚£ã‚¿ãƒ¼ä¸Šã«å¼µã‚Šä»˜ã‘ã‚‹ã¨ãã€å…ƒã®å ´æ‰€ã‹ã‚‰ãšã‚‰ã•ãšã«å¼µã‚Šä»˜ã‘る。", + "disable-paste-offset/@info-vanilla": "ブロックをAlt+クリックã™ã‚‹ã¨ã€ã‚¢ãƒ‰ã‚ªãƒ³ãªã—ã§ã‚‚ã“ã®å‹•作を行ãˆã¾ã™ã€‚", + "disable-paste-offset/@name": "貼り付ã‘ãŸã‚³ã‚¹ãƒãƒ¥ãƒ¼ãƒ ã®ç§»å‹•を防止", + "block-duplicate/@description": "Altキーを押ã—ãŸã¾ã¾ã‚¹ã‚¯ãƒªãƒ—トをドラッグã—ã€ã‚¹ã‚¯ãƒªãƒ—トを複製ã™ã‚‹ã€‚Ctrlキーも押ã™ã¨ã€ãƒ–ロックを個別ã«è¤‡è£½ã§ãる。", + "block-duplicate/@info-mac": "macOSã§ã¯ã€Altキーã®ä»£ã‚りã«Optionキーをã€Ctrlキーã®ä»£ã‚りã«Cmdキーを利用ã§ãã¾ã™ã€‚", + "block-duplicate/@name": "Altキーã§ã‚¹ã‚¯ãƒªãƒ—トを複製", + "swap-local-global/@description": "変数やリストを改åã™ã‚‹ã¨ãã«ã€ã€Œã™ã¹ã¦ã®ã‚¹ãƒ—ライト用ã€ã¨ã€Œã“ã®ã‚¹ãƒ—ライトã®ã¿ã€ã‚„ã€ã‚¯ãƒ©ã‚¦ãƒ‰å¤‰æ•°ã‚’切り替ãˆã‚‰ã‚Œã‚‹ã‚ˆã†ã«ã™ã‚‹ã€‚å³ã‚¯ãƒªãƒƒã‚¯ãƒ¡ãƒ‹ãƒ¥ãƒ¼ã«ç°¡å˜ã«å¤‰æ›´ã™ã‚‹ãŸã‚ã®é …目を追加ã™ã‚‹ã€‚", + "swap-local-global/@name": "変数ã®ã€Œã™ã¹ã¦ã®ã‚¹ãƒ—ライト用ã€ã¨ã€Œã“ã®ã‚¹ãƒ—ライトã®ã¿ã€ã‚’変更", + "editor-comment-previews/@description": "最å°åŒ–ã•れãŸã‚³ãƒ¡ãƒ³ãƒˆã‚„ブロックã«ä»˜å±žã—ã¦ã„るコメントã®å†…容をã€ãƒ›ãƒãƒ¼ã—ã¦ãƒ—レビューã§ãるよã†ã«ã™ã‚‹ã€‚", + "editor-comment-previews/@name": "エディター内ã®ã‚³ãƒ¡ãƒ³ãƒˆãƒ—レビュー", + "editor-comment-previews/@settings-name-delay": "å¾…ã¡æ™‚é–“", + "editor-comment-previews/@settings-name-follow-mouse": "ãƒã‚¤ãƒ³ã‚¿ãƒ¼ä½ç½®ã‚’追éš", + "editor-comment-previews/@settings-name-hover-view": "最å°åŒ–ã—ãŸã‚³ãƒ¡ãƒ³ãƒˆã‚’プレビュー", + "editor-comment-previews/@settings-name-hover-view-block": "ブロックをホãƒãƒ¼ã—ã¦ä»˜å±žã®ã‚³ãƒ¡ãƒ³ãƒˆã‚’プレビュー", + "editor-comment-previews/@settings-name-hover-view-procedure": "カスタムブロックをホãƒãƒ¼ã—ã¦å®šç¾©ãƒ–ロックã®ã‚³ãƒ¡ãƒ³ãƒˆã‚’プレビュー", + "editor-comment-previews/@settings-name-reduce-animation": "アニメーションを減らã™", + "editor-comment-previews/@settings-name-reduce-transparency": "逿˜Žåº¦ã‚’減らã™", + "editor-comment-previews/@settings-select-delay-long": "é•·", + "editor-comment-previews/@settings-select-delay-none": "ãªã—", + "editor-comment-previews/@settings-select-delay-short": "短", + "columns/@description": "Scratch 2.0ã®ã‚ˆã†ã«ã€ãƒ–ロックカテゴリーメニューを2列ã«åˆ†ã‘ã€ãƒ–ロックパレットã®ä¸Šéƒ¨ã«é…ç½®ã™ã‚‹ã€‚", + "columns/@name": "2列カテゴリーメニュー", + "number-pad/@description": "数値を編集ã™ã‚‹ã¨ãã«ã€Scratchã®ãƒŠãƒ³ãƒãƒ¼ãƒ‘ッド入力をタッãƒã‚¹ã‚¯ãƒªãƒ¼ãƒ³ãƒ‡ãƒã‚¤ã‚¹ä»¥å¤–ã®ã™ã¹ã¦ã®ãƒ‡ãƒã‚¤ã‚¹ã§è¡¨ç¤ºã™ã‚‹ã€‚", + "number-pad/@info-explanation": "「x座標を変ãˆã‚‹ã€ãƒ–ロックãªã©ã®æ•°å€¤ã‚’変ãˆã‚‹ã¨ãã«ã€ãƒŠãƒ³ãƒãƒ¼ãƒ‘ッドãŒè¡¨ç¤ºã•れるよã†ã«ãªã‚Šã¾ã™ã€‚", + "number-pad/@name": "ナンãƒãƒ¼ãƒ‘ッドを常ã«è¡¨ç¤º", + "script-snap/@description": "スクリプトをドラッグã—ã¦ã€ã‚³ãƒ¼ãƒ‰ã‚¨ãƒªã‚¢ã®ãƒ‰ãƒƒãƒˆã«æ•´åˆ—ã•ã›ã‚‹ã€‚", + "script-snap/@name": "スクリプトを整列", + "script-snap/@preset-name-default": "デフォルト", + "script-snap/@preset-name-half-block": "0.5ブロック", + "script-snap/@preset-name-whole-block": "1ブロック", + "script-snap/@settings-name-grid": "グリッドã®ã‚µã‚¤ã‚º (px)", + "fullscreen/@description": "全画é¢è¡¨ç¤ºãƒœã‚¿ãƒ³ã‚’クリックã—ãŸã¨ãã€ãƒ–ラウザーã®å…¨ç”»é¢è¡¨ç¤ºã‚’有効化ã—ãŸã‚Šã€ç·‘ã®æ——ã®ãƒ„ールãƒãƒ¼ã‚’éš ã—ãŸã‚Šã™ã‚‹ã€‚", + "fullscreen/@info-hideToolbarNotice": "ツールãƒãƒ¼ã‚’éš ã—ãŸå ´åˆã¯ã€Escキーã§å…¨ç”»é¢è¡¨ç¤ºã‹ã‚‰æˆ»ã‚Œã¾ã™ã€‚", + "fullscreen/@name": "全画é¢è¡¨ç¤º", + "fullscreen/@settings-name-browserFullscreen": "ブラウザーã®å…¨ç”»é¢è¡¨ç¤ºã‚’使用", + "fullscreen/@settings-name-hideToolbar": "ツールãƒãƒ¼ã‚’éš ã™", + "hide-stage/@description": "「å°ã•ãªã‚¹ãƒ†ãƒ¼ã‚¸ã€ã¨ã€Œå¤§ããªã‚¹ãƒ†ãƒ¼ã‚¸ã€ãƒœã‚¿ãƒ³ã®æ¨ªã«ã€ã‚¹ãƒ†ãƒ¼ã‚¸ã¨ã‚¹ãƒ—ライトペインを隠ã—ã¦ã‚³ãƒ¼ãƒ‰ã‚¨ãƒªã‚¢ã‚’広ã’るボタンを追加ã™ã‚‹ã€‚", + "hide-stage/@name": "ステージã¨ã‚¹ãƒ—ライトペインを隠ã™", + "editor-stepping/@description": "実行中ã®ãƒ–ロックã®å‘¨ã‚Šã«è‰²ã®ã¤ã„ãŸæž ç·šã‚’表示ã™ã‚‹ã€‚", + "editor-stepping/@name": "実行中ã®ãƒ–ロック枠線", + "editor-stepping/@settings-name-highlight-color": "æž ç·šã®è‰²" +} \ No newline at end of file diff --git a/src/addons/addons-l10n-settings/ko.json b/src/addons/addons-l10n-settings/ko.json new file mode 100644 index 0000000000000000000000000000000000000000..4f37c51f3aecc848f658ebba4946ca7cece2af00 --- /dev/null +++ b/src/addons/addons-l10n-settings/ko.json @@ -0,0 +1,296 @@ +{ + "cat-blocks/@description": "2020ë…„ ë§Œìš°ì ˆì˜ íŽ¸ì§‘ê¸° ê³ ì–‘ì´ ëª¨ìž ë¸”ë¡ì„ ë˜ëŒë¦½ë‹ˆë‹¤.", + "cat-blocks/@name": "ê³ ì–‘ì´ ë¸”ëŸ­", + "cat-blocks/@settings-name-watch": "마우스 커서 ë°”ë¼ë³´ê¸°", + "editor-devtools/@name": "ê°œë°œìž ë„구", + "editor-devtools/@settings-name-enableCleanUpPlus": "\"블럭 정리하기\" í–¥ìƒ", + "editor-devtools/@settings-name-enablePasteBlocksAtMouse": "마우스 커서로 블럭 붙여넣기", + "find-bar/@description": "스í¬ë¦½íЏ, 모양, 소리 ë°” ì˜†ì— ê²€ìƒ‰ ì°½ì„ ì¶”ê°€í•©ë‹ˆë‹¤. 검색 ì°½ì„ ì´ìš©í•œ 후 코드 ì°½ì—서 Ctrl+Leftê³¼ Ctrl+Right를 눌러 ì´ì „, ì´í›„ 위치로 ì´ë™í•©ë‹ˆë‹¤.", + "find-bar/@info-developer-tools": "ì´ ì• ë“œì˜¨ì€ ê³¼ê±°ì— \"ê°œë°œìž ë„구\"ì˜ ì¼ë¶€ì˜€ì§€ë§Œ 분리ë˜ì—ˆìŠµë‹ˆë‹¤.", + "find-bar/@name": "ì—디터 찾기 ë°”", + "jump-to-def/@description": "마우스 중간 버튼 í´ë¦­ì´ë‚˜ 쉬프트+í´ë¦­ìœ¼ë¡œ 함수 블ë¡ì˜ ì •ì˜í•˜ê¸° 블ë¡ìœ¼ë¡œ ì´ë™í•©ë‹ˆë‹¤.", + "jump-to-def/@info-developer-tools": "ì´ ê¸°ëŠ¥ì€ ë³¸ëž˜ \"ê°œë°œìž ë„구\"ì˜ ì¼ë¶€ì˜€ìœ¼ë‚˜ 여기로 ì´ë™ë˜ì—ˆìŠµë‹ˆë‹¤.", + "jump-to-def/@name": "함수 블ë¡ì˜ ì •ì˜í•˜ê¸° 블ë¡ìœ¼ë¡œ ì´ë™í•˜ê¸°", + "editor-searchable-dropdowns/@description": "ë¸”ë¡ ë“œë¡­ë‹¤ìš´ì„ ê²€ìƒ‰í•  수 있ë„ë¡ í•©ë‹ˆë‹¤.", + "editor-searchable-dropdowns/@name": "검색 가능한 드롭다운", + "data-category-tweaks-v2/@description": "ë¸”ë¡ ì¹´í…Œê³ ë¦¬ì—서 ë°ì´í„°(\"변수\") 카테고리를 개선합니다.", + "data-category-tweaks-v2/@name": "ë°ì´í„° 카테고리 개선", + "data-category-tweaks-v2/@settings-name-moveReportersDown": "ë°ì´í„° ë¸”ëŸ­ì„ ë³€ìˆ˜ 리스트 앞으로 보내기", + "data-category-tweaks-v2/@settings-name-separateListCategory": "리스트 카테고리 분리", + "data-category-tweaks-v2/@settings-name-separateLocalVariables": "지역변수 분리", + "block-palette-icons/@description": "ìƒ‰ì¹ ëœ ì›í˜• ë‚´ë¶€ì— ë¸”ë¡ ì¹´ë°ê³ ë¦¬ë¥¼ ì‹ë³„하는 ì•„ì´ì½˜ì„ 추가합니다.", + "block-palette-icons/@name": "블럭 팔레트 카테고리 ì•„ì´ì½˜", + "hide-flyout/@description": "사용ë˜ì§€ ì•Šì€ ê²½ìš° ë¸”ë¡ íŒ”ë ˆíŠ¸ë¥¼ 숨ê¹ë‹ˆë‹¤. 잠금 ì•„ì´ì½˜ì„ í´ë¦­í•˜ì—¬ ì¼ì‹œì ìœ¼ë¡œ ì œìžë¦¬ì— 잠그거나 ë˜ëŠ” \"카테고리 í´ë¦­\" 모드를 사용하세요.", + "hide-flyout/@info-hoverExplanation": "\"팔레트 ì˜ì—­ 미사용\" 모드는 ë³´ì´ëŠ” ì˜ì—­ë§Œ 확장합니다. 블ë¡ì„ 삭제하지 않고 해당 ì˜ì—­ìœ¼ë¡œ 드래그하려면 다른 모드 중 하나를 사용하세요.", + "hide-flyout/@name": "ë¸”ë¡ íŒ”ë ˆíŠ¸ ìžë™ìœ¼ë¡œ 숨기기", + "hide-flyout/@settings-name-toggle": "토글 켜기", + "hide-flyout/@settings-select-speed-default": "기본", + "hide-flyout/@settings-select-toggle-category": "카테고리 í´ë¦­", + "hide-flyout/@settings-select-toggle-cathover": "ì¹´í…Œê³ ë¦¬ì— ì ‘ê·¼", + "hide-flyout/@settings-select-toggle-hover": "팔레트 ì˜ì—­ ì ‘ê·¼", + "mediarecorder/@description": "편집기 메뉴 ë°”ì— \"녹화 시작\" ë²„íŠ¼ì„ ì¶”ê°€í•´ 프로ì íŠ¸ì˜ ë¬´ëŒ€ë¥¼ 녹화할 수 있ë„ë¡ í•©ë‹ˆë‹¤.", + "mediarecorder/@name": "프로ì íЏ ì˜ìƒ 녹화기", + "drag-drop/@description": "íŒŒì¼ íƒìƒ‰ê¸°ì—서 ì´ë¯¸ì§€, 소리를 스프ë¼ì´íЏ ì°½ì´ë‚˜ ì˜ìƒ/사운드 목ë¡ìœ¼ë¡œ ëŒì–´ë‹¤ ë†“ì„ ìˆ˜ 있습니다. ë˜í•œ í…스트 파ì¼ì„ 목ë¡ìœ¼ë¡œ ëŒì–´ë‹¤ 놓거나 \"묻고 기다리기\" ì§ˆë¬¸ì°½ì„ í‘œì‹œí•  수 있습니다.", + "drag-drop/@name": "íŒŒì¼ ëŒì–´ë‹¤ 놓기", + "drag-drop/@settings-name-use-hd-upload": "ê³ í•´ìƒë„ 업로드 사용하기", + "debugger/@name": "디버거", + "debugger/@settings-name-log_broadcasts": "신호 기ë¡í•˜ê¸°", + "debugger/@settings-name-log_clear_greenflag": "ì´ˆë¡ ê¹ƒë°œì„ ëˆ„ë¥´ë©´ 초기화하기", + "debugger/@settings-name-log_clone_create": "복제본 ìƒì„± 기ë¡í•˜ê¸°", + "debugger/@settings-name-log_failed_clone_creation": "복제본 개수 ì œí•œì— ë„ë‹¬í–ˆì„ ë•Œ 기ë¡í•˜ê¸°", + "debugger/@settings-name-log_greenflag": "녹색 깃발 í´ë¦­ 기ë¡í•˜ê¸°", + "debugger/@update": "\"실행 ì¤‘ì¸ ìž‘ì—…\"ê³¼ \"성능\" íƒ­ì´ ìƒˆë¡­ê²Œ 추가ë˜ì—ˆìŠµë‹ˆë‹¤.", + "pause/@description": "ì´ˆë¡ ê¹ƒë°œ ì˜†ì— ì¼ì‹œ ì •ì§€ ë²„íŠ¼ì„ ì¶”ê°€í•©ë‹ˆë‹¤.", + "pause/@name": "ì¼ì‹œì •ì§€ 버튼", + "mute-project/@description": "녹색 ê¹ƒë°œì„ Ctrl+í´ë¦­í•˜ì—¬ 프로ì íŠ¸ë¥¼ ìŒì†Œê±°/ìŒì†Œê±° 해제합니다.", + "mute-project/@name": "프로ì íЏ 플레ì´ì–´ ìŒì†Œê±° 모드", + "vol-slider/@description": "ì •ì§€ 버튼 ì˜†ì— ìŒëŸ‰ 슬ë¼ì´ë”를 추가합니다.", + "vol-slider/@name": "프로ì íЏ ìŒëŸ‰ 슬ë¼ì´ë”", + "vol-slider/@settings-name-defVol": "기본 ìŒëŸ‰", + "clones/@description": "ì „ì²´ ë³µì œë³¸ì˜ ìˆ˜ë¥¼ 편집기 무대 ìƒë‹¨ì— 표시합니다.", + "clones/@name": "복제본 개수 표시", + "clones/@settings-name-showicononly": "ì•„ì´ì½˜ë§Œ ë³´ì´ê¸°", + "mouse-pos/@description": "ë§ˆìš°ìŠ¤ì˜ x/y위치를 편집기 ë¬´ëŒ€ì˜ ìƒë‹¨ì— 표시합니다.", + "mouse-pos/@name": "마우스 위치 표시", + "color-picker/@description": "ìƒ‰ìƒ ì„ íƒê¸°ì— HEX 코드 ìž…ë ¥ì„ ì¶”ê°€í•©ë‹ˆë‹¤.", + "color-picker/@name": "HEX ìƒ‰ìƒ ì„ íƒê¸°", + "remove-sprite-confirm/@description": "스프ë¼ì´íŠ¸ë¥¼ 지울 때 한 번 ë” ë¬»ìŠµë‹ˆë‹¤.", + "remove-sprite-confirm/@name": "스프ë¼ì´íЏ 제거 확ì¸", + "block-count/@description": "편집기 ë©”ë‰´ë°”ì— í”„ë¡œì íŠ¸ì˜ ì´ ë¸”ë¡ ìˆ˜ë¥¼ 표시합니다. 과거ì—는 \"스프ë¼ì´íЏ ë° ìŠ¤í¬ë¦½íЏ 수\"ì˜ ì¼ë¶€ì˜€ìŠµë‹ˆë‹¤.", + "block-count/@name": "ë¸”ë¡ ìˆ˜ 세기", + "onion-skinning/@description": "ëª¨ì–‘ì„ íŽ¸ì§‘í•  때 ì „ 모양ì´ë‚˜ ë‹¤ìŒ ëª¨ì–‘ì„ íˆ¬ëª…í•œ 오버레ì´ë¡œ 보입니다. 모양 편집기ì—서 확대 버튼 ì˜†ì˜ ë²„íŠ¼ìœ¼ë¡œ ë™ìž‘합니다.", + "onion-skinning/@name": "어니언 스키ë‹", + "onion-skinning/@settings-name-afterTint": "ë‹¤ìŒ ëª¨ì–‘ 색ìƒ", + "onion-skinning/@settings-name-beforeTint": "ì´ì „ 모양 색ìƒ", + "onion-skinning/@settings-name-default": "기본으로 활성화하기", + "onion-skinning/@settings-name-layering": "기본 ë ˆì´ì–´í™”", + "onion-skinning/@settings-name-mode": "기본 모드", + "onion-skinning/@settings-name-next": "기본 ë‹¤ìŒ ëª¨ì–‘", + "onion-skinning/@settings-name-opacity": "ë¶ˆíˆ¬ëª…ë„ (%)", + "onion-skinning/@settings-name-opacityStep": "íˆ¬ëª…ë„ ìŠ¤í‘¸ë§ˆí†  (%)", + "onion-skinning/@settings-name-previous": "기본 ì´ì „ 모양", + "onion-skinning/@settings-select-layering-behind": "ë’¤", + "onion-skinning/@settings-select-layering-front": "앞", + "onion-skinning/@settings-select-mode-merge": "ì´ë¯¸ì§€ 병합", + "onion-skinning/@settings-select-mode-tint": "단색으로 표시", + "default-costume-editor-color/@description": "모양 편집기ì—서 사용ë˜ëŠ” 기본 색ìƒê³¼ í…Œë‘리 í¬ê¸°ë¥¼ 변경합니다.", + "default-costume-editor-color/@name": "모양 편집기 기본 ìƒ‰ìƒ ë³€ê²½", + "default-costume-editor-color/@settings-name-fill": "기본 채우기 색", + "default-costume-editor-color/@settings-name-persistence": "ë„구를 바꿀 때 색ìƒì„ 초기화하지 않고 ì´ì „ 색ìƒì„ 그대로 사용하기", + "default-costume-editor-color/@settings-name-stroke": "기본 외곽선 색", + "default-costume-editor-color/@settings-name-strokeSize": "기본 외곽선 사ì´ì¦ˆ", + "bitmap-copy/@description": "다른 웹사ì´íŠ¸ë‚˜ ì†Œí”„íŠ¸ì›¨ì–´ì— ë¶™ì—¬ë„£ì„ ìˆ˜ 있ë„ë¡ ëª¨ì–‘ 편집기ì—서 비트맵 ì´ë¯¸ì§€ë¥¼ 시스템 í´ë¦½ë³´ë“œì— 복사합니다.", + "bitmap-copy/@info-norightclick": "\"ìš°í´ë¦­ → 복사하기\"는 ì§€ì›í•˜ì§€ 않습니다. ë‹¹ì‹ ì€ í•­ìƒ ë¹„íŠ¸ë§µ ì´ë¯¸ì§€ë¥¼ ì„ íƒí•˜ê¸° 위해선 Ctrl+C를 눌러야 합니다.", + "bitmap-copy/@name": "비트맵 사진 복사", + "2d-color-picker/@description": "채ë„, ë°ê¸° 슬ë¼ì´ë”를 2ì°¨ì› ìƒ‰ìƒ ì„ íƒê¸°ë¡œ 바꿉니다. Shift 키를 누른 채로 커서를 드래그해 한 ê°€ì§€ì˜ ê°’ì„ ë³€ê²½í•  수 있습니다.", + "2d-color-picker/@name": "2ì°¨ì› ìƒ‰ìƒ ì„ íƒê¸°", + "better-img-uploads/@description": "\"모양 업로드\" 버튼 ìœ„ì— ìžë™ìœ¼ë¡œ 비트맵 ì‚¬ì§„ì„ SVG(벡터) 사진으로 바꾸어 ë‚®ì€ í™”ì§ˆì„ í”¼í•˜ëŠ” ë²„íŠ¼ì„ ì¶”ê°€í•©ë‹ˆë‹¤.", + "better-img-uploads/@info-notSuitableEdit": "사진 업로드 í›„ì— íŽ¸ì§‘í•  예정ì´ë©´ ê³ í•´ìƒë„ 사진 업로드 ë²„íŠ¼ì„ ì‚¬ìš©í•˜ì§€ 마세요.", + "better-img-uploads/@name": "ê³ í•´ìƒë„ 사진 업로드", + "better-img-uploads/@settings-name-fitting": "사진 í¬ê¸° 변경하기", + "better-img-uploads/@settings-select-fitting-fill": "ì´ë¯¸ì§€ë¥¼ 늘려 ë¬´ëŒ€ì— ì±„ìš°ê¸°", + "better-img-uploads/@settings-select-fitting-fit": "ì´ë¯¸ì§€ë¥¼ 줄여 ë¬´ëŒ€ì— ì±„ìš°ê¸°", + "better-img-uploads/@settings-select-fitting-full": "기존 í¬ê¸°", + "pick-colors-from-stage/@description": "모양 íŽ¸ì§‘ê¸°ì˜ ìƒ‰ìƒ ì„ íƒê¸°ê°€ 무대ì—ì„œë„ ìƒ‰ìƒì„ 고를 수 있ë„ë¡ í•©ë‹ˆë‹¤.", + "pick-colors-from-stage/@name": "모양 편집기ì—서 무대 ìƒ‰ìƒ ê³ ë¥´ê¸°", + "custom-block-shape/@description": "블ë¡ì˜ 높ì´, 모서리 곡률. 홈 높ì´ë¥¼ 조정합니다.", + "custom-block-shape/@info-paddingWarning": "블럭 높ì´ë¥¼ 줄ì´ëŠ” ê²ƒì€ ë‹¹ì‹ ë§Œ ë³¼ 수 ìžˆê¸°ì— í”„ë¡œì íŠ¸ë¥¼ 다른 사용ìžê°€ ë³¼ 때 스í¬ë¦½íŠ¸ê°€ ê²¹ì³ ë³´ì¼ ìˆ˜ 있습니다.", + "custom-block-shape/@name": "ë¸”ë¡ ëª¨ì–‘ ì‚¬ìš©ìž ì§€ì •", + "custom-block-shape/@preset-description-default2": "스í¬ëž˜ì¹˜ 2.0ê³¼ 비슷하게 보여집니다.", + "custom-block-shape/@preset-description-default3": "스í¬ëž˜ì¹˜ 3.0ì—서 ì¼ë°˜ì ìœ¼ë¡œ 보여지는 ìƒíƒœìž…니다.", + "custom-block-shape/@preset-description-flat2": "홈과 모서리가 ì œê±°ëœ ìŠ¤í¬ëž˜ì¹˜ 2.0 블럭입니다.", + "custom-block-shape/@preset-description-flat3": "홈과 모서리가 ì œê±°ëœ ìŠ¤í¬ëž˜ì¹˜ 3.0 블럭입니다.", + "custom-block-shape/@preset-name-default2": "2.0 블럭", + "custom-block-shape/@preset-name-default3": "3.0 블럭", + "custom-block-shape/@preset-name-flat2": "2.0 플랫", + "custom-block-shape/@preset-name-flat3": "3.0 플랫", + "custom-block-shape/@settings-name-cornerSize": "모서리 í¬ê¸° (0-300%)", + "custom-block-shape/@settings-name-notchSize": "홈 ë†’ì´ (0-150%)", + "custom-block-shape/@settings-name-paddingSize": "블럭 ë†’ì´ (50-200%)", + "zebra-striping/@description": "ê°™ì€ ì¹´í…Œê³ ë¦¬ì˜ ë¸”ë¡ì´ 서로 í¬ê°œì–´ì ¸ ìžˆì„ ë•Œ, 블ë¡ì˜ 색ìƒì„ ë” ì—°í•˜ê³  진하게 바꿉니다.", + "zebra-striping/@name": "í¬ê°œì§„ 블ë¡ì˜ ìƒ‰ìƒ ë³€ê²½", + "zebra-striping/@settings-name-intensity": "ì±„ë„ (0-100%)", + "zebra-striping/@settings-name-shade": "어둡게", + "zebra-striping/@settings-select-shade-darker": "어둡게", + "zebra-striping/@settings-select-shade-lighter": "ë” ë°ê²Œ", + "editor-theme3/@description": "íŽ¸ì§‘ê¸°ì˜ ê° ì¹´í…Œê³ ë¦¬ì— ëŒ€í•œ ë¸”ë¡ ìƒ‰ìƒì„ 편집합니다.", + "editor-theme3/@name": "ë¸”ë¡ ìƒ‰ìƒ ì§€ì •í•˜ê¸°", + "editor-theme3/@preset-description-black": "ë¸”ëŸ­ì˜ ë°°ê²½ì„ ê²€ì€ìƒ‰ìœ¼ë¡œ 설정합니다.", + "editor-theme3/@preset-description-dark": "기본 색ìƒì˜ ì–´ë‘ìš´ 버전", + "editor-theme3/@preset-description-original": "2.0ì˜ ì› ìƒ‰ìƒ", + "editor-theme3/@preset-description-tweaks": "ì´ë²¤íЏ, 제어, ë‚˜ì˜ ë¸”ë¡ ìƒ‰ìƒì„ 2.0 ë¸”ë¡ ìƒ‰ìƒìœ¼ë¡œ 설정하기", + "editor-theme3/@preset-name-black": "ê²€ì€ìƒ‰", + "editor-theme3/@preset-name-dark": "ì–´ë‘ìš´ 테마", + "editor-theme3/@preset-name-original": "2.0 색ìƒ", + "editor-theme3/@preset-name-tweaks": "3.0 개선", + "editor-theme3/@settings-name-Pen-color": "확장 기능", + "editor-theme3/@settings-name-comment-color": "댓글", + "editor-theme3/@settings-name-control-color": "제어", + "editor-theme3/@settings-name-custom-color": "ì‚¬ìš©ìž ì§€ì •", + "editor-theme3/@settings-name-data-color": "변수", + "editor-theme3/@settings-name-data-lists-color": "리스트", + "editor-theme3/@settings-name-events-color": "ì´ë²¤íЏ", + "editor-theme3/@settings-name-input-color": "블럭 입력값", + "editor-theme3/@settings-name-looks-color": "형태", + "editor-theme3/@settings-name-motion-color": "ë™ìž‘", + "editor-theme3/@settings-name-operators-color": "ì—°ì‚°", + "editor-theme3/@settings-name-sensing-color": "ê°ì§€", + "editor-theme3/@settings-name-sounds-color": "소리", + "editor-theme3/@settings-name-text": "ê¸€ìž ìƒ‰", + "editor-theme3/@settings-select-text-black": "검정", + "editor-theme3/@settings-select-text-colorOnBlack": "ê²€ì€ ë°°ê²½ì—ì„œì˜ ìƒ‰", + "editor-theme3/@settings-select-text-colorOnWhite": "í° ë°°ê²½ì—ì„œì˜ ìƒ‰", + "editor-theme3/@settings-select-text-white": "하양", + "custom-block-text/@description": "ë¸”ë¡ ê¸€ìžì˜ ë‘께를 변경하거나 ê¸€ìž ê·¸ë¦¼ìžë¥¼ ì„ íƒì ìœ¼ë¡œ 추가합니다", + "custom-block-text/@name": "ë¸”ë¡ ê¸€ìž ìŠ¤íƒ€ì¼ ì„¤ì •", + "custom-block-text/@settings-name-bold": "ê¸€ìž êµµê²Œ 하기", + "custom-block-text/@settings-name-shadow": "ê¸€ìž ì•„ëž˜ì— ê·¸ë¦¼ìž ì¶”ê°€í•˜ê¸°", + "editor-colored-context-menus/@description": "ìš°í´ë¦­ ë©”ë‰´ì— ìƒ‰ìƒì„ 입힙니다.", + "editor-colored-context-menus/@name": "ìš°í´ë¦­ 메뉴 색ìƒ", + "editor-stage-left/@description": "스í¬ëž˜ì¹˜ 2.0 처럼 무대를 코드 íŽ¸ì§‘ê¸°ì˜ ì™¼ìª½ìœ¼ë¡œ 옮ê¹ë‹ˆë‹¤.", + "editor-stage-left/@info-reverseOrder": "깃발 버튼과 멈춤 버튼, 전체화면 ë²„íŠ¼ì˜ ìœ„ì¹˜ë¥¼ 바꾸려면 \"프로ì íЏ 버튼 위치 반전\" ì• ë“œì˜¨ì„ ì‚¬ìš©í•˜ì„¸ìš”.", + "editor-stage-left/@name": "무대를 왼쪽ì—서 나타내기", + "editor-buttons-reverse-order/@description": "스í¬ëž˜ì¹˜ 2.0처럼 깃발 버튼과 멈춤 ë²„íŠ¼ì„ ì˜¤ë¥¸ìª½ìœ¼ë¡œ, ì „ì²´ 화면 ë²„íŠ¼ì„ ì™¼ìª½ìœ¼ë¡œ 옮ê¹ë‹ˆë‹¤.", + "editor-buttons-reverse-order/@name": "프로ì íЏ 버튼 위치 반전", + "variable-manager/@description": "변수 ë° ë¦¬ìŠ¤íŠ¸ë¥¼ 쉽게 ì—…ë°ì´íŠ¸í•  수 있ë„ë¡ íŽ¸ì§‘ê¸°ì˜ \"소리\"탭 ì˜†ì— íƒ­ì„ ì¶”ê°€í•©ë‹ˆë‹¤.", + "variable-manager/@name": "변수 관리ìž", + "search-sprites/@description": "스프ë¼ì´íЏ ì°½ì— ê²€ìƒ‰ì°½ì„ ì¶”ê°€í•´ ì´ë¦„으로 스프ë¼ì´íŠ¸ë¥¼ 검색합니다.", + "search-sprites/@name": "ì´ë¦„으로 스프ë¼ì´íЏ 검색", + "gamepad/@description": "USB ë˜ëŠ” Bluetooth 컨트롤러/게임 패드를 사용하여 프로ì íŠ¸ì™€ ìƒí˜¸ìž‘용합니다.", + "gamepad/@name": "게임패드 ì§€ì›", + "gamepad/@settings-name-hide": "컨트롤러가 ê°ì§€ë˜ì§€ ì•Šì•˜ì„ ë•Œ 설정 버튼 숨기기", + "editor-sounds/@description": "블ë¡ì„ 연결하거나 삭제할 때 ìŒí–¥ 효과를 재ìƒí•©ë‹ˆë‹¤.", + "editor-sounds/@name": "편집기 ìŒí–¥ 효과", + "folders/@info-notice-folders-are-public": "ì´ ê¸°ëŠ¥ì„ ì‚¬ìš©í•˜ë„ë¡ ì„¤ì •í•œ 사용ìžëŠ” 프로ì íŠ¸ì˜ í´ë”를 ë³¼ 수 있습니다. 다른 사용ìžëŠ” ì •ìƒì ìœ¼ë¡œ 스프ë¼ì´íЏ 목ë¡ì„ ë³¼ 수 있습니다(í´ë” ì—†ìŒ).", + "folders/@name": "스프ë¼ì´íЏ í´ë”", + "block-switching/@description": "ë¸”ëŸ­ì„ ë§ˆìš°ìŠ¤ 오른쪽 버튼으로 í´ë¦­í•˜ì—¬ 관련 블럭으로 전환합니다.", + "block-switching/@name": "블럭 바꾸기", + "block-switching/@settings-name-control": "제어 블럭", + "block-switching/@settings-name-customargs": "ì‚¬ìš©ìž ì§€ì • ë¸”ë¡ ì¸ìˆ˜", + "block-switching/@settings-name-customargsmode": "ì¸ìˆ˜ ì„¤ì •ì— ì‚¬ìš©ìž ì§€ì • 블ë¡ì„ 보입니다.", + "block-switching/@settings-name-data": "ë°ì´í„° 블럭", + "block-switching/@settings-name-event": "ì´ë²¤íЏ 블럭", + "block-switching/@settings-name-extension": "확장 블럭", + "block-switching/@settings-name-looks": "형태 블럭", + "block-switching/@settings-name-motion": "움ì§ìž„ 블럭", + "block-switching/@settings-name-noop": "블ë¡ì„ ìžì²´ 변경 ì„¤ì •ì„ í‘œì‹œí•©ë‹ˆë‹¤.", + "block-switching/@settings-name-operator": "ì—°ì‚° 블럭", + "block-switching/@settings-name-sensing": "ê°ì§€ 블럭", + "block-switching/@settings-name-sound": "소리 블럭", + "block-switching/@settings-select-customargsmode-all": "스프ë¼ì´íЏ ë‚´ 모든 ì‚¬ìš©ìž ì§€ì • 블ë¡ì˜ ì¸ìˆ˜", + "block-switching/@settings-select-customargsmode-defOnly": "ì‚¬ìš©ìž ì§€ì • 블ë¡ì˜ ì¸ìˆ˜", + "load-extensions/@description": "ìŒì•…, 펜, 그리고 다른 확장 ê¸°ëŠ¥ë“¤ì„ íŽ¸ì§‘ê¸° ë¸”ë¡ ì¹´í…Œê³ ë¦¬ì— ìžë™ìœ¼ë¡œ 추가합니다.", + "load-extensions/@name": "확장 기능 ìžë™ 추가하기", + "load-extensions/@settings-name-music": "ìŒì•…", + "load-extensions/@settings-name-pen": "펜", + "load-extensions/@settings-name-text2speech": "ìŒì„± 합성 변환(TTS)", + "load-extensions/@settings-name-translate": "번역", + "custom-zoom/@description": "프로ì íЏ 코드 편집기ì—서 ì¤Œì˜ ìµœì†Œ, 최대, ì†ë„ ë° ì‹œìž‘ í¬ê¸°ë¥¼ ì‚¬ìš©ìž ì§€ì •í•˜ê³  ì¡°ìž‘ì„ ìžë™ìœ¼ë¡œ 숨ê¹ë‹ˆë‹¤", + "custom-zoom/@name": "코드 ì˜ì—­ 확대/축소 ì‚¬ìš©ìž ì§€ì •í•˜ê¸°", + "custom-zoom/@settings-name-autohide": "줌 제어 ìžë™ 숨기기", + "custom-zoom/@settings-name-maxZoom": "최대 확대 (100-500%)", + "custom-zoom/@settings-name-minZoom": "최소 줌 (1-100%)", + "custom-zoom/@settings-name-startZoom": "시작 줌 (50-500%)", + "custom-zoom/@settings-name-zoomSpeed": "줌 ì†ë„ (50-200%)", + "custom-zoom/@settings-select-speed-default": "기본", + "initialise-sprite-position/@description": "새 스프ë¼ì´íŠ¸ì˜ ê¸°ë³¸ x/y 위치를 변경합니다.", + "initialise-sprite-position/@name": "새 스프ë¼ì´íЏ 위치 ì‚¬ìš©ìž ì§€ì •í•˜ê¸°", + "initialise-sprite-position/@settings-name-library": "ë¼ì´ë¸ŒëŸ¬ë¦¬ 스프ë¼ì´íŠ¸ì˜ ìœ„ì¹˜ ìž„ì˜ ì§€ì •", + "initialise-sprite-position/@settings-name-x": "X 좌표", + "initialise-sprite-position/@settings-name-y": "Y 좌표", + "initialise-sprite-position/@settings-select-duplicate-randomize": "무작위", + "blocks2image/@description": "코드 ì˜ì—­ì„ ìš°í´ë¦­í•´ ë¸”ëŸ­ì„ SVG/PNG 사진으로 내보냅니다.", + "blocks2image/@name": "ë¸”ëŸ­ì„ ì´ë¯¸ì§€ë¡œ 저장", + "remove-curved-stage-border/@description": "모서리를 ë³¼ 수 있ë„ë¡ ë¬´ëŒ€ ì£¼ìœ„ì˜ ê³¡ì„  í…Œë‘리를 제거합니다.", + "remove-curved-stage-border/@name": "무대 í…Œë‘리 곡선 제거", + "transparent-orphans/@description": "ë¶„ë¦¬ëœ ë¸”ëŸ­(맨 ìœ„ì— ëª¨ìž ë¸”ëŸ­ì´ ì—†ëŠ” 블럭) ë° ë“œëž˜ê·¸ ì¤‘ì¸ ë¸”ëŸ­ì— ëŒ€í•œ 별ë„ì˜ ì„¤ì •ì„ ì‚¬ìš©í•˜ì—¬ 편집기ì—서 ë¸”ëŸ­ì˜ íˆ¬ëª…ë„를 조정합니다.", + "transparent-orphans/@name": "블럭 투명ë„", + "transparent-orphans/@settings-name-block": "블럭 íˆ¬ëª…ë„ (%)", + "transparent-orphans/@settings-name-dragged": "드래그ë˜ëŠ” 물체 íˆ¬ëª…ë„ (%)", + "transparent-orphans/@settings-name-orphan": "ì—°ê²° í•´ì œ 블럭 íˆ¬ëª…ë„ (%)", + "paint-by-default/@description": "\"스프ë¼ì´íЏ/모양/ë°°ê²½/소리 고르기\" ë²„íŠ¼ì˜ ê¸°ë³¸ ë™ìž‘ì„ ë³€ê²½í•©ë‹ˆë‹¤.", + "paint-by-default/@name": "ëª¨ì–‘ì„ ê¸°ë³¸ì ìœ¼ë¡œ 채우기", + "paint-by-default/@settings-name-backdrop": "무대 추가하기", + "paint-by-default/@settings-name-costume": "모양 추가하기", + "paint-by-default/@settings-name-sound": "소리 추가하기", + "paint-by-default/@settings-name-sprite": "스í¬ë¼ì´íЏ 추가하기", + "paint-by-default/@settings-select-backdrop-library": "ìžë£Œì‹¤", + "paint-by-default/@settings-select-backdrop-paint": "채우기", + "paint-by-default/@settings-select-backdrop-surprise": "서프ë¼ì´ì¦ˆ", + "paint-by-default/@settings-select-backdrop-upload": "올리기", + "paint-by-default/@settings-select-costume-library": "ë¼ì´ë¸ŒëŸ¬ë¦¬", + "paint-by-default/@settings-select-costume-paint": "채우기", + "paint-by-default/@settings-select-costume-surprise": "서프ë¼ì´ì¦ˆ", + "paint-by-default/@settings-select-costume-upload": "올리기", + "paint-by-default/@settings-select-sound-library": "ìžë£Œì‹¤", + "paint-by-default/@settings-select-sound-record": "녹화하기", + "paint-by-default/@settings-select-sound-surprise": "서프ë¼ì´ì¦ˆ", + "paint-by-default/@settings-select-sound-upload": "올리기", + "paint-by-default/@settings-select-sprite-library": "ë¼ì´ë¸ŒëŸ¬ë¦¬", + "paint-by-default/@settings-select-sprite-paint": "채우기", + "paint-by-default/@settings-select-sprite-surprise": "서프ë¼ì´ì¦ˆ", + "paint-by-default/@settings-select-sprite-upload": "업로드", + "block-cherry-picking/@description": "Ctrl 키를 누른 ìƒíƒœì—서 ì•„ëž˜ì— ì—°ê²°ëœ ì „ì²´ ë¸”ëŸ­ì„ ê°€ì ¸ì˜¤ëŠ” 대신 스í¬ë¦½íЏ ì¤‘ê°„ì˜ ê°œë³„ 블ë¡ì„ 드래그하는 ê¸°ëŠ¥ì„ ì¶”ê°€í•©ë‹ˆë‹¤.", + "block-cherry-picking/@info-flipControls": "\"제어 뒤집기\"ê°€ 활성화ëœë‹¤ë©´, 개별 블ë¡ì„ 잡는 ê²ƒì´ ê¸°ë³¸ ê¸°ëŠ¥ì´ ë©ë‹ˆë‹¤. Ctrlì„ ëˆ„ë¥´ëŠ” ê²ƒì´ ì „ì²´ í•­ëª©ì„ ë“œëž˜ê·¸í•©ë‹ˆë‹¤", + "block-cherry-picking/@info-macContextDisabled": "macOSì—서는, Ctrl 키 대신 Cmd키를 사용하세요.", + "block-cherry-picking/@name": "Ctrl 키를 눌러 개별 ë¸”ë¡ ìž¡ê¸°", + "block-cherry-picking/@settings-name-invertDrag": "제어 뒤집기", + "hide-new-variables/@description": "새 변수나 리스트가 ìƒì„±ë˜ì—ˆì„ 때 ìžë™ìœ¼ë¡œ 모니터를 ìƒì„±í•˜ì§€ 않습니다.", + "hide-new-variables/@name": "새 변수 숨기기", + "editor-extra-keys/@info-experimentalKeysWarn": "\"ì‹¤í—˜ì  í‚¤\"ì—는 등호, 슬래시, 세미콜론 ë“±ì´ í¬í•©ë©ë‹ˆë‹¤. 키보드 ë°°ì—´ì´ë‚˜ ìš´ì˜ ì²´ì œì— ë”°ë¼ì„œ ìž‘ë™í•˜ì§€ ì•Šì„ ìˆ˜ë„ ìžˆìŠµë‹ˆë‹¤.", + "editor-extra-keys/@info-shiftKeysWarn": "\"Shift 키\"ì—는 Shift와 ê°™ì´ ëˆŒëŸ¬ì•¼ 하는 해시태그, ëŠë‚Œí‘œ ë“±ì´ í¬í•©ë©ë‹ˆë‹¤. ì´ í‚¤ë“¤ì€ \"()키를 ëˆŒë €ì„ ë•Œ\"블ë¡ì—서만 ìž‘ë™í•˜ê³ , 키보드 ë°°ì—´ì´ë‚˜ ìš´ì˜ ì²´ì ±ì— ë”°ë¼ì„œ ìž‘ë™í•˜ì§€ ì•Šì„ ìˆ˜ 있습니다.", + "editor-extra-keys/@name": "추가 키 설정", + "editor-extra-keys/@settings-name-experimentalKeys": "ì‹¤í—˜ì  í‚¤ ë³´ì´ê¸°", + "editor-extra-keys/@settings-name-shiftKeys": "Shift 키 ë³´ì´ê¸°", + "hide-delete-button/@description": "ì‚­ì œ 버튼(쓰래기통 ì•„ì´ì½˜)ì„ ìŠ¤í”„ë¼ì´íЏ, 모양, 소리ì—서 삭제합니다. ìš°í´ë¦­ 메뉴ì—서는 여전히 삭제할 수 있습니다.", + "hide-delete-button/@name": "ì‚­ì œ 버튼 숨기기", + "hide-delete-button/@settings-name-costumes": "모양과 ë°°ê²½", + "hide-delete-button/@settings-name-sounds": "소리", + "hide-delete-button/@settings-name-sprites": "스프ë¼ì´íЏ", + "no-script-bumping/@description": "스í¬ë¦½íŠ¸ë¥¼ 움ì§ì´ê³  ë³€ê²½í•´ë„ ìŠ¤í¬ë¦½íЏë¼ë¦¬ 겹칠 때 스í¬ë¦½íŠ¸ê°€ ëŒì•„다니지 않게 합니다.", + "no-script-bumping/@name": "스í¬ë¦½íЏë¼ë¦¬ 겹칠 때 ìžë™ 여백 만들지 않기", + "disable-stage-drag-select/@description": "편집기 무대ì—서(드래그가 가능하ë„ë¡ ì„¤ì •ëœ ìŠ¤í”„ë¼ì´íЏ 제외) 스프ë¼ì´íЏ 드래그를 막습니다. 시프트 키를 누르면 스프ë¼ì´íŠ¸ê°€ ì •ìƒì ìœ¼ë¡œ 드래그ë©ë‹ˆë‹¤.", + "disable-stage-drag-select/@name": "편집기ì—서 스프ë¼ì´íЏ 드래그 ë„기", + "move-to-top-bottom/@description": "모양ì´ë‚˜ ìŒì•…ì„ ë¦¬ìŠ¤íŠ¸ì˜ ì‹œìž‘ì´ë‚˜ ë으로 ìŒì§ì¼ 수 있는 ìš°í´ë¦­ 매뉴를 추가합니다.", + "move-to-top-bottom/@info-developer-tools": "ì´ ì• ë“œì˜¨ì€ ê³¼ê±°ì— \"ê°œë°œìž ë„구\"ì˜ ì¼ë¶€ì˜€ì§€ë§Œ 분리ë˜ì—ˆìŠµë‹ˆë‹¤.", + "move-to-top-bottom/@name": "모양 블ë¡ì„ 맨 위로 올리거나 맨 아래로 내리기", + "disable-paste-offset/@description": "모양 편집기ì—서 복사한 ëª¨ì–‘ì„ ì‚´ì§ ì´ë™ì‹œí‚¤ì§€ 않고 ì›ëž˜ ìœ„ì¹˜ì— ë¶™ì—¬ë„£ìŠµë‹ˆë‹¤.", + "disable-paste-offset/@name": "불여넣어진 ì•„ì´í…œ ì›ëž˜ ìžë¦¬ì— 놓기", + "block-duplicate/@description": "Alt 키를 누르면서 스í¬ë¦½íŠ¸ë¥¼ 드래그해 빠르게 복제합니다. Ctrl 키를 ê°™ì´ ëˆ„ë¥´ë©´ 한 ê°œì˜ ìŠ¤í¬ë¦½íŠ¸ë§Œ 복사ë©ë‹ˆë‹¤.", + "block-duplicate/@info-mac": "ë§¥OSì—서는 Alt 키 대신 옵션 키를 ì´ìš©í•˜ê³ , Ctrl 키 대신 Cmd키를 ì´ìš©í•˜ì„¸ìš”.", + "block-duplicate/@name": "Alt 키로 스í¬ë¦½íЏ 복제하기", + "rename-broadcasts/@description": "신호 ë¸”ë¡ ë“œë¡­ë‹¤ìš´ì— ì‹ í˜¸ ì´ë¦„ì„ ë³€ê²½í•  수 있는 ì˜µì…˜ì„ ì œê³µí•©ë‹ˆë‹¤.", + "rename-broadcasts/@name": "신호 ì´ë¦„ 변경하기", + "swap-local-global/@description": "기존 변수 ë˜ëŠ” 목ë¡ì˜ ì´ë¦„ì„ ë°”ê¿€ 때 추가 ì„¤ì •ì„ ì¶”ê°€í•©ë‹ˆë‹¤. \"모든 스프ë¼ì´íŠ¸ì˜ ê²½ìš°\"와 \"ì´ ìŠ¤í”„ë¼ì´íŠ¸ì˜ ê²½ìš°ì—ë§Œ\" 사ì´ì—서 변경할 수 있고 변수가 í´ë¼ìš°ë“œì— 저장ë˜ëŠ”ì§€ 여부를 변경할 수 있습니다. ë˜í•œ 변수/리스트를 마우스 오른쪽 단추로 í´ë¦­í•˜ì—¬ 범위를 빠르게 변경할 수 있는 ì„¤ì •ì„ ì¶”ê°€í•©ë‹ˆë‹¤.", + "swap-local-global/@name": "ë³€ìˆ˜ì˜ '모든 스프ë¼ì´íЏì—서 사용'ê³¼ 'ì´ ìŠ¤í”„ë¼ì´íЏì—서만 사용'ì„ ì „í™˜í•˜ê¸°", + "editor-comment-previews/@description": "접혀 있는 주ì„ì´ë‚˜ ë¸”ë¡ ìœ„ì— ë§ˆìš°ìŠ¤ë¥¼ 올려놓아 주ì„ì˜ ë‚´ìš©ì„ ë¯¸ë¦¬ë³¼ 수 있ë„ë¡ í•©ë‹ˆë‹¤. ì´ë¥¼ 통해 화면 ë°–ì—서 주ì„ì„ ë³´ê³ , 미리보기로 루프 블ë¡ì„ 아래쪽ì—서 확ì¸í•˜ë©°, ìž‘ì€ ê³µê°„ì— ë§Žì€ ê¸´ 주ì„ì„ ë§žì¶”ëŠ” ë“±ì˜ ìž‘`ì—…ì„ ìˆ˜í–‰í•  수 있습니다.", + "editor-comment-previews/@name": "편집기 댓글 미리보기", + "editor-comment-previews/@settings-name-delay": "지연 시간", + "editor-comment-previews/@settings-name-follow-mouse": "마우스 ë”°ë¼ê°€ê¸°", + "editor-comment-previews/@settings-name-hover-view": "ì£¼ì„ ìœ„ì— ë§ˆìš°ìŠ¤ë¥¼ 올려놓아 미리보기", + "editor-comment-previews/@settings-name-hover-view-block": "ì‚¬ìš©ìž ì§€ì • ë¸”ë¡ ìœ„ì— ë§ˆìš°ìŠ¤ë¥¼ 올려놓아 붙여진 ì£¼ì„ ë¯¸ë¦¬ë³´ê¸°", + "editor-comment-previews/@settings-name-hover-view-procedure": "ì‚¬ìš©ìž ì§€ì • ë¸”ë¡ ìœ„ì— ë§ˆìš°ìŠ¤ë¥¼ 올려놓아 ì •ì˜ ì£¼ì„ ë¯¸ë¦¬ë³´ê¸°", + "editor-comment-previews/@settings-name-reduce-animation": "모션 줄ì´ê¸°", + "editor-comment-previews/@settings-name-reduce-transparency": "íˆ¬ëª…ë„ ì¤„ì´ê¸°", + "editor-comment-previews/@settings-select-delay-long": "길게", + "editor-comment-previews/@settings-select-delay-none": "ì—†ìŒ", + "editor-comment-previews/@settings-select-delay-short": "짧게", + "columns/@description": "블럭 카테고리 메뉴를 ë‘ ì¤„ë¡œ 쪼개 스í¬ëž˜ì¹˜ 2.0처럼 ë¸”ë¡ íŒ”ë ˆíŠ¸ì˜ ë§¨ 위로 옮ê¹ë‹ˆë‹¤.", + "columns/@name": "2ì—´ 카테고리 메뉴", + "script-snap/@description": "스í¬ë¦½íŠ¸ë¥¼ 드래그해 코드 ì˜ì—­ ì ì— ìžë™ìœ¼ë¡œ 정렬합니다.", + "script-snap/@name": "스í¬ë¦½íŠ¸ë¥¼ 격ìžì— 맟추기", + "script-snap/@preset-name-default": "기본", + "script-snap/@preset-name-half-block": "ë°˜ ë¸”ë¡ í¬ê¸°", + "script-snap/@preset-name-whole-block": "한 ë¸”ë¡ í¬ê¸°", + "script-snap/@settings-name-grid": "ê²©ìž í¬ê¸° (px)", + "fullscreen/@description": "ì „ì²´ 화면 모드ì—서 ë°œìƒí•˜ëŠ” 몇몇 ì˜ë„하지 ì•Šì€ íš¨ê³¼ë“¤ì„ ê³ ì¹˜ê³ , 브ë¼ìš°ì €ì˜ ì „ì²´ 화면 모드로 ì—´ 수 있으며, 녹색 깃발 툴바를 숨ê¹ë‹ˆë‹¤.", + "fullscreen/@info-hideToolbarNotice": "만약 툴바 숨기기를 ì„ íƒí–ˆë‹¤ë©´, Esc키를 눌러 ì „ì²´ 화면 모드ì—서 나가세요.", + "fullscreen/@name": "í–¥ìƒëœ ì „ì²´ 화면", + "fullscreen/@settings-name-browserFullscreen": "ì „ì²´ 화면 플레리어를 ì „ì²´ 화면 브ë¼ìš°ì € 모드ì—서 열기", + "fullscreen/@settings-name-hideToolbar": "ì „ì²´ 화면ì—서 툴바 숨기기", + "hide-stage/@description": "무대와 스프ë¼ì´íЏ íƒ­ì„ ìˆ¨ê¸°ëŠ” \"무대 숨기기\" ë²„íŠ¼ì„ ì¶”ê°€í•˜ì—¬ 코드 편집기를 ë” í¬ê²Œ 사용할 수 있습니다.", + "hide-stage/@name": "무대와 스프ë¼ì´íЏ 탭 숨기기", + "editor-stepping/@description": "프로ì íЏì—서 현재 실행 ì¤‘ì¸ ë¸”ë¡ì„ 색으로 강조합니다.", + "editor-stepping/@name": "실행 ë¸”ë¡ í…Œë‘리", + "editor-stepping/@settings-name-highlight-color": "강조색" +} \ No newline at end of file diff --git a/src/addons/addons-l10n-settings/nl.json b/src/addons/addons-l10n-settings/nl.json new file mode 100644 index 0000000000000000000000000000000000000000..b550504db714f7f57f34d582ce12e8e5af58890f --- /dev/null +++ b/src/addons/addons-l10n-settings/nl.json @@ -0,0 +1,344 @@ +{ + "cat-blocks/@description": "Brengt de kat-blokken in de editor van 1 April 2020 terug.", + "cat-blocks/@info-watch": "De instelling \"Kijk naar muisaanwijzer\" vermindert mogelijk prestaties wanneer de editor is geopend.", + "cat-blocks/@name": "Kat-blokken", + "cat-blocks/@settings-name-watch": "Kijk naar muisaanwijzer", + "editor-devtools/@description": "Voegt nieuwe menuopties toe aan de editor: blokken kopiëren/plakken, beter opruimen, en meer!", + "editor-devtools/@name": "Ontwikkelaarstools", + "editor-devtools/@settings-name-enableCleanUpPlus": "\"Blokken opruimen\" Verbeteren", + "editor-devtools/@settings-name-enablePasteBlocksAtMouse": "Blokken plakken bij muisaanwijzer", + "find-bar/@description": "Maakt een nieuwe zoekbalk waarmee je scripts, uiterlijken en geluiden kunt zoeken en ernaar kunt springen, naast het geluidentabblad. Gebruik Ctrl+Links en Ctrl+Rechts in het codegebied om te navigeren naar vorige of volgende bezochte posities na het gebruiken van de zoekbalk.", + "find-bar/@info-developer-tools": "Deze addon maakte voorheen deel uit van de \"ontwikkelaarstools\"-addon maar is nu hierheen verhuisd.", + "find-bar/@name": "Zoekbalk in editor", + "middle-click-popup/@description": "Klik met de scrolwielknop op het codegebied of gebruik Ctrl+Spatie of Shift+Klik om een zwevend invoervak zichtbaar te maken, waar je de naam van een blok (of een deel ervan) kunt typen en het naar het codegebied kunt slepen. Houd Shift ingedrukt tijdens het slepen om het vak niet te sluiten.", + "middle-click-popup/@info-developer-tools": "Deze addon maakte voorheen deel uit van de \"ontwikkelaarstools\"-addon maar is nu hierheen verhuisd.", + "middle-click-popup/@name": "Blokken invoegen op naam", + "jump-to-def/@description": "Spring naar een definitie van een eigen blok met de scrolwielknop of Shift+Klik op het blok.", + "jump-to-def/@info-developer-tools": "Deze addon maakte voorheen deel uit van de \"ontwikkelaarstools\"-addon maar is nu hierheen verhuisd.", + "jump-to-def/@name": "Springen naar definitie van eigen blok", + "editor-searchable-dropdowns/@description": "Geeft je de mogelijkheid om blok-dropdownitems te zoeken.", + "editor-searchable-dropdowns/@name": "Doorzoekbare dropdowns", + "data-category-tweaks-v2/@description": "Maakt aanpassingen aan de Gegevens (\"Variabelen\")-blokcategorie.", + "data-category-tweaks-v2/@name": "Gegevenscategorie-aanpassingen", + "data-category-tweaks-v2/@settings-name-moveReportersDown": "Verplaats gegevensblokken boven variabelenlijst", + "data-category-tweaks-v2/@settings-name-separateListCategory": "Aparte Lijstcategorie", + "data-category-tweaks-v2/@settings-name-separateLocalVariables": "Aparte \"Voor Deze Sprite\"-Variabelen", + "block-palette-icons/@description": "Voegt pictogrammen binnen de gekleurde cirkels van blokcategorieën toe.", + "block-palette-icons/@name": "Pictogrammen voor categorieën in blokpalet", + "hide-flyout/@description": "Verbergt het blokpalet als niet gefocust. Klik op het slotpictogram om het tijdelijk vast te zetten. Gebruik de \"categorie-klik\"-modus als alternatief.", + "hide-flyout/@info-hoverExplanation": "\"Over paletgebied zweven\" verbreedt alleen het zichtgebied. Als je blokken naar dat gebied wilt slepen zonder dat ze verwijderd worden, gebruik dan een van de andere modi.", + "hide-flyout/@name": "Blokpalet automatisch verbergen", + "hide-flyout/@settings-name-speed": "Animatiesnelheid", + "hide-flyout/@settings-name-toggle": "Aanzetten...", + "hide-flyout/@settings-select-speed-default": "Standaard", + "hide-flyout/@settings-select-speed-long": "Traag", + "hide-flyout/@settings-select-speed-none": "Meteen", + "hide-flyout/@settings-select-speed-short": "Vlug", + "hide-flyout/@settings-select-toggle-category": "Categorieën klikken", + "hide-flyout/@settings-select-toggle-cathover": "Over categorieën zweven", + "hide-flyout/@settings-select-toggle-hover": "Over paletgebied zweven", + "hide-flyout/@update": "Deze addon is verbeterd en er zijn veel bugs opgelost.", + "mediarecorder/@description": "Voegt een \"opname starten\"-knop aan de editortaakbalk toe die je het speelveld laat opnemen.", + "mediarecorder/@name": "Projectvideo-opnemer", + "drag-drop/@description": "Laat je afbeeldingen en geluiden slepen van je bestandsverkenner in het spritevenster of kostuum-/geluidlijst. Je kunt ook tekstbestanden naar lijsten of naar \"vraag en wacht\"-invoeren slepen.", + "drag-drop/@name": "Bestand slepen en neerzetten", + "drag-drop/@settings-name-use-hd-upload": "Gebruik HD-uploads", + "debugger/@settings-name-log_broadcasts": "Signalen loggen", + "debugger/@settings-name-log_clear_greenflag": "Logs wissen op groene vlag", + "debugger/@settings-name-log_clone_create": "Klooncreaties loggen", + "debugger/@settings-name-log_failed_clone_creation": "Log wanneer maximale klonen bereikt zijn", + "debugger/@settings-name-log_greenflag": "Groene vlag-kliks loggen", + "debugger/@update": "Nieuwe \"Threads\" en \"Prestaties\"-vensters in de debugger.", + "pause/@description": "Voegt een pauzeerknop toe naast de groene vlag.", + "pause/@name": "Pauzeerknop", + "mute-project/@description": "Ctrl+Klik de groene vlag om het project te dempen/dempen opheffen.", + "mute-project/@info-macOS": "Gebruik de Cmd-toets in plaats van Ctrl op macOS.", + "mute-project/@name": "Gedempte projectspeler", + "vol-slider/@description": "Voegt een volumeschuifregelaar toe naast de start-/stopbesturingen", + "vol-slider/@name": "Volumeschuifregelaar in projecten", + "vol-slider/@settings-name-defVol": "Standaardvolume", + "clones/@description": "Voegt een teller boven het speelveld toe in de editor die het totale aantal klonen laat zien.", + "clones/@name": "Kloonteller", + "clones/@settings-name-showicononly": "Alleen pictogram tonen", + "mouse-pos/@description": "Laat de x/y-posities van je muisaanwijzer zien boven het speelveld in de editor.", + "mouse-pos/@name": "Muispositie", + "color-picker/@description": "Voegt hex-codeingangen toe aan kleurenkiezers.", + "color-picker/@name": "Hex-kleurenkiezer", + "remove-sprite-confirm/@description": "Vraagt of je zeker weet dat je een sprite in een project wilt verwijderen.", + "remove-sprite-confirm/@name": "Sprite verwijderen bevestigen", + "block-count/@description": "Laat je het totaal aantal blokken in een project zien in de menubalk van de editor. Hoorde vroeger bij \"sprite- en scriptteller\".", + "block-count/@name": "Blokkenteller", + "onion-skinning/@description": "Laat doorzichtige lagen van vorige of volgende uiterlijken zien bij het bewerken van uiterlijken. Bestuurd door knoppen onder de uiterlijkeditor bij de zoomknoppen.", + "onion-skinning/@name": "\"Onion skinning\"", + "onion-skinning/@settings-name-afterTint": "Volgend uiterlijk-tint", + "onion-skinning/@settings-name-beforeTint": "Vorig uiterlijk-tint", + "onion-skinning/@settings-name-default": "Standaard inschakelen", + "onion-skinning/@settings-name-layering": "Standaardlagen", + "onion-skinning/@settings-name-mode": "Standaardmodus", + "onion-skinning/@settings-name-next": "Standaard volgende uiterlijken", + "onion-skinning/@settings-name-opacity": "Doorzichtigheid (%)", + "onion-skinning/@settings-name-opacityStep": "Doorzichtigheidsstap (%)", + "onion-skinning/@settings-name-previous": "Standaard vorige uiterlijken", + "onion-skinning/@settings-select-layering-behind": "Achter", + "onion-skinning/@settings-select-layering-front": "Voor", + "onion-skinning/@settings-select-mode-merge": "Afbeeldingen samenvoegen", + "onion-skinning/@settings-select-mode-tint": "Kleurtint", + "paint-snap/@description": "Objecten in de uiterlijkeditor uitlijnen op begrenzende vakken en vectorknooppunten.", + "paint-snap/@name": "Uitlijnen in uiterlijkeditor", + "paint-snap/@settings-name-boxCenter": "Uitlijnen vanaf middelpunt selectie", + "paint-snap/@settings-name-boxCorners": "Uitlijnen vanaf hoeken selectie", + "paint-snap/@settings-name-boxEdgeMids": "Uitlijnen vanaf middelpunten op randen selectie", + "paint-snap/@settings-name-enable-default": "Standaard inschakelen", + "paint-snap/@settings-name-guide-color": "Hulpkleur bij uitlijnen", + "paint-snap/@settings-name-objectCenters": "Uitlijnen op objectmiddelpunten", + "paint-snap/@settings-name-objectCorners": "Uitlijnen op objecthoeken", + "paint-snap/@settings-name-objectEdges": "Uitlijnen op objectranden", + "paint-snap/@settings-name-objectMidlines": "Uitlijnen op objectmiddenlijnen", + "paint-snap/@settings-name-pageAxes": "Uitlijnen op X- en Y-assen van pagina", + "paint-snap/@settings-name-pageCenter": "Uitlijnen op paginamiddelpunt", + "paint-snap/@settings-name-pageCorners": "Uitlijnen op paginahoeken", + "paint-snap/@settings-name-pageEdges": "Uitlijnen op paginaranden", + "paint-snap/@settings-name-threshold": "Uitlijnafstand", + "default-costume-editor-color/@description": "Verandert de standaardkleuren en -randgrootte in de uiterlijkeditor.", + "default-costume-editor-color/@name": "Aanpasbare standaardkleuren in uiterlijkeditor", + "default-costume-editor-color/@settings-name-fill": "Standaard opvulkluur", + "default-costume-editor-color/@settings-name-persistence": "Gebruik vorige kleur in plaats van resetten na het veranderen van gereedschappen", + "default-costume-editor-color/@settings-name-stroke": "Standaard randkleur", + "default-costume-editor-color/@settings-name-strokeSize": "Standaard randgrootte", + "bitmap-copy/@description": "Geeft je de mogelijkheid om bitmapafbeeldingen van de kostuumeditor te kopiëren naar je klembord, zodat je het in andere websites of software kunt plakken.", + "bitmap-copy/@info-norightclick": "\"Rechterklik → kopiëren\" is niet ondersteund. Je moet Ctrl+C indrukken terwijl een bitmapafbeelding is geselecteerd.", + "bitmap-copy/@name": "Bitmapafbeeldingen kopiëren", + "2d-color-picker/@description": "Vervangt saturatie- en helderheidschuifregelaars in de uiterlijkeditor met een 2D-kleurenkiezer. Houd Shift ingedrukt en beweeg de muisaanwijzer om de waarden op een enkele as te veranderen.", + "2d-color-picker/@name": "2D-kleurenkiezer", + "better-img-uploads/@description": "Voegt een nieuwe knop toe boven de \"upload uiterlijk\"-knop die geüploade bitmapafbeeldingen automatisch converteert naar SVG (vector)-afbeeldingen om de kwaliteit te behouden.", + "better-img-uploads/@info-notSuitableEdit": "Vermijd het gebruiken van de HD-uploadknop als je later nog de afbeelding wilt bewerken.", + "better-img-uploads/@name": "HD-afbeelding uploads", + "better-img-uploads/@settings-name-fitting": "Afbeeldingsgrootte", + "better-img-uploads/@settings-select-fitting-fill": "Rekken om speelveld te vullen", + "better-img-uploads/@settings-select-fitting-fit": "Krimpen om in speelveld te passen", + "better-img-uploads/@settings-select-fitting-full": "Originele grootte", + "pick-colors-from-stage/@description": "Kies kleuren in het speelveld met de kleurenkiezer van de uiterlijkeditor.", + "pick-colors-from-stage/@name": "Speelveldkleuren selecteren in de uiterlijkeditor", + "custom-block-shape/@description": "Verander de opvulling, hoekgrootte, en inkepingshoogte van blokken.", + "custom-block-shape/@info-paddingWarning": "De opvulling verminderen is alleen zichtbaar voor jou, dus als anderen je project bekijken, kunnen je scripts elkaar bedekken.", + "custom-block-shape/@name": "Aanpasbare blokvorm", + "custom-block-shape/@preset-description-default2": "Een uiterlijk dat lijkt op Scratch 2.0-blokken", + "custom-block-shape/@preset-description-default3": "Het normale uiterlijk van Scratch-3.0 blokken", + "custom-block-shape/@preset-description-flat2": "Scratch 2.0-blokken zonder inkepingen en hoeken", + "custom-block-shape/@preset-description-flat3": "Scratch 3.0-blokken zonder inkepingen en hoeken", + "custom-block-shape/@preset-name-default2": "2.0-Blokken", + "custom-block-shape/@preset-name-default3": "3.0-Blokken", + "custom-block-shape/@preset-name-flat2": "2.0 Plat", + "custom-block-shape/@preset-name-flat3": "3.0 Plat", + "custom-block-shape/@settings-name-cornerSize": "Hoekgrootte (0-300%)", + "custom-block-shape/@settings-name-notchSize": "Inkepinghoogte (0-150%)", + "custom-block-shape/@settings-name-paddingSize": "Opvulling (50-200%)", + "zebra-striping/@description": "Wisselt de tinten van blokken met dezelfde kleur tussen licht en donker af wanneer ze in elkaar genest zijn. Dit staat ook bekend als zebrastrepen.", + "zebra-striping/@name": "Afwisselende kleuren van geneste blokken", + "zebra-striping/@settings-name-intensity": "Intensiteit (0-100%)", + "zebra-striping/@settings-name-shade": "Tint", + "zebra-striping/@settings-select-shade-darker": "Donkerder", + "zebra-striping/@settings-select-shade-lighter": "Lichter", + "editor-theme3/@description": "Pas blokkleuren aan voor elke categorie in de editor.", + "editor-theme3/@name": "Aanpasbare blokkleuren", + "editor-theme3/@preset-description-black": "Maakt blok-achtergronden zwart", + "editor-theme3/@preset-description-dark": "Donkere versies van de standaardkleuren", + "editor-theme3/@preset-description-original": "De originele blokkleuren van Scratch 2.0", + "editor-theme3/@preset-description-tweaks": "Gebeurtenissen, Besturing, en Eigen blokken met 2.0-kleuren", + "editor-theme3/@preset-name-black": "Zwart", + "editor-theme3/@preset-name-dark": "Donker", + "editor-theme3/@preset-name-original": "2.0-kleuren", + "editor-theme3/@preset-name-tweaks": "3.0-Aanpassingen", + "editor-theme3/@settings-name-Pen-color": "extensies", + "editor-theme3/@settings-name-comment-color": "Opmerkingen", + "editor-theme3/@settings-name-control-color": "besturen", + "editor-theme3/@settings-name-custom-color": "aanpasbaar", + "editor-theme3/@settings-name-data-color": "variabelen", + "editor-theme3/@settings-name-data-lists-color": "lijsten", + "editor-theme3/@settings-name-events-color": "gebeurtenissen", + "editor-theme3/@settings-name-input-color": "Blok-invoer", + "editor-theme3/@settings-name-looks-color": "uiterlijken", + "editor-theme3/@settings-name-motion-color": "beweging", + "editor-theme3/@settings-name-operators-color": "functies", + "editor-theme3/@settings-name-sensing-color": "waarnemen", + "editor-theme3/@settings-name-sounds-color": "geluid", + "editor-theme3/@settings-name-text": "Tekstkleur", + "editor-theme3/@settings-select-text-black": "Zwart", + "editor-theme3/@settings-select-text-colorOnBlack": "Gekleurd op zwarte achtergrond", + "editor-theme3/@settings-select-text-colorOnWhite": "Gekleurd op witte achtergrond", + "editor-theme3/@settings-select-text-white": "Wit", + "editor-theme3/@update": "De \"Donkere opmerkingen\"-instelling van \"Donkere modus in editor en aanpasbare kleuren\" is hierheen verplaatst en is nu aanpasbaar.", + "custom-block-text/@description": "Verandert de dikte van de bloktekst en voegt eventueel een tekstschaduw toe.", + "custom-block-text/@name": "Bewerkbare bloktekststijlen", + "custom-block-text/@settings-name-bold": "Dikgedrukte tekst", + "custom-block-text/@settings-name-shadow": "Tekstschaduw", + "editor-colored-context-menus/@description": "Geeft rechterklikmenu's van blokken een kleur.", + "editor-colored-context-menus/@name": "Gekleurde rechterklikmenu's", + "editor-stage-left/@description": "Zet het speelveld aan de linkerkant van de editor, zoals in Scratch 2.0.", + "editor-stage-left/@info-reverseOrder": "Om de positie van de knoppen boven het speelveld aan te passen, gebruik de \"volgorde van projectbesturingen omkeren\"-addon.", + "editor-stage-left/@name": "Zet speelveld aan linkerkant", + "editor-buttons-reverse-order/@description": "Verplaatst de groene vlag en stopknop naar rechts en de volledig scherm-knop naar links, zoals in Scratch 2.0.", + "editor-buttons-reverse-order/@name": "Volgorde van projectbesturingen omkeren", + "variable-manager/@description": "Voegt een tabblad naast \"geluiden\" toe in de editor om makkelijk variabelen en lijsten aan te passen.", + "variable-manager/@name": "Variabele manager", + "variable-manager/@update": "Lijstvoorwerpen kunnen nu ingevoegd worden zonder de Shifttoets ingedrukt te houden.", + "search-sprites/@description": "Voegt een zoekbalk aan het spritevenster toe om sprites bij naam te zoeken.", + "search-sprites/@name": "Sprites bij naam zoeken", + "sprite-properties/@description": "Verbergt het sprite-eigenschappenpaneel zoals in Scratch 2.0. Klik op de infoknop in de huidige sprite of dubbelklik een sprite om het paneel weer te laten verschijnen. Om het weer te verbergen gebruik je de samenvouwknop in het paneel of dubbelklik een sprite.", + "sprite-properties/@name": "Sprite-eigenschappen samenvouwen", + "sprite-properties/@settings-name-autoCollapse": "Automatisch samenvouwen wanneer muis buiten paneel beweegt", + "sprite-properties/@settings-name-hideByDefault": "Paneel standaard samenvouwen", + "sprite-properties/@settings-name-transitionDuration": "Animatiesnelheid", + "sprite-properties/@settings-select-transitionDuration-default": "Standaard", + "sprite-properties/@settings-select-transitionDuration-long": "Traag", + "sprite-properties/@settings-select-transitionDuration-none": "Meteen", + "sprite-properties/@settings-select-transitionDuration-short": "Vlug", + "gamepad/@description": "Gebruik projecten met een USB- of Bluetooth-controller/gamepad", + "gamepad/@name": "Gamepad-ondersteuning", + "gamepad/@settings-name-hide": "Instellingsknop verbergen als er geen controllers gevonden zijn", + "editor-sounds/@description": "Speelt geluiden af wanneer je blokken verbindt of verwijdert.", + "editor-sounds/@name": "Editor-geluidseffecten", + "folders/@description": "Voegt mappen toe aan het spritevenster, en ook uiterlijk- en geluidlijsten. Om een map aan te maken, gebruik de rechtermuisknop op een sprite en klik op \"map aanmaken\". Klik op een map om het te openen of te sluiten. Gebruik de rechtermuisknop op een sprite om te zien naar welke mappen je het kunt verplaatsen, of sleep het naar een geopende map. Deze functie werkt door \"[folderName]//\" aan het begin van de namen van je sprites toe te voegen.", + "folders/@info-notice-folders-are-public": "Gebruikers met deze functie zullen mappen kunnen zien in je project. Alle anderen zien de sprites normaal (zonder mappen).", + "folders/@name": "Spritemappen", + "block-switching/@description": "Rechtermuisknop op een blok om het te wisselen naar een gerelateerde blok.", + "block-switching/@name": "Blokken wisselen", + "block-switching/@settings-name-control": "Besturen-blokken", + "block-switching/@settings-name-customargs": "Eigen blokken-argumenten", + "block-switching/@settings-name-customargsmode": "Zichtbare eigen blokken-argumentopties", + "block-switching/@settings-name-data": "Gegevens-blokken", + "block-switching/@settings-name-event": "Gebeurtenis-blokken", + "block-switching/@settings-name-extension": "Extensieblokken", + "block-switching/@settings-name-looks": "Uiterlijken-blokken", + "block-switching/@settings-name-motion": "Beweging-blokken", + "block-switching/@settings-name-noop": "Laat optie zien om blok naar zichzelf te wisselen", + "block-switching/@settings-name-operator": "Functies-blokken", + "block-switching/@settings-name-sensing": "Waarnemen-blokken", + "block-switching/@settings-name-sound": "Geluid-blokken", + "block-switching/@settings-select-customargsmode-all": "Argumenten in alle eigen blokken in sprite", + "block-switching/@settings-select-customargsmode-defOnly": "Argumenten in eigen eigen blok", + "load-extensions/@description": "Laat muziek, pen, en andere extensies automatisch zien in de blokcategoriemenu in de editor.", + "load-extensions/@name": "Extensies automatisch toevoegen", + "load-extensions/@settings-name-music": "Muziek", + "load-extensions/@settings-name-text2speech": "Tekst naar Spraak", + "load-extensions/@settings-name-translate": "Vertaal", + "custom-zoom/@description": "Kies zelf instellingen voor de minimale, maximale, snelheid, en beginzoom van de zoom van scripts in het codegebied, en verberg automatisch de knoppen.", + "custom-zoom/@name": "Aanpasbare codegebied-zoom", + "custom-zoom/@settings-name-autohide": "Zoomknoppen Automatisch Verbergen", + "custom-zoom/@settings-name-maxZoom": "Maximale Zoom (100-500%)", + "custom-zoom/@settings-name-minZoom": "Minimale Zoom (1-100%)", + "custom-zoom/@settings-name-speed": "Animatiesnelheid van Automatisch Verbergen", + "custom-zoom/@settings-name-startZoom": "Beginzoom (50-500%)", + "custom-zoom/@settings-name-zoomSpeed": "Zoomsnelheid (50-200%)", + "custom-zoom/@settings-select-speed-default": "Standaard", + "custom-zoom/@settings-select-speed-long": "Traag", + "custom-zoom/@settings-select-speed-none": "Meteen", + "custom-zoom/@settings-select-speed-short": "Vlug", + "initialise-sprite-position/@description": "Verander de standaard x/y-positie van nieuwe sprites.", + "initialise-sprite-position/@name": "Aanpasbare positie van nieuwe sprite", + "initialise-sprite-position/@settings-name-duplicate": "Gedrag van gedupliceerde sprites", + "initialise-sprite-position/@settings-name-library": "Geef bibliotheeksprites een willekeurige positie", + "initialise-sprite-position/@settings-name-x": "X-positie", + "initialise-sprite-position/@settings-name-y": "Y-positie", + "initialise-sprite-position/@settings-select-duplicate-custom": "Ga naar specifieke x/y-posities", + "initialise-sprite-position/@settings-select-duplicate-keep": "Hetzelfde als de originele sprite houden", + "initialise-sprite-position/@settings-select-duplicate-randomize": "Willekeurig", + "blocks2image/@description": "Gebruik de rechtermuisknop op het codegebied om blokken te exporteren als SVG/PNG-afbeeldingen.", + "blocks2image/@name": "Blokken opslaan als afbeelding", + "remove-curved-stage-border/@description": "Verwijdert de ronde rand rond het speelveld zodat je de hoeken beter kunt zien.", + "remove-curved-stage-border/@name": "Ronde speelveldrand verwijderen", + "transparent-orphans/@description": "Pas de doorzichtigheid aan voor blokken in de editor, met aparte opties voor losse blokken (blokken zonder gebeurtenis-blokken erboven) en blokken die worden gesleept.", + "transparent-orphans/@name": "Blokdoorzichtigheid", + "transparent-orphans/@settings-name-block": "Blokdoorzichtigheid (%)", + "transparent-orphans/@settings-name-dragged": "Gesleepte blokdoorzichtigheid (%)", + "transparent-orphans/@settings-name-orphan": "Losse blokdoorzichtigheid (%)", + "paint-by-default/@description": "Verandert de standaardactie van de \"Kies een Sprite/Uiterlijk/Achtergrond/Geluid\"-knoppen, die normaal de bibliotheek openen.", + "paint-by-default/@name": "Standaard sprite tekenen", + "paint-by-default/@settings-name-backdrop": "Achtergrond toevoegen", + "paint-by-default/@settings-name-costume": "Uiterlijk toevoegen", + "paint-by-default/@settings-name-sound": "Geluid toevoegen", + "paint-by-default/@settings-name-sprite": "Sprite toevoegen", + "paint-by-default/@settings-select-backdrop-library": "Bibliotheek", + "paint-by-default/@settings-select-backdrop-paint": "Teken", + "paint-by-default/@settings-select-backdrop-surprise": "Verrassing", + "paint-by-default/@settings-select-backdrop-upload": "Uploaden", + "paint-by-default/@settings-select-costume-library": "Bibliotheek", + "paint-by-default/@settings-select-costume-paint": "Teken", + "paint-by-default/@settings-select-costume-surprise": "Verrassing", + "paint-by-default/@settings-select-costume-upload": "Uploaden", + "paint-by-default/@settings-select-sound-library": "Bibliotheek", + "paint-by-default/@settings-select-sound-record": "Opnemen", + "paint-by-default/@settings-select-sound-surprise": "Verrassing", + "paint-by-default/@settings-select-sound-upload": "Uploaden", + "paint-by-default/@settings-select-sprite-library": "Bibliotheek", + "paint-by-default/@settings-select-sprite-paint": "Teken", + "paint-by-default/@settings-select-sprite-surprise": "Verrassing", + "paint-by-default/@settings-select-sprite-upload": "Uploaden", + "block-cherry-picking/@description": "Sleep een enkel blok uit een script met de Ctrl-toets (zonder dat alle blokken eronder ook meegaan).", + "block-cherry-picking/@info-flipControls": "Als \"besturing omdraaien\" aanstaat, is het enkele blokken uit een script slepen normaal. Houdt Ctrl ingedrukt om het hele script te slepen.", + "block-cherry-picking/@info-macContextDisabled": "Gebruik de Cmd-toets in plaats van Ctrl op macOS.", + "block-cherry-picking/@name": "Enkel blok slepen met Ctrl-toets", + "block-cherry-picking/@settings-name-invertDrag": "Besturing omdraaien", + "hide-new-variables/@description": "Geen monitors maken voor nieuwe variabelen of lijsten.", + "hide-new-variables/@name": "Nieuwe variabelen verbergen", + "editor-extra-keys/@description": "Voegt meer toetsen toe aan de \"toets () ingedrukt?\" en \"wanneer () is ingedrukt\" blokdropdowns, zoals enter, punt, komma, en meer. Deze toetsen werken zelfs voor gebruikers zonder deze addon.", + "editor-extra-keys/@info-experimentalKeysWarn": "De \"experimentele toetsen\" bevatten isteken, slash, puntkomma en meer. Dit werkt niet op alle systemen of toetsenborden.", + "editor-extra-keys/@info-shiftKeysWarn": "De \"Shifttoetsen\" bevatten toetsen die normaal de Shifttoets en een getaltoets, zoals hashtag, uitroepteken en meer. Deze toetsen werken alleen met de \"wanneer () is ingedrukt\"-blok en werken niet op alle systemen of toetsenborden.", + "editor-extra-keys/@name": "Meer toetsopties", + "editor-extra-keys/@settings-name-experimentalKeys": "Experimentele toetsen weergeven", + "editor-extra-keys/@settings-name-shiftKeys": "Shifttoetsen weergeven", + "hide-delete-button/@description": "Verbergt de verwijderknop (afvalbakpictogram) in sprites, uiterlijken en geluiden. Ze kunnen nog steeds worden verwijderd in het rechterklikmenu.", + "hide-delete-button/@name": "Verwijderknop verbergen", + "hide-delete-button/@settings-name-costumes": "Uiterlijken en achtergronden", + "hide-delete-button/@settings-name-sounds": "Geluiden", + "no-script-bumping/@description": "Laat je je scripts bewegen en veranderen zonder overlappende scripts te laten bewegen.", + "no-script-bumping/@name": "Overlappende scripts niet automatisch verplaatsen", + "disable-stage-drag-select/@description": "Maakt het niet meer mogelijk om sprites rond te slepen in de editor, behalve diegene die ingesteld zijn als sleepbaar. Houd Shift ingedrukt om sprites zoals normaal te slepen.", + "disable-stage-drag-select/@name": "Niet-sleepbare sprites in editor", + "move-to-top-bottom/@description": "Voegt opties toe in de rechterklikmenu's van uiterlijken of geluiden om ze helemaal boven of beneden in de lijst te plaatsen.", + "move-to-top-bottom/@info-developer-tools": "Deze addon maakte voorheen deel uit van de \"ontwikkelaarstools\"-addon maar is nu hierheen verhuisd.", + "move-to-top-bottom/@name": "Verplaats uiterlijk naar boven of beneden", + "disable-paste-offset/@description": "Plak gekopieerde items op hun originele plek in plaats van een beetje verplaatst in de uiterlijkeditor.", + "disable-paste-offset/@info-vanilla": "Dit kan ook gedaan worden zonder deze addon, namelijk door op het object te klikken met Alt ingedrukt.", + "disable-paste-offset/@name": "Geplakte items niet verplaatsen", + "block-duplicate/@description": "Dupliceer snel een script door het te slepen met de Alt-toets ingedrukt. Houd Ctrl ook ingedrukt om alleen een enkel blok te dupliceren in plaats van het hele script eronder.", + "block-duplicate/@info-mac": "Gebruik de Option-toets in plaats van de Alt-toets en de Command-toets in plaats van de Control-toets op macOS.", + "block-duplicate/@name": "Scripts dupliceren met de Alt-toets", + "rename-broadcasts/@description": "Verander de naam van signalen in de dropdowns van signaalblokken.", + "rename-broadcasts/@name": "Signalen hernoemen", + "swap-local-global/@description": "Geeft meer opties voor het hernoemen van variabelen of lijsten: laat je kiezen tussen \"Voor alle sprites\" en \"Alleen voor deze sprite\" en of variabelen voor de cloud moeten zijn. Voegt ook een optie toe voor rechterklikken op een variabele/lijst om snel zijn type te veranderen.", + "swap-local-global/@name": "Wissel variabelen tussen \"Voor alle sprites\" en \"Alleen voor deze sprite\"", + "editor-comment-previews/@description": "Geeft je de mogelijkheid om de inhoud van opmerkingen te zien door je muisaanwijzer over samengeklapte opmerkingen en blokken te zetten. Hiermee kun je opmerkingen zien die van het scherm af zijn, herhalingsblokken te onderscheiden vanaf de onderkant door zijn voorbeeld, veel grote opmerkingen in een kleine plek passen, en meer.", + "editor-comment-previews/@name": "Editoropmerkingvoorbeelden", + "editor-comment-previews/@settings-name-delay": "Uitstellengte", + "editor-comment-previews/@settings-name-follow-mouse": "Muisaanwijzer volgen", + "editor-comment-previews/@settings-name-hover-view": "Voorbeeld geven van samengeklapte opmerkingen", + "editor-comment-previews/@settings-name-hover-view-block": "Muisaanwijzer over blokken houden om bijbehorende opmerkingen te zien", + "editor-comment-previews/@settings-name-hover-view-procedure": "Muisaanwijzer over zelfgemaakte blokken houden om definitieopmerkingen te zien", + "editor-comment-previews/@settings-name-reduce-animation": "Animaties verminderen", + "editor-comment-previews/@settings-name-reduce-transparency": "Doorzichtigheid verminderen", + "editor-comment-previews/@settings-select-delay-long": "Lang", + "editor-comment-previews/@settings-select-delay-none": "Geen", + "editor-comment-previews/@settings-select-delay-short": "Kort", + "columns/@description": "Verdeelt het blokcategoriemenu in 2 kolommen en zet het boven het blokpalet, net zoals in Scratch 2.0.", + "columns/@name": "Categorie-menu met 2 kolommen", + "number-pad/@description": "Geef het getallenpaneel op alle apparaten weer tijdens het bewerken van een getalinvoer, in plaats van alleen op touchscreenapparaten.", + "number-pad/@info-explanation": "Een getallenpaneel komt tevoorschijn bij het bewerken van getalinvoeren van bepaalde blokken, zoals \"verander x met\".", + "number-pad/@name": "Getallenpaneel altijd weergeven", + "script-snap/@description": "Sleep een script om zijn positie automatisch uit te lijnen op de codegebied-stippen.", + "script-snap/@name": "Scripts uitlijnen op raster", + "script-snap/@preset-name-default": "Standaard", + "script-snap/@preset-name-half-block": "Half blok", + "script-snap/@preset-name-whole-block": "Heel blok", + "script-snap/@settings-name-grid": "Rastergrootte (px)", + "fullscreen/@description": "Lost een paar ongewenste dingen op in de volledig scherm-modus van de projectspeler, opent het in je browser's volledig scherm-modus, en verbergt de werkbalk met de groene vlag.", + "fullscreen/@info-hideToolbarNotice": "Als je de werkbalk verbergt, onthoud dan dat je Esc kan gebruiken om het volledige scherm uit te gaan.", + "fullscreen/@name": "Verbeterd volledig scherm", + "fullscreen/@settings-name-browserFullscreen": "Volledig scherm projectspeler openen in browser-volledig scherm", + "fullscreen/@settings-name-hideToolbar": "Werkbalk verbergen in volledig scherm", + "hide-stage/@description": "Voegt een knop naast de knoppen \"speelveld verkleinen\" en \"speelveld vergroten\" toe die het speelveld en spritevenster verbergt, wat het codegebied veel groter maakt.", + "hide-stage/@name": "Speelveld en spritevenster verbergen", + "editor-stepping/@description": "Voegt een gekleurde markering toe aan de blokken die op dit moment worden uitgevoerd in een project.", + "editor-stepping/@name": "Rand om uitvoerende blokken", + "editor-stepping/@settings-name-highlight-color": "Markeringskleur" +} \ No newline at end of file diff --git a/src/addons/addons-l10n-settings/pl.json b/src/addons/addons-l10n-settings/pl.json new file mode 100644 index 0000000000000000000000000000000000000000..0e3a76eb1062ea381343b95005af3f454c346e91 --- /dev/null +++ b/src/addons/addons-l10n-settings/pl.json @@ -0,0 +1,316 @@ +{ + "cat-blocks/@description": "Przywraca do edytora kocie bloki z prima aprilis 2020.", + "cat-blocks/@name": "Kocie Bloki", + "cat-blocks/@settings-name-watch": "Patrz na kursor myszy", + "editor-devtools/@name": "NarzÄ™dzia Developerskie", + "editor-devtools/@settings-name-enableCleanUpPlus": "Ulepszone „Wyczyść blokiâ€", + "editor-devtools/@settings-name-enablePasteBlocksAtMouse": "Wklej bloki w miejscu kursora myszy", + "find-bar/@info-developer-tools": "Ten dodatek byÅ‚ wczeÅ›niej częściÄ… dodatku „narzÄ™dzia developerskieâ€, ale zostaÅ‚ przeniesiony tutaj.", + "middle-click-popup/@info-developer-tools": "Ten dodatek byÅ‚ wczeÅ›niej częściÄ… dodatku „narzÄ™dzia developerskieâ€, ale zostaÅ‚ przeniesiony tutaj.", + "middle-click-popup/@name": "Wstaw bloki wedÅ‚ug nazwy", + "jump-to-def/@name": "Przejdź do definicji bloku", + "editor-searchable-dropdowns/@description": "Umożliwia wyszukiwanie zawartoÅ›ci list rozwijanych należących do bloków. ", + "editor-searchable-dropdowns/@name": "Możliwość szukania w liÅ›cie", + "data-category-tweaks-v2/@description": "Zapewnia poprawki dla kategorii bloków Dane („Zmienneâ€). ", + "data-category-tweaks-v2/@name": "Ulepszenia kategorii danych", + "data-category-tweaks-v2/@settings-name-moveReportersDown": "Przesuwa bloki danych nad listÄ™ zmiennych", + "data-category-tweaks-v2/@settings-name-separateListCategory": "Oddziel kategoriÄ™ Listy", + "data-category-tweaks-v2/@settings-name-separateLocalVariables": "Rozdziel zmienne \"Tylko dla tego duszka\"", + "block-palette-icons/@description": "Dodaje ikony wewnÄ…trz kolorowych okrÄ™gów, które identyfikujÄ… kategorie bloków.", + "block-palette-icons/@name": "Ikony kategorii w edytorze", + "hide-flyout/@description": "Ukrywa paletÄ™ bloków, jeÅ›li na niÄ… nie najedziesz myszkÄ…. Kliknij ikonÄ™ kłódki, aby tymczasowo zablokować jÄ… w miejscu. Możesz także użyć trybu „klikniÄ™cie kategoriiâ€.", + "hide-flyout/@info-hoverExplanation": "Tryb „WyÅ›wietl, gdy najedziesz na listÄ™ bloków†tylko rozszerza obszar wyÅ›wietlania. JeÅ›li chcesz mieć możliwość przeciÄ…gania bloków do tego obszaru bez ich usuwania w koszu, użyj jednego z pozostaÅ‚ych trybów.", + "hide-flyout/@name": "Automatycznie chowana lista bloków", + "hide-flyout/@settings-name-speed": "PrÄ™dkość animacji", + "hide-flyout/@settings-name-toggle": "WyÅ›wietl, gdy...", + "hide-flyout/@settings-select-speed-default": "Normalny", + "hide-flyout/@settings-select-speed-long": "Wolna", + "hide-flyout/@settings-select-speed-short": "Szybka", + "hide-flyout/@settings-select-toggle-category": "Klikniesz na kategoriÄ™", + "hide-flyout/@settings-select-toggle-cathover": "Najedziesz na kategorie", + "hide-flyout/@settings-select-toggle-hover": "Najedziesz na listÄ™ bloków", + "hide-flyout/@update": "Kod tego dodatku zostaÅ‚ caÅ‚kiem zmieniony, oraz wiele błędów zostaÅ‚o naprawionych.", + "mediarecorder/@description": "Dodaje przycisk \"Włącz nagrywania\" w panelu pozwalajÄ…cy nagrać scenÄ™.", + "mediarecorder/@name": "Nagrywanie Video z projektu", + "drag-drop/@description": "Pozwala przesuwać obrazy i dźwiÄ™ki z Twojego managera plików do miejsca docelowego jak: lista duszków/kostiumów/dźwiÄ™ków. W dodatku możesz przesuwać pliki tekstowe do pola \"Zapytaj i czekaj.\"", + "drag-drop/@name": "PrzeciÄ…gnij i upuść pliki", + "drag-drop/@settings-name-use-hd-upload": "Użyj przesyÅ‚ania HD", + "debugger/@settings-name-log_broadcasts": "Loguj ogÅ‚oszenia", + "debugger/@settings-name-log_clear_greenflag": "Wyczyść logi, kiedy projekt wystartuje", + "debugger/@settings-name-log_clone_create": "Loguj stworzenie klona", + "debugger/@settings-name-log_failed_clone_creation": "Loguj, kiedy ilość klonów osiÄ…gnie maksymalnÄ… wartość", + "debugger/@settings-name-log_greenflag": "Loguj kiedy klikniÄ™to w ZielonÄ… FlagÄ™", + "debugger/@update": "Nowe zakÅ‚adki „WÄ…tki†i „Wydajność†w oknie debugera. ", + "pause/@description": "Dodaje przycisk pauzy obok zielonej flagi", + "pause/@name": "Przycisk pauzy", + "mute-project/@description": "Kliknij na zielonÄ… flagÄ™ trzymajÄ…c Ctr, aby wyciszyć lub od-ciszyć projekt.", + "mute-project/@info-macOS": "W systemie macOS, użyj klawiszu Cmd zamiast Ctrl.", + "mute-project/@name": "Wycisz odtwarzacz projektu", + "vol-slider/@name": "Suwak gÅ‚oÅ›noÅ›ci projektu", + "vol-slider/@settings-name-defVol": "DomyÅ›lna gÅ‚oÅ›ność", + "clones/@description": "Dodaje licznik nad scenÄ… pokazujÄ…cy ilość klonów.", + "clones/@name": "Licznik klonów", + "clones/@settings-name-showicononly": "Pokaż tylko ikonÄ™", + "mouse-pos/@description": "WyÅ›wietla pozycjÄ™ x/y twojej myszy nad scenÄ… w edytorze.", + "mouse-pos/@name": "Pozycja kursora", + "color-picker/@description": "Dodaje opcjÄ™ koloru hex do menu wyboru kolorów.", + "color-picker/@name": "Wybieracz koloru hex", + "remove-sprite-confirm/@description": "Upewnia siÄ™, czy na pewno chcesz usunąć duszka w projekcie.", + "remove-sprite-confirm/@name": "Potwierdzenie usuniÄ™cia duszka", + "block-count/@description": "Pokazuje ilość bloków użytych w edytorze. WczeÅ›niej część dodatku \"Sprite and script count\".", + "block-count/@name": "Liczba bloków", + "onion-skinning/@description": "Pokazuje przezroczyste nakÅ‚adki poprzednich lub nastÄ™pnych kostiumów podczas edycji kostiumu. Aby zmienić klatkÄ™ kliknij w przyciski pod ikonami powiÄ™kszania kostiumu. SÅ‚uży do Å‚atwego tworzenia animacji.", + "onion-skinning/@settings-name-afterTint": "OdcieÅ„ nastÄ™pnego kostiumu", + "onion-skinning/@settings-name-beforeTint": "OdcieÅ„ poprzedniego kostiumu", + "onion-skinning/@settings-name-default": "Włączone domyÅ›lnie", + "onion-skinning/@settings-name-layering": "DomyÅ›lne warstwowanie", + "onion-skinning/@settings-name-mode": "Tryb domyÅ›lny", + "onion-skinning/@settings-name-next": "DomyÅ›lnie nastÄ™pne kostiumy", + "onion-skinning/@settings-name-opacity": "Nieprzezroczystość (%)", + "onion-skinning/@settings-name-opacityStep": "Nieprzezroczystość nastÄ™pnych kostiumów (%)", + "onion-skinning/@settings-name-previous": "DomyÅ›lnie poprzednie kostiumy", + "onion-skinning/@settings-select-layering-behind": "TyÅ‚", + "onion-skinning/@settings-select-layering-front": "Przód", + "onion-skinning/@settings-select-mode-merge": "ÅÄ…cz obrazy", + "onion-skinning/@settings-select-mode-tint": "Kolor odcienia", + "paint-snap/@name": "Przyczepianie kostiumów w edytorze", + "paint-snap/@settings-name-enable-default": "Włącz domyÅ›lnie", + "paint-snap/@settings-name-guide-color": "Kolor zaznaczenia przyciÄ…ganych obiektów", + "paint-snap/@settings-name-objectCenters": "Przyczep do Å›rodka obiektów", + "paint-snap/@settings-name-objectCorners": "Przyczep do rogów obiektów", + "paint-snap/@settings-name-objectEdges": "Przyczep do boków obiektów", + "paint-snap/@settings-name-objectMidlines": "Przyczep do linii Å›rodkowych obiektów", + "paint-snap/@settings-name-pageAxes": "Przyczep do osi X i Y", + "paint-snap/@settings-name-pageCenter": "Przyczep do Å›rodka strony", + "paint-snap/@settings-name-pageCorners": "Przyczep do rogów strony", + "paint-snap/@settings-name-pageEdges": "Przyczep do boków strony", + "paint-snap/@settings-name-threshold": "Dystans przyczepiania", + "default-costume-editor-color/@description": "Zmienia domyÅ›lne parametry narzÄ™dzi w edytorze kostiumów.", + "default-costume-editor-color/@name": "DomyÅ›lne kolory w edytorze kostiumów", + "default-costume-editor-color/@settings-name-fill": "DomyÅ›lny kolor wypeÅ‚nienia", + "default-costume-editor-color/@settings-name-stroke": "DomyÅ›lny kolor zarysu", + "default-costume-editor-color/@settings-name-strokeSize": "DomyÅ›lna wielkość zarysu", + "bitmap-copy/@description": "Pozwala ci kopiować zdjÄ™cie z edytora kostiumu do schowka w systemie, abyÅ› mógÅ‚ wkleić do innych programów.", + "bitmap-copy/@info-norightclick": "„KlikniÄ™cie prawym przyciskiem myszy → kopiowanie†nie jest obsÅ‚ugiwane. Musisz nacisnąć Ctrl + C, gdy wybrany jest obraz bitmapowy.", + "bitmap-copy/@name": "Kopiowanie obrazów bitmapowych", + "2d-color-picker/@description": "Zamienia paski wyboru jasnoÅ›ci i saturacji, na paletÄ™ kolorów 2D w edytorze kostiumów. Przytrzymaj Shift, aby zmieniać wartość na tylko jednej pÅ‚aszczyźnie.", + "2d-color-picker/@name": "Wybieranie kolorów w 2D", + "better-img-uploads/@description": "Dodaje nowy przycisk, który automatycznie zamienia przesÅ‚ane obrazy bitmapowe na obrazy SVG (wektorowe), aby uniknąć utraty jakoÅ›ci.", + "better-img-uploads/@info-notSuitableEdit": "Unikaj używania przycisku przesyÅ‚ania HD, jeÅ›li planujesz edytować obraz po przesÅ‚aniu.", + "better-img-uploads/@name": "PrzesyÅ‚anie obrazów HD ", + "better-img-uploads/@settings-name-fitting": "Zmienianie rozmiaru obrazu", + "better-img-uploads/@settings-select-fitting-fill": "ZwiÄ™ksz, aby wypeÅ‚nić scenÄ™ ", + "better-img-uploads/@settings-select-fitting-fit": "Zmniejsz, aby dopasować do sceny", + "better-img-uploads/@settings-select-fitting-full": "Oryginalny rozmiar", + "custom-block-shape/@description": "Dostosuj wielkość obramowania, zaokrÄ…glenia rogów i wysokoÅ›ci bloków.", + "custom-block-shape/@info-paddingWarning": "Zmniejszanie wielkoÅ›ci obramowania jest widoczne tylko dla Ciebie, wiÄ™c gdy Twoje projekty zostanÄ… wyÅ›wietlone przez inne Twój kod może nachodzić na siebie.", + "custom-block-shape/@name": "Dowolny ksztaÅ‚t bloków", + "custom-block-shape/@preset-description-default2": "WyglÄ…d podobny do bloków Scratch 2.0 ", + "custom-block-shape/@preset-description-default3": "Regularny wyglÄ…d bloków Scratch 3.0", + "custom-block-shape/@preset-description-flat2": "Bloki Scratch 2.0 z usuniÄ™tymi naciÄ™ciami i narożnikami ", + "custom-block-shape/@preset-description-flat3": "Bloki Scratch 3.0 z usuniÄ™tymi naciÄ™ciami i narożnikami ", + "custom-block-shape/@preset-name-default2": "Bloki 2.0", + "custom-block-shape/@preset-name-default3": "Bloki 3.0", + "custom-block-shape/@preset-name-flat2": "PÅ‚askie 2.0", + "custom-block-shape/@preset-name-flat3": "PÅ‚askie 3.0", + "custom-block-shape/@settings-name-cornerSize": "Rozmiar zaokrÄ…glenia rogów (0--300%)", + "custom-block-shape/@settings-name-notchSize": "Wielkość naciÄ™cia (0-150%) ", + "custom-block-shape/@settings-name-paddingSize": "Rozmiar obramowania (50-200%)", + "zebra-striping/@settings-name-intensity": "Intensywność (0-100%)", + "zebra-striping/@settings-name-shade": "CieÅ„", + "zebra-striping/@settings-select-shade-darker": "Ciemniej", + "zebra-striping/@settings-select-shade-lighter": "JaÅ›niej", + "editor-theme3/@description": "Edytuj kolory bloków dla każdej kategorii w edytorze.", + "editor-theme3/@name": "Niestandardowe kolory bloków", + "editor-theme3/@preset-description-black": "Zmienia tÅ‚o bloków na czarne", + "editor-theme3/@preset-description-dark": "Ciemne wersje podstawowych kolorów", + "editor-theme3/@preset-description-original": "Oryginalne kolory bloków z wersji Scratch 2.0", + "editor-theme3/@preset-description-tweaks": "Kategorie \"zdarzenia\", \"kontrola\", i \"moje bloki\" sÄ… kolorach z wersji 2.0", + "editor-theme3/@preset-name-black": "Czarny", + "editor-theme3/@preset-name-dark": "Ciemny", + "editor-theme3/@preset-name-original": "Kolory 2.0", + "editor-theme3/@preset-name-tweaks": "Poprawki 3.0 ", + "editor-theme3/@settings-name-Pen-color": "rozszerzenia", + "editor-theme3/@settings-name-comment-color": "Komentarze", + "editor-theme3/@settings-name-control-color": "kontrola", + "editor-theme3/@settings-name-custom-color": "niestandardowy", + "editor-theme3/@settings-name-data-color": "zmienne", + "editor-theme3/@settings-name-data-lists-color": "listy", + "editor-theme3/@settings-name-events-color": "zdarzenia", + "editor-theme3/@settings-name-input-color": "WejÅ›cia bloków", + "editor-theme3/@settings-name-looks-color": "wyglÄ…d", + "editor-theme3/@settings-name-motion-color": "ruch", + "editor-theme3/@settings-name-operators-color": "wyrażenia", + "editor-theme3/@settings-name-sensing-color": "czujniki", + "editor-theme3/@settings-name-sounds-color": "dźwiÄ™k", + "editor-theme3/@settings-name-text": "Kolor tekstu", + "editor-theme3/@settings-select-text-black": "Czarny", + "editor-theme3/@settings-select-text-colorOnBlack": "Kolorowe na czarnym tle", + "editor-theme3/@settings-select-text-colorOnWhite": "Kolorowe na biaÅ‚ym tle", + "editor-theme3/@settings-select-text-white": "BiaÅ‚y", + "editor-theme3/@update": "Ustawienie \"Ciemne komentarze\" z sekcji \"Tryb ciemny edytora i niestandardowe kolory\" zostaÅ‚o przeniesione tutaj i jest teraz dostosowywalne.", + "custom-block-text/@description": "Zmienia nasycenie tekstu na blokach, opcjonalnie dodaje cieÅ„ obok nich.", + "custom-block-text/@name": "Konfigurowalny styl tekstu bloków", + "custom-block-text/@settings-name-bold": "Pogrubiony tekst", + "custom-block-text/@settings-name-shadow": "CieÅ„ pod tekstem", + "editor-colored-context-menus/@description": "Kiedy klikniesz prawym klawiszem na blok, wyÅ›wietlone menu ma kolorowe tÅ‚o.", + "editor-colored-context-menus/@name": "Kolorowe menu zawartoÅ›ci", + "editor-stage-left/@description": "Przesuwa scenÄ™ i listÄ™ duszków na lewÄ… stronÄ™ edytora, jak w Scratch 2.0.", + "editor-stage-left/@info-reverseOrder": "Aby zmienić kolejność przycisków powyżej sceny, użyj dodatku \"Odwrócona kolejność kontrolek projektu\".", + "editor-stage-left/@name": "PrzenieÅ› scenÄ™ na lewÄ… stronÄ™", + "editor-buttons-reverse-order/@description": "Przesuwa zielonÄ… flagÄ™ oraz przyciski do zatrzymania na prawÄ… stronÄ™, a przycisk powiÄ™kszenia ekranu na lewÄ… stronÄ™, tak samo jak w Scratch 2.0.", + "editor-buttons-reverse-order/@name": "Odwrócona kolejność kontrolek projektu", + "variable-manager/@description": "Dodaje nowÄ… zakÅ‚adkÄ™ obok \"dźwiÄ™ków\" w edytorze, aby Å‚atwo edytować zmienne i listy.", + "variable-manager/@name": "Menedżer zmiennych", + "search-sprites/@description": "Dodaje pole wyszukiwania w liÅ›cie duszków, za pomocÄ… którego możesz wyszukać duszka po jego nazwie.", + "search-sprites/@name": "Szukaj duszków po nazwie", + "sprite-properties/@settings-name-transitionDuration": "PrÄ™dkość animacji", + "sprite-properties/@settings-select-transitionDuration-default": "DomyÅ›lna", + "sprite-properties/@settings-select-transitionDuration-long": "Wolna", + "sprite-properties/@settings-select-transitionDuration-none": "Od razu", + "sprite-properties/@settings-select-transitionDuration-short": "Szybka", + "gamepad/@description": "Kontroluj projekt za pomocÄ… kontrolera/gamepada używajÄ…c USB lub Bluetooth.", + "gamepad/@name": "Wsparcie dla Gamepadów", + "gamepad/@settings-name-hide": "Ukryj przycisk ustawieÅ„, gdy system nie wykryje żadnych kontrolerów ", + "editor-sounds/@description": "Pusza efekty dźwiÄ™kowe, kiedy połączysz lub rozłączysz bloki.", + "editor-sounds/@name": "Efekty dźwiÄ™kowe w edytorze", + "folders/@description": "Dodaje foldery do panelu duszków, a także do listy kostiumów i dźwiÄ™ków. Aby utworzyć folder, kliknij prawym przyciskiem myszy na dowolnego duszka i wybierz opcjÄ™ \"utwórz folder\". Kliknij folder, aby go otworzyć lub zamknąć. NaciÅ›nij prawym przycisk myszy na duszku, aby zobaczyć, do jakich folderów możesz go przenieść. Możesz także przeciÄ…gnąć go i upuść go do dowolnego otwartego folderu. Ta funkcja dziaÅ‚a poprzez dodanie „[nazwa_folderu]//†na poczÄ…tku nazw twoich duszków.", + "folders/@info-notice-folders-are-public": "Użytkownicy, którzy majÄ… włączonÄ… tÄ… funkcjÄ™ bÄ™dÄ… widzieć foldery w Twoim projekcie. A inne osoby, bÄ™dÄ… normalnie widzieć listÄ™ duszków (bez folderów).", + "folders/@name": "Foldery duszków", + "block-switching/@description": "Kliknij prawym przyciskiem myszy na blok, aby zamienić go na powiÄ…zany blok.", + "block-switching/@name": "Zmiana bloków", + "block-switching/@settings-name-control": "Bloki kontroli", + "block-switching/@settings-name-customargs": "Argumenty Moich Bloków", + "block-switching/@settings-name-customargsmode": "Pokaż argumenty Moich Bloków", + "block-switching/@settings-name-data": "Bloki danych", + "block-switching/@settings-name-event": "Bloki zdarzeÅ„", + "block-switching/@settings-name-extension": "Bloki rozszerzeÅ„", + "block-switching/@settings-name-looks": "Bloki wyglÄ…du", + "block-switching/@settings-name-motion": "Bloki ruchu", + "block-switching/@settings-name-noop": "Pokaż opcjÄ™ do zmieniania bloku", + "block-switching/@settings-name-operator": "Bloki operatora", + "block-switching/@settings-name-sensing": "Bloki czujników", + "block-switching/@settings-name-sound": "Bloki dźwiÄ™ku", + "block-switching/@settings-select-customargsmode-all": "Argumenty we wszystkich Moich Blokach w duszku", + "block-switching/@settings-select-customargsmode-defOnly": "Argumenty w Moich Blokach", + "load-extensions/@description": "Automatycznie pokazuje bloki muzyczne, pióro i inne rozszerzenia do Twojego projektu.", + "load-extensions/@name": "Automatycznie dodawaj rozszerzenia", + "load-extensions/@settings-name-music": "Muzyka", + "load-extensions/@settings-name-pen": "Pióro", + "load-extensions/@settings-name-text2speech": "Tekst na mowÄ™", + "load-extensions/@settings-name-translate": "TÅ‚umacz", + "custom-zoom/@description": "Wybierz niestandardowe ustawienia dla minimalnej i maksymalnej wielkoÅ›ci, szybkoÅ›ci, oraz dla poczÄ…tkowego rozmiaru powiÄ™kszenia skryptów w obszarze kodu.", + "custom-zoom/@name": "Dowolne powiÄ™kszenie obszaru kodu", + "custom-zoom/@settings-name-autohide": "Automatycznie ukrywaj kontrolki przybliżania", + "custom-zoom/@settings-name-maxZoom": "Maksymalne PowiÄ™kszenie (100-500%)", + "custom-zoom/@settings-name-minZoom": "Minimalne przybliżenie (1-100%)", + "custom-zoom/@settings-name-speed": "PrÄ™dkość animacji autochowania", + "custom-zoom/@settings-name-startZoom": "PoczÄ…tkowe przybliżenie (50-500%)", + "custom-zoom/@settings-name-zoomSpeed": "PrÄ™dkość przybliżania (50-200%)", + "custom-zoom/@settings-select-speed-default": "DomyÅ›lny", + "custom-zoom/@settings-select-speed-long": "Wolna", + "custom-zoom/@settings-select-speed-short": "Szybka", + "initialise-sprite-position/@description": "ZmieÅ„ domyÅ›lnÄ… pozycjÄ™ x i y dla nowych duszków.", + "initialise-sprite-position/@name": "Dowolna pozycja nowych duszków", + "initialise-sprite-position/@settings-name-duplicate": "Zachowanie podczas duplikowania duszków", + "initialise-sprite-position/@settings-name-library": "Losuj pozycjÄ™ duszków w bibliotece", + "initialise-sprite-position/@settings-name-x": "pozycja X", + "initialise-sprite-position/@settings-name-y": "pozycja Y", + "initialise-sprite-position/@settings-select-duplicate-custom": "Pójdź na konkretnÄ… pozycje x/y", + "initialise-sprite-position/@settings-select-duplicate-keep": "ZostaÅ„ w tej samej pozycji co oryginalny duszek", + "initialise-sprite-position/@settings-select-duplicate-randomize": "Pójdź na losowÄ… pozycjÄ™", + "blocks2image/@description": "Kliknij prawym klawiszem w edytorze kodu, aby wyeksportować bloki jako obrazy SVG/PNG.", + "blocks2image/@name": "Zapisz bloki jako obraz", + "remove-curved-stage-border/@description": "Usuwa zaokrÄ…glone krawÄ™dzie sceny, i pozwala zobaczyć jej rogi.", + "remove-curved-stage-border/@name": "Usuwa zaokrÄ…glone krawÄ™dzie w podglÄ…dzie projektu", + "transparent-orphans/@description": "Dostosuj przezroczystość bloków w edytorze, korzystajÄ…c z osobnych opcji dla bloków odłączonych (tych bez nagłówka) i bloków przeciÄ…ganych.", + "transparent-orphans/@name": "Przezroczystość bloku", + "transparent-orphans/@settings-name-block": "Przezroczystość bloku (%)", + "transparent-orphans/@settings-name-dragged": "Przezroczystość przeciÄ…ganych bloków (%)", + "transparent-orphans/@settings-name-orphan": "Przezroczystość odłączonych bloków (%)", + "paint-by-default/@description": "Zmienia domyÅ›lnÄ… akcjÄ™ przycisków „Wybierz duszka/kostium/tÅ‚o/dźwiÄ™kâ€, które domyÅ›lnie otwierajÄ… bibliotekÄ™. ", + "paint-by-default/@name": "DomyÅ›lnie koloruj kostium", + "paint-by-default/@settings-name-backdrop": "Wybierz tÅ‚o", + "paint-by-default/@settings-name-costume": "Wybierz kostium", + "paint-by-default/@settings-name-sound": "Wybierz dźwiÄ™k", + "paint-by-default/@settings-name-sprite": "Wybierz duszka", + "paint-by-default/@settings-select-backdrop-library": "Biblioteka", + "paint-by-default/@settings-select-backdrop-paint": "Maluj", + "paint-by-default/@settings-select-backdrop-surprise": "Niespodzianka", + "paint-by-default/@settings-select-backdrop-upload": "PrzeÅ›lij", + "paint-by-default/@settings-select-costume-library": "Biblioteka", + "paint-by-default/@settings-select-costume-paint": "Maluj", + "paint-by-default/@settings-select-costume-surprise": "Niespodzianka", + "paint-by-default/@settings-select-costume-upload": "PrzeÅ›lij", + "paint-by-default/@settings-select-sound-library": "Biblioteka", + "paint-by-default/@settings-select-sound-record": "Nagraj", + "paint-by-default/@settings-select-sound-surprise": "Niespodzianka", + "paint-by-default/@settings-select-sound-upload": "PrzeÅ›lij", + "paint-by-default/@settings-select-sprite-library": "Biblioteka", + "paint-by-default/@settings-select-sprite-paint": "Maluj", + "paint-by-default/@settings-select-sprite-surprise": "Niespodzianka", + "paint-by-default/@settings-select-sprite-upload": "Wczytaj duszka", + "block-cherry-picking/@description": "Daje możliwość do wyciÄ…gniÄ™cia jednego bloku z Å›rodku kodu (zamiast wyciÄ…gania wszystkich poniżej). Aby to zrobić należy kliknąć trzymajÄ…c klawisz Ctr.", + "block-cherry-picking/@info-flipControls": "JeÅ›li ustawienie \"odwróć dziaÅ‚anie\" jest włączone, to chwytanie bloków pojedynczo bÄ™dzie zachowaniem domyÅ›lnym. Przytrzymaj Ctrl, aby przeciÄ…gnąć caÅ‚y stos. ", + "block-cherry-picking/@info-macContextDisabled": "W systemie macOS zamiast klawisza Ctrl, należy użyć klawisza Cmd.", + "block-cherry-picking/@name": "ZÅ‚ap pojedynczy blok klawiszem Ctrl", + "block-cherry-picking/@settings-name-invertDrag": "Odwróć dziaÅ‚anie", + "hide-new-variables/@description": "Po stworzeniu listy lub zmiennej nie pokazuj jej podglÄ…du.", + "hide-new-variables/@name": "Ukryj nowo stworzone zmienne", + "editor-extra-keys/@info-experimentalKeysWarn": "Dodaje \"eksperymentalne klawisze\" wliczajÄ…c \"znak równoÅ›ci\", \"slash\" i wiÄ™cej! Może nie dziaÅ‚ać na wszystkich systemach operacyjnych lub na innych uÅ‚ożeniach klawiatur!", + "editor-extra-keys/@info-shiftKeysWarn": "„Klawisze Shift†obejmujÄ… klawisze, które zwykle wymagajÄ… klawisza Shift i klawisza numerycznego, takie jak \"hashtag\", \"wykrzyknik\" i inne. Te klawisze dziaÅ‚ajÄ… tylko z blokiem „kiedy naciÅ›niÄ™to klawisz ()†i nie dziaÅ‚ajÄ… we wszystkich systemach operacyjnych lub innych ukÅ‚adach klawiatury. ", + "editor-extra-keys/@settings-name-experimentalKeys": "Pokaż klawisze eksperymentalne", + "hide-delete-button/@description": "Ukrywa przycisk usuwania (ikonÄ™ kosza na Å›mieci) przed duszkami, kostiumami i dźwiÄ™kami. Nadal można je usunąć za pomocÄ… prawego przycisku myszy.", + "hide-delete-button/@name": "Ukryj przycisk usuwania", + "hide-delete-button/@settings-name-costumes": "Kostiumy i tÅ‚a", + "hide-delete-button/@settings-name-sounds": "DźwiÄ™ki", + "hide-delete-button/@settings-name-sprites": "Duszki", + "no-script-bumping/@description": "Kiedy zasÅ‚onisz inny kod, to wtedy on siÄ™ nie przesunie, tylko zostanie w tej samej pozycji.", + "no-script-bumping/@name": "Wyłącz automatyczne przesuwanie nakÅ‚adajÄ…cych siÄ™ skryptów", + "disable-stage-drag-select/@description": "Blokuje możliwość przesuwania duszków na scenie w edytorze projektu, z wyjÄ…tkiem tych, które sÄ… ustawione na \"przesuwalne\". Przytrzymać Shift, aby normalnie przesuwać duszki.", + "disable-stage-drag-select/@name": "Blokada przesuwania duszków w edytorze", + "move-to-top-bottom/@info-developer-tools": "Ten dodatek byÅ‚ wczeÅ›niej częściÄ… dodatku „narzÄ™dzia developerskieâ€, ale zostaÅ‚ przeniesiony tutaj.", + "move-to-top-bottom/@name": "PrzenieÅ› kostium do góry albo do doÅ‚u", + "disable-paste-offset/@description": "Wklej skopiowane kostiumy w jej oryginalnej pozycji, zamiast delikatnie je przesuwać.", + "disable-paste-offset/@name": "Nie przesuwaj wklejonych obiektów", + "block-duplicate/@description": "Szybko zduplikuj skrypt, przeciÄ…gajÄ…c go, trzymajÄ…c klawisz Alt. Możesz także przytrzymać również klawisz Ctrl, aby zduplikować tylko pojedynczy blok zamiast caÅ‚ego stosu dołączonego pod nim.", + "block-duplicate/@info-mac": "W systemie macOS zamiast klawisza Alt należy użyć klawisza Option, a zamiast klawisza Control - klawisza Command.", + "block-duplicate/@name": "Duplikuj skrypt przyciskiem Alt", + "rename-broadcasts/@description": "Dodaje możliwość zmiany nazwy komunikatów w blokach nadawczych.", + "rename-broadcasts/@name": "ZmieÅ„ ogÅ‚oszenie", + "swap-local-global/@description": "Dodaje wiÄ™cej opcji w czasie zmieniania nazwy zmiennej lub listy. Możesz zmienić czy dana zmienna jest dla \"Wszystkich duszków\" lub \"Tylko dla tego duszka\" oraz czy jest zapisywana w chmurze.", + "swap-local-global/@name": "Przełącz zmiennÄ… miÄ™dzy ustawieniami \"Dla wszystkich duszków\" na \"Tylko dla tego duszka\"", + "editor-comment-previews/@description": "Pozwala podejrzeć zawartość komentarza najeżdżajÄ…c na połączone bloki. Możesz nawet zobaczyć komentarze, które zachodzÄ… za ekran. Dodatkowo możesz zmieÅ›cić duże komentarze w maÅ‚ej przestrzeni oraz wiÄ™cej!", + "editor-comment-previews/@name": "PodglÄ…d komentarzy", + "editor-comment-previews/@settings-name-delay": "Czas opóźnienia", + "editor-comment-previews/@settings-name-follow-mouse": "Podążaj za myszÄ…", + "editor-comment-previews/@settings-name-hover-view": "Najedź na nakÅ‚adajÄ…ce siÄ™ komentarze, aby zobaczyć ich podglÄ…d.", + "editor-comment-previews/@settings-name-hover-view-block": "Najedź na bloki, aby poznać ich definicje i komentarze.", + "editor-comment-previews/@settings-name-hover-view-procedure": "Najedź na \"moje bloki\", aby poznać ich definicje i komentarze.", + "editor-comment-previews/@settings-name-reduce-animation": "Zmniejsz ilość animacji", + "editor-comment-previews/@settings-name-reduce-transparency": "Zmniejsz przezroczystość", + "editor-comment-previews/@settings-select-delay-long": "DÅ‚ugie", + "editor-comment-previews/@settings-select-delay-none": "Brak", + "editor-comment-previews/@settings-select-delay-short": "Krótkie", + "columns/@description": "Dzieli menu kategorii bloków na dwie kolumny i przenosi je na górÄ™ palety bloków, tak jak w Scratch 2.0.", + "columns/@name": "Menu kategorii podzielone na 2 kolumny", + "number-pad/@description": "Pokazuje klawiaturÄ™ numerycznÄ… Scratcha podczas edycji pól liczbowych na wszystkich urzÄ…dzeniach, a nie tylko na urzÄ…dzeniach z ekranem dotykowym.", + "number-pad/@info-explanation": "Podczas edycji liczb w niektórych blokach, takich jak \"ustaw x na\", pojawi siÄ™ klawiatura numeryczna.", + "number-pad/@name": "Zawsze pokazuj klawiaturÄ™ numerycznÄ…", + "script-snap/@description": "Po przesuniÄ™ciu kodu, zostanie on \"przyczepiony\" do kropek tÅ‚a w edytorze.", + "script-snap/@name": "Przyczep fragmenty kodu do wirtualnej siatki", + "script-snap/@preset-name-default": "DomyÅ›lny", + "script-snap/@preset-name-half-block": "PoÅ‚owa bloku", + "script-snap/@preset-name-whole-block": "CaÅ‚y blok kodu", + "script-snap/@settings-name-grid": "Wielkość siatki (px)", + "fullscreen/@description": "Naprawia niektóre niepożądane efekty w trybie peÅ‚noekranowym. Otwiera projekt w trybie peÅ‚noekranowym przeglÄ…darki oraz ukrywa pasek z zielonÄ… flagÄ….", + "fullscreen/@info-hideToolbarNotice": "JeÅ›li zdecydujesz siÄ™ ukryć pasek narzÄ™dzi, pamiÄ™taj, że możesz użyć klawisza Esc, aby wyjść z trybu peÅ‚noekranowego do odtwarzacza projektów. ", + "fullscreen/@name": "Polepszony peÅ‚ny ekran", + "fullscreen/@settings-name-browserFullscreen": "Otwórz peÅ‚ny ekran, gdy użytkownik jest w trybie peÅ‚noekranowym przeglÄ…darki", + "fullscreen/@settings-name-hideToolbar": "Ukryj pasek narzÄ™dzi w peÅ‚nym ekranie", + "hide-stage/@description": "Dodaje przycisk obok przycisków \"zmniejsz/zwiÄ™ksz scenÄ™\", który ukrywa scenÄ™ i listÄ™ duszków,znacznie zwiÄ™kszajÄ…c obszar kodowania.", + "hide-stage/@name": "Ukryj scenÄ™ i listÄ™ duszków", + "editor-stepping/@description": "Dodaje kolorowe podkreÅ›lenie do bloków, których kod wykonuje siÄ™ w danym momencie.", + "editor-stepping/@name": "Obramowanie wykonujÄ…cych siÄ™ bloków", + "editor-stepping/@settings-name-highlight-color": "Kolor podkreÅ›lenia" +} \ No newline at end of file diff --git a/src/addons/addons-l10n-settings/pt.json b/src/addons/addons-l10n-settings/pt.json new file mode 100644 index 0000000000000000000000000000000000000000..6e852c745f0cbd6db3b32aa56537430d4f107ed9 --- /dev/null +++ b/src/addons/addons-l10n-settings/pt.json @@ -0,0 +1,281 @@ +{ + "cat-blocks/@description": "Adiciona de volta os blocos de gato no editor de primeiro de abril de 2020.", + "cat-blocks/@name": "Blocos de gato", + "cat-blocks/@settings-name-watch": "Monitorar ponteiro do mouse", + "editor-devtools/@name": "Ferramentas de desenvolvedor", + "editor-devtools/@settings-name-enableCleanUpPlus": "Melhorar opção \"Limpar Blocos\"", + "editor-devtools/@settings-name-enablePasteBlocksAtMouse": "Colar blocos na posição do mouse", + "find-bar/@name": "Barra localizar do editor", + "editor-searchable-dropdowns/@description": "Te deixa pesquisar nos dropdowns de blocos.", + "editor-searchable-dropdowns/@name": "Dropdowns buscáveis", + "data-category-tweaks-v2/@description": "Adiciona melhorias na categoria de Dados (\"Variáveis\").", + "data-category-tweaks-v2/@name": "Melhorias na categoria Dados", + "data-category-tweaks-v2/@settings-name-moveReportersDown": "Mover blocos de variáveis acima da lista de variáveis", + "data-category-tweaks-v2/@settings-name-separateListCategory": "Nova Categoria para Listas", + "data-category-tweaks-v2/@settings-name-separateLocalVariables": "Nova Categoria para Variáveis Apenas para este Ator", + "block-palette-icons/@description": "Adiciona ícones dentro dos círculos coloridos nas categorias de bloco.", + "block-palette-icons/@name": "Ãcones nas categorias da paleta de blocos", + "hide-flyout/@description": "Esconde a paleta de blocos se o mouse não estiver em cima. Clique no ícone do cadeado para trancá-la temporariamente. Você também pode usar o modo \"ao clicar em uma categoria\".", + "hide-flyout/@info-hoverExplanation": "O modo \"Passar o mouse na área da paleta\" só aumenta a área visível. Se você quer poder arrastar blocos até aquela área sem jogar eles fora, use outro modo.", + "hide-flyout/@name": "Auto-esconder paleta de blocos", + "hide-flyout/@settings-name-toggle": "Alternar ao...", + "hide-flyout/@settings-select-speed-default": "Padrão", + "hide-flyout/@settings-select-toggle-category": "Clicar em uma categoria", + "hide-flyout/@settings-select-toggle-cathover": "Passar o mouse em uma categoria", + "hide-flyout/@settings-select-toggle-hover": "Passar o mouse na área da paleta", + "hide-flyout/@update": "Este addon foi revisado e diversos bugs foram corrigidos.", + "mediarecorder/@description": "Adiciona um botão \"começar a gravar\" à barra superior do editor que te deixa gravar o palco do projeto.", + "mediarecorder/@name": "Gravador de vídeo do projeto", + "drag-drop/@description": "Te deixa arrastar imagens e sons do seu computador até a lista de atores, fantasias ou sons. Você também pode arrastar arquivos de texto até listas ou a entrada de resposta do bloco \"pergunte e espere\".", + "drag-drop/@name": "Arrastar arquivos", + "drag-drop/@settings-name-use-hd-upload": "Carregar imagens em HD", + "debugger/@name": "Depurador", + "debugger/@settings-name-log_broadcasts": "Registrar transmissões de mensagens", + "debugger/@settings-name-log_clear_greenflag": "Excluir registros ao clicar na bandeira verde", + "debugger/@settings-name-log_clone_create": "Registrar criações de clone", + "debugger/@settings-name-log_failed_clone_creation": "Registrar quando o valor máximo de clones for atingido", + "debugger/@settings-name-log_greenflag": "Registrar quando a bandeira verde for clicada", + "debugger/@update": "Novas abas \"Linhas de execução\" e \"Performance\" na janela de debug.", + "pause/@description": "Adiciona um botão de pausa do lado da bandeira verde.", + "pause/@name": "Botão de pausa", + "mute-project/@description": "Ctrl+Clique na bandeira verde para mutar/desmutar o projeto.", + "mute-project/@info-macOS": "No macOS, use a tecla Cmd ao invés de Ctrl.", + "mute-project/@name": "Modo projeto mutado", + "vol-slider/@name": "Slider de volume do projeto", + "vol-slider/@settings-name-defVol": "Volume padrão", + "clones/@description": "Adiciona um contador acima do palco no editor que mostra o número total de clones.", + "clones/@name": "Contador de clones", + "clones/@settings-name-showicononly": "Mostrar apenas o ícone", + "mouse-pos/@description": "Mostra a posição do mouse próxima à bandeira acima do palco no editor.", + "mouse-pos/@name": "Posição do mouse", + "color-picker/@description": "Adiciona entradas para código hex à paleta de cores.", + "color-picker/@name": "Seletor de cor hex", + "remove-sprite-confirm/@description": "Pede confirmação antes de deletar um ator dentro de um projeto.", + "remove-sprite-confirm/@name": "Confirmação ao deletar ator", + "block-count/@description": "Mostra o número total de blocos em um projeto na barra de menu do editor. Anteriormente fazia parte do addon \"contador de atores e scripts\".", + "block-count/@name": "Número de blocos", + "onion-skinning/@description": "Mostra uma cópia transparente das fantasias anteriores e posteriores ao editar uma fantasia. Controlado por botões em baixo do editor de fantasia ao lado dos botões de zoom.", + "onion-skinning/@settings-name-afterTint": "Cor da próxima fantasia", + "onion-skinning/@settings-name-beforeTint": "Cor da fantasia anterior", + "onion-skinning/@settings-name-default": "Ligar por padrão", + "onion-skinning/@settings-name-layering": "Camada padrão", + "onion-skinning/@settings-name-mode": "Modo padrão", + "onion-skinning/@settings-name-next": "Número padrão de próximas fantasias", + "onion-skinning/@settings-name-opacity": "Opacidade (%)", + "onion-skinning/@settings-name-opacityStep": "Aumento de Opacidade (%)", + "onion-skinning/@settings-name-previous": "Número padrão de fantasias anteriores", + "onion-skinning/@settings-select-layering-behind": "Atrás", + "onion-skinning/@settings-select-layering-front": "Na frente", + "onion-skinning/@settings-select-mode-merge": "Transparente", + "onion-skinning/@settings-select-mode-tint": "Colorido", + "default-costume-editor-color/@description": "Muda o padrão das cores e do tamanho da borda usado pelo editor de fantasias.", + "default-costume-editor-color/@name": "Customizar padrões de cor do editor de fantasias", + "default-costume-editor-color/@settings-name-fill": "Cor de preenchimento padrão", + "default-costume-editor-color/@settings-name-stroke": "Cor da borda padrão", + "default-costume-editor-color/@settings-name-strokeSize": "Tamanho da borda padrão", + "bitmap-copy/@description": "Te deixa copiar uma imagem bitmap do editor de fantasia e colar em outros sites ou programas.", + "bitmap-copy/@info-norightclick": "\"Botão direito → copiar\" não funciona. Você precisa apertar Ctrl+C enquanto tiver uma imagem bitmap selecionada.", + "bitmap-copy/@name": "Copiar imagens bitmap", + "2d-color-picker/@description": "Troca os sliders de saturação e brilho por um seletor de cor 2D. Segure Shift enquanto arrasta o cursor para mudar valores em apenas uma direção.", + "2d-color-picker/@name": "Paleta de cores 2D", + "better-img-uploads/@description": "Adiciona um novo botão em cima do botão \"Carregar Fantasia\" que automaticamente converte um arquivo de imagem bitmap para imagens SVG (vetoriais) para não perder qualidade.", + "better-img-uploads/@info-notSuitableEdit": "Não use o botão de upload HD se você quer poder editar a imagem depois de carregá-la.", + "better-img-uploads/@name": "Upload de imagens HD", + "better-img-uploads/@settings-name-fitting": "Tamanho da imagem", + "better-img-uploads/@settings-select-fitting-fill": "Esticar para preencher o palco", + "better-img-uploads/@settings-select-fitting-fit": "Diminuir para caber no palco", + "better-img-uploads/@settings-select-fitting-full": "Tamanho original", + "custom-block-shape/@description": "Ajuste o tamanho, raio de canto e altura do encaixe dos blocos do Scratch.", + "custom-block-shape/@info-paddingWarning": "Só você pode ver o tamanho customizado que você escolheu pros blocos, então quando outras pessoas verem os seus projetos, os scripts podem ficar amontoados.", + "custom-block-shape/@name": "Formato de bloco customizável", + "custom-block-shape/@preset-description-default2": "Uma aparência parecida com os blocos do Scratch 2.0", + "custom-block-shape/@preset-description-default3": "A aparência normal dos blocos do Scratch 3.0", + "custom-block-shape/@preset-description-flat2": "Blocos do Scratch 2.0 mas com encaixes e cantos removidos", + "custom-block-shape/@preset-description-flat3": "Blocos do Scratch 3.0 mas com encaixes e cantos removidos", + "custom-block-shape/@preset-name-default2": "Blocos 2.0", + "custom-block-shape/@preset-name-default3": "Blocos 3.0", + "custom-block-shape/@preset-name-flat2": "2.0 Liso", + "custom-block-shape/@preset-name-flat3": "3.0 Liso", + "custom-block-shape/@settings-name-cornerSize": "Raio de canto (0-300%)", + "custom-block-shape/@settings-name-notchSize": "Altura do encaixe (0-150%)", + "custom-block-shape/@settings-name-paddingSize": "Tamanho do bloco (50-200%)", + "zebra-striping/@settings-name-intensity": "Intensidade (0-100%)", + "zebra-striping/@settings-name-shade": "Sombrear", + "zebra-striping/@settings-select-shade-darker": "Escurecer", + "zebra-striping/@settings-select-shade-lighter": "Clarear", + "editor-theme3/@description": "Edite as cores dos blocos de cada categoria no editor.", + "editor-theme3/@name": "Cores de bloco customizadas", + "editor-theme3/@preset-description-black": "Deixa os blocos pretos", + "editor-theme3/@preset-description-dark": "Versões escuras das cores padrão", + "editor-theme3/@preset-description-original": "As cores de blocos originais do Scratch 2.0", + "editor-theme3/@preset-description-tweaks": "Cores inspiradas no 2.0 nos blocos de Evento, Controle e Customizados.", + "editor-theme3/@preset-name-black": "Preto", + "editor-theme3/@preset-name-dark": "Escuro", + "editor-theme3/@preset-name-original": "Cores do 2.0", + "editor-theme3/@preset-name-tweaks": "Ajustes ao 3.0", + "editor-theme3/@settings-name-Pen-color": "extensões", + "editor-theme3/@settings-name-comment-color": "Comentários", + "editor-theme3/@settings-name-control-color": "controle", + "editor-theme3/@settings-name-custom-color": "meus blocos", + "editor-theme3/@settings-name-data-color": "variáveis", + "editor-theme3/@settings-name-data-lists-color": "listas", + "editor-theme3/@settings-name-events-color": "eventos", + "editor-theme3/@settings-name-input-color": "Entradas de texto nos blocos", + "editor-theme3/@settings-name-looks-color": "aparência", + "editor-theme3/@settings-name-motion-color": "movimento", + "editor-theme3/@settings-name-operators-color": "operadores", + "editor-theme3/@settings-name-sensing-color": "sensores", + "editor-theme3/@settings-name-sounds-color": "som", + "editor-theme3/@settings-name-text": "Cor do texto", + "editor-theme3/@settings-select-text-black": "Preto", + "editor-theme3/@settings-select-text-colorOnBlack": "Colorido no fundo preto", + "editor-theme3/@settings-select-text-colorOnWhite": "Colorido no fundo branco", + "editor-theme3/@settings-select-text-white": "Branco", + "custom-block-text/@description": "Muda a grossura do texto nos blocos e pode também adicionar uma sombra ao texto.", + "custom-block-text/@name": "Mudar estilo de texto dos blocos", + "custom-block-text/@settings-name-bold": "Texto em negrito", + "custom-block-text/@settings-name-shadow": "Sombra no texto", + "editor-colored-context-menus/@description": "Põe cor no menu que aparece ao clicar em um bloco com o botão direito.", + "editor-colored-context-menus/@name": "Menus de contexto coloridos", + "editor-stage-left/@description": "Move o palco para o lado esquerdo do editor, como no Scratch 2.0.", + "editor-stage-left/@name": "Mostrar palco do lado esquerdo", + "editor-buttons-reverse-order/@description": "Moverá a bandeira verde e o botão de pare para direita e no modo tela cheia os moverá para a direita, como no Scratch 2.0.", + "editor-buttons-reverse-order/@name": "Reverter ordem dos botões de controle de projeto", + "variable-manager/@description": "Adiciona uma aba do lado de \"Sons\" no editor para facilmente editar variáveis e listas.", + "variable-manager/@name": "Administrador de variáveis", + "search-sprites/@description": "Adiciona uma barra de busca ao painel de atores para pesquisar por atores pelo nome.", + "search-sprites/@name": "Buscar atores pelo nome", + "gamepad/@description": "Interaja com projetos usando um controle USB ou Bluetooth", + "gamepad/@name": "Suporte para controle", + "gamepad/@settings-name-hide": "Esconder botão de configuração quando não houver controle detectado", + "editor-sounds/@description": "Toca sons quando você conecta ou deleta blocos.", + "editor-sounds/@name": "Sons no editor", + "folders/@description": "Adiciona pastas para o painel de atores, assim como os paineis de fantasia e de sons. Para criar uma pasta. Clique com o botão direito em qualquer ator e clique em \"Criar pasta\". Clique em uma pasta para abri-la ou fechá-la. Clique um ator com o botão direito para ver quais pastas você pode movê-lo, ou arraste e solte o ator dentro de uma pasta aberta. Esse recurso funciona adicionando \"[nomeDaPasta]//\" no começo do nome dos seus atores.", + "folders/@info-notice-folders-are-public": "Usuários com essa função ligada poderão ver as pastas no seu projeto. O resto verá a lista de atores normalmente (sem pastas).", + "folders/@name": "Pastas de atores", + "block-switching/@description": "Clique com o botão direito em um bloco para trocá-lo por um bloco relacionado.", + "block-switching/@name": "Trocar blocos", + "block-switching/@settings-name-control": "Blocos de controle", + "block-switching/@settings-name-customargs": "Argumentos do bloco customizado", + "block-switching/@settings-name-customargsmode": "Opções de argumentos do bloco customizado à mostra", + "block-switching/@settings-name-data": "Blocos de variáveis e listas", + "block-switching/@settings-name-event": "Blocos de evento", + "block-switching/@settings-name-extension": "Blocos de extensões", + "block-switching/@settings-name-looks": "Blocos de aparência", + "block-switching/@settings-name-motion": "Blocos de movimento", + "block-switching/@settings-name-noop": "Mostrar opção de trocar um bloco para ele mesmo", + "block-switching/@settings-name-operator": "Blocos operadores", + "block-switching/@settings-name-sensing": "Blocos sensores", + "block-switching/@settings-name-sound": "Blocos de som", + "block-switching/@settings-select-customargsmode-all": "Argumentos em todos os blocos customizados neste ator", + "block-switching/@settings-select-customargsmode-defOnly": "Argumentos neste bloco customizado", + "load-extensions/@description": "Adiciona as extensões de música, caneta, e outras automaticamente à lista de categorias de blocos.", + "load-extensions/@name": "Automaticamente adicionar extensões", + "load-extensions/@settings-name-music": "Música", + "load-extensions/@settings-name-pen": "Caneta", + "load-extensions/@settings-name-text2speech": "Texto para Fala", + "load-extensions/@settings-name-translate": "Traduzir", + "custom-zoom/@description": "Mude o zoom mínimo, máximo, inicial, e sua velocidade no editor de código, e deixe os controles esconderem sozinhos.", + "custom-zoom/@name": "Configurações de zoom na área de script", + "custom-zoom/@settings-name-autohide": "Auto-esconder Controles de Zoom", + "custom-zoom/@settings-name-maxZoom": "Zoom Máximo (100-500%)", + "custom-zoom/@settings-name-minZoom": "Zoom Mínimo (1-100%)", + "custom-zoom/@settings-name-startZoom": "Zoom Inicial (50-500%)", + "custom-zoom/@settings-name-zoomSpeed": "Velocidade de Zoom (50-200%)", + "custom-zoom/@settings-select-speed-default": "Padrão", + "initialise-sprite-position/@description": "Muda a posição x/y padrão de novos atores.", + "initialise-sprite-position/@name": "Posição padrão customizável para novos atores", + "initialise-sprite-position/@settings-name-duplicate": "Comportamento ao duplicar sprites", + "initialise-sprite-position/@settings-name-library": "Posição aleatória para atores da biblioteca", + "initialise-sprite-position/@settings-name-x": "Posição X", + "initialise-sprite-position/@settings-name-y": "Posição Y", + "initialise-sprite-position/@settings-select-duplicate-custom": "Enviar para valores x/y específicos", + "initialise-sprite-position/@settings-select-duplicate-keep": "Manter o mesmo como o sprite original", + "initialise-sprite-position/@settings-select-duplicate-randomize": "Randomizar", + "blocks2image/@description": "Clique com o botão direito na área de scripts para exportar blocos como imagens SVG/PNG.", + "blocks2image/@name": "Salvar blocos como imagem", + "remove-curved-stage-border/@description": "Remove a borda arredondada do palco, e assim te deixa ver os cantos.", + "remove-curved-stage-border/@name": "Remover borda arredondada do palco", + "transparent-orphans/@description": "Mude a transparência dos blocos no editor, com opções separadas para blocos órfãos (blocos que não estão conectados a um bloco de chapéu) e blocos sendo arrastados.", + "transparent-orphans/@name": "Blocos transparentes", + "transparent-orphans/@settings-name-block": "Transparência para blocos (%)", + "transparent-orphans/@settings-name-dragged": "Transparência para blocos sendo arrastados (%)", + "transparent-orphans/@settings-name-orphan": "Transparência para blocos órfãos (%)", + "paint-by-default/@description": "Muda a ação padrão dos botões \"Selecionar novo Ator/Fantasia/Fundo/Som\" que, por padrão, abrem a biblioteca do Scratch.", + "paint-by-default/@name": "Pintar nova fantasia por padrão", + "paint-by-default/@settings-name-backdrop": "Adicionar fundo", + "paint-by-default/@settings-name-costume": "Adicionar fantasia", + "paint-by-default/@settings-name-sound": "Adicionar som", + "paint-by-default/@settings-name-sprite": "Adicionar ator", + "paint-by-default/@settings-select-backdrop-library": "Biblioteca", + "paint-by-default/@settings-select-backdrop-paint": "Desenhar", + "paint-by-default/@settings-select-backdrop-surprise": "Surpresa", + "paint-by-default/@settings-select-backdrop-upload": "Carregar arquivo", + "paint-by-default/@settings-select-costume-library": "Biblioteca", + "paint-by-default/@settings-select-costume-paint": "Desenhar", + "paint-by-default/@settings-select-costume-surprise": "Surpresa", + "paint-by-default/@settings-select-costume-upload": "Carregar arquivo", + "paint-by-default/@settings-select-sound-library": "Biblioteca", + "paint-by-default/@settings-select-sound-record": "Gravar", + "paint-by-default/@settings-select-sound-surprise": "Surpresa", + "paint-by-default/@settings-select-sound-upload": "Carregar arquivo", + "paint-by-default/@settings-select-sprite-library": "Biblioteca", + "paint-by-default/@settings-select-sprite-paint": "Desenhar", + "paint-by-default/@settings-select-sprite-surprise": "Surpresa", + "paint-by-default/@settings-select-sprite-upload": "Carregar arquivo", + "block-cherry-picking/@description": "Te deixa arrastar um único bloco do meio de um script (ao invés de levar junto todos os blocos conectados a ele) ao segurar a tecla Ctrl.", + "block-cherry-picking/@info-flipControls": "Se você ativar a opção \"trocar padrão\", você irá arrastar blocos individualmente por padrão. Então, segure Ctrl para arrastar uma pilha.", + "block-cherry-picking/@info-macContextDisabled": "No macOS, use a tecla Cmd ao invés de Ctrl.", + "block-cherry-picking/@name": "Arrastar um único bloco com a tecla Ctrl", + "block-cherry-picking/@settings-name-invertDrag": "Trocar padrão", + "hide-new-variables/@description": "Não criar monitores automaticamente para novos variáveis ou listas.", + "hide-new-variables/@name": "Esconder novas variáveis", + "editor-extra-keys/@info-experimentalKeysWarn": "Entre as \"teclas experimentais\" estão o sinal de igual, barra, ponto e vírgula, entre outros. Elas podem não funcionar em todos os sistemas operacionais ou layouts de teclado.", + "editor-extra-keys/@info-shiftKeysWarn": "Entre as \"teclas Shift\" estão teclas que normalmente requerem apertar a tecla Shift e uma tecla de número, como a hashtag, ponto de exclamação, entre outros. Essas teclas só funcionam no bloco \"quando a tecla () for apertada\" e não funcionam em todos os sistemas operacionais ou layouts de teclado.", + "hide-delete-button/@description": "Esconde o botão de deletar (ícone da lata de lixo) de atores, fantasias e sons. Eles ainda podem ser deletados clicando com o botão direito do mouse.", + "hide-delete-button/@name": "Esconder botão de deletar", + "hide-delete-button/@settings-name-costumes": "Fantasias e fundos", + "hide-delete-button/@settings-name-sounds": "Sons", + "hide-delete-button/@settings-name-sprites": "Atores", + "no-script-bumping/@description": "Permite que você mova e modifique scripts sem que eles movam ao serem sobrepostos por outro script.", + "no-script-bumping/@name": "Não mover scripts sobrepostos automaticamente", + "disable-stage-drag-select/@description": "Remove a habilidade de arrastar atores no palco no Editor, exceto aqueles que explicitamente estão definidos como arrastável. Segure Shift enquanto arrasta um personagem pra movê-lo normalmente.", + "disable-stage-drag-select/@name": "Atores não arrastáveis no editor", + "move-to-top-bottom/@name": "Mover fantasia ao topo ou ao fundo da lista", + "disable-paste-offset/@description": "Cola itens copiados em sua posição original ao invés de movê-los no editor de fantasia.", + "disable-paste-offset/@name": "Não mover itens colados", + "block-duplicate/@description": "Duplique um script rapidamente arrastando-o enquanto segura a tecla Alt. Segure Ctrl junto para duplicar só um único bloco ao invés da pilha inteira conectada.", + "block-duplicate/@info-mac": "No macOS, use a tecla Option ao invés de Alt e Command ao invés de Ctrl.", + "block-duplicate/@name": "Duplicar script segurando Alt", + "swap-local-global/@description": "Adiciona mais opções ao renomear uma variável ou lista existente: permite trocar entre a opção \"Para todos os atores\" e \"Apenas para este ator\" e trocar se as variáveis são guardadas na nuvem ou não. Também adiciona uma nova opção ao clicar com o botão direito em uma variável/lista para rapidamente trocar seu acesso.", + "swap-local-global/@name": "Trocar variáveis entre \"Para todos os atores\" e \"Apenas para este ator\"", + "editor-comment-previews/@description": "Te deixa ver o texto de comentários ao passar o mouse em cima de comentários fechados e blocos. Você pode usar isso para ver comentários fora da tela, identificar um loop pela ponta inferior através de sua pré-visualização, encaixar vários comentários em um espaço pequeno, e mais.", + "editor-comment-previews/@name": "Pré-visualização de comentários no editor", + "editor-comment-previews/@settings-name-delay": "Tempo de espera", + "editor-comment-previews/@settings-name-follow-mouse": "Seguir o mouse", + "editor-comment-previews/@settings-name-hover-view": "Pré-visualizar ao passar o mouse em comentários fechados", + "editor-comment-previews/@settings-name-hover-view-block": "Pré-visualizar ao passar o mouse em blocos com comentários ligados a eles", + "editor-comment-previews/@settings-name-hover-view-procedure": "Pré-visualizar o comentário ligado à definição ao passar o mouse em blocos customizados", + "editor-comment-previews/@settings-name-reduce-animation": "Reduzir animação", + "editor-comment-previews/@settings-name-reduce-transparency": "Reduzir transparência", + "editor-comment-previews/@settings-select-delay-long": "Longo", + "editor-comment-previews/@settings-select-delay-none": "Nenhum", + "editor-comment-previews/@settings-select-delay-short": "Curto", + "columns/@description": "Divide o menu de categorias em duas colunas e o move para o topo da paleta de blocos, assim como no Scratch 2.0.", + "columns/@name": "Menu de categoria de duas colunas", + "script-snap/@description": "Arraste um script para automaticamente alinhas sua posição à grade de pontos.", + "script-snap/@name": "Alinhar scripts à grade", + "script-snap/@preset-name-default": "Padrão", + "script-snap/@preset-name-half-block": "Meio bloco", + "script-snap/@preset-name-whole-block": "Bloco inteiro", + "script-snap/@settings-name-grid": "Tamanho da grade (px)", + "fullscreen/@description": "Conserta alguns efeitos indesejados no modo tela cheia do player de projeto, ativa o modo tela cheia do seu navegador, e esconde a barra superior, onde tem a bandeira verde.", + "fullscreen/@info-hideToolbarNotice": "Se escolher esconder a barra superior, lembre-se que você pode apertar a tecla Esc para sair do modo tela cheia do projeto.", + "fullscreen/@name": "Tela cheia melhorada", + "fullscreen/@settings-name-browserFullscreen": "Abrir projeto em tela cheia com o navegador em tela cheia", + "fullscreen/@settings-name-hideToolbar": "Esconder barra superior na tela cheia", + "hide-stage/@name": "Esconder painel do palco e sprite", + "editor-stepping/@description": "Adiciona uma borda colorida aos blocos que estão rodando em um projeto.", + "editor-stepping/@name": "Destacar blocos em execução", + "editor-stepping/@settings-name-highlight-color": "Cor de destaque" +} \ No newline at end of file diff --git a/src/addons/addons-l10n-settings/ro.json b/src/addons/addons-l10n-settings/ro.json new file mode 100644 index 0000000000000000000000000000000000000000..f99f7d5d4eda1554b3776df2c9764038478439e8 --- /dev/null +++ b/src/addons/addons-l10n-settings/ro.json @@ -0,0 +1,142 @@ +{ + "cat-blocks/@description": "Aduce înapoi în editor blocurile pălărie pisică din Ziua Farselor din 2020.", + "cat-blocks/@name": "Blocuri Pisică", + "editor-devtools/@name": "Instrumente pentru dezvoltatori", + "editor-searchable-dropdowns/@name": "Căutare în listele de opÈ›iuni", + "data-category-tweaks-v2/@name": "ÃŽmbunătățiri pentru categoriile de date", + "data-category-tweaks-v2/@settings-name-moveReportersDown": "Mută blocurile de date deasupra listei de variabile", + "data-category-tweaks-v2/@settings-name-separateListCategory": "Separă variabilele de liste", + "data-category-tweaks-v2/@settings-name-separateLocalVariables": "Separă Variabilele Doar Pentru acest Personaj", + "block-palette-icons/@name": "Pictograme ale categoriilor din paleta de blocuri", + "hide-flyout/@description": "Ascunde paleta de blocuri dacă nu se È›ine mouse-ul deasupra ei. Apasă pe pictograma blochează pentru a o È›ine la locul ei temporar. Altfel, foloseÈ™te modul „clic pe categorieâ€.", + "hide-flyout/@info-hoverExplanation": "Modul „Pune cursorul deasupra zonei paletei†doar extinde zona vizuală. Dacă vrei să poÈ›i trage blocuri în acea zonă fără ca acestea să fie È™terse, foloseÈ™te unul dintre celelalte moduri.", + "hide-flyout/@settings-name-toggle": "PorneÈ™te...", + "hide-flyout/@settings-select-speed-default": "Implicit", + "hide-flyout/@settings-select-toggle-category": "Clic pe categorie", + "hide-flyout/@settings-select-toggle-cathover": "Pune cursorul deasupra categoriei", + "hide-flyout/@settings-select-toggle-hover": "Pune cursorul deasupra zonei paletei", + "drag-drop/@name": "Trage È™i dă drumul fiÈ™ierelor", + "pause/@description": "Adaugă un buton de pauză lângă steagul verde.", + "pause/@name": "Buton de Pauză", + "mute-project/@description": "Ctrl+Apasă pe steag pentru a activa/dezactiva sunetul proiectului.", + "clones/@name": "Contor de clone", + "mouse-pos/@name": "PoziÈ›ia cursorului", + "color-picker/@description": "Adaugă introducerea de culori hex în selectoarele de culoare.", + "color-picker/@name": "Selector de culoare hex", + "remove-sprite-confirm/@description": "Te întreabă dacă eÈ™ti sigur când È™tergi un personaj în interiorul unui proiect.", + "block-count/@name": "Număr de blocuri", + "onion-skinning/@name": "Modul Costume suprapuse - Onion skinning", + "onion-skinning/@settings-name-afterTint": "Culoarea costumelor următoare", + "onion-skinning/@settings-name-beforeTint": "Culoarea costumelor anterioare", + "onion-skinning/@settings-name-default": "Activează în mod implicit", + "onion-skinning/@settings-name-layering": "Stratificare implicită", + "onion-skinning/@settings-name-mode": "Mod implicit", + "onion-skinning/@settings-name-next": "Număr implicit de costume următoare", + "onion-skinning/@settings-name-opacity": "Opacitate (%)", + "onion-skinning/@settings-name-opacityStep": "CreÈ™terea Opacității (%)", + "onion-skinning/@settings-name-previous": "Număr implicit de costume anterioare", + "onion-skinning/@settings-select-layering-behind": "ÃŽn spate", + "onion-skinning/@settings-select-layering-front": "Deasupra", + "onion-skinning/@settings-select-mode-merge": "Combină imaginile", + "onion-skinning/@settings-select-mode-tint": "NuanÈ›a Culorilor", + "bitmap-copy/@info-norightclick": "„Click dreapta → copiază†nu este suportat. Trebuie să apăsaÈ›i Ctrl+C cât timp o imagine bitmap este selectată.", + "bitmap-copy/@name": "Copiere imagini bitmap", + "2d-color-picker/@name": "Paletă de culoare 2D", + "custom-block-shape/@preset-name-default2": "Blocuri 2.0", + "custom-block-shape/@preset-name-default3": "Blocuri 3.0", + "custom-block-shape/@preset-name-flat2": "2.0 Plat", + "custom-block-shape/@preset-name-flat3": "3.0 Plat", + "custom-block-shape/@settings-name-cornerSize": "Mărimea colÈ›ului (0-300%)", + "editor-theme3/@description": "Editează culoarea blocurilor pentru fiecare categorie în editor.", + "editor-theme3/@name": "Culori personalizate ale blocurilor", + "editor-theme3/@preset-description-black": "Face fundalul blocurilor negru", + "editor-theme3/@preset-description-dark": "Versiuni întunecate ale culorilor implicite", + "editor-theme3/@preset-description-original": "Culorile originale ale blocurilor din Scratch 2.0", + "editor-theme3/@preset-description-tweaks": "Culorile Blocurilor Personalizate, de Evenimente È™i de Control inspirate din Scratch 2.0", + "editor-theme3/@preset-name-black": "Negru", + "editor-theme3/@preset-name-dark": "ÃŽntunecat", + "editor-theme3/@preset-name-original": "Culori 2.0", + "editor-theme3/@preset-name-tweaks": "Modificări 3.0", + "editor-theme3/@settings-name-Pen-color": "extensii", + "editor-theme3/@settings-name-custom-color": "blocuri personalizate", + "editor-theme3/@settings-name-data-color": "variabile", + "editor-theme3/@settings-name-data-lists-color": "liste", + "editor-theme3/@settings-name-events-color": "evenimente", + "editor-theme3/@settings-name-input-color": "Intrări de text din blocuri", + "editor-theme3/@settings-name-looks-color": "aspect", + "editor-theme3/@settings-name-motion-color": "miÈ™care", + "editor-theme3/@settings-name-operators-color": "operatori", + "editor-theme3/@settings-name-sensing-color": "detectare", + "editor-theme3/@settings-name-sounds-color": "sunete", + "editor-theme3/@settings-name-text": "Culoarea textului", + "editor-theme3/@settings-select-text-black": "Negru", + "editor-theme3/@settings-select-text-colorOnBlack": "Colorat pe fundal negru", + "editor-theme3/@settings-select-text-colorOnWhite": "Colorat pe fundal alb", + "editor-theme3/@settings-select-text-white": "Alb", + "custom-block-text/@settings-name-bold": "Text îngroÈ™at (bold)", + "custom-block-text/@settings-name-shadow": "Umbră sub text", + "editor-colored-context-menus/@description": "Face meniurile de context colorate când se dă clic-dreapta pe un bloc.", + "editor-colored-context-menus/@name": "Meniuri de context colorate", + "editor-stage-left/@name": "AfiÈ™ează scena pe partea stângă", + "variable-manager/@description": "Adaugă o filă lângă „sunete†în editor pentru pentru a actualiza uÈ™or variabile È™i liste.", + "variable-manager/@name": "Administrator de Variabile", + "search-sprites/@description": "Adaugă o cutie de căutare la panoul personajelor pentru a căuta personaje după nume.", + "search-sprites/@name": "Caută personaje după nume", + "gamepad/@name": "Suport gamepad", + "editor-sounds/@description": "Redă efecte sonore la conectarea È™i la È™tergerea blocurilor.", + "editor-sounds/@name": "Efecte sonore în editor", + "folders/@info-notice-folders-are-public": "Utilizatorii cu această funcÈ›ie activată vor putea să vadă dosarele din proiectul tău. Oricine altcineva va vedea lista personajelor normal (fără dosare).", + "folders/@name": "Dosare de Personaje", + "block-switching/@description": "DaÈ›i click-dreapta pe un bloc pentru a-l schimba într-unul cu un conÈ›inut asemânător.", + "block-switching/@name": "Schimbarea blocurilor", + "block-switching/@settings-name-control": "Blocuri Control", + "block-switching/@settings-name-data": "Blocuri de Liste È™i Variabile", + "block-switching/@settings-name-event": "Evenimente", + "block-switching/@settings-name-extension": "Blocuri de Extensii", + "block-switching/@settings-name-looks": "Blocuri Aspect", + "block-switching/@settings-name-motion": "Blocuri MiÈ™care", + "block-switching/@settings-name-noop": "AfiÈ™aÈ›i opÈ›iunea pentru a schimba blocul în el înÈ™ine", + "block-switching/@settings-name-operator": "Operatori", + "block-switching/@settings-name-sensing": "Blocuri Detectare", + "block-switching/@settings-name-sound": "Blocuri de Sunet", + "load-extensions/@settings-name-music": "Muzică", + "load-extensions/@settings-name-pen": "Stilou", + "load-extensions/@settings-name-text2speech": "Text în Vorbire", + "load-extensions/@settings-name-translate": "Traducere", + "custom-zoom/@settings-select-speed-default": "Implicit", + "blocks2image/@name": "Salvează blocurile ca imagine", + "remove-curved-stage-border/@name": "Elimină marginea scenei curbată", + "paint-by-default/@name": "Pictează costumele în mod prestabilit", + "paint-by-default/@settings-name-backdrop": "Adaugă fundal", + "paint-by-default/@settings-name-costume": "Adaugă costum", + "paint-by-default/@settings-name-sound": "Adaugă sunet", + "paint-by-default/@settings-name-sprite": "Adaugă personaj", + "paint-by-default/@settings-select-backdrop-library": "Librărie", + "paint-by-default/@settings-select-backdrop-paint": "Pictează", + "paint-by-default/@settings-select-backdrop-surprise": "Surpriză", + "paint-by-default/@settings-select-backdrop-upload": "ÃŽncarcă", + "paint-by-default/@settings-select-costume-library": "Librărie", + "paint-by-default/@settings-select-costume-paint": "Pictează", + "paint-by-default/@settings-select-costume-surprise": "Surpriză", + "paint-by-default/@settings-select-costume-upload": "ÃŽncarcă", + "paint-by-default/@settings-select-sound-library": "Librărie", + "paint-by-default/@settings-select-sound-record": "ÃŽnregistrează", + "paint-by-default/@settings-select-sound-surprise": "Surpriză", + "paint-by-default/@settings-select-sound-upload": "ÃŽncarcă", + "paint-by-default/@settings-select-sprite-library": "Librărie", + "paint-by-default/@settings-select-sprite-paint": "Pictează", + "paint-by-default/@settings-select-sprite-surprise": "Surpriză", + "paint-by-default/@settings-select-sprite-upload": "ÃŽncarcă", + "hide-delete-button/@name": "Ascunde butonul de È™tergere", + "hide-delete-button/@settings-name-costumes": "Costume È™i decoruri", + "hide-delete-button/@settings-name-sounds": "Sunete", + "hide-delete-button/@settings-name-sprites": "Personaje", + "editor-comment-previews/@settings-name-follow-mouse": "UrmăreÈ™te mouse-ul", + "editor-comment-previews/@settings-select-delay-long": "Lungă", + "editor-comment-previews/@settings-select-delay-none": "Niciuna", + "editor-comment-previews/@settings-select-delay-short": "Scurtă", + "script-snap/@preset-name-default": "Prestabilit", + "script-snap/@preset-name-half-block": "Jumătate de bloc", + "script-snap/@preset-name-whole-block": "ÃŽntregul-bloc", + "editor-stepping/@name": "Scoate în evidență blocurile care rulează" +} \ No newline at end of file diff --git a/src/addons/addons-l10n-settings/ru.json b/src/addons/addons-l10n-settings/ru.json new file mode 100644 index 0000000000000000000000000000000000000000..5b27c30c3bbd57027676f1c4b128bb57f6845d80 --- /dev/null +++ b/src/addons/addons-l10n-settings/ru.json @@ -0,0 +1,346 @@ +{ + "cat-blocks/@description": "Возвращает обратно в редактор котоблоки Ñ Ð¿ÐµÑ€Ð²Ð¾Ð³Ð¾ Ð°Ð¿Ñ€ÐµÐ»Ñ 2020.", + "cat-blocks/@info-watch": "Когда открыт редактор, параметр \"Следить за указателем мыши\" может влиÑть на производительноÑть.", + "cat-blocks/@name": "Котоблоки", + "cat-blocks/@settings-name-watch": "Следить за указателем мыши", + "editor-devtools/@description": "ДобавлÑет новые опции в меню редактора: копирование/вÑтавка блоков,ÑƒÐ»ÑƒÑ‡ÑˆÐµÐ½Ð½Ð°Ñ Ð¾Ñ‡Ð¸Ñтка,и прочее!", + "editor-devtools/@name": "ИнÑтрументы разработчика", + "editor-devtools/@settings-name-enableCleanUpPlus": "Улучшение \"ОчиÑтить блоки\"", + "editor-devtools/@settings-name-enablePasteBlocksAtMouse": "Ð’ÑтавлÑть блоки под курÑором мыши", + "find-bar/@description": "ДобавлÑет Ñтроку поиÑка чтобы иÑкать Ñкрипты,коÑтюмы и звуки во вкладке звуков.ИÑпользуйте Ctrl + Ñтрелка влево и Ctrl + Ñтрелка вправо в зоне Ñ ÐºÐ¾Ð´Ð¾Ð¼,Ð´Ð»Ñ Ð¿ÐµÑ€ÐµÑ…Ð¾Ð´Ð° к ледующей и предыдущей поÑещённой позиции,поÑле иÑÐ¿Ð¾Ð»ÑŒÐ·Ð¾Ð²Ð°Ð½Ð¸Ñ Ñтроки поиÑка", + "find-bar/@info-developer-tools": "Этот аддон раньше был чаÑтью \"инÑтрументов разработчика\" ,но теперь переехал Ñюда", + "find-bar/@name": "Строка поиÑка в редакторе", + "middle-click-popup/@info-developer-tools": "Этот аддон раньше был чаÑтью \"инÑтрументов разработчика\" ,но теперь переехал Ñюда", + "middle-click-popup/@name": "Ð’ÑтавлÑть блоки по имени", + "jump-to-def/@description": "Вызывает меню Ñ Ð¿Ð¾Ð¸Ñком блоков и переменных при одновременном нажатии shift и левого клика мыши либо клика колёÑиком мыши", + "jump-to-def/@info-developer-tools": "Этот аддон раньше был чаÑтью \"инÑтрументов разработчика\" ,но теперь переехал Ñюда", + "jump-to-def/@name": "Вызывать быÑтрое меню вызова блоков", + "editor-searchable-dropdowns/@description": "ПозволÑет иÑкать в раÑкрывающемÑÑ ÑпиÑке блоков.", + "editor-searchable-dropdowns/@name": "ПоиÑк в выпадающих ÑпиÑках", + "data-category-tweaks-v2/@description": "ПредоÑтавлÑет наÑтройки Ð´Ð»Ñ ÐºÐ°Ñ‚ÐµÐ³Ð¾Ñ€Ð¸Ð¸ блоков Данных (\"Переменные\").", + "data-category-tweaks-v2/@name": "Поправки категории данных ", + "data-category-tweaks-v2/@settings-name-moveReportersDown": "ПеремеÑтить блоки данных выше ÑпиÑка переменных.", + "data-category-tweaks-v2/@settings-name-separateListCategory": "ÐžÑ‚Ð´ÐµÐ»ÑŒÐ½Ð°Ñ ÐºÐ°Ñ‚ÐµÐ³Ð¾Ñ€Ð¸Ñ ÑпиÑков.", + "data-category-tweaks-v2/@settings-name-separateLocalVariables": "Отделить переменные только Ð´Ð»Ñ Ð¾Ð´Ð½Ð¾Ð³Ð¾ Ñпрайта", + "block-palette-icons/@description": "ДобавлÑет значки внутри цветных кружков, обозначающих категории блоков.", + "block-palette-icons/@name": "Значки категорий на палитре блоков", + "hide-flyout/@description": "Скрывает палитру блоков, еÑли не наведен курÑор мыши. Ðажмите значок замкаÌ, чтобы временно заблокировать её. Как вариант, иÑпользуйте режим \"Ðажатие категории\".", + "hide-flyout/@info-hoverExplanation": "Режим \"Ðаведение на облаÑть палитры\" только раÑширÑет облаÑть проÑмотра. ЕÑли вы хотите иметь возможноÑть перетаÑкивать блоки в Ñту облаÑть без их уничтожениÑ, иÑпользуйте один из других режимов.", + "hide-flyout/@name": "ÐвтоÑкрытие палитры блоков", + "hide-flyout/@settings-name-speed": "СкороÑть анимации:", + "hide-flyout/@settings-name-toggle": "Включить...", + "hide-flyout/@settings-select-speed-default": "По умолчанию", + "hide-flyout/@settings-select-speed-long": "МедленнаÑ", + "hide-flyout/@settings-select-speed-none": "МоментальнаÑ", + "hide-flyout/@settings-select-speed-short": "БыÑтраÑ", + "hide-flyout/@settings-select-toggle-category": "Ðажатие категории", + "hide-flyout/@settings-select-toggle-cathover": "Ðаведение на категорию", + "hide-flyout/@settings-select-toggle-hover": "Ðаведение на облаÑть палитры", + "hide-flyout/@update": "Этот аддон был обновлён,и было пофикшено много багов", + "mediarecorder/@description": "ДобавлÑет кнопку \"начать запиÑÑŒ\" в меню редактора, ÐºÐ¾Ñ‚Ð¾Ñ€Ð°Ñ Ð¿Ð¾Ð·Ð²Ð¾Ð»Ñет запиÑывать Ñцену проекта.", + "mediarecorder/@name": "ЗапиÑÑŒ проекта на видео", + "drag-drop/@description": "ПозволÑет перетаÑкивать файлы Ñ ÐºÐ¾Ð¼Ð¿ÑŒÑŽÑ‚ÐµÑ€Ð° прÑмо во вкладку коÑтюмов/звуков Ñпрайта", + "drag-drop/@name": "ПеретаÑкивание файлов", + "drag-drop/@settings-name-use-hd-upload": "ИÑпользовать HD загрузку", + "debugger/@name": "Отладчик", + "debugger/@settings-name-log_broadcasts": "Логировать ÑообщениÑ", + "debugger/@settings-name-log_clear_greenflag": "ОчиÑтить логи, когда зелёный флаг нажат", + "debugger/@settings-name-log_clone_create": "Логировать ÑÐ¾Ð·Ð´Ð°Ð½Ð¸Ñ ÐºÐ»Ð¾Ð½Ð¾Ð²", + "debugger/@settings-name-log_failed_clone_creation": "Логировать, когда макÑ. кол-во клонов превышено", + "debugger/@settings-name-log_greenflag": "Логировать Ð½Ð°Ð¶Ð°Ñ‚Ð¸Ñ Ð½Ð° зелёный флажок", + "debugger/@update": "Ðовые вкладки \"Потоки\" и \"ПроизводительноÑть\" в окне отладки.", + "pause/@description": "ДобавлÑет кнопку паузы Ñ€Ñдом Ñ Ð·ÐµÐ»Ñ‘Ð½Ñ‹Ð¼ флагом.", + "pause/@name": "Кнопка паузы", + "mute-project/@description": "Клавиша Ctrl + Клик по зелёному флагу чтобы выключить/включить звук проекта.", + "mute-project/@info-macOS": "Ð’ macOS иÑпользуйте клавишу Cmd вмеÑто клавиши Ctrl.", + "mute-project/@name": "Беззвучный режим проектов", + "vol-slider/@description": "ДобавлÑет Ñлайдер громкоÑти к Ñлементам ÑƒÐ¿Ñ€Ð°Ð²Ð»ÐµÐ½Ð¸Ñ Ð¿Ñ€Ð¾ÐµÐºÑ‚Ð¾Ð¼", + "vol-slider/@name": "Слайдер громкоÑти проекта", + "vol-slider/@settings-name-defVol": "Ð¡Ñ‚Ð°Ð½Ð´Ð°Ñ€Ñ‚Ð½Ð°Ñ Ð³Ñ€Ð¾Ð¼ÐºÐ¾Ñть:", + "clones/@description": "ДобавлÑет Ñчётчик над Ñценой,который показывает ÑпиÑок клонов", + "clones/@name": "Счётчик клонов", + "clones/@settings-name-showicononly": "Показывать только иконку", + "mouse-pos/@description": "Отображает координаты курÑора мыши x/y в редакторе над Ñценой.", + "mouse-pos/@name": "ÐŸÐ¾Ð·Ð¸Ñ†Ð¸Ñ Ð¼Ñ‹ÑˆÐ¸", + "color-picker/@description": "ДобавлÑет ввод кодов hex в выбор цветов.", + "color-picker/@name": "Выбор цветов типа Hex", + "remove-sprite-confirm/@description": "Спрашивает, уверены ли вы при удалении Ñпрайта внутри проекта.", + "remove-sprite-confirm/@name": "Подтверждение ÑƒÐ´Ð°Ð»ÐµÐ½Ð¸Ñ Ñпрайтов", + "block-count/@description": "Показывает количеÑтво блоков в проекте в верхней панели редактора. Раньше было чаÑтью «Ñчётчик Ñпрайтов и Ñкриптов».", + "block-count/@name": "Счёт блоков", + "onion-skinning/@description": "Показывает полупрозрачное наÑлоение предыдущих/Ñледующих коÑтюмов в редакторе,как в программе Ð´Ð»Ñ Ð°Ð½Ð¸Ð¼Ð¸Ñ€Ð¾Ð²Ð°Ð½Ð¸Ñ.ÐаÑтройки Ñ€Ñдом Ñ ÐºÐ½Ð¾Ð¿ÐºÐ°Ð¼Ð¸ размера", + "onion-skinning/@name": "Отображение Onion", + "onion-skinning/@settings-name-afterTint": "Ð¡Ð»ÐµÐ´ÑƒÑŽÑ‰Ð°Ñ Ñ‚Ð¾Ð½Ð¸Ñ€Ð¾Ð²ÐºÐ° коÑтюма", + "onion-skinning/@settings-name-beforeTint": "Предыдущий оттенок коÑтюма", + "onion-skinning/@settings-name-default": "Включено по умолчанию", + "onion-skinning/@settings-name-layering": "Слои по умолчанию", + "onion-skinning/@settings-name-mode": "Режим по умолчанию", + "onion-skinning/@settings-name-next": "Следующие коÑтюмы по умолчанию", + "onion-skinning/@settings-name-opacity": "ÐепрозрачноÑть (%)", + "onion-skinning/@settings-name-opacityStep": "Уровень непрозрачноÑти (%)", + "onion-skinning/@settings-name-previous": "Предыдущие коÑтюмы по умолчанию", + "onion-skinning/@settings-select-layering-behind": "Сзади", + "onion-skinning/@settings-select-layering-front": "Впереди", + "onion-skinning/@settings-select-mode-merge": "Объединить изображениÑ", + "onion-skinning/@settings-select-mode-tint": "Оттенок цвета", + "paint-snap/@description": "ПривÑзывает объекты в редакторе коÑтюмов ,к различным опорам ,как в более профеÑÑиональных векторных редакторах", + "paint-snap/@name": "ПривÑзка в редакторе коÑтюмов", + "paint-snap/@settings-name-boxCenter": "ПривÑзки от центра выбора", + "paint-snap/@settings-name-boxCorners": "ПривÑзки от углов выбора", + "paint-snap/@settings-name-boxEdgeMids": "ПривÑзки от границ Ñередины выбора", + "paint-snap/@settings-name-enable-default": "Включено по умолчанию", + "paint-snap/@settings-name-guide-color": "Цвет линий привÑзки", + "paint-snap/@settings-name-objectCenters": "ПривÑзки к центру объектов", + "paint-snap/@settings-name-objectCorners": "ПривÑзки к углам объектов", + "paint-snap/@settings-name-objectEdges": "ПривÑзки к границам объектов", + "paint-snap/@settings-name-objectMidlines": "ПривÑзки к Ñредним линиÑм объектов", + "paint-snap/@settings-name-pageAxes": "ПривÑзки к оÑÑм x и y", + "paint-snap/@settings-name-pageCenter": "ПривÑзки к центру", + "paint-snap/@settings-name-pageCorners": "ПривÑзки к углам", + "paint-snap/@settings-name-pageEdges": "ПривÑзки к границам", + "paint-snap/@settings-name-threshold": "ДиÑÑ‚Ð°Ð½Ñ†Ð¸Ñ Ð¿Ñ€Ð¸Ð²Ñзки", + "default-costume-editor-color/@description": "МенÑет цвета по умолчанию и размер контура, которые иÑпользуютÑÑ Ñ€ÐµÐ´Ð°ÐºÑ‚Ð¾Ñ€Ð¾Ð¼ коÑтюмов.", + "default-costume-editor-color/@name": "ÐаÑтраиваемые заводÑкие цвета в редакторе коÑтюмов", + "default-costume-editor-color/@settings-name-fill": "Цвет заливки", + "default-costume-editor-color/@settings-name-persistence": "ИÑпользует прошлый цвет,вмеÑто перезапуÑка", + "default-costume-editor-color/@settings-name-stroke": "Цвет контура", + "default-costume-editor-color/@settings-name-strokeSize": "Размер контура", + "bitmap-copy/@description": "ПозволÑет копировать раÑтровое изображение из редактора коÑтюмов в ÑиÑтемный буфер обмена, чтобы его можно было вÑтавить на другие веб-Ñайты или в программное обеÑпечение.", + "bitmap-copy/@info-norightclick": "\"ПКМ → Копировать\" не поддерживаетÑÑ. Вам нужно нажать Ctrl+C пока раÑтровое изображение выбрано.", + "bitmap-copy/@name": "Копирование раÑтровых изображений", + "2d-color-picker/@description": "ЗаменÑет ползунки наÑыщенноÑти и ÑркоÑти в редакторе коÑтюмов двухмерной палитрой цветов. Ð£Ð´ÐµÑ€Ð¶Ð¸Ð²Ð°Ñ Ð½Ð°Ð¶Ð°Ñ‚Ð¾Ð¹ клавишу Shift, перетащите курÑор, чтобы изменить Ð·Ð½Ð°Ñ‡ÐµÐ½Ð¸Ñ Ð½Ð° одной оÑи.", + "2d-color-picker/@name": "2D-палитра цветов", + "better-img-uploads/@description": "ДобавлÑет новую кнопку над кнопкой \"загрузить коÑтюм\", ÐºÐ¾Ñ‚Ð¾Ñ€Ð°Ñ Ð°Ð²Ñ‚Ð¾Ð¼Ð°Ñ‚Ð¸Ñ‡ÐµÑки преобразует загруженные раÑтровые Ð¸Ð·Ð¾Ð±Ñ€Ð°Ð¶ÐµÐ½Ð¸Ñ Ð² Ð¸Ð·Ð¾Ð±Ñ€Ð°Ð¶ÐµÐ½Ð¸Ñ SVG (векторные), чтобы избежать потери качеÑтва.", + "better-img-uploads/@info-notSuitableEdit": "Избегайте иÑÐ¿Ð¾Ð»ÑŒÐ·Ð¾Ð²Ð°Ð½Ð¸Ñ ÐºÐ½Ð¾Ð¿ÐºÐ¸ HD загрузки, еÑли вы планируете редактировать изображение поÑле загрузки.", + "better-img-uploads/@name": "HD загрузка изображений", + "better-img-uploads/@settings-name-fitting": "Размер изображениÑ", + "better-img-uploads/@settings-select-fitting-fill": "РаÑÑ‚Ñнуть, чтобы заполнить Ñцену", + "better-img-uploads/@settings-select-fitting-fit": "Уменьшить, чтобы ÑоответÑтвовать Ñцене", + "better-img-uploads/@settings-select-fitting-full": "Оригинальный размер", + "pick-colors-from-stage/@description": "Теперь пипетка из редактора коÑтюмов будет захватывать цвета и Ñо Ñцены!", + "pick-colors-from-stage/@name": "Выбор цвета Ñцены в редакторе коÑтюмов", + "custom-block-shape/@description": "Отрегулируйте отÑтупы, Ñ€Ð°Ð´Ð¸ÑƒÑ ÑƒÐ³Ð»Ð° и выÑоту надреза блоков.", + "custom-block-shape/@info-paddingWarning": "Уменьшение размера отÑтупа видно только вам, поÑтому, когда ваши проекты проÑматриваютÑÑ Ð´Ñ€ÑƒÐ³Ð¸Ð¼Ð¸ пользователÑми, ваши Ñкрипты могут перекрыватьÑÑ.", + "custom-block-shape/@name": "ÐаÑÑ‚Ñ€Ð°Ð¸Ð²Ð°ÐµÐ¼Ð°Ñ Ñ„Ð¾Ñ€Ð¼Ð° блоков", + "custom-block-shape/@preset-description-default2": "Внешний вид, похожий на блоки Scratch 2.0", + "custom-block-shape/@preset-description-default3": "Обычный внешний вид блоков Scratch 3.0", + "custom-block-shape/@preset-description-flat2": "Блоки Scratch 2.0 Ñ ÑƒÐ´Ð°Ð»ÐµÐ½Ð½Ñ‹Ð¼Ð¸ вырезами и углами", + "custom-block-shape/@preset-description-flat3": "Блоки Scratch 3.0 Ñ ÑƒÐ´Ð°Ð»ÐµÐ½Ð½Ñ‹Ð¼Ð¸ вырезами и углами", + "custom-block-shape/@preset-name-default2": "Блоки 2.0", + "custom-block-shape/@preset-name-default3": "Блоки 3.0", + "custom-block-shape/@preset-name-flat2": "ПлоÑкие 2.0", + "custom-block-shape/@preset-name-flat3": "ПлоÑкие 3.0", + "custom-block-shape/@settings-name-cornerSize": "Размер угла (0-300%)", + "custom-block-shape/@settings-name-notchSize": "Ð’Ñ‹Ñота паза (0-150%)", + "custom-block-shape/@settings-name-paddingSize": "Размер отÑтупов (50-200%)", + "zebra-striping/@description": "Делает цвета блоков одной категории ,которые вложены в другие блоки Ñтой же категории Ñрче. Как у зебры.", + "zebra-striping/@name": "Другие цвета вложенных блоков", + "zebra-striping/@settings-name-intensity": "интенÑивноÑть (0-100%)", + "zebra-striping/@settings-name-shade": "Оттенок", + "zebra-striping/@settings-select-shade-darker": "затемнение", + "zebra-striping/@settings-select-shade-lighter": "ЯркоÑть", + "editor-theme3/@description": "Отредактируйте цвета блоков Ð´Ð»Ñ ÐºÐ°Ð¶Ð´Ð¾Ð¹ категории в редакторе.", + "editor-theme3/@name": "ÐаÑтраиваемые цвета блоков", + "editor-theme3/@preset-description-black": "Делает фоны блоков чёрными", + "editor-theme3/@preset-description-dark": "Тёмные верÑии цветов по умолчанию", + "editor-theme3/@preset-description-original": "Оригинальные цвета блоков из Scratch 2.0", + "editor-theme3/@preset-description-tweaks": "Цвета блоков Ñобытий, ÑƒÐ¿Ñ€Ð°Ð²Ð»ÐµÐ½Ð¸Ñ Ð¸ другие теперь можно Ñделать как в верÑии 2.0", + "editor-theme3/@preset-name-black": "Чёрный", + "editor-theme3/@preset-name-dark": "ТёмнаÑ", + "editor-theme3/@preset-name-original": "Цвета верÑии 2.0", + "editor-theme3/@preset-name-tweaks": "Цвета верÑии 3.0", + "editor-theme3/@settings-name-Pen-color": "раÑширениÑ", + "editor-theme3/@settings-name-comment-color": "Комментарии", + "editor-theme3/@settings-name-control-color": "управление", + "editor-theme3/@settings-name-custom-color": "Ñвои блоки", + "editor-theme3/@settings-name-data-color": "переменные", + "editor-theme3/@settings-name-data-lists-color": "ÑпиÑки", + "editor-theme3/@settings-name-events-color": "ÑобытиÑ", + "editor-theme3/@settings-name-input-color": "ÐŸÐ¾Ð»Ñ Ð²Ð²Ð¾Ð´Ð° в блоках", + "editor-theme3/@settings-name-looks-color": "внешний вид", + "editor-theme3/@settings-name-motion-color": "движение", + "editor-theme3/@settings-name-operators-color": "операторы", + "editor-theme3/@settings-name-sensing-color": "ÑенÑоры", + "editor-theme3/@settings-name-sounds-color": "звук", + "editor-theme3/@settings-name-text": "Цвет текÑта", + "editor-theme3/@settings-select-text-black": "Чёрный", + "editor-theme3/@settings-select-text-colorOnBlack": "Цветной на чёрном фоне", + "editor-theme3/@settings-select-text-colorOnWhite": "Цветной на белом фоне", + "editor-theme3/@settings-select-text-white": "Белый", + "editor-theme3/@update": "\"Тёмные комментарии\" переехали из \"Тёмной темы редактора\" Ñюда, и теперь их можно наÑтраивать", + "custom-block-text/@description": "ИзменÑет толщину текÑта на блоках и дополнительно добавлÑет тень к текÑту.", + "custom-block-text/@name": "ÐаÑтраиваемый Ñтиль текÑта блоков", + "custom-block-text/@settings-name-bold": "Жирный текÑÑ‚", + "custom-block-text/@settings-name-shadow": "Тень под текÑтом", + "editor-colored-context-menus/@description": "Делает контекÑтные меню, щёлкнутые правой кнопкой мыши по блоку более краÑочными.", + "editor-colored-context-menus/@name": "Цветные контекÑтные меню", + "editor-stage-left/@description": "Перемещает Ñцену в левую чаÑть редактора, как в Scratch 2.0.", + "editor-stage-left/@info-reverseOrder": "Чтобы изменить положение кнопок над Ñценой, иÑпользуйте аддон «поменÑть меÑтами флажок и кнопку Ñтоп».", + "editor-stage-left/@name": "Отображать Ñцену на левой Ñтороне", + "editor-buttons-reverse-order/@description": "перемеÑтить кнопки флага и оÑтановки направо,а кнопку полного Ñкрана налево,как в scratch 2.0", + "editor-buttons-reverse-order/@name": "перевернуть Ñлементы ÑƒÐ¿Ñ€Ð°Ð²Ð»ÐµÐ½Ð¸Ñ ", + "variable-manager/@description": "ДобавлÑет вкладку Ñ€Ñдом Ñ \"звуки\" в редакторе Ð´Ð»Ñ ÑƒÐ´Ð¾Ð±Ð½Ð¾Ð³Ð¾ Ð¾Ð±Ð½Ð¾Ð²Ð»ÐµÐ½Ð¸Ñ Ð¿ÐµÑ€ÐµÐ¼ÐµÐ½Ð½Ñ‹Ñ… и ÑпиÑков.", + "variable-manager/@name": "Менеджер переменных", + "variable-manager/@update": "Элементы в ÑпиÑках можно добавлÑть без зажатой клавиши shift", + "search-sprites/@description": "ДобавлÑет поле поиÑка к панели Ñпрайтов, чтобы иÑкать Ñпрайты по имени.", + "search-sprites/@name": "ПоиÑк Ñпрайтов по имени", + "sprite-properties/@description": "ПрÑчет панель Ñо ÑвойÑтвами Ñпрайта ,как Ñто было в scratch 2.0.ИÑпользуй кнопку \"i\" на выбранном Ñпрайте ,или нажми два раза на Ñпрайт ,чтобы показать панель Ñо ÑвойÑтвами. Чтобы обратно Ñкрыть панель, нажми на кнопку ÑÐºÑ€Ñ‹Ñ‚Ð¸Ñ Ð½Ð° панели ,или же, нажми на Ñпрайт два раза", + "sprite-properties/@name": "ПрÑтать панель Ñо ÑвойÑтвами Ñпрайта", + "sprite-properties/@settings-name-autoCollapse": "ÐвтоматичеÑки прÑтать ,когда будет убрана мышка", + "sprite-properties/@settings-name-hideByDefault": "СпрÑтать панель изначально", + "sprite-properties/@settings-name-transitionDuration": "СкороÑть анимации:", + "sprite-properties/@settings-select-transitionDuration-default": "СтандартнаÑ", + "sprite-properties/@settings-select-transitionDuration-long": "МедленнаÑ", + "sprite-properties/@settings-select-transitionDuration-none": "МоментальнаÑ", + "sprite-properties/@settings-select-transitionDuration-short": "БыÑтраÑ", + "gamepad/@description": "ВзаимодейÑтвовать Ñ Ð¿Ñ€Ð¾ÐµÐºÑ‚Ð°Ð¼Ð¸ иÑÐ¿Ð¾Ð»ÑŒÐ·ÑƒÑ USB или Bluetooth контроллер/геймпад.", + "gamepad/@name": "Поддержка геймпада", + "gamepad/@settings-name-hide": "СпрÑтать кнопку наÑтроек, еÑли контроллеров не обнаружено", + "editor-sounds/@description": "ВоÑпроизводит звуковые Ñффекты при Ñоединении или удалении блоков.", + "editor-sounds/@name": "Звуковые Ñффекты редактора", + "folders/@description": "ДобавлÑет папки в панель Ñпрайтов,а также коÑтюмов и звуков. Чтобы Ñделать папку, нажми по Ñпрайту/звуку/коÑтюму, нажми Ñоздать папку и назови её, чтобы добавить в папку звук/коÑтюм/Ñпрайт нажми правой кнопкой мыши и выбери добавить к папке", + "folders/@info-notice-folders-are-public": "Пользователи, у которых включена Ñта функциÑ, Ñмогут видеть папки в вашем проекте. Ð’Ñе оÑтальные будут видеть ÑпиÑки Ñпрайтов в обычном режиме (без папок).", + "folders/@name": "Папки Ñпрайтов", + "block-switching/@description": "Щёлкните правой кнопкой мыши по блоку, чтобы заменить его на ÑвÑзанный блок.", + "block-switching/@name": "Замена блоков", + "block-switching/@settings-name-control": "Блоки управлениÑ", + "block-switching/@settings-name-customargs": "Ðргументы пользовательÑких блоков", + "block-switching/@settings-name-customargsmode": "Параметры Ð¾Ñ‚Ð¾Ð±Ñ€Ð°Ð¶ÐµÐ½Ð¸Ñ Ð°Ñ€Ð³ÑƒÐ¼ÐµÐ½Ñ‚Ð¾Ð² пользовательÑких блоков", + "block-switching/@settings-name-data": "Блоки переменных", + "block-switching/@settings-name-event": "Блоки Ñобытий", + "block-switching/@settings-name-extension": "Блоки раÑширений", + "block-switching/@settings-name-looks": "Блоки внешноÑти", + "block-switching/@settings-name-motion": "Блоки движениÑ", + "block-switching/@settings-name-noop": "Показать вариант Ð¸Ð·Ð¼ÐµÐ½ÐµÐ½Ð¸Ñ Ð±Ð»Ð¾ÐºÐ° на ÑебÑ", + "block-switching/@settings-name-operator": "Блоки операторов", + "block-switching/@settings-name-sensing": "Блоки ÑенÑоров", + "block-switching/@settings-name-sound": "Блоки звуков", + "block-switching/@settings-select-customargsmode-all": "Ðргументы во вÑех пользовательÑких блоках Ñпрайта", + "block-switching/@settings-select-customargsmode-defOnly": "Ðргументы в ÑобÑтвенном пользовательÑком блоке", + "load-extensions/@description": "ÐвтоматичеÑки добавлÑет раÑÑˆÐ¸Ñ€ÐµÐ½Ð¸Ñ ÐœÑƒÐ·Ñ‹ÐºÐ°, Перо и др. в меню категорий блоков в редакторе.", + "load-extensions/@name": "ÐвтоматичеÑки добавлÑть раÑширениÑ", + "load-extensions/@settings-name-music": "Музыка", + "load-extensions/@settings-name-pen": "Перо", + "load-extensions/@settings-name-text2speech": "ТекÑÑ‚ в речь", + "load-extensions/@settings-name-translate": "Перевод", + "custom-zoom/@description": "Выберите Ñвои наÑтройки макÑимального размера,минимального,ÑкороÑть,и начальное увеличение зоны Ñ ÐºÐ¾Ð´Ð¾Ð¼\nа также,автоÑкрытие управлениÑ.", + "custom-zoom/@name": "ÐаÑтраиваемое маÑштабирование облаÑти кода", + "custom-zoom/@settings-name-autohide": "ÐвтоматичеÑкое Ñкрытие Ñлементов ÑƒÐ¿Ñ€Ð°Ð²Ð»ÐµÐ½Ð¸Ñ Ð¼Ð°Ñштабированием", + "custom-zoom/@settings-name-maxZoom": "МакÑимальное увеличение (100-500%)", + "custom-zoom/@settings-name-minZoom": "Минимальное увеличение (1-100%)", + "custom-zoom/@settings-name-speed": "СкороÑть анимации ÑкрытиÑ", + "custom-zoom/@settings-name-startZoom": "Ðачальное увеличение (50-500%)", + "custom-zoom/@settings-name-zoomSpeed": "СкороÑть ÑƒÐ²ÐµÐ»Ð¸Ñ‡ÐµÐ½Ð¸Ñ (50-200%)", + "custom-zoom/@settings-select-speed-default": "По умолчанию", + "custom-zoom/@settings-select-speed-long": "МедленнаÑ", + "custom-zoom/@settings-select-speed-none": "МоментальнаÑ", + "custom-zoom/@settings-select-speed-short": "БыÑтраÑ", + "initialise-sprite-position/@description": "ИзменÑет позицию x/y по умолчанию Ð´Ð»Ñ Ð½Ð¾Ð²Ñ‹Ñ… Ñпрайтов", + "initialise-sprite-position/@name": "ÐаÑÑ‚Ñ€Ð°Ð¸Ð²Ð°ÐµÐ¼Ð°Ñ Ð¿Ð¾Ð·Ð¸Ñ†Ð¸Ñ Ð½Ð¾Ð²Ð¾Ð³Ð¾ Ñпрайта", + "initialise-sprite-position/@settings-name-duplicate": "Поведение при дублировании Ñпрайтов", + "initialise-sprite-position/@settings-name-library": "Случайное раÑположение Ñпрайтов из библиотеки", + "initialise-sprite-position/@settings-name-x": "ÐŸÐ¾Ð·Ð¸Ñ†Ð¸Ñ X", + "initialise-sprite-position/@settings-name-y": "ÐŸÐ¾Ð·Ð¸Ñ†Ð¸Ñ Y", + "initialise-sprite-position/@settings-select-duplicate-custom": "Определённые Ð·Ð½Ð°Ñ‡ÐµÐ½Ð¸Ñ x/y", + "initialise-sprite-position/@settings-select-duplicate-keep": "Те же,что и у оригинального Ñпрайта", + "initialise-sprite-position/@settings-select-duplicate-randomize": "Случайные", + "blocks2image/@description": "Кликните правой кнопкой мыши в облаÑть кода, чтобы ÑкÑпортировать блоки как Ð¸Ð·Ð¾Ð±Ñ€Ð°Ð¶ÐµÐ½Ð¸Ñ SVG или PNG.", + "blocks2image/@name": "Сохранить блоки как изображение", + "remove-curved-stage-border/@description": "Убирает фигурную обводку вокруг Ñцены, позволÑÑ ÑƒÐ²Ð¸Ð´ÐµÑ‚ÑŒ углы.", + "remove-curved-stage-border/@name": "Убирает фигурную обводку Ñцены", + "transparent-orphans/@description": "ДобавлÑет прозрачноÑть блокам в редакторе,Ñ Ð¾Ñ‚Ð´ÐµÐ»ÑŒÐ½Ñ‹Ð¼Ð¸ опциÑми Ð´Ð»Ñ Ð¾Ñ‚Ð´ÐµÐ»ÑŒÐ½Ñ‹Ñ… блоков(которые без блока дейÑтвий),и блоков которые перетаÑкиваютÑÑ", + "transparent-orphans/@name": "ПрозрачноÑть блоков", + "transparent-orphans/@settings-name-block": "ПрозрачноÑть блоков (%)", + "transparent-orphans/@settings-name-dragged": "прозрачноÑть перетаÑкиваемых блоков (%)", + "transparent-orphans/@settings-name-orphan": "прозрачноÑть отдельных блоков (%)", + "paint-by-default/@description": "ИзменÑет дейÑтвие по умолчанию кнопок «выберите Ñпрайт/коÑтюм/фон/звук», которые по умолчанию открывают библиотеку.", + "paint-by-default/@name": "РиÑовать коÑтюм по умолчанию", + "paint-by-default/@settings-name-backdrop": "Добавить фон", + "paint-by-default/@settings-name-costume": "Добавить коÑтюм", + "paint-by-default/@settings-name-sound": "Добавить звук", + "paint-by-default/@settings-name-sprite": "Добавить Ñпрайт", + "paint-by-default/@settings-select-backdrop-library": "Библиотека", + "paint-by-default/@settings-select-backdrop-paint": "ÐариÑовать", + "paint-by-default/@settings-select-backdrop-surprise": "Сюрприз", + "paint-by-default/@settings-select-backdrop-upload": "Загрузить", + "paint-by-default/@settings-select-costume-library": "Библиотека", + "paint-by-default/@settings-select-costume-paint": "ÐариÑовать", + "paint-by-default/@settings-select-costume-surprise": "Сюрприз", + "paint-by-default/@settings-select-costume-upload": "Загрузить", + "paint-by-default/@settings-select-sound-library": "Библиотека", + "paint-by-default/@settings-select-sound-record": "ЗапиÑать", + "paint-by-default/@settings-select-sound-surprise": "Сюрприз", + "paint-by-default/@settings-select-sound-upload": "Загрузить", + "paint-by-default/@settings-select-sprite-library": "Библиотека", + "paint-by-default/@settings-select-sprite-paint": "ÐариÑовать", + "paint-by-default/@settings-select-sprite-surprise": "Сюрприз", + "paint-by-default/@settings-select-sprite-upload": "Загрузить", + "block-cherry-picking/@description": "ПозволÑет перемещать один блок из Ñередины Ñкрипта (вмеÑто вÑей Ñтопки, Ð¿Ñ€Ð¸ÐºÑ€ÐµÐ¿Ð»Ñ‘Ð½Ð½Ð°Ñ Ñнизу блока) Ñ Ð¿Ð¾Ð¼Ð¾Ñ‰ÑŒÑŽ Ð·Ð°Ð¶Ð°Ñ‚Ð¸Ñ ÐºÐ»Ð°Ð²Ð¸ÑˆÐ¸ Ctrl.", + "block-cherry-picking/@info-flipControls": "ЕÑли «инвертировать управление» включено, то будет братьÑÑ Ð¾Ð´Ð¸Ð½ блок. Зажимайте Ctrl, чтобы перемеÑтить целую Ñтопку.", + "block-cherry-picking/@info-macContextDisabled": "Ð’ macOS иÑпользуйте клавишу Cmd вмеÑто Ctrl.", + "block-cherry-picking/@name": "ВытаÑкивать отдельный блок Ñ ÐºÐ»Ð°Ð²Ð¸ÑˆÐµÐ¹ Ctrl", + "block-cherry-picking/@settings-name-invertDrag": "Инвертировать управление", + "hide-new-variables/@description": "Ðе Ñоздавать мониторы автоматичеÑки Ð´Ð»Ñ Ð½Ð¾Ð²Ñ‹Ñ… переменных или ÑпиÑков.", + "hide-new-variables/@name": "Скрывать новые переменные", + "editor-extra-keys/@description": "ДобавлÑет больше клавиш в выпадающие ÑпиÑки блоков \"клавиша () нажата?\" и \"когда клавиша () нажата\", такие как Enter, точка, запÑÑ‚Ð°Ñ Ð¸ другие.", + "editor-extra-keys/@info-experimentalKeysWarn": "«ЭкÑпериментальные клавиши» включают в ÑÐµÐ±Ñ Ñ€Ð°Ð²Ð½Ð¾, ÑлÑш, двоеточие и многое другое. Они могут не работать на вÑех операционных ÑиÑтемах или раÑкладках клавиатуры.", + "editor-extra-keys/@info-shiftKeysWarn": "«Клавиши Shift» включают в ÑÐµÐ±Ñ ÐºÐ»Ð°Ð²Ð¸ÑˆÐ¸, которым нужна клавиша Shift и клавиша цифры по типу Ñ…Ñштега, вопроÑительного знака и многое др. Эти клавиши работают только Ñ Ð±Ð»Ð¾ÐºÐ¾Ð¼ «когда клавиша () нажата» и не работают на вÑех операционных ÑиÑтемах или раÑкладках клавиатуры.", + "editor-extra-keys/@name": "Дополнительные опции клавиш", + "editor-extra-keys/@settings-name-experimentalKeys": "Включить ÑкÑпериментальные клавиши", + "editor-extra-keys/@settings-name-shiftKeys": "Включить кнопки Shift", + "hide-delete-button/@description": "Скрывает кнопку ÑƒÐ´Ð°Ð»ÐµÐ½Ð¸Ñ (иконка корзины) из Ñпрайтов, коÑтюмов и звуков. Они могут быть удалены из контекÑтного меню.", + "hide-delete-button/@name": "Скрыть кнопку удалить", + "hide-delete-button/@settings-name-costumes": "КоÑтюмы и фоны", + "hide-delete-button/@settings-name-sounds": "Звуки", + "hide-delete-button/@settings-name-sprites": "Спрайты", + "no-script-bumping/@description": "ПозволÑет Ñкриптам двигатьÑÑ Ð¸ изменÑтьÑÑ Ð±ÐµÐ· их Ð¿ÐµÑ€ÐµÐºÑ€Ñ‹Ñ‚Ð¸Ñ Ð´Ð»Ñ Ð¿ÐµÑ€ÐµÐ¼ÐµÑ‰ÐµÐ½Ð¸Ñ Ð²Ð¾ÐºÑ€ÑƒÐ³.", + "no-script-bumping/@name": "Ðе делать автоматичеÑки пробел между перекрывающими Ñкриптами", + "disable-stage-drag-select/@description": "УдалÑет возможноÑть перетаÑкивать Ñпрайты по Ñцене в редакторе, за иÑключением тех, которые уÑтановлены как перетаÑкиваемые. Удерживайте Shift при перетаÑкивании Ñпрайта, чтобы перемеÑтить его в обычном режиме.", + "disable-stage-drag-select/@name": "ÐеперетаÑкиваемые Ñпрайты в редакторе", + "move-to-top-bottom/@description": "ДобавлÑет новый пункт в контекÑтное меню коÑтюма или звука, позволÑющее перемеÑтить его наверх или вниз", + "move-to-top-bottom/@info-developer-tools": "Этот аддон раньше был чаÑтью \"инÑтрументов разработчика\" ,но теперь переехал Ñюда", + "move-to-top-bottom/@name": "ПеремеÑтить коÑтюм на Ñамый вверх или в Ñамый низ", + "disable-paste-offset/@description": "Ð’ÑтавлÑет Ñкопированные предметы на их оригинальные позиции вмеÑто Ñлегка Ñдвинутого в редакторе коÑтюмов.", + "disable-paste-offset/@info-vanilla": "Это можно получить и без аддона, нажав alt+клик по объекту", + "disable-paste-offset/@name": "Ðе двигать вÑтавленные предметы в редакторе коÑтюмов", + "block-duplicate/@description": "БыÑтро дублирует Ñкрипт, Ð·Ð°Ð¶Ð¸Ð¼Ð°Ñ ÐºÐ»Ð°Ð²Ð¸ÑˆÑƒ Alt и Ð¿ÐµÑ€ÐµÐ´Ð²Ð¸Ð³Ð°Ñ Ñкрипт. Также зажимайте Ctrl, чтобы дублировать один блок.", + "block-duplicate/@info-mac": "ЕÑли у Ð’Ð°Ñ macOS, то иÑпользуйте клавишу ⌥, вмеÑто Alt и клавишу ⌘, вмеÑто Control.", + "block-duplicate/@name": "Дублировать Ñкрипт Ñ ÐºÐ»Ð°Ð²Ð¸ÑˆÐµÐ¹ Alt", + "rename-broadcasts/@description": "ПозволÑет изменÑть Ð½Ð°Ð·Ð²Ð°Ð½Ð¸Ñ Ñообщений в блоках их передачи и получениÑ", + "rename-broadcasts/@name": "Переименовать ÑообщениÑ", + "swap-local-global/@description": "ДобавлÑет больше опций во Ð²Ñ€ÐµÐ¼Ñ Ð¿ÐµÑ€ÐµÐ¸Ð¼ÐµÐ½Ð¾Ð²Ð°Ð½Ð¸Ñ ÑущеÑтвующей переменной или ÑущеÑтвующего ÑпиÑка: позволÑет переключатьÑÑ Ð¼ÐµÐ¶Ð´Ñƒ Â«Ð”Ð»Ñ Ð²Ñех Ñпрайтов», «Только Ð´Ð»Ñ Ñтого Ñпрайта» и облачными переменными. Также добавлÑет новую опцию при нажатии правой кнопкой мыши по переменной/ÑпиÑку, чтобы быÑтро Ñменить ÑвойÑтва.", + "swap-local-global/@name": "Переключить переменные между Â«Ð”Ð»Ñ Ð²Ñех Ñпрайтов» и «Только Ð´Ð»Ñ Ñтого Ñпрайта»", + "editor-comment-previews/@description": "ПозволÑет делать превью комментариев, Ð½Ð°Ð²Ð¾Ð´Ñ Ð½Ð° Ñвёрнутые комментарии и блоки. Ð’Ñ‹ можете иÑпользовать Ñто, чтобы проÑматривать комментарии, которые вне Ñкрана, определÑть блок цикла Ñнизу Ñ Ð¿Ð¾Ð¼Ð¾Ñ‰ÑŒÑŽ превью, вмеÑтить длинные комментарии в маленькое меÑто и другое.", + "editor-comment-previews/@name": "Предварительный проÑмотр комментариев в редакторе", + "editor-comment-previews/@settings-name-delay": "Ожидание", + "editor-comment-previews/@settings-name-follow-mouse": "Ðаблюдать за указателем мыши", + "editor-comment-previews/@settings-name-hover-view": "РаÑкрывать комментарии, Ð½Ð°Ð²Ð¾Ð´Ñ Ð½Ð° них", + "editor-comment-previews/@settings-name-hover-view-block": "РаÑкрыть прикреплённые комментарии у блоков, Ð½Ð°Ð²Ð¾Ð´Ñ Ð½Ð° них", + "editor-comment-previews/@settings-name-hover-view-procedure": "Показывать комментарии у других блоков, Ð½Ð°Ð²Ð¾Ð´Ñ Ð½Ð° комментарии", + "editor-comment-previews/@settings-name-reduce-animation": "ОÑлабить анимацию", + "editor-comment-previews/@settings-name-reduce-transparency": "Уменьшить прозрачноÑть", + "editor-comment-previews/@settings-select-delay-long": "Длинное", + "editor-comment-previews/@settings-select-delay-none": "Ðикакое", + "editor-comment-previews/@settings-select-delay-short": "Короткое", + "columns/@description": "РазделÑет меню категорий блоков на два Ñтолбца и перемещает его в верхнюю чаÑть палитры блоков, как в Scratch 2.0.", + "columns/@name": "Меню категорий Ñ Ð´Ð²ÑƒÐ¼Ñ Ñтолбцами", + "number-pad/@description": "Показывает панель ввода ,при редактировании чиÑел , на вÑех уÑтройÑтвах ,а не только на ÑенÑорных", + "number-pad/@info-explanation": "Панель Ñ Ñ†Ð¸Ñ„Ñ€Ð°Ð¼Ð¸ будет показыватьÑÑ Ð¿Ñ€Ð¸ редактировании чиÑел в блоках ,таких как \"уÑтановить x в\"", + "number-pad/@name": "Ð’Ñегда показывать панель Ñ Ñ†Ð¸Ñ„Ñ€Ð°Ð¼Ð¸", + "script-snap/@description": "Передвиньте Ñкрипт, чтобы автоматичеÑки выравнÑть его позицию к точкам на территории кода.", + "script-snap/@name": "ПривÑзывать Ñкрипты к Ñетке", + "script-snap/@preset-name-default": "По умолчанию", + "script-snap/@preset-name-half-block": "Половина блока", + "script-snap/@preset-name-whole-block": "ВеÑÑŒ блок", + "script-snap/@settings-name-grid": "Размер Ñетки (в пикÑелÑÑ…)", + "fullscreen/@description": "ИÑправлÑет некоторые неблагоприÑтные Ñффекты в полноÑкранном режиме плеере проекта, открывает его в полноÑкранном режиме Вашего браузера и прÑчет панель инÑтрументов зелёного флажка.", + "fullscreen/@info-hideToolbarNotice": "ЕÑли Ð’Ñ‹ ÑпрÑчете панель инÑтрументов, то не забывайте, что Ð’Ñ‹ можете нажать клавишу Esc, чтобы выйти из полноÑкранного режима проекта.", + "fullscreen/@name": "Улучшенный полноÑкранный режим", + "fullscreen/@settings-name-browserFullscreen": "Открывать полноÑкранный режим плеера проектов в полноÑкранном режиме браузера", + "fullscreen/@settings-name-hideToolbar": "СпрÑтать панель инÑтрументов в полном Ñкране", + "hide-stage/@description": "ДобавлÑет кнопку Ñ€Ñдом Ñ ÐºÐ½Ð¾Ð¿ÐºÐ°Ð¼Ð¸ \"Ð¼Ð°Ð»ÐµÐ½ÑŒÐºÐ°Ñ Ñцена\" и \"Ð±Ð¾Ð»ÑŒÑˆÐ°Ñ Ñцена\", ÐºÐ¾Ñ‚Ð¾Ñ€Ð°Ñ Ñкрывает Ñцену и облаÑть Ñпрайтов, Ð´ÐµÐ»Ð°Ñ Ð¾Ð±Ð»Ð°Ñть кода намного больше.", + "hide-stage/@name": "Скрыть Ñцену и облаÑть Ñпрайтов", + "editor-stepping/@description": "ДобавлÑет цветную подÑветку к блокам, которые в данный момент выполнÑÑŽÑ‚ÑÑ Ð² проекте.", + "editor-stepping/@name": "ВыделÑть выполнÑемые в данный момент блоки", + "editor-stepping/@settings-name-highlight-color": "Цвет подÑветки" +} \ No newline at end of file diff --git a/src/addons/addons-l10n-settings/sl.json b/src/addons/addons-l10n-settings/sl.json new file mode 100644 index 0000000000000000000000000000000000000000..0af2ccc195248848e439be4bd8a0b7b8af82994d --- /dev/null +++ b/src/addons/addons-l10n-settings/sl.json @@ -0,0 +1,321 @@ +{ + "cat-blocks/@description": "Vrne maÄje bloke iz 1. aprila 2020 v urejevalnik.", + "cat-blocks/@info-watch": "Nastavitev \"spremljaj kazalec miÅ¡ke\" lahko vpliva na hitrost delovanja urejevalnika.", + "cat-blocks/@name": "MaÄji bloki", + "cat-blocks/@settings-name-watch": "Spremljaj kazalec miÅ¡ke", + "editor-devtools/@description": "V menije v urejevalniku doda nove možnosti: kopiranje blokov, boljÅ¡e ÄiÅ¡Äenje in drugo.", + "editor-devtools/@name": "Orodje za razvijalce", + "editor-devtools/@settings-name-enableCleanUpPlus": "IzboljÅ¡aj možnost \"PoÄisti bloke\"", + "editor-devtools/@settings-name-enablePasteBlocksAtMouse": "Prilepi bloke poleg kazalca miÅ¡ke", + "find-bar/@description": "Poleg zavihka Zvoki doda vrstico, s katero lahko poiÅ¡Äete in se premaknete na skripto, videz ali zvok. Uporabite Ctrl+levo ali Ctrl+desno v prostoru za kodo, da se premaknete na prejÅ¡nji ali naslednji položaj.", + "find-bar/@info-developer-tools": "Ta funkcija je bila prej del dodatka \"orodje za razvijalce\", vendar smo jo premaknili sem.", + "find-bar/@name": "Iskalna vrstica v urejevalniku", + "middle-click-popup/@info-developer-tools": "Ta funkcija je bila prej del dodatka \"orodje za razvijalce\", vendar smo jo premaknili sem.", + "jump-to-def/@description": "OmogoÄa, da se premaknete na definicijo \"mojega bloka\" s srednjim miÅ¡kinim gumbom ali Shift+klikom.", + "jump-to-def/@info-developer-tools": "Ta funkcija je bila prej del dodatka \"orodje za razvijalce\", vendar smo jo premaknili sem.", + "jump-to-def/@name": "SkoÄi na definicijo \"mojega bloka\"", + "editor-searchable-dropdowns/@description": "OmogoÄi iskanje po spustnih menijih blokov.", + "editor-searchable-dropdowns/@name": "Iskanje po spustnih menijih", + "data-category-tweaks-v2/@description": "IzboljÅ¡a kategorijo blokov Podatki (\"Spremenljivke\").", + "data-category-tweaks-v2/@name": "IzboljÅ¡ana kategorija spremenljivk", + "data-category-tweaks-v2/@settings-name-moveReportersDown": "Premakni bloke za podatke nad seznam spremenljivk", + "data-category-tweaks-v2/@settings-name-separateListCategory": "LoÄena kategorija za sezname", + "data-category-tweaks-v2/@settings-name-separateLocalVariables": "LoÄene spremenljivke samo za to figuro", + "block-palette-icons/@description": "V barvne kroge, ki oznaÄujejo kategorije blokov, doda ikone.", + "block-palette-icons/@name": "Ikone kategorij blokov", + "hide-flyout/@description": "Skrije paleto blokov, Äe miÅ¡ka ni na njej. Kliknite ikono kljuÄavnice, da jo zaÄasno zaklenete. Lahko pa uporabite tudi naÄin \"Ko kliknem kategorijo\".", + "hide-flyout/@info-hoverExplanation": "NaÄin \"ko premaknem miÅ¡ko na obmoÄje palete\" poveÄa samo obmoÄje, v katerem so bloki vidni. ÄŒe želite tja vleÄi bloke, ne da bi bili ti izbrisani, uporabite enega od drugih naÄinov.", + "hide-flyout/@name": "Samodejno skrivanje palete blokov", + "hide-flyout/@settings-name-speed": "Hitrost animacije", + "hide-flyout/@settings-name-toggle": "Pokaži ko...", + "hide-flyout/@settings-select-speed-default": "Navadna", + "hide-flyout/@settings-select-speed-long": "PoÄasna", + "hide-flyout/@settings-select-speed-none": "Trenutna", + "hide-flyout/@settings-select-speed-short": "Hitra", + "hide-flyout/@settings-select-toggle-category": "Kliknem kategorijo", + "hide-flyout/@settings-select-toggle-cathover": "Premaknem miÅ¡ko na kategorijo", + "hide-flyout/@settings-select-toggle-hover": "Premaknem miÅ¡ko na obmoÄje palete", + "hide-flyout/@update": "Ta dodatek je bil izboljÅ¡an in veliko napak je bilo popravljenih.", + "mediarecorder/@description": "V menijsko vrstico v urejevalniku doda gumb \"zaÄni snemanje\", ki omogoÄa snemanje odra.", + "mediarecorder/@name": "Snemanje videov projekta", + "drag-drop/@description": "OmogoÄa vleÄenje slik in zvokov iz vaÅ¡ega upravitelja datotek v seznam figur, videzov ali zvokov. Lahko povleÄete tudi besedilne datoteke v sezname ali v polje, ki ga prikaže blok \"vpraÅ¡aj in poÄakaj\".", + "drag-drop/@name": "VleÄenje datotek v urejevalnik", + "drag-drop/@settings-name-use-hd-upload": "Uporabi HD nalaganje slik", + "debugger/@name": "Orodje za razhroÅ¡Äevanje", + "debugger/@settings-name-log_broadcasts": "ZapiÅ¡i objave", + "debugger/@settings-name-log_clear_greenflag": "Izprazni zapiske, ko je kliknjena zelena zastavica", + "debugger/@settings-name-log_clone_create": "ZapiÅ¡i sporoÄilo o ustvarjanju dvojnika", + "debugger/@settings-name-log_failed_clone_creation": "ZapiÅ¡i sporoÄilo, ko je doseženo najveÄje možno Å¡tevilo dvojnikov", + "debugger/@settings-name-log_greenflag": "ZapiÅ¡i klike na zeleno zastavico", + "debugger/@update": "Nova zavihka \"Niti\" in \"UÄinkovitost\" v oknu za razhroÅ¡Äevanje.", + "pause/@description": "Doda gumb za premor poleg zelene zastavice.", + "pause/@name": "Gumb za premor", + "mute-project/@description": "Ctrl+kliknite zeleno zastavico, da vkljuÄite ali izkljuÄite zvok v projektu.", + "mute-project/@info-macOS": "ÄŒe uporabljate macOS, uporabite tipko Cmd namesto Ctrl.", + "mute-project/@name": "UtiÅ¡aj predvajalnik projekta", + "vol-slider/@description": "Doda drsnik za glasnost poleg gumbov za nadzor projekta.", + "vol-slider/@name": "Drsnik za glasnost projekta", + "vol-slider/@settings-name-defVol": "ZaÄetna glasnost", + "clones/@description": "Nad oder v urejevalniku doda Å¡tevec, ki prikaže skupno Å¡tevilo dvojnikov figur.", + "clones/@name": "Å tevec dvojnikov", + "clones/@settings-name-showicononly": "Pokaži samo ikono", + "mouse-pos/@description": "Prikaže x/y položaj miÅ¡ke nad odrom v urejevalniku.", + "mouse-pos/@name": "Položaj miÅ¡ke", + "color-picker/@description": "Doda polje za vnos Å¡estnajstiÅ¡ke kode, ko izbirate barvo.", + "color-picker/@name": "Å estnajstiÅ¡ke barve", + "remove-sprite-confirm/@description": "VpraÅ¡a, Äe ste prepriÄani, preden izbriÅ¡ete figuro v projektu.", + "remove-sprite-confirm/@name": "Potrditev brisanja figure", + "block-count/@description": "Pokaže skupno Å¡tevilo blokov v projektu v menijski vrstici urejevalnika. Prej del dodatka \"Å¡tevilo figur in skript\".", + "block-count/@name": "Å tevec blokov", + "onion-skinning/@description": "Pokaže prosojne slike prejÅ¡njih ali naslednjih videzov med urejanjem videza. Za upravljanje uporabite gumbe pod urejevalnikom videzov poleg gumbov za poveÄavo.", + "onion-skinning/@settings-name-afterTint": "Barva naslednjega videza", + "onion-skinning/@settings-name-beforeTint": "Barva prejÅ¡njega videza", + "onion-skinning/@settings-name-default": "Samodejno vkljuÄi", + "onion-skinning/@settings-name-layering": "ZaÄetna plast", + "onion-skinning/@settings-name-mode": "ZaÄetni naÄin", + "onion-skinning/@settings-name-next": "ZaÄetno Å¡tevilo naslednjih videzov", + "onion-skinning/@settings-name-opacity": "Neprosojnost (%)", + "onion-skinning/@settings-name-opacityStep": "Sprememba neprosojnosti (%)", + "onion-skinning/@settings-name-previous": "ZaÄetno Å¡tevilo prejÅ¡njih videzov", + "onion-skinning/@settings-select-layering-behind": "Zadaj", + "onion-skinning/@settings-select-layering-front": "Spredaj", + "onion-skinning/@settings-select-mode-merge": "Združi slike", + "onion-skinning/@settings-select-mode-tint": "Barva", + "default-costume-editor-color/@description": "Spremeni privzete barve in velikost robov v urejevalniku videzov.", + "default-costume-editor-color/@name": "Prilagoditev privzetih barv v urejevalniku videzov", + "default-costume-editor-color/@settings-name-fill": "Barva polnila", + "default-costume-editor-color/@settings-name-persistence": "Pri zamenjavi orodja uporabi prejÅ¡nje barve namesto privzetih", + "default-costume-editor-color/@settings-name-stroke": "Barva robov", + "default-costume-editor-color/@settings-name-strokeSize": "Velikost robov", + "bitmap-copy/@description": "OmogoÄi, da kopirate bitno sliko iz urejevalnika videzov v sistemsko odložiÅ¡Äe in jo prilepite v druge spletne strani ali programe.", + "bitmap-copy/@info-norightclick": "\"Desni miÅ¡kin gumb → kopiraj\" ne deluje. Pritisnite morati Ctrl+C, ko je izbrana bitna slika.", + "bitmap-copy/@name": "Kopiranje bitnih slik", + "2d-color-picker/@description": "Zamenja drsnika za svetlost in nasiÄenost barv v urejevalniku videzov z 2D drsnikom. Držite tipko Shift med vleÄenjem, da spremenite samo vrednost ene osi.", + "2d-color-picker/@name": "2D izbira barv", + "better-img-uploads/@description": "Doda nov gumb nad \"naloži videz\", ki samodejno spremeni naložene slike v obliko SVG (vektor), da se izogne zmanjÅ¡anju kakovosti.", + "better-img-uploads/@info-notSuitableEdit": "Gumba \"naloži HD\" ne uporabljajte, Äe bi radi naloženo sliko urejali.", + "better-img-uploads/@name": "Nalaganje HD slik", + "better-img-uploads/@settings-name-fitting": "Velikost slike", + "better-img-uploads/@settings-select-fitting-fill": "Raztegni na velikost odra", + "better-img-uploads/@settings-select-fitting-fit": "PomanjÅ¡aj prevelike slike do velikosti odra", + "better-img-uploads/@settings-select-fitting-full": "Izvirna velikost", + "pick-colors-from-stage/@description": "OmogoÄi, da s kapalko v urejevalniku videzov izberete tudi barve iz odra.", + "pick-colors-from-stage/@name": "Izberi barve iz odra v urejevalniku videzov", + "custom-block-shape/@description": "Spremenite velikost, zaobljenost robov in velikost zareze blokov.", + "custom-block-shape/@info-paddingWarning": "Spremembo velikosti praznega prostora vidite samo vi, zato se za druge uporabnike skripte v vaÅ¡em projektu lahko prekrivajo.", + "custom-block-shape/@name": "Prilagoditev oblike blokov", + "custom-block-shape/@preset-description-default2": "Videz, podoben blokom v Scratchu 2.0", + "custom-block-shape/@preset-description-default3": "ObiÄajni videz blokov v Scratchu 3.0", + "custom-block-shape/@preset-description-flat2": "Bloki Scratcha 2.0 brez zarez in zaobljenih robov.", + "custom-block-shape/@preset-description-flat3": "Bloki Scratcha 3.0 brez zarez in zaobljenih robov.", + "custom-block-shape/@preset-name-default2": "2.0 bloki", + "custom-block-shape/@preset-name-default3": "3.0 bloki", + "custom-block-shape/@preset-name-flat2": "2.0 ravni bloki", + "custom-block-shape/@preset-name-flat3": "3.0 ravni bloki", + "custom-block-shape/@settings-name-cornerSize": "Zaobljenost robov (0-300%)", + "custom-block-shape/@settings-name-notchSize": "ViÅ¡ina zareze (0-150%)", + "custom-block-shape/@settings-name-paddingSize": "Velikost praznega prostora (50-200%)", + "zebra-striping/@description": "Bloke iste kategorije pobarva izmeniÄno s svetlejÅ¡imi in temnejÅ¡imi odtenki, kadar so postavljeni drug v drugega. To se imenuje tudi zebrine proge.", + "zebra-striping/@name": "IzmeniÄno obarvani ugnezdeni bloki", + "zebra-striping/@settings-name-intensity": "Intenzivnost (0-100%)", + "zebra-striping/@settings-name-shade": "Odtenek", + "zebra-striping/@settings-select-shade-darker": "TemnejÅ¡i", + "zebra-striping/@settings-select-shade-lighter": "SvetlejÅ¡i", + "editor-theme3/@description": "Uredite barve blokov za vsako kategorijo v urejevalniku.", + "editor-theme3/@name": "Prilagoditev barv blokov", + "editor-theme3/@preset-description-black": "Naredi ozadje blokov Ärno", + "editor-theme3/@preset-description-dark": "Temne razliÄice obiÄajnih barv", + "editor-theme3/@preset-description-original": "Originalne barve blokov iz Scratcha 2.0", + "editor-theme3/@preset-description-tweaks": "Bloki za dogodke, krmiljenje in \"moji bloki\" z barvami, podobnimi kot v Scratchu 2.0", + "editor-theme3/@preset-name-black": "ÄŒrno", + "editor-theme3/@preset-name-dark": "Temno", + "editor-theme3/@preset-name-original": "Barve Scratcha 2.0", + "editor-theme3/@preset-name-tweaks": "IzboljÅ¡ane barve Scratcha 3.0", + "editor-theme3/@settings-name-Pen-color": "razÅ¡iritve", + "editor-theme3/@settings-name-comment-color": "Komentarji", + "editor-theme3/@settings-name-control-color": "krmiljenje", + "editor-theme3/@settings-name-custom-color": "moji bloki", + "editor-theme3/@settings-name-data-color": "spremenljivke", + "editor-theme3/@settings-name-data-lists-color": "seznami", + "editor-theme3/@settings-name-events-color": "dogodki", + "editor-theme3/@settings-name-input-color": "Vnosna polja blokov", + "editor-theme3/@settings-name-looks-color": "videzi", + "editor-theme3/@settings-name-motion-color": "gibanje", + "editor-theme3/@settings-name-operators-color": "operatorji", + "editor-theme3/@settings-name-sensing-color": "zaznavanje", + "editor-theme3/@settings-name-sounds-color": "zvok", + "editor-theme3/@settings-name-text": "Barva besedila", + "editor-theme3/@settings-select-text-black": "ÄŒrna", + "editor-theme3/@settings-select-text-colorOnBlack": "Barva na Ärnem ozadju", + "editor-theme3/@settings-select-text-colorOnWhite": "Barva na belem ozadju", + "editor-theme3/@settings-select-text-white": "Bela", + "editor-theme3/@update": "Nastavitev \"Temni komentarji\" smo iz dodatka \"Temni naÄin in prilagoditev barv v urejevalniku\" smo premaknili sem. Zdaj lahko spremenite tudi barvo komentarjev.", + "custom-block-text/@description": "Spremeni debelino besedila na blokih, lahko pa doda tudi senco.", + "custom-block-text/@name": "Prilagoditev sloga besedila blokov", + "custom-block-text/@settings-name-bold": "Krepko besedilo", + "custom-block-text/@settings-name-shadow": "Senca pod besedilom", + "editor-colored-context-menus/@description": "Naredi menije, ki se odprejo, ko kliknete blok z desno miÅ¡kino tipko, barvne.", + "editor-colored-context-menus/@name": "Barvni meniji", + "editor-stage-left/@description": "Premakne oder na levo stran urejevalnika, kot v Scratchu 2.0.", + "editor-stage-left/@info-reverseOrder": "ÄŒe bi radi spremenili položaj gumbov nad odrom, uporabite dodatek \"obratno zaporedje gumbov za nadzor projekta\".", + "editor-stage-left/@name": "Pokaži oder na levi strani", + "editor-buttons-reverse-order/@description": "Premakne zeleno zastavico in gumb Ustavi na desno in gumb za celozaslonski naÄin na desno, kot v Scratchu 2.0.", + "editor-buttons-reverse-order/@name": "Obratno zaporedje gumbov za nadzor projekta", + "variable-manager/@description": "Doda zavihek za enostavno urejanje spremenljivk in seznamov v urejevalnik, poleg zavihka \"zvoki\".", + "variable-manager/@name": "Upravitelj spremenljivk", + "variable-manager/@update": "Za dodajanje predmetov v sezname ni veÄ treba držati tipke Shift.", + "search-sprites/@description": "Poleg seznama figur doda polje za iskanje figur glede na ime.", + "search-sprites/@name": "IÅ¡Äi figure po imenu", + "sprite-properties/@settings-name-transitionDuration": "Hitrost animacije", + "sprite-properties/@settings-select-transitionDuration-default": "Navadna", + "sprite-properties/@settings-select-transitionDuration-long": "PoÄasna", + "sprite-properties/@settings-select-transitionDuration-none": "Trenutna", + "sprite-properties/@settings-select-transitionDuration-short": "Hitra", + "gamepad/@description": "Uporabljajte USB ali Bluetooth igralni ploÅ¡Äek v projektih.", + "gamepad/@name": "Podpora igralnih ploÅ¡Äkov", + "gamepad/@settings-name-hide": "Skrij gumb za nastavitve, ko noben ploÅ¡Äek ni zaznan", + "editor-sounds/@description": "Doda zvoÄne uÄnike, ko povežete ali izbriÅ¡ete bloke.", + "editor-sounds/@name": "ZvoÄni uÄinki v urejevalniku", + "folders/@description": "Doda mape v sezname figur, videzov in zvokov. Kliknite figuro z desno miÅ¡kino tipko in izberite \"ustvari mapo\", da naredite novo mapo. Kliknite mapo, da jo odprete ali zaprete. Kliknite figuro z desno tipko, da jo dodate v mapo, ali pa jo z miÅ¡ko povlecite v odprto mapo. Ta dodatek deluje tako, da na zaÄetek imena figure doda \"[imeMape]//\".", + "folders/@info-notice-folders-are-public": "Uporabniki, ki imajo to možnost vkljuÄeno, bodo lahko videli mape v vaÅ¡em projektu. Drugi uporabniki bodo videli seznam figur na obiÄajen naÄin (brez map).", + "folders/@name": "Mape figur", + "block-switching/@description": "Kliknite na blok z desno miÅ¡kino tipko, da ga zamenjate s podobnim blokom.", + "block-switching/@name": "Menjava blokov", + "block-switching/@settings-name-control": "Bloki za krmiljenje", + "block-switching/@settings-name-customargs": "Vnosi \"mojih blokov\"", + "block-switching/@settings-name-customargsmode": "Možnosti za vnose \"mojih blokov\"", + "block-switching/@settings-name-data": "Bloki za podatke", + "block-switching/@settings-name-event": "Bloki za dogodke", + "block-switching/@settings-name-extension": "Bloki razÅ¡iritev", + "block-switching/@settings-name-looks": "Bloki za videz", + "block-switching/@settings-name-motion": "Bloki za gibanje", + "block-switching/@settings-name-noop": "Pokaži možnost, da bloka ne spremenim", + "block-switching/@settings-name-operator": "Operatorji", + "block-switching/@settings-name-sensing": "Bloki za zaznavanje", + "block-switching/@settings-name-sound": "Bloki za zvok", + "block-switching/@settings-select-customargsmode-all": "Vnosi vseh \"mojih blokov\" v figuri", + "block-switching/@settings-select-customargsmode-defOnly": "Vnosi ustreznega \"mojega bloka\"", + "load-extensions/@description": "Samodejno pokaže glasbo, svinÄnik in druge razÅ¡iritve na seznamu kategorij blokov v urejevalniku.", + "load-extensions/@name": "Samodejno dodaj razÅ¡iritve", + "load-extensions/@settings-name-music": "Glasba", + "load-extensions/@settings-name-pen": "SvinÄnik", + "load-extensions/@settings-name-text2speech": "Besedilo v govor", + "load-extensions/@settings-name-translate": "Prevedi", + "custom-zoom/@description": "Izberite najmanjÅ¡o in najveÄjo poveÄavo ter hitrost in zaÄetno vrednost poveÄave prostora za kodo. Lahko tudi samodejno skrije gumbe za poveÄavo.", + "custom-zoom/@name": "Prilagoditev poveÄave prostora za kodo", + "custom-zoom/@settings-name-autohide": "Samodejno skrij gumbe za poveÄavo", + "custom-zoom/@settings-name-maxZoom": "NajveÄja poveÄava (100-500%)", + "custom-zoom/@settings-name-minZoom": "NajmanjÅ¡a poveÄava (1-100%)", + "custom-zoom/@settings-name-speed": "Hitrost animacije skrivanja gumbov", + "custom-zoom/@settings-name-startZoom": "ZaÄetna poveÄava (50-500%)", + "custom-zoom/@settings-name-zoomSpeed": "Hitrost poveÄave (50-200%)", + "custom-zoom/@settings-select-speed-default": "Navadno", + "custom-zoom/@settings-select-speed-long": "PoÄasna", + "custom-zoom/@settings-select-speed-none": "Trenutna", + "custom-zoom/@settings-select-speed-short": "Hitra", + "initialise-sprite-position/@description": "Spremeni zaÄetni položaj x/y novih figur.", + "initialise-sprite-position/@name": "Prilagoditev položaja novih figur", + "initialise-sprite-position/@settings-name-duplicate": "Podvajanje figur", + "initialise-sprite-position/@settings-name-library": "Postavi figure iz knjižnice na nakljuÄno mesto", + "initialise-sprite-position/@settings-name-x": "Položaj X", + "initialise-sprite-position/@settings-name-y": "Položaj Y", + "initialise-sprite-position/@settings-select-duplicate-custom": "PoÅ¡lji na doloÄene vrednosti x/y", + "initialise-sprite-position/@settings-select-duplicate-keep": "Ohrani položaj originalne figure", + "initialise-sprite-position/@settings-select-duplicate-randomize": "NakljuÄen položaj", + "blocks2image/@description": "Kliknite prostor za kodo z desno miÅ¡kino tipko, da izvozite bloke kot sliko SVG ali PNG.", + "blocks2image/@name": "Shrani bloke kot sliko", + "remove-curved-stage-border/@description": "Odstrani zaobljen okvir odra in s tem naredi robove vidne.", + "remove-curved-stage-border/@name": "Odstrani zaobljen okvir odra", + "transparent-orphans/@description": "Prilagodi prosojnost blokov v urejevalniku, z loÄenima možnostma za neuporabljene bloke (tiste, ki niso povezani z dogodkom) in bloke, ki jih vleÄete z miÅ¡ko.", + "transparent-orphans/@name": "Prosojnost blokov", + "transparent-orphans/@settings-name-block": "Prosojnost blokov (%)", + "transparent-orphans/@settings-name-dragged": "Prosojnost blokov med vleÄenjem (%)", + "transparent-orphans/@settings-name-orphan": "Prosojnost neuporabljenih blokov (%)", + "paint-by-default/@description": "Spremeni gumbe \"Izberi figuro/videz/ozadje/zvok\", da namesto odpiranja knjižnice naredijo kaj drugega.", + "paint-by-default/@name": "Odpri urejevalnik videzov namesto knjižnice", + "paint-by-default/@settings-name-backdrop": "Dodajanje ozadja", + "paint-by-default/@settings-name-costume": "Dodajanje videza", + "paint-by-default/@settings-name-sound": "Dodajanje zvoka", + "paint-by-default/@settings-name-sprite": "Dodajanje figure", + "paint-by-default/@settings-select-backdrop-library": "Knjižnica", + "paint-by-default/@settings-select-backdrop-paint": "NariÅ¡i", + "paint-by-default/@settings-select-backdrop-surprise": "PreseneÄenje", + "paint-by-default/@settings-select-backdrop-upload": "Naloži", + "paint-by-default/@settings-select-costume-library": "Knjižnica", + "paint-by-default/@settings-select-costume-paint": "NariÅ¡i", + "paint-by-default/@settings-select-costume-surprise": "PreseneÄenje", + "paint-by-default/@settings-select-costume-upload": "Naloži", + "paint-by-default/@settings-select-sound-library": "Knjižnica", + "paint-by-default/@settings-select-sound-record": "Snemaj", + "paint-by-default/@settings-select-sound-surprise": "PreseneÄenje", + "paint-by-default/@settings-select-sound-upload": "Naloži", + "paint-by-default/@settings-select-sprite-library": "Knjižnica", + "paint-by-default/@settings-select-sprite-paint": "NariÅ¡i", + "paint-by-default/@settings-select-sprite-surprise": "PreseneÄenje", + "paint-by-default/@settings-select-sprite-upload": "Naloži", + "block-cherry-picking/@description": "Doda možnost, da iz sredine skripte potegnete en sam blok (namesto vseh blokov pod njim), medtem ko držite tipko Ctrl.", + "block-cherry-picking/@info-flipControls": "ÄŒe je vkljuÄena nastavitev \"zamenjaj dejanje tipke\", vleÄenje vedno premakne le en blok. Držite Ctrl, da premaknete celo zaporedje blokov.", + "block-cherry-picking/@info-macContextDisabled": "ÄŒe uporabljate macOS, uporabite tipko Cmd namesto Ctrl.", + "block-cherry-picking/@name": "Vleci posamezne bloke s tipko Ctrl", + "block-cherry-picking/@settings-name-invertDrag": "Zamenjaj dejanje tipke", + "hide-new-variables/@description": "Na novo ustvarjenih spremenljivk in seznamov ne pokaže na odru.", + "hide-new-variables/@name": "Skrij nove spremenljivke", + "editor-extra-keys/@description": "V spustni meni blokov \"je pritisnjena tipka ()?\" in \"ko je tipka () pritisnjena\" doda veÄ tipk, na primer Enter, piko, vejico in druge. Tudi uporabniki, ki nimajo tega dodatka, bodo lahko uporabljali te tipke.", + "editor-extra-keys/@info-experimentalKeysWarn": "\"Poskusne tipke\" so enaÄaj, poÅ¡evnica, podpiÄje in druge. Morda ne bodo delovale v vseh operacijskih sistemih in na vseh tipkovnicah.", + "editor-extra-keys/@info-shiftKeysWarn": "\"Tipke Shift\" so znaki, ki se jih obiÄajno vnese s tipko Shift in tipko za Å¡tevilko, na primer #, ! in druge. Te tipke delujejo samo v bloku \"ko je tipka () pritisnjena\" in ne delujejo v vseh operacijskih sistemih in na vseh tipkovnicah.", + "editor-extra-keys/@name": "Dodatne tipke", + "editor-extra-keys/@settings-name-experimentalKeys": "Pokaži poskusne tipke", + "editor-extra-keys/@settings-name-shiftKeys": "Pokaži tipke Shift", + "hide-delete-button/@description": "Skrije gumb za izbris (ikona smetnjaka) figur, videzov in zvokov. Å e vedno jih lahko izbriÅ¡ite v meniju, ki se odpre, ko uporabite desno miÅ¡kino tipko.", + "hide-delete-button/@name": "Skrij gumb za brisanje", + "hide-delete-button/@settings-name-costumes": "Videzi in ozadja", + "hide-delete-button/@settings-name-sounds": "Zvoki", + "hide-delete-button/@settings-name-sprites": "Figure", + "no-script-bumping/@description": "OmogoÄi premikanje in spreminjanje skript, ne da bi se pri tem premikale prekrivajoÄe se skripte.", + "no-script-bumping/@name": "Ne razmakni prekrivajoÄih se skript", + "disable-stage-drag-select/@description": "Odstrani možnost vleÄenja figur na odru v urejevalniku, razen tistih, ki vleÄenje omogoÄijo z ukazom \"možnost premika\". Med vleÄenjem figure držite Shift, da jo premaknete na obiÄajen naÄin.", + "disable-stage-drag-select/@name": "OnemogoÄi vleÄenje figur v urejevalniku", + "move-to-top-bottom/@description": "V meni desne miÅ¡kine tipke za videze in zvoke doda možnost, ki predmet premakne na vrh ali na dno seznama.", + "move-to-top-bottom/@info-developer-tools": "Ta funkcija je bila prej del dodatka \"orodje za razvijalce\", vendar smo jo premaknili sem.", + "move-to-top-bottom/@name": "Premakni videz na vrh ali na dno", + "disable-paste-offset/@description": "V urejevalniku videzov kopiranih predmetov ne premakne, ampak jih prilepi na njihovem prejÅ¡njem položaju.", + "disable-paste-offset/@name": "Ne premakni prilepljenih predmetov", + "block-duplicate/@description": "Hitro podvojite skripto tako, da jo potegnete, medtem ko držite tipko Alt. Držite tudi tipko Ctrl, da podvojite samo en block namesto vseh povezanih blokov.", + "block-duplicate/@info-mac": "ÄŒe uporabljate macOS, uporabite tipko Option namesto Alt in Command namesto Control.", + "block-duplicate/@name": "Podvoji skripto s tipko Alt", + "rename-broadcasts/@description": "V meni bloka \"objavi\" doda možnost za preimenovanje sporoÄila.", + "rename-broadcasts/@name": "Preimenovanje sporoÄil", + "swap-local-global/@description": "V okno za preimenovanje spremenljivke ali seznama doda veÄ možnosti: omogoÄi spremembo spremenljivk \"Za vse figure\" v \"Samo za to figuro\" in obratno ter navadnih spremenljivk v spremenljivke v oblaku. Poleg tega doda novo možnost za hitro spremembo vidnosti, ko kliknete spremenljivko/seznam z desno miÅ¡kino tipko.", + "swap-local-global/@name": "Zamenjaj spremenljivke \"za vse figure\" in \"samo za to figuro\"", + "editor-comment-previews/@description": "Pokaže vsebino komentarja, ko premaknete miÅ¡ko na skrÄen komentar ali blok. To lahko uporabite na primer za branje komentarjev, ki na zaslonu niso vidni, prepoznavanje zanke na dnu s pomoÄjo komentarja in dodajanje veÄ dolgih komentarjev v majhen prostor.", + "editor-comment-previews/@name": "Predogledi komentarjev v urejevalniku", + "editor-comment-previews/@settings-name-delay": "Zamik", + "editor-comment-previews/@settings-name-follow-mouse": "Sledi miÅ¡ki", + "editor-comment-previews/@settings-name-hover-view": "Pokaži vsebino skrÄenih komentarjev", + "editor-comment-previews/@settings-name-hover-view-block": "Pokaži vsebino komentarja, ko premaknem miÅ¡ko na blok", + "editor-comment-previews/@settings-name-hover-view-procedure": "Pokaži komentar definicije, ko premaknem miÅ¡ko na \"moj blok\"", + "editor-comment-previews/@settings-name-reduce-animation": "Brez animacije", + "editor-comment-previews/@settings-name-reduce-transparency": "ZmanjÅ¡aj prosojnost", + "editor-comment-previews/@settings-select-delay-long": "Dolgo", + "editor-comment-previews/@settings-select-delay-none": "Brez", + "editor-comment-previews/@settings-select-delay-short": "Kratko", + "columns/@description": "Razdeli seznam kategorij blokov na dva stolpca in ga premakne na vrh palete blokov, kot v Scratchu 2.0.", + "columns/@name": "Seznam kategorij z dvema stolpcema", + "number-pad/@name": "Vedno pokaži Å¡tevilÄnico", + "script-snap/@description": "Potegnite skripto, da se njen položaj samodejno poravna s pikami na ozadju prostora za skripte.", + "script-snap/@name": "Pritrdi skripte na mrežo", + "script-snap/@preset-name-default": "Navadno", + "script-snap/@preset-name-half-block": "Pol bloka", + "script-snap/@preset-name-whole-block": "Cel blok", + "script-snap/@settings-name-grid": "Velikost mreže (px)", + "fullscreen/@description": "Popravi nekatere težave v celozaslonskem naÄinu predvajalnika projektov, odpre projekte v celozaslonskem naÄinu brskalnika in skrije vrstico z zeleno zastavico.", + "fullscreen/@info-hideToolbarNotice": "ÄŒe skrijete orodno vrstico, ne pozabite, da lahko uporabite tipko Esc za izhod iz celozaslonskega naÄina predvajalnika.", + "fullscreen/@name": "IzboljÅ¡an celozaslonski naÄin", + "fullscreen/@settings-name-browserFullscreen": "Odpri celozaslonski predvajalnik projekta v celozaslonskem naÄinu brskalnika", + "fullscreen/@settings-name-hideToolbar": "Skrij orodno vrstico v celozaslonskem naÄinu", + "hide-stage/@description": "Zraven gumbov \"manjÅ¡i oder\" in \"veÄji oder\" doda gumb, ki skrije oder in seznam figur, kar zelo poveÄa prostor za kodo.", + "hide-stage/@name": "Skrij oder in seznam figur", + "editor-stepping/@description": "Doda barven okvir blokom, ki se v projektu trenutno izvajajo.", + "editor-stepping/@name": "Obroba trenutno delujoÄih blokov", + "editor-stepping/@settings-name-highlight-color": "Barva okvirja" +} \ No newline at end of file diff --git a/src/addons/addons-l10n-settings/tr.json b/src/addons/addons-l10n-settings/tr.json new file mode 100644 index 0000000000000000000000000000000000000000..4d87fe113ff2b7c83a34d5a13ea8c08616594025 --- /dev/null +++ b/src/addons/addons-l10n-settings/tr.json @@ -0,0 +1,345 @@ +{ + "cat-blocks/@description": "Bir Nisan Åžaka Günü 2020'den ÅŸapkalı kedi bloklarını geri getirir.", + "cat-blocks/@info-watch": "\"Fare imlecini izle\" ayarı, düzenleyici açıkken performansı etkileyebilir.", + "cat-blocks/@name": "Kedi blokları", + "cat-blocks/@settings-name-watch": "Fare imlecini izle", + "editor-devtools/@description": "Düzenleyiciye yeni menü seçenekleri ekler: blokları kopyalama/yapıştırma, daha iyi çekidüzen verme ve çok daha fazlası!", + "editor-devtools/@name": "GeliÅŸtirici araçları", + "editor-devtools/@settings-name-enableCleanUpPlus": "\"Blokları temizle\"yi geliÅŸtir", + "editor-devtools/@settings-name-enablePasteBlocksAtMouse": "Blokları fare imlecinin bulunduÄŸu konuma yapıştır", + "find-bar/@description": "Sesler sekmesinin yanına kodları, kostümleri ve sesleri bulmak ve onlara gitmek için bir arama çubuÄŸu ekler. Arama çubuÄŸunu kullandıktan sonra önceki veya sonraki ziyaret edilen konuma gitmek için kod alanında Ctrl+Sol ve Ctrl+SaÄŸ tuÅŸlarını kullanın.", + "find-bar/@info-developer-tools": "Bu eklenti öncesinde \"geliÅŸtirici araçları\" eklentisinin bir parçasıydı ancak artık buraya taşındı.", + "find-bar/@name": "Editörde arama çubuÄŸu", + "middle-click-popup/@description": "Kod alanına farenizin orta tuÅŸuyla tıklayın, bir bloÄŸun adını (veya parçalarını) yazabileceÄŸiniz ve bloÄŸu kod alanına sürükleyebileceÄŸiniz kayan bir giriÅŸ kutusu getirmek için Ctrl+BoÅŸluk veya Shift+Tıkla tuÅŸlarını kullanın. Aynı anda birden çok blok eklerken kutuyu kapatmamak için sürüklerken Shift tuÅŸunu basılı tutun.", + "middle-click-popup/@info-developer-tools": "Bu eklenti daha önce \"geliÅŸtirici araçları\" eklentisinin bir parçasıydı ancak buraya taşındı.", + "middle-click-popup/@name": "İsmine göre blok ekleme", + "jump-to-def/@description": "Orta fare düğmesiyle veya bloÄŸa Shift+Tıklayarak özel bir bloÄŸun tanımına gitmenize izin verir.", + "jump-to-def/@info-developer-tools": "Bu eklenti öncesinde \"geliÅŸtirici araçları\" eklentisinin bir parçasıydı ancak artık buraya taşındı.", + "jump-to-def/@name": "Özel blok tanımına git", + "editor-searchable-dropdowns/@description": "Blok listelerini aramanıza olanak tanır.", + "editor-searchable-dropdowns/@name": "Arama yapılabilen açılır listeler", + "data-category-tweaks-v2/@description": "Verideki (\"DeÄŸiÅŸkenler\") blok kategorisi için ince ayarlar saÄŸlar.", + "data-category-tweaks-v2/@name": "Veri kategorisi ince ayarları", + "data-category-tweaks-v2/@settings-name-moveReportersDown": "Veri bloklarını bölümünü deÄŸiÅŸkenler listesinin üstüne taşır", + "data-category-tweaks-v2/@settings-name-separateListCategory": "Ayrı Liste Kategorisi", + "data-category-tweaks-v2/@settings-name-separateLocalVariables": "Ayrı Yalnızca Kukla DeÄŸiÅŸkenleri", + "block-palette-icons/@description": "Blok kategorilerini açıklayan renkli dairelerin içine simgeler ekler.", + "block-palette-icons/@name": "Blok paleti kategori simgeleri", + "hide-flyout/@description": "İmleç üzerine getirilmezse blok paletini gizler. Geçici olarak gizlenmesini önlemek için kilit simgesine tıklayın. Alternatif olarak, \"kategori tıklaması\" modunu kullanın.", + "hide-flyout/@info-hoverExplanation": "\"Palet alanı üzerine gelin\" modu yalnızca görüntüleme alanını geniÅŸletir. Blokları çöpe atılmadan o alana sürükleyebilmek istiyorsanız, diÄŸer modlardan birini kullanın.", + "hide-flyout/@name": "Otomatik gizlenen blok paleti", + "hide-flyout/@settings-name-speed": "Animasyon hızı", + "hide-flyout/@settings-name-toggle": "Açık...", + "hide-flyout/@settings-select-speed-default": "Varsayılan", + "hide-flyout/@settings-select-speed-long": "YavaÅŸ", + "hide-flyout/@settings-select-speed-none": "Anında", + "hide-flyout/@settings-select-speed-short": "Hızlı", + "hide-flyout/@settings-select-toggle-category": "Kategori tıklaması", + "hide-flyout/@settings-select-toggle-cathover": "Kategori vurgusu", + "hide-flyout/@settings-select-toggle-hover": "Palet alanı kaydırıcısı", + "hide-flyout/@update": "Bu eklenti revize edildi ve birçok hatası düzeltildi.", + "mediarecorder/@description": "Editörün menü çubuÄŸuna projenizin videosunu kaydetmenizi saÄŸlayan bir \"kaydı baÅŸlat\" düğmesi ekler.", + "mediarecorder/@name": "Proje video kaydedicisi", + "drag-drop/@description": "Dosya yöneticinizden görselleri ve sesleri kukla bölmesine veya kostüm/ses listesine sürükleyebilmenizi saÄŸlar. Ayrıca metin dosyalarını listelere veya \"sor ve bekle\" soru giriÅŸlerine sürükleyebilirsiniz.", + "drag-drop/@name": "Dosya sürükleme ve bırakma", + "drag-drop/@settings-name-use-hd-upload": "HD yüklemeleri kullan", + "debugger/@name": "Hata ayıklayıcısı", + "debugger/@settings-name-log_broadcasts": "Bir haber salındığında günlüğe kaydet", + "debugger/@settings-name-log_clear_greenflag": "YeÅŸil bayraÄŸa tıklandığında günlükleri temizle", + "debugger/@settings-name-log_clone_create": "İkiz oluÅŸturulduÄŸunda günlüğe kaydet", + "debugger/@settings-name-log_failed_clone_creation": "Azami ikiz sayısı aşıldığında günlüğe kaydet", + "debugger/@settings-name-log_greenflag": "YeÅŸil bayraÄŸa tıklandığında günlüğe kaydet", + "debugger/@update": "Hata ayıklayıcı penceresinde yeni “Blok Dizeleri\" ve \"Performans\" sekmeleri.", + "pause/@description": "YeÅŸil bayrağın yanına bir duraklat düğmesi ekler.", + "pause/@name": "Duraklat butonu", + "mute-project/@description": "Projeyi susturmak/susturmayı kaldırmak için yeÅŸil bayraÄŸa ctrl ile tıklayın.", + "mute-project/@info-macOS": "MacOS'ta Ctrl tuÅŸu yerine Cmd tuÅŸunu kullanın.", + "mute-project/@name": "Sessiz proje oynatma modu", + "vol-slider/@description": "Sesi ayarlamak için yeÅŸil bayrağın yanına bir çubuk ekler.", + "vol-slider/@name": "Projelerde ses ayarı", + "vol-slider/@settings-name-defVol": "Varsayılan ses düzeyi", + "clones/@description": "Düzenleyicide sahnedeki toplam ikiz sayısını gösteren bir sayaç ekler.", + "clones/@name": "İkiz sayacı", + "clones/@settings-name-showicononly": "Sadece simgeyi göster", + "mouse-pos/@description": "Düzenleyicide farenizin x/y konumunu sahnenin üzerinde görüntüler.", + "mouse-pos/@name": "Fare konumu", + "color-picker/@description": "Renk seçicilere onaltılık kod giriÅŸleri ekler.", + "color-picker/@name": "Hex renk seçici", + "remove-sprite-confirm/@description": "Bir kuklayı silerken emin olup olmadığınızı sorar.", + "remove-sprite-confirm/@name": "Kukla silme onayı", + "block-count/@description": "Düzenleyicideki menü çubuÄŸunda bir projedeki toplam blok sayısını gösterir. Daha önce “kukla ve kod sayısı\"nın bir parçasıydı.", + "block-count/@name": "Blok sayısı", + "onion-skinning/@description": "Bir kostümü düzenlerken önceki veya sonraki kostümlerin ÅŸeffaf hâllerini gösterir. Kostüm editöründeki yakınlaÅŸtırma düğmelerinin altındaki düğmelerle kontrol edilir.", + "onion-skinning/@name": "Önceki kostümün izi", + "onion-skinning/@settings-name-afterTint": "Sonraki kostüm tonu", + "onion-skinning/@settings-name-beforeTint": "Önceki kostüm tonu", + "onion-skinning/@settings-name-default": "Varsayılan olarak etkinleÅŸtir", + "onion-skinning/@settings-name-layering": "Varsayılan katmanlama", + "onion-skinning/@settings-name-mode": "Varsayılan mod", + "onion-skinning/@settings-name-next": "Varsayılan sonraki kostümler", + "onion-skinning/@settings-name-opacity": "Saydamlık (%)", + "onion-skinning/@settings-name-opacityStep": "Saydamlık derecesi (%)", + "onion-skinning/@settings-name-previous": "Varsayılan önceki kostümler", + "onion-skinning/@settings-select-layering-behind": "Arka", + "onion-skinning/@settings-select-layering-front": "Ön", + "onion-skinning/@settings-select-mode-merge": "Görüntüleri birleÅŸtir", + "onion-skinning/@settings-select-mode-tint": "Renk tonu", + "paint-snap/@description": "Kostüm düzenleyicideki nesneleri sınırlayıcı kutulara ve vektör düğümlerine tutturun.", + "paint-snap/@name": "Kostüm editöründe tutturma", + "paint-snap/@settings-name-boxCenter": "Seçim kutusunun merkezinden tuttur", + "paint-snap/@settings-name-boxCorners": "Seçim kutusunun köşelerinden tuttur", + "paint-snap/@settings-name-boxEdgeMids": "Seçim kutusunun kenar orta noktalarından tuttur", + "paint-snap/@settings-name-enable-default": "Varsayılan olarak etkinleÅŸtir", + "paint-snap/@settings-name-guide-color": "Kılavuz rengini tuttur", + "paint-snap/@settings-name-objectCenters": "Nesnelerin merkezlerine tuttur", + "paint-snap/@settings-name-objectCorners": "Nesnelerin köşelerine tuttur", + "paint-snap/@settings-name-objectEdges": "Nesnelerin kenarlarına tuttur", + "paint-snap/@settings-name-objectMidlines": "Nesnelerin orta hatlarına tuttur", + "paint-snap/@settings-name-pageAxes": "Sayfanın x ve y eksenlerine tuttur", + "paint-snap/@settings-name-pageCenter": "Sayfanın merkezine tuttur", + "paint-snap/@settings-name-pageCorners": "Sayfanın köşelerine tuttur", + "paint-snap/@settings-name-pageEdges": "Sayfanın kenarlarına tuttur", + "paint-snap/@settings-name-threshold": "Tutturma mesafesi", + "default-costume-editor-color/@description": "Kostüm düzenleyici tarafından kullanılan varsayılan renkleri ve kenarlık boyutunu deÄŸiÅŸtirir.", + "default-costume-editor-color/@name": "ÖzelleÅŸtirilebilir varsayılan kostüm düzenleyicisi renkleri", + "default-costume-editor-color/@settings-name-fill": "Varsayılan doldurma rengi", + "default-costume-editor-color/@settings-name-persistence": "Araçları deÄŸiÅŸtirdikten sonra sıfırlanma yerine önceki rengi kullan", + "default-costume-editor-color/@settings-name-stroke": "Varsayılan kenarlık rengi", + "default-costume-editor-color/@settings-name-strokeSize": "Varsayılan kenarlık boyutu", + "bitmap-copy/@description": "Kostüm düzenleyiciden bir bitmap görüntüsünü sistem panosuna kopyalamanıza izin verir. Böylece görselleri baÅŸka sitelerle veya yazılımlarla paylaÅŸabilirsiniz.", + "bitmap-copy/@info-norightclick": "\"SaÄŸ tıkla → kopyala\" desteklenmez. Bir bitmap görüntüsü seçiliyken Ctrl + C tuÅŸlarına basmalısınız.", + "bitmap-copy/@name": "Bitmap resimleri kopyala", + "2d-color-picker/@description": "Kostüm düzenleyicideki doygunluk ve parlaklık kaydırıcılarını 2B renk seçiciyle deÄŸiÅŸtirir. Tek bir eksendeki deÄŸerleri deÄŸiÅŸtirmek için imleci sürüklerken Shift tuÅŸunu basılı tutun.", + "2d-color-picker/@name": "2B renk seçici", + "better-img-uploads/@description": "Kalite kaybını önlemek için, yüklenen bitmap görüntüleri otomatik olarak SVG (vektörel) görüntülere dönüştüren \"kostüm yükle\" düğmesinin üzerine yeni bir düğme ekler.", + "better-img-uploads/@info-notSuitableEdit": "Resmi yükledikten sonra düzenlemeyi düşünüyorsanız, HD yükle düğmesini kullanmaktan kaçının.", + "better-img-uploads/@name": "HD görsel yüklemeleri", + "better-img-uploads/@settings-name-fitting": "Görüntü boyutlandırma", + "better-img-uploads/@settings-select-fitting-fill": "Sahneyi doldurmak için gerdir", + "better-img-uploads/@settings-select-fitting-fit": "Sahneye sığdırmak için küçült", + "better-img-uploads/@settings-select-fitting-full": "Orijinal boyut", + "pick-colors-from-stage/@description": "Kostüm editöründeki damla aracının renkleri sahneden de seçmesine izin verir.", + "pick-colors-from-stage/@name": "Kostüm düzenleyicide sahne renklerini seç", + "custom-block-shape/@description": "Blokların dolgusunu, köşe yarıçapını ve çentik yüksekliÄŸini ayarlayın.", + "custom-block-shape/@info-paddingWarning": "Dolgu boyutunun küçültülmesi yalnızca sizin tarafınızdan görülebilir. Bu nedenle projeleriniz diÄŸer kullanıcılar tarafından görüntülendiÄŸinde komut dosyalarınız çakışabilir.", + "custom-block-shape/@name": "ÖzelleÅŸtirilebilir blok ÅŸekli", + "custom-block-shape/@preset-description-default2": "Scratch 2.0 bloklarına benzeyen bir görünüm", + "custom-block-shape/@preset-description-default3": "Scratch 3.0 bloklarının normal görünümü", + "custom-block-shape/@preset-description-flat2": "Çentikleri ve köşeleri kaldırılmış Scratch 2.0 blokları", + "custom-block-shape/@preset-description-flat3": "Çentikleri ve köşeleri kaldırılmış Scratch 3.0 blokları", + "custom-block-shape/@preset-name-default2": "2.0 Blokları", + "custom-block-shape/@preset-name-default3": "3.0 Bloklar", + "custom-block-shape/@preset-name-flat2": "2.0 Düz", + "custom-block-shape/@preset-name-flat3": "3.0 Düz", + "custom-block-shape/@settings-name-cornerSize": "Köşe boyutu (%0-300)", + "custom-block-shape/@settings-name-notchSize": "Çentik yüksekliÄŸi (%0-150)", + "custom-block-shape/@settings-name-paddingSize": "Dolgu boyutu (%50-200)", + "zebra-striping/@description": "Aynı tür blokların, birbiri içine yerleÅŸtirildiÄŸinde açık ve koyu tonlar arasında geçiÅŸ yapmasını saÄŸlar. Bu aynı zamanda zebra çizgileri olarak da bilinir.", + "zebra-striping/@name": "İç içe olan blok renklerini deÄŸiÅŸtir", + "zebra-striping/@settings-name-intensity": "YoÄŸunluk (%0-100)", + "zebra-striping/@settings-name-shade": "Ton", + "zebra-striping/@settings-select-shade-darker": "Daha koyu", + "zebra-striping/@settings-select-shade-lighter": "Daha açık", + "editor-theme3/@description": "Düzenleyicide her bir kategori için blok renklerini düzenleyin.", + "editor-theme3/@name": "ÖzelleÅŸtirilebilir blok renkleri", + "editor-theme3/@preset-description-black": "Blok arka planlarını siyah yapar", + "editor-theme3/@preset-description-dark": "Varsayılan renklerin koyu versiyonları", + "editor-theme3/@preset-description-original": "Scratch 2.0'dan orijinal blok renkleri", + "editor-theme3/@preset-description-tweaks": "2.0'dan ilham alan renklerle Olaylar, Kontrol ve Özel bloklar", + "editor-theme3/@preset-name-black": "Siyah", + "editor-theme3/@preset-name-dark": "Koyu", + "editor-theme3/@preset-name-original": "2.0 Renkleri", + "editor-theme3/@preset-name-tweaks": "3.0 İnce Ayarları", + "editor-theme3/@settings-name-Pen-color": "uzantılar", + "editor-theme3/@settings-name-comment-color": "Yorumlar", + "editor-theme3/@settings-name-control-color": "kontrol", + "editor-theme3/@settings-name-custom-color": "özel", + "editor-theme3/@settings-name-data-color": "deÄŸiÅŸkenler", + "editor-theme3/@settings-name-data-lists-color": "listeler", + "editor-theme3/@settings-name-events-color": "olaylar", + "editor-theme3/@settings-name-input-color": "Blok giriÅŸleri", + "editor-theme3/@settings-name-looks-color": "görünüm", + "editor-theme3/@settings-name-motion-color": "hareket", + "editor-theme3/@settings-name-operators-color": "operatörler", + "editor-theme3/@settings-name-sensing-color": "algılama", + "editor-theme3/@settings-name-sounds-color": "ses", + "editor-theme3/@settings-name-text": "Yazı rengi", + "editor-theme3/@settings-select-text-black": "Siyah", + "editor-theme3/@settings-select-text-colorOnBlack": "Siyah arka plan üzerine renkli", + "editor-theme3/@settings-select-text-colorOnWhite": "Beyaz arka plan üzerine renkli", + "editor-theme3/@settings-select-text-white": "Beyaz", + "editor-theme3/@update": "\"Düzenleyici koyu modu ve özelleÅŸtirilebilir renkler\"deki \"Koyu yorumlar\" ayarı buraya taşındı ve artık özelleÅŸtirilebilir.", + "custom-block-text/@description": "Bloklardaki metnin kalınlığını deÄŸiÅŸtirir ve isteÄŸe baÄŸlı olarak bir metin gölgesi ekler.", + "custom-block-text/@name": "ÖzelleÅŸtirilebilir blok metin stili", + "custom-block-text/@settings-name-bold": "Kalın metin", + "custom-block-text/@settings-name-shadow": "Metin altında gölge", + "editor-colored-context-menus/@description": "Blok saÄŸ tıklandığında çıkan baÄŸlam menülerini renkli hale getirir.", + "editor-colored-context-menus/@name": "Renkli baÄŸlam menüleri", + "editor-stage-left/@description": "Sahneyi Scratch 2.0'daki gibi editörün sol tarafına taşır.", + "editor-stage-left/@info-reverseOrder": "Sahne üzerindeki düğmelerin konumunu deÄŸiÅŸtirmek için \"ters çevrilmiÅŸ proje kontrolleri\" eklentisini kullanın.", + "editor-stage-left/@name": "Sahneyi sol tarafta göster", + "editor-buttons-reverse-order/@description": "Scratch 2.0'daki gibi yeÅŸil bayrak ve durdurma düğmelerini saÄŸa, tam ekran düğmesini ise sola götürür.", + "editor-buttons-reverse-order/@name": "Ters çevrilmiÅŸ proje kontrolleri", + "variable-manager/@description": "Editörde \"sesler\" sekmesinin yanına deÄŸiÅŸken ve listelerinizi kolaylıkla yönetebileceÄŸiniz bir sekme ekler.", + "variable-manager/@name": "DeÄŸiÅŸken yöneticisi", + "variable-manager/@update": "Liste ögeleri artık Shift tuÅŸuna basılmadan eklenebilir.", + "search-sprites/@description": "Karakterleri ismine göre aramak için kukla bölmesine bir arama kutusu ekler.", + "search-sprites/@name": "İsmine göre kukla arama", + "sprite-properties/@description": "Varsayılan olarak - Scratch 2.0'daki gibi - kukla özellikleri panelini gizler. Özellikler panelini tekrar göstermek için seçili kuklanın üzerindeki bilgi düğmesine veya kuklaya çift tıklayın. Tekrar gizlemek için özellikler panelindeki daraltma düğmesine veya kuklaya çift tıklayın.", + "sprite-properties/@name": "Daraltılmış kukla özellikleri", + "sprite-properties/@settings-name-autoCollapse": "Fare kukla panelinden çıktığında otomatik olarak daralt", + "sprite-properties/@settings-name-hideByDefault": "Varsayılan olarak paneli daralt", + "sprite-properties/@settings-name-transitionDuration": "Animasyon hızı", + "sprite-properties/@settings-select-transitionDuration-default": "Varsayılan", + "sprite-properties/@settings-select-transitionDuration-long": "YavaÅŸ", + "sprite-properties/@settings-select-transitionDuration-none": "Ani", + "sprite-properties/@settings-select-transitionDuration-short": "Hızlı", + "gamepad/@description": "Bir USB veya Bluetooth denetleyicisi/oyun kumandası kullanarak projelerle etkileÅŸim kurun.", + "gamepad/@name": "Oyun kumandası desteÄŸi", + "gamepad/@settings-name-hide": "Hiçbir denetleyici algılanmadığında ayarlar düğmesini gizle", + "editor-sounds/@description": "Blokları baÄŸladığınızda veya sildiÄŸinizde ses efektleri çalar.", + "editor-sounds/@name": "Editör ses efektleri", + "folders/@description": "Kostüm, ses ve kukla bölmesine klasörler ekleme imkânı tanıt. Bir klasör oluÅŸturmak için herhangi bir kuklaya saÄŸ tıklayın ve \"klasör oluÅŸtur\" seçeneÄŸine tıklayın. Klasörü açmak veya kapatmak için bir klasöre tıklayın. Bir kuklayı hangi klasörlere taşıyabileceÄŸinizi görmek için saÄŸ tıklayın veya alternatif olarak açık bir klasöre sürükleyip bırakın. Bu özellik, kuklalarınızın adlarının başına \"[klasörAdı]//\" ekleyerek çalışır.", + "folders/@info-notice-folders-are-public": "Sadece bu özelliÄŸi etkinleÅŸtiren kullanıcılar, projenizdeki klasörleri görebilir. DiÄŸer herkes kuklaların listelerini normal olarak görecektir (klasör olmayacaktır).", + "folders/@name": "Kukla klasörleri", + "block-switching/@description": "İlgili bloÄŸa geçmek için bloÄŸa saÄŸ tıklayın.", + "block-switching/@name": "Blok deÄŸiÅŸtirme", + "block-switching/@settings-name-control": "Kontrol blokları", + "block-switching/@settings-name-customargs": "Özel blok argümanları", + "block-switching/@settings-name-customargsmode": "Gösterilen özel blok argümanları seçenekleri", + "block-switching/@settings-name-data": "Veri blokları", + "block-switching/@settings-name-event": "Olay blokları", + "block-switching/@settings-name-extension": "Uzantı blokları", + "block-switching/@settings-name-looks": "Görünüm blokları", + "block-switching/@settings-name-motion": "Hareket blokları", + "block-switching/@settings-name-noop": "Kendine bloÄŸu deÄŸiÅŸtirme seçeneÄŸini göster", + "block-switching/@settings-name-operator": "Operatör blokları", + "block-switching/@settings-name-sensing": "Algılama blokları", + "block-switching/@settings-name-sound": "Ses blokları", + "block-switching/@settings-select-customargsmode-all": "Kukla'daki tüm özel bloklardaki argümanlar", + "block-switching/@settings-select-customargsmode-defOnly": "Kendi özel bloÄŸundaki argümanlar", + "load-extensions/@description": "Düzenleyicideki blok kategorisi menüsünde müzik, kalem ve diÄŸer uzantıları otomatik olarak gösterir.", + "load-extensions/@name": "Eklentileri otomatik olarak ekle", + "load-extensions/@settings-name-music": "Müzik", + "load-extensions/@settings-name-pen": "Kalem", + "load-extensions/@settings-name-text2speech": "Metinden Sese", + "load-extensions/@settings-name-translate": "Çeviri", + "custom-zoom/@description": "Kod alanındaki blokların yakınlaÅŸtırmasının minimum, maksimum, hız ve baÅŸlangıç boyutu için özel ayarları seçin ve kontrolleri otomatik olarak gizleyin.", + "custom-zoom/@name": "ÖzelleÅŸtirilebilir kod alanı büyütmesi", + "custom-zoom/@settings-name-autohide": "Büyütme Kontrollerini Otomatik Gizle", + "custom-zoom/@settings-name-maxZoom": "En Fazla YakınlaÅŸtırma (%100-500)", + "custom-zoom/@settings-name-minZoom": "Minimum YakınlaÅŸtırma (%1-100)", + "custom-zoom/@settings-name-speed": "Otomatik Gizleme Animasyon Hızı", + "custom-zoom/@settings-name-startZoom": "BaÅŸlangıç Büyüklüğü (%50-500)", + "custom-zoom/@settings-name-zoomSpeed": "Büyütme Hızı (%50-200)", + "custom-zoom/@settings-select-speed-default": "Varsayılan", + "custom-zoom/@settings-select-speed-long": "YavaÅŸ", + "custom-zoom/@settings-select-speed-none": "Anında", + "custom-zoom/@settings-select-speed-short": "Hızlı", + "initialise-sprite-position/@description": "Yeni kuklanın varsayılan x/y konumunu deÄŸiÅŸtirin.", + "initialise-sprite-position/@name": "ÖzelleÅŸtirilebilir yeni eklenen kukla konumu", + "initialise-sprite-position/@settings-name-duplicate": "Kuklalar çoÄŸaltıldığında gerçekleÅŸecek davranış", + "initialise-sprite-position/@settings-name-library": "Kütüphaneden gelen kuklalarının yerlerini rastgele belirle", + "initialise-sprite-position/@settings-name-x": "X konumu", + "initialise-sprite-position/@settings-name-y": "Y konumu", + "initialise-sprite-position/@settings-select-duplicate-custom": "Belirtilen x/y deÄŸerlerine gönder", + "initialise-sprite-position/@settings-select-duplicate-keep": "Orijinal kuklayla aynı konumda tut", + "initialise-sprite-position/@settings-select-duplicate-randomize": "Rastgele bir konuma gönder", + "blocks2image/@description": "Blokları SVG/PNG olarak dışa aktarmak için kod alanına saÄŸ tıklayın.", + "blocks2image/@name": "Blokları resim olarak kaydedin", + "remove-curved-stage-border/@description": "Sahnenin etrafındaki kavisli çerçeveyi kaldırır. Bu sayede sahnenin köşelerinin görünmesine izin verir.", + "remove-curved-stage-border/@name": "Kavisli sahne kenarlığını kaldır", + "transparent-orphans/@description": "Artık bloklar (üstte ÅŸapka bloÄŸu olanlar dışında) ve sürüklenen bloklar için ayrı seçeneklerle düzenleyicide blokların ÅŸeffaflığını ayarlayın.", + "transparent-orphans/@name": "Blok saydamlığı", + "transparent-orphans/@settings-name-block": "Blok saydamlığı (%)", + "transparent-orphans/@settings-name-dragged": "Sürüklenirkenki saydamlık (%)", + "transparent-orphans/@settings-name-orphan": "Fazlalıkkenki saydamlık (%)", + "paint-by-default/@description": "Kitaplığı varsayılan olarak açan \"Bir Kukla/Kostüm/Arka Plan/Ses Seç\" düğmelerinin varsayılan eylemini deÄŸiÅŸtirir.", + "paint-by-default/@name": "Varsayılan olarak kostümü boya", + "paint-by-default/@settings-name-backdrop": "Dekor ekle", + "paint-by-default/@settings-name-costume": "Kostüm ekle", + "paint-by-default/@settings-name-sound": "Ses ekle", + "paint-by-default/@settings-name-sprite": "Kukla ekle", + "paint-by-default/@settings-select-backdrop-library": "Kütüphane", + "paint-by-default/@settings-select-backdrop-paint": "Boya", + "paint-by-default/@settings-select-backdrop-surprise": "Sürpriz", + "paint-by-default/@settings-select-backdrop-upload": "Yükle", + "paint-by-default/@settings-select-costume-library": "Kütüphane", + "paint-by-default/@settings-select-costume-paint": "Boya", + "paint-by-default/@settings-select-costume-surprise": "Sürpriz", + "paint-by-default/@settings-select-costume-upload": "Yükle", + "paint-by-default/@settings-select-sound-library": "Kütüphane", + "paint-by-default/@settings-select-sound-record": "Kayıt", + "paint-by-default/@settings-select-sound-surprise": "Sürpriz", + "paint-by-default/@settings-select-sound-upload": "Yükle", + "paint-by-default/@settings-select-sprite-library": "Kütüphane", + "paint-by-default/@settings-select-sprite-paint": "Boya", + "paint-by-default/@settings-select-sprite-surprise": "Sürpriz", + "paint-by-default/@settings-select-sprite-upload": "Yükle", + "block-cherry-picking/@description": "Ctrl tuÅŸuna basılı tutarken tek bir bloÄŸu (aÅŸağısına eklenen tüm yığınla birlikte almak yerine) kodun aralarından alabilme yeteneÄŸi ekler.", + "block-cherry-picking/@info-flipControls": "\"Kontrolleri çevir\" etkinleÅŸtirilmiÅŸse, blokları tek tek almak varsayılan davranış olacaktır. Yığının tamamını almak için Ctrl tuÅŸuna basılı tutun.", + "block-cherry-picking/@info-macContextDisabled": "macOS'ta Ctrl tuÅŸu yerine Cmd tuÅŸunu kullanın.", + "block-cherry-picking/@name": "Ctrl tuÅŸu ile tek bir blok alın", + "block-cherry-picking/@settings-name-invertDrag": "Kontrolleri çevir", + "hide-new-variables/@description": "Yeni oluÅŸturulan deÄŸiÅŸkenler veya listeler için otomatik olarak görüntüler oluÅŸturmayın.", + "hide-new-variables/@name": "Yeni eklenen deÄŸiÅŸkenleri gizle", + "editor-extra-keys/@description": "\"() tuÅŸuna basılı mı?\" ve \"() tuÅŸuna basıldığında\" bloklarının açılır menülerine enter, nokta ve virgül gibi fazladan tuÅŸlar tuÅŸlar ekler. Bu anahtarlar, bu eklentiye sahip olmayan kullanıcılarda bile çalışacaktır.", + "editor-extra-keys/@info-experimentalKeysWarn": "\"Deneysel tuÅŸlar\" eÅŸittir, eÄŸik çizgi, noktalı virgül ve daha fazlasını içerir. Tüm iÅŸletim sistemlerinde veya klavye düzenlerinde çalışmayabilirler.", + "editor-extra-keys/@info-shiftKeysWarn": "\"Shift tuÅŸları\", çoÄŸunlukla Shift tuÅŸunu ve bir sayı tuÅŸunu gerektiren tuÅŸları içerir, heÅŸtek, ünlem iÅŸareti ve daha fazlası gibi. Bu tuÅŸlar yalnızca \"() tuÅŸuna basıldığında\" bloÄŸu ile çalışır ve tüm iÅŸletim sistemlerinde veya klavye düzenlerinde çalışmaz.", + "editor-extra-keys/@name": "Fazladan tuÅŸ seçenekleri", + "editor-extra-keys/@settings-name-experimentalKeys": "Deneysel tuÅŸları göster", + "editor-extra-keys/@settings-name-shiftKeys": "Shift tuÅŸlarını göster", + "hide-delete-button/@description": "Kuklalarda, kostümlerde ve seslerde silme düğmesini (çöp kutusu simgesini) gizler. SaÄŸ tıklama baÄŸlam menüsü kullanılarak yine de silinebilirler.", + "hide-delete-button/@name": "Sil düğmesini gizle", + "hide-delete-button/@settings-name-costumes": "Kostümler ve dekorlar", + "hide-delete-button/@settings-name-sounds": "Sesler", + "hide-delete-button/@settings-name-sprites": "Kuklalar", + "no-script-bumping/@description": "Üst üste binen kodların hareket etmesine neden olmadan kodların taşınmasına ve deÄŸiÅŸtirilmesine izin verir.", + "no-script-bumping/@name": "Üst üste binen kodları otomatik olarak yana kaydırmama", + "disable-stage-drag-select/@description": "Özellikle sürüklenebilir olarak ayarlanmış olanlar dışında, düzenleyicideyken sahnedeki kuklaları sürükleme özelliÄŸini kaldırır. Bir kuklayı normal ÅŸekilde taşımak için sürüklerken Shift tuÅŸuna basılı tutun.", + "disable-stage-drag-select/@name": "Düzenleyicide sürüklenemeyen kuklalar", + "move-to-top-bottom/@description": "Kostümleri ve sesleri, listenin en üstüne ya da en altına taşımak için saÄŸ tıklama baÄŸlam menüsüne seçenekler ekler.", + "move-to-top-bottom/@info-developer-tools": "Bu eklenti öncesinde \"geliÅŸtirici araçları\" eklentisinin bir parçasıydı ancak artık buraya taşındı.", + "move-to-top-bottom/@name": "Kostümü yukarı veya aÅŸağı taşı", + "disable-paste-offset/@description": "ÇoÄŸaltılan ögeleri kostüm düzenleyicide hafifçe kaydırmak yerine orijinal konumlarına yapıştırın.", + "disable-paste-offset/@info-vanilla": "Bu davranış bu eklenti olmadan da ögeye Alt+Tıklamayla gerçekleÅŸtirilebilir.", + "disable-paste-offset/@name": "Yapıştırılan öğeleri kenara kaydırmama", + "block-duplicate/@description": "Alt tuÅŸunu basılı tutarken bir kodu sürükleyerek onu hızlıca çoÄŸaltın. Altına eklenen yığının tamamı yerine yalnızca tek bir bloÄŸu çoÄŸaltmak için Ctrl tuÅŸuna da basılı tutun.", + "block-duplicate/@info-mac": "macOS’ta Alt tuÅŸu yerine Option tuÅŸunu ve Kontrol tuÅŸu yerine Komut tuÅŸunu kullanın.", + "block-duplicate/@name": "Alt tuÅŸuyla kodu çoÄŸalt", + "swap-local-global/@description": "Mevcut bir deÄŸiÅŸkeni veya listeyi yeniden adlandırırken daha fazla seçenek ekler: \"Tüm kuklalar için\" ve \"Yalnızca bu kukla için\" arasında deÄŸiÅŸiklik yapılmasına ve deÄŸiÅŸkenlerin bulutta depolanıp depolanmayacağına izin verir. Ayrıca durumunu hızlı bir ÅŸekilde deÄŸiÅŸtirmek için deÄŸiÅŸkene/listeye saÄŸ tıklandığında yeni bir seçenek ekler.", + "swap-local-global/@name": "\"Tüm kuklalar için\" ve \"Yalnızca bu kukla için\" arasında geçiÅŸ yapma", + "editor-comment-previews/@description": "Fareyle daraltılmış yorumların ve blokların üzerine gelerek yorumların içeriÄŸinin ön izlemesini görmeye olanak tanır. Bunu ekran dışındaki yorumları görüntülemek için, ön izlemesiyle alttan bir döngü bloÄŸu belirlemek için, birçok uzun yorumu küçük bir alana sığdırmak için ve çok daha fazlası için kullanabilirsiniz.", + "editor-comment-previews/@name": "Düzenleyici yorumları ön izlemeleri", + "editor-comment-previews/@settings-name-delay": "Gecikme süresi", + "editor-comment-previews/@settings-name-follow-mouse": "Fareyi takip et", + "editor-comment-previews/@settings-name-hover-view": "Daraltılmış yorumları ön izlemek için gezdirin", + "editor-comment-previews/@settings-name-hover-view-block": "Ekli yorumları ön izlemek için blokların üzerine gelin", + "editor-comment-previews/@settings-name-hover-view-procedure": "Tanım yorumlarını ön izlemek için özel blokların üzerine gelin", + "editor-comment-previews/@settings-name-reduce-animation": "Animasyonu azalt", + "editor-comment-previews/@settings-name-reduce-transparency": "Saydamlığı azalt", + "editor-comment-previews/@settings-select-delay-long": "Uzun", + "editor-comment-previews/@settings-select-delay-none": "Yok", + "editor-comment-previews/@settings-select-delay-short": "Kısa", + "columns/@description": "Blok kategorisi menüsünü iki sütuna böler ve Scratch 2.0'daki gibi blok paletini en üstüne taşır.", + "columns/@name": "İki sütunlu kategori menüsü", + "number-pad/@description": "Yalnızca dokunmatik ekranlı cihazlar yerine tüm cihazlarda sayı alanlarını düzenlerken Scratch'in sayısal tuÅŸ takımı giriÅŸini görebilmenizi saÄŸlar.", + "number-pad/@info-explanation": "\"x'i ... yap\" gibi belirli bloklardan gelen sayı giriÅŸlerini düzenlerken bir sayısal tuÅŸ takımı gösterilir.", + "number-pad/@name": "Sayısal tuÅŸ takımını her zaman göster", + "script-snap/@description": "BloÄŸu otomatik olarak kod alanı noktalarına hizalamak için bir kodu hareket ettirin.", + "script-snap/@name": "Kodları ızgaraya hizala", + "script-snap/@preset-name-default": "Varsayılan", + "script-snap/@preset-name-half-block": "Yarım blok", + "script-snap/@preset-name-whole-block": "Tam blok", + "script-snap/@settings-name-grid": "Izgara boyutu (piksel)", + "fullscreen/@description": "Proje oynatıcısının tam ekran modundaki bazı istenmeyen efektlerini düzeltir, tarayıcınızın tam ekran modunda açar ve yeÅŸil bayrak araç çubuÄŸunu gizler.", + "fullscreen/@info-hideToolbarNotice": "Araç çubuÄŸunu gizlemeyi seçerseniz, proje oynatıcısının tam ekran modundan çıkmak için Esc tuÅŸunu kullanabileceÄŸinizi unutmayın.", + "fullscreen/@name": "GeliÅŸtirilmiÅŸ tam ekran", + "fullscreen/@settings-name-browserFullscreen": "Tam ekran proje oynatıcısını, tam ekran tarayıcı modunda aç", + "fullscreen/@settings-name-hideToolbar": "Tam ekrandayken araç çubuÄŸunu gizle", + "hide-stage/@description": "Sahne alanını ve kukla bölmesini gizleyen \"küçük sahne\" ve \"büyük sahne\" düğmelerinin yanına bir düğme daha ekleyerek kod alanını çok daha büyük hâle getirir.", + "hide-stage/@name": "Sahneyi ve kukla bölmesini gizle", + "editor-stepping/@description": "Projede çalışmakta olan bloklara renkli bir vurgu ekler.", + "editor-stepping/@name": "Çalışan blok kenarlığı", + "editor-stepping/@settings-name-highlight-color": "Vurgu rengi" +} \ No newline at end of file diff --git a/src/addons/addons-l10n-settings/zh-tw.json b/src/addons/addons-l10n-settings/zh-tw.json new file mode 100644 index 0000000000000000000000000000000000000000..b5486f4d5820e252178562bbd5aac0dcff1555d8 --- /dev/null +++ b/src/addons/addons-l10n-settings/zh-tw.json @@ -0,0 +1,326 @@ +{ + "cat-blocks/@description": "顯示來自 2020 æ„šäººç¯€çš„è²“è²“ç©æœ¨ã€‚", + "cat-blocks/@info-watch": "“觀察鼠標光標â€è¨­ç½®å¯èƒ½æœƒå½±éŸ¿ç·¨è¼¯å™¨æ‰“開時的性能。", + "cat-blocks/@name": "è²“ç©æœ¨", + "cat-blocks/@settings-name-watch": "注視游標", + "editor-devtools/@description": "å‘編輯器添加新的列表é¸é …:複製 / è²¼ä¸Šã€æ›´å¥½åœ°æ¸…ç†ç­‰ï¼", + "editor-devtools/@name": "開發者工具", + "editor-devtools/@settings-name-enableCleanUpPlus": "增強的「整ç†ç©æœ¨ã€åŠŸèƒ½", + "editor-devtools/@settings-name-enablePasteBlocksAtMouse": "在游標åœé§è™•è²¼ä¸Šç©æœ¨", + "find-bar/@description": "讓你快速找到程å¼ã€é€ åž‹ã€éŸ³æ•ˆçš„æŸ¥æ‰¾å·¥å…·ã€‚在你開始查找後,你還å¯ä»¥åœ¨ç¨‹å¼ç·¨è¼¯å€è£¡ç”¨ Ctrl+å‘å·¦éµã€Ctrl+å‘å³éµä¾†æ‰¾åˆ°ä¸Šä¸€å€‹ã€ä¸‹ä¸€å€‹æ‰€è¦æŸ¥æ‰¾çš„內容。", + "find-bar/@info-developer-tools": "é€™å€‹æ“´å……åŠŸèƒ½ä¹‹å‰æ˜¯åœ¨ã€Œé–‹ç™¼å·¥å…·ã€è£¡ï¼Œç¾åœ¨ç§»è‡³é€™å…’了ï¼", + "find-bar/@name": "查找程å¼åŠŸèƒ½", + "middle-click-popup/@info-developer-tools": "æ­¤æ’件以剿˜¯â€œé–‹ç™¼äººå“¡å·¥å…·â€æ’件的一部分,但已移至此處。", + "middle-click-popup/@name": "ç·¨è¼¯ç©æœ¨çš„åå­—", + "jump-to-def/@description": "è®“ä½ èƒ½ç”¨æ»‘é¼ ä¸­éµæˆ–是 Shift+å·¦éµä¾†å¿«é€Ÿæ‰¾åˆ°å‡½å¼çš„定義。", + "jump-to-def/@info-developer-tools": "é€™å€‹æ“´å……åŠŸèƒ½ä¹‹å‰æ˜¯åœ¨ã€Œé–‹ç™¼å·¥å…·ã€è£¡ï¼Œç¾åœ¨ç§»è‡³é€™å…’了ï¼", + "jump-to-def/@name": "移至函å¼å®šç¾©ç©æœ¨", + "editor-searchable-dropdowns/@description": "åœ¨ç©æœ¨ä¸‹æ‹‰æ¸…å–®å¤šäº†ä¸€å€‹å¯æœå°‹çš„æ¬„ä½ã€‚", + "editor-searchable-dropdowns/@name": "坿œå°‹çš„下拉清單", + "data-category-tweaks-v2/@description": "è®“ç©æœ¨é¡žåˆ¥ä¸­çš„資料(變é‡ã€æ¸…單)有更好的分類。", + "data-category-tweaks-v2/@name": "更好的資料分類", + "data-category-tweaks-v2/@settings-name-moveReportersDown": "å°‡ç©æœ¨ç§»å‹•到創建資料的上方", + "data-category-tweaks-v2/@settings-name-separateListCategory": "å–®ç¨å°‡æ¸…單分類", + "data-category-tweaks-v2/@settings-name-separateLocalVariables": "把é©ç”¨æ–¼ç•¶å‰è§’色的資料分類", + "block-palette-icons/@description": "除了以é¡è‰²åˆ†é¡žç©æœ¨ï¼Œåœ¨è£¡é¢åŠ ä¸Šé¡žåˆ¥åœ–ç¤ºã€‚", + "block-palette-icons/@name": "ç©æœ¨åˆ†é¡žåœ–示", + "hide-flyout/@description": "éš±è—工具箱,在æŸäº›æ¢ä»¶ä¸‹æ‰é¡¯ç¤ºã€‚顯示的工具箱還å¯ä»¥ç”¨åœ–釘按鈕暫時固定它ï¼", + "hide-flyout/@info-hoverExplanation": "「懸åœåœ¨å·¥å…·ç®±ä¸Šã€æ¨¡å¼å¯èƒ½æœƒåœ¨ä½ æ‹–曳編輯å€ä¸Šçš„ç©æœ¨æ™‚ä¸å°å¿ƒç§»é™¤ï¼Œå¦‚果你怕出事,å¯ä»¥å…ˆè©¦è©¦å…¶å®ƒæ¨¡å¼ã€‚", + "hide-flyout/@name": "自動隱è—程å¼å·¥å…·ç®±", + "hide-flyout/@settings-name-speed": "動畫速度", + "hide-flyout/@settings-name-toggle": "觸發æ¢ä»¶", + "hide-flyout/@settings-select-speed-default": "é è¨­", + "hide-flyout/@settings-select-speed-long": "æ…¢", + "hide-flyout/@settings-select-speed-none": "ç«‹å³", + "hide-flyout/@settings-select-speed-short": "快速", + "hide-flyout/@settings-select-toggle-category": "點擊類別時", + "hide-flyout/@settings-select-toggle-cathover": "懸åœåœ¨é¡žåˆ¥ä¸Š", + "hide-flyout/@settings-select-toggle-hover": "懸åœåœ¨å·¥å…·ç®±ä¸Š", + "hide-flyout/@update": "這個擴充功能修正éŽäº†ï¼Œå¾ˆå¤šå·²çŸ¥å•題已經修復。", + "mediarecorder/@description": "在程å¼ç·¨è¼¯é ä¸Šçš„工具列添加一個「開始錄影ã€çš„功能,讓你å¯ä»¥å°‡å°ˆæ¡ˆé‹è¡Œçš„éŽç¨‹éŒ„製下來。", + "mediarecorder/@name": "專案視頻錄製", + "drag-drop/@description": "讓你å¯ä»¥æŠŠæª”æ¡ˆç›´æŽ¥æ‹–å…¥è§’è‰²é¢æ¿å€ç„¶å¾Œç›´æŽ¥ä¸Šå‚³ï¼Œç•¶ç„¶ï¼Œä½ é‚„能將文字文件拖曳到文字輸入框裡。", + "drag-drop/@name": "拖曳檔案上傳", + "drag-drop/@settings-name-use-hd-upload": "使用高清圖片上傳", + "debugger/@name": "åµéŒ¯å™¨", + "debugger/@settings-name-log_broadcasts": "記錄廣播訊æ¯", + "debugger/@settings-name-log_clear_greenflag": "當綠旗被點擊後清除紀錄", + "debugger/@settings-name-log_clone_create": "記錄分身創建", + "debugger/@settings-name-log_failed_clone_creation": "ç•¶åˆ†èº«çš„å‰µå»ºè¶…éŽæ™‚記錄", + "debugger/@settings-name-log_greenflag": "記錄綠旗點擊", + "debugger/@update": "åµéŒ¯å™¨é¢æ¿è£¡çš„æ–°çš„「執行緒ã€èˆ‡ã€Œæ•ˆèƒ½ã€é ç±¤ã€‚", + "pause/@description": "åœ¨é»žæ“Šç¶ æ——æŒ‰éˆ•æ—æ·»åŠ ä¸€å€‹æš«åœçš„æŒ‰éˆ•。", + "pause/@name": "ç·¨è­¯å™¨æš«åœæŒ‰éˆ•", + "mute-project/@description": "åœ¨ä½ é»žæ“Šç¶ æ——æ™‚åŒæ™‚æŒ‰ä½ Ctrl éµå¯ä»¥åˆ‡æ›éœéŸ³æ¨¡å¼ã€‚", + "mute-project/@info-macOS": "在 macOS 上,用 Cmd éµä»£æ›¿ Ctrl éµã€‚", + "mute-project/@name": "專案播放時éœéŸ³", + "vol-slider/@description": "åœ¨ç¶ æ——æŽ§åˆ¶é …æ—æ·»åР䏀個å¯ä»¥èª¿æ•´éŸ³é‡çš„æŽ§åˆ¶æ¡¿ã€‚", + "vol-slider/@name": "å°ˆæ¡ˆéŸ³é‡æŽ§åˆ¶æ¡¿", + "vol-slider/@settings-name-defVol": "é è¨­éŸ³é‡", + "clones/@description": "在舞å°ä¸Šæ–¹æ·»åŠ ä¸€å€‹è¨ˆæ•¸å™¨ï¼Œé¡¯ç¤ºç•¶å‰å»ºç«‹çš„分身數é‡ã€‚", + "clones/@name": "分身計數器", + "clones/@settings-name-showicononly": "åªé¡¯ç¤ºåœ–標", + "mouse-pos/@description": "當鼠標在舞å°ä¸Šç§»å‹•時,顯示所åœé§çš„座標ä½ç½®ã€‚", + "mouse-pos/@name": "鼠標的座標", + "color-picker/@description": "在é¸è‰²å™¨è£¡æ·»åР䏀個å¯ä»¥ç›´æŽ¥è¼¸å…¥å六進制色碼的欄ä½ã€‚", + "color-picker/@name": "代碼é¸è‰²å™¨", + "remove-sprite-confirm/@description": "當你刪除專案的æŸå€‹è§’色å‰ï¼Œé¡¯ç¤ºä¸€å€‹ç¢ºèªçš„è©¢å•視窗。", + "remove-sprite-confirm/@name": "角色刪除確èª", + "block-count/@description": "在編輯器的工具列上顯示目å‰å°ˆæ¡ˆå·²ä½¿ç”¨çš„程å¼ç©æœ¨æ•¸é‡ã€‚這個擴充功能是之å‰ã€Œè§’色與程å¼è¨ˆæ•¸ã€çš„一部分。", + "block-count/@name": "程å¼ç©æœ¨è¨ˆæ•¸", + "onion-skinning/@description": "當編輯造型時,以åŠé€æ˜Žçš„æ–¹å¼é¡¯ç¤ºä¸Šä¸€å€‹æˆ–ä¸‹ä¸€å€‹é€ åž‹ï¼Œæœ‰åŠ©æ–¼è£½ä½œå‹•ç•«ã€‚åœ¨ç·¨è¼¯å™¨ä¸‹æ–¹ç¸®æ”¾æŽ§åˆ¶æ—æœ‰é¡å¤–的控制按鈕。", + "onion-skinning/@name": "å‹•ç•«æåœ–ç´™", + "onion-skinning/@settings-name-afterTint": "ä¸‹å€‹é€ åž‹è¦æŸ“çš„é¡è‰²", + "onion-skinning/@settings-name-beforeTint": "ä¸Šå€‹é€ åž‹è¦æŸ“çš„é¡è‰²", + "onion-skinning/@settings-name-default": "é è¨­å•Ÿç”¨", + "onion-skinning/@settings-name-layering": "é è¨­åœ–層排列", + "onion-skinning/@settings-name-mode": "é è¨­é¡¯ç¤ºæ¨¡å¼", + "onion-skinning/@settings-name-next": "é è¨­é¡¯ç¤ºä¸‹å€‹é€ åž‹", + "onion-skinning/@settings-name-opacity": "逿˜Žåº¦ï¼ˆ%)", + "onion-skinning/@settings-name-opacityStep": "逿˜Žæ¼¸é€²ï¼ˆ%)", + "onion-skinning/@settings-name-previous": "é è¨­é¡¯ç¤ºä¸Šå€‹é€ åž‹", + "onion-skinning/@settings-select-layering-behind": "在後é¢", + "onion-skinning/@settings-select-layering-front": "在å‰é¢", + "onion-skinning/@settings-select-mode-merge": "åˆä½µ", + "onion-skinning/@settings-select-mode-tint": "染色", + "paint-snap/@settings-name-pageAxes": "å°é½Šé é¢ x ä½ç½®å’Œ y ä½ç½®è»¸", + "paint-snap/@settings-name-pageCenter": "去中心", + "paint-snap/@settings-name-pageCorners": "轉到å±å¹•è§’è½", + "paint-snap/@settings-name-threshold": "改變的è·é›¢", + "default-costume-editor-color/@description": "變更在造型編輯器上填滿與外框的é é¸è‰²å½©ï¼Œä»¥åŠç·šæ¢çš„é è¨­å¯¬åº¦ã€‚", + "default-costume-editor-color/@name": "自訂造型編輯器上工具é è¨­å€¼", + "default-costume-editor-color/@settings-name-fill": "填滿的é è¨­è‰²å½©", + "default-costume-editor-color/@settings-name-persistence": "切æ›å·¥å…·å¾Œä½¿ç”¨ä¸Šä¸€å€‹é¡è‰²è€Œéžé è¨­é¡è‰²", + "default-costume-editor-color/@settings-name-stroke": "外框的é è¨­è‰²å½©", + "default-costume-editor-color/@settings-name-strokeSize": "外框的é è¨­å¯¬åº¦", + "bitmap-copy/@description": "å…許你直接複製繪圖編輯器上的點陣圖,然後貼到其它的網站或是軟體上。", + "bitmap-copy/@info-norightclick": "䏿”¯æ´ã€Œæ»‘é¼ å³éµ → 複製ã€çš„æ–¹å¼ï¼Œè«‹ä½¿ç”¨ Ctrl + C 的快速éµã€‚", + "bitmap-copy/@name": "點陣圖åƒè¤‡è£½åŠŸèƒ½", + "2d-color-picker/@description": "用二維é¸è‰²å™¨å–ä»£ç·¨è¼¯å™¨ä¸­çš„å½©åº¦èˆ‡äº®åº¦æŽ§åˆ¶æ¡¿ã€‚åœ¨æ‹–æ›³æ¸¸æ¨™çš„åŒæ™‚æŒ‰ä½ Shift éµå¯ä»¥åªèª¿æ•´ç›´å‘或橫å‘的值。", + "2d-color-picker/@name": "二維é¸è‰²å™¨", + "better-img-uploads/@description": "åœ¨ã€Œä¸Šå‚³é€ åž‹ã€æŒ‰éˆ•的上方添加一個按鈕,å¯ä»¥å°‡ä¸Šå‚³çš„é»žé™£åœ–è‡ªå‹•è½‰æ›æˆå‘é‡åœ–(SVG),以é¿å…丟失質é‡ã€‚", + "better-img-uploads/@info-notSuitableEdit": "如果你在上傳圖片還需è¦ç·¨è¼¯ï¼Œè«‹ä¸è¦ä½¿ç”¨é«˜æ¸…圖片上傳功能。", + "better-img-uploads/@name": "高清圖片上傳", + "better-img-uploads/@settings-name-fitting": "圖åƒå°ºå¯¸", + "better-img-uploads/@settings-select-fitting-fill": "放大以填滿舞å°", + "better-img-uploads/@settings-select-fitting-fit": "縮å°ä»¥é©æ‡‰èˆžå°", + "better-img-uploads/@settings-select-fitting-full": "原始尺寸", + "pick-colors-from-stage/@description": "å…許造型或背景編輯器上的æ€è‰²å·¥å…·èƒ½å¤ æŒ‘é¸èˆžå°è¦–窗裡的é¡è‰²ã€‚", + "pick-colors-from-stage/@name": "æ€è‰²å·¥å…·èƒ½é¸åˆ°èˆžå°è£¡çš„色彩", + "custom-block-shape/@description": "èª¿æ•´ç©æœ¨å…§é‚Šè·ã€åœ“è§’ã€ç¼ºå£é«˜åº¦ã€‚", + "custom-block-shape/@info-paddingWarning": "é€™äº›è¨­ç½®çš„æ•ˆæžœåªæœ‰ä½ æ‰çœ‹å¾—åˆ°ï¼Œå¦‚æžœæ˜¯å…¶å®ƒä½¿ç”¨è€…è§€çœ‹ä½ çš„ç¨‹å¼æ™‚,å¯èƒ½æœƒæœ‰ç¨‹å¼é‡ç–Šçš„å•題。", + "custom-block-shape/@name": "自訂程å¼ç©æœ¨å¤–å½¢", + "custom-block-shape/@preset-description-default2": "與 Scratch 2.0 ç›¸ä¼¼çš„ç©æœ¨å¤–è§€", + "custom-block-shape/@preset-description-default3": "Scratch 3.0 ç‰ˆæ‰€é¡¯ç¤ºçš„ç©æœ¨å½¢ç‹€", + "custom-block-shape/@preset-description-flat2": "把 Scratch 2.0 çš„ç©æœ¨åŽ»é™¤åœ“è§’èˆ‡ç¼ºå£", + "custom-block-shape/@preset-description-flat3": "把 Scratch 3.0 çš„ç©æœ¨åŽ»é™¤åœ“è§’èˆ‡ç¼ºå£", + "custom-block-shape/@preset-name-default2": "2.0 ç©æœ¨å¤–å½¢", + "custom-block-shape/@preset-name-default3": "3.0 ç©æœ¨å¤–å½¢", + "custom-block-shape/@preset-name-flat2": "2.0 ç©æœ¨æ‰å¹³åŒ–", + "custom-block-shape/@preset-name-flat3": "3.0 ç©æœ¨æ‰å¹³åŒ–", + "custom-block-shape/@settings-name-cornerSize": "圓角率(0-300%)", + "custom-block-shape/@settings-name-notchSize": "缺å£é«˜åº¦ï¼ˆ0-150%)", + "custom-block-shape/@settings-name-paddingSize": "內邊è·ï¼ˆ50-200%)", + "zebra-striping/@description": "讓控制類程å¼åœ¨å·¢ç‹€åŒ–的時候,能夠替æ›è£¡é¢ç¨‹å¼çš„ç©æœ¨é¡è‰²ï¼Œé€™æ¨£æœƒæ¯”較好辨識(這種高亮語法的方å¼å« zebra striping)。", + "zebra-striping/@name": "替æ›å·¢ç‹€ç¨‹å¼é¡è‰²", + "zebra-striping/@settings-name-intensity": "程å¼ï¼ˆ0-100%)", + "zebra-striping/@settings-name-shade": "é™°å½±", + "zebra-striping/@settings-select-shade-darker": "變暗", + "zebra-striping/@settings-select-shade-lighter": "變亮", + "editor-theme3/@description": "修改編輯器上æ¯ç¨®ç©æœ¨çš„色彩。", + "editor-theme3/@name": "è‡ªè¨‚ç©æœ¨è‰²å½©", + "editor-theme3/@preset-description-black": "æŠŠæ‰€æœ‰çš„ç©æœ¨è®Šé»‘", + "editor-theme3/@preset-description-dark": "æŠŠåŽŸä¾†çš„ç©æœ¨è‰²å½©è®Šæš—", + "editor-theme3/@preset-description-original": "修改æˆèˆ‡ Scratch 2.0 ç‰ˆä¸€æ¨£çš„ç©æœ¨é¡”色", + "editor-theme3/@preset-description-tweaks": "å°‡äº‹ä»¶ã€æŽ§åˆ¶å’Œå‡½å¼ç©æœ¨èª¿æ•´æˆé¡žä¼¼ 2.0 版的é¡è‰²", + "editor-theme3/@preset-name-black": "黑色", + "editor-theme3/@preset-name-dark": "暗色調", + "editor-theme3/@preset-name-original": "2.0 色調", + "editor-theme3/@preset-name-tweaks": "3.0 調整版", + "editor-theme3/@settings-name-Pen-color": "擴充功能", + "editor-theme3/@settings-name-comment-color": "註解", + "editor-theme3/@settings-name-control-color": "控制", + "editor-theme3/@settings-name-custom-color": "函å¼ç©æœ¨", + "editor-theme3/@settings-name-data-color": "變數", + "editor-theme3/@settings-name-data-lists-color": "清單", + "editor-theme3/@settings-name-events-color": "事件", + "editor-theme3/@settings-name-input-color": "函å¼ç©æœ¨è¼¸å…¥æ¬„ä½", + "editor-theme3/@settings-name-looks-color": "外觀", + "editor-theme3/@settings-name-motion-color": "動作", + "editor-theme3/@settings-name-operators-color": "é‹ç®—", + "editor-theme3/@settings-name-sensing-color": "嵿¸¬", + "editor-theme3/@settings-name-sounds-color": "音效", + "editor-theme3/@settings-name-text": "文字顔色", + "editor-theme3/@settings-select-text-black": "黑色", + "editor-theme3/@settings-select-text-colorOnBlack": "為文字著色,背景改æˆé»‘色", + "editor-theme3/@settings-select-text-colorOnWhite": "為文字著色,背景改æˆç™½è‰²", + "editor-theme3/@settings-select-text-white": "白色", + "editor-theme3/@update": "在「編輯器深色模å¼èˆ‡è‡ªè¨‚色彩ã€ä¸­é—œæ–¼ã€Œæ·±è‰²èª¿è¨»è§£ã€çš„設置已移至此處並且å¯ä»¥é€²ä¸€æ­¥è‡ªè¨‚。", + "custom-block-text/@description": "變更文字的粗細度,並å¯é¸æ“‡å¢žåŠ é™°å½±æ•ˆæžœã€‚", + "custom-block-text/@name": "è‡ªè¨‚ç©æœ¨æ–‡å­—樣å¼", + "custom-block-text/@settings-name-bold": "粗體字", + "custom-block-text/@settings-name-shadow": "文字加陰影", + "editor-colored-context-menus/@description": "在程å¼ç©æœ¨ä¸Šé»žæ“Šå³éµæœƒé–‹å•Ÿé¸å–®ï¼Œè®“開啟的é¸å–®æœ‰å’Œç©æœ¨ç›¸åŒçš„背景é¡è‰²ã€‚", + "editor-colored-context-menus/@name": "讓å³éµé¸å–®æœ‰é¡è‰²", + "editor-stage-left/@description": "將舞å°å€ç§»å‹•到編輯器畫é¢çš„å·¦å´ï¼Œå°±åƒ Scratch 2.0 那樣。", + "editor-stage-left/@info-reverseOrder": "如果è¦ä¿®æ”¹å°ˆæ¡ˆé è¦½è¦–窗上的按鈕ä½ç½®ï¼Œå¯ä»¥ä½¿ç”¨å¦ä¸€å€‹æ“´å……功能 - 「å°èª¿å°ˆæ¡ˆæŽ§åˆ¶é …工具的順åºã€ã€‚", + "editor-stage-left/@name": "將舞å°é¡¯ç¤ºåœ¨ç·¨è¼¯å™¨å·¦å´", + "editor-buttons-reverse-order/@description": "在專案é è¦½è¦–窗的上方有些按鈕,把å³é‚Šçš„ç¶ æ——èˆ‡åœæ­¢æŒ‰éˆ•ï¼Œèˆ‡å·¦é‚Šçš„é¡¯ç¤ºæ¨¡å¼æŒ‰éˆ•å°èª¿é¡¯ç¤ºé †åºï¼Œå°±åƒ Scratch 2.0 那樣。", + "editor-buttons-reverse-order/@name": "å°èª¿å°ˆæ¡ˆæŽ§åˆ¶é …工具的順åº", + "variable-manager/@description": "在編輯器的音效é ç±¤å³å´æ·»åŠ ä¸€å€‹è®Šé‡èˆ‡æ¸…單的é ç±¤ï¼Œè®“你更方便的管ç†å®ƒå€‘。", + "variable-manager/@name": "變數管ç†å™¨", + "variable-manager/@update": "清單ç¾åœ¨ä¸éœ€æŒ‰ä½ Shift éµå°±å¯ä»¥æ’入項目。", + "search-sprites/@description": "åœ¨è§’è‰²é¢æ¿æ·»åР䏀個æœå°‹æ¬„ä½ï¼Œç”¨ä¾†æŸ¥æ‰¾ä»¥å稱查找角色。", + "search-sprites/@name": "ä¾å稱æœå°‹è§’色", + "sprite-properties/@settings-name-transitionDuration": "動畫速度", + "sprite-properties/@settings-select-transitionDuration-long": "顯示", + "sprite-properties/@settings-select-transitionDuration-short": "å¿«", + "gamepad/@description": "用 USB 或è—èŠ½æŽ§åˆ¶å™¨ï¼ˆéŠæˆ²æ‰‹æŸ„)與專案互動。", + "gamepad/@name": "éŠæˆ²æ‰‹æŸ„支æŒ", + "gamepad/@settings-name-hide": "ç•¶æœªåµæ¸¬åˆ°éŠæˆ²æ‰‹æŸ„時隱è—設置按鈕。", + "editor-sounds/@description": "åœ¨ä½ è²¼åˆæˆ–åˆªé™¤ç©æœ¨çš„æ™‚候發出音效。", + "editor-sounds/@name": "編輯器音效", + "folders/@description": "å°‡æ–‡ä»¶å¤¾æ·»åŠ åˆ°è§’è‰²é¢æ¿ï¼Œé€ åž‹å’ŒéŸ³æ•ˆæ¸…單上也å¯ä»¥ã€‚è¦å‰µå»ºè³‡æ–™å¤¾ï¼Œè«‹åœ¨ä»»ä½•物件上點擊å³éµï¼Œä½¿ç”¨é¸å–®ä¸­ã€Œå‰µå»ºè³‡æ–™å¤¾ã€åŠŸèƒ½ã€‚å»ºç«‹å¾Œï¼Œé»žæ“Šè³‡æ–™å¤¾å¯ä»¥é–‹å•Ÿæˆ–是關閉它。在其它物件上點å³éµå¯ä»¥æŒ‡å®šæ”¾é€²å“ªå€‹è³‡æ–™å¤¾ï¼Œä¹Ÿå¯ä»¥ç”¨æ‹–曳的方å¼ã€‚", + "folders/@info-notice-folders-are-public": "å•Ÿç”¨é€™å€‹åŠŸèƒ½å¾Œï¼Œåªæœ‰ä½ è‡ªå·±çœ‹å¾—到資料夾,其他用戶是看ä¸åˆ°çš„。", + "folders/@name": "角色資料夾", + "block-switching/@description": "在編輯å€ä¸Šç”¨æ»‘é¼ å³éµé»žæ“Šç©æœ¨ï¼Œå°±èƒ½é¸æ“‡ç›¸é—œçš„ç©æœ¨é€²è¡Œåˆ‡æ›ã€‚", + "block-switching/@name": "程å¼ç©æœ¨åˆ‡æ›", + "block-switching/@settings-name-control": "æŽ§åˆ¶é¡žç©æœ¨", + "block-switching/@settings-name-customargs": "函å¼ç©æœ¨åƒæ•¸", + "block-switching/@settings-name-customargsmode": "è¦é¡¯ç¤ºçš„函å¼åƒæ•¸", + "block-switching/@settings-name-data": "è³‡æ–™é¡žç©æœ¨", + "block-switching/@settings-name-event": "äº‹ä»¶é¡žç©æœ¨", + "block-switching/@settings-name-extension": "æ“´å±•é¡žç©æœ¨", + "block-switching/@settings-name-looks": "å¤–è§€é¡žç©æœ¨", + "block-switching/@settings-name-motion": "å‹•ä½œé¡žç©æœ¨", + "block-switching/@settings-name-noop": "能切æ›çš„ç©æœ¨ä¸­åŒ…å«è‡ªå·±", + "block-switching/@settings-name-operator": "é‹ç®—é¡žç©æœ¨", + "block-switching/@settings-name-sensing": "嵿¸¬é¡žç©æœ¨", + "block-switching/@settings-name-sound": "éŸ³æ•ˆé¡žç©æœ¨", + "block-switching/@settings-select-customargsmode-all": "全部函å¼ç”¨åˆ°çš„åƒæ•¸", + "block-switching/@settings-select-customargsmode-defOnly": "函弿œ¬èº«çš„åƒæ•¸", + "load-extensions/@description": "在新建專案時自動添加音樂ã€ç•«ç­†æˆ–其它的擴展到編輯器上。", + "load-extensions/@name": "自動添加擴展應用", + "load-extensions/@settings-name-music": "音樂", + "load-extensions/@settings-name-pen": "ç•«ç­†", + "load-extensions/@settings-name-text2speech": "文字轉語音", + "load-extensions/@settings-name-translate": "翻譯", + "custom-zoom/@description": "自訂縮å°ã€æ”¾å¤§çš„閾值ã€é€Ÿåº¦é‚„有åˆå§‹çš„縮放率,還å¯ä»¥è¨­å®šæ˜¯å¦é¡¯ç¤ºç¸®æ”¾æŽ§åˆ¶é …。", + "custom-zoom/@name": "自訂程å¼ç·¨è¼¯å€çš„縮放率", + "custom-zoom/@settings-name-autohide": "自動隱è—縮放控制項", + "custom-zoom/@settings-name-maxZoom": "æœ€å¤§å¯æ”¾å¤§åˆ°ï¼ˆ100-500%)", + "custom-zoom/@settings-name-minZoom": "最å°å¯ç¸®å°åˆ°ï¼ˆ1-100%)", + "custom-zoom/@settings-name-speed": "自動隱è—動畫速度", + "custom-zoom/@settings-name-startZoom": "åˆå§‹çš„縮放率(50-500%)", + "custom-zoom/@settings-name-zoomSpeed": "縮放速度(50-200%)", + "custom-zoom/@settings-select-speed-default": "é è¨­", + "custom-zoom/@settings-select-speed-long": "æ…¢", + "custom-zoom/@settings-select-speed-none": "ç«‹å³", + "custom-zoom/@settings-select-speed-short": "快速", + "initialise-sprite-position/@description": "更改新的角色的åˆå§‹ x/y 座標。", + "initialise-sprite-position/@name": "自訂新建角色ä½ç½®", + "initialise-sprite-position/@settings-name-duplicate": "複製角色時的行為", + "initialise-sprite-position/@settings-name-library": "角色庫的角色ä½ç½®éš¨æ©Ÿ", + "initialise-sprite-position/@settings-name-x": "X 座標", + "initialise-sprite-position/@settings-name-y": "Y 座標", + "initialise-sprite-position/@settings-select-duplicate-custom": "移至指定的座標ä½ç½®", + "initialise-sprite-position/@settings-select-duplicate-keep": "與原來的角色ä½ç½®ä¸€è‡´", + "initialise-sprite-position/@settings-select-duplicate-randomize": "隨機ä½ç½®", + "blocks2image/@description": "在程å¼ç·¨è¼¯å€ä¸Šé»žæ“Šæ»‘é¼ å³éµï¼Œå¯ä»¥æŠŠæŒ‡å®šçš„ç©æœ¨åŒ¯å‡ºæˆ SVG/PNG 圖åƒã€‚", + "blocks2image/@name": "ä¿å­˜ç©æœ¨ç‚ºåœ–åƒ", + "remove-curved-stage-border/@description": "拿掉舞å°å››å‘¨çš„圓角修飾,讓你能看見舞å°çš„四個角。", + "remove-curved-stage-border/@name": "移除舞å°é‚Šç·£åœ“è§’", + "transparent-orphans/@description": "èª¿æ•´ç·¨è¼¯å™¨ä¸­ç©æœ¨çš„逿˜Žåº¦ï¼Œå¯ä»¥ç‚ºå–®ä¸€å¡Šç©æœ¨æˆ–æ˜¯æ­£åœ¨æ‹–æ›³çš„ç©æœ¨å€‹åˆ¥è¨­å®šé€æ˜Žå€¼ã€‚", + "transparent-orphans/@name": "ç©æœ¨é€æ˜Žåº¦", + "transparent-orphans/@settings-name-block": "程å¼å€å¡Šé€æ˜Žåº¦(%)", + "transparent-orphans/@settings-name-dragged": "æ­£åœ¨æ‹–æ›³çš„ç©æœ¨é€æ˜Žåº¦(%)", + "transparent-orphans/@settings-name-orphan": "å–®ä¸€ç©æœ¨é€æ˜Žåº¦(%)", + "paint-by-default/@description": "é¸å€‹è§’色/é¸å€‹é€ åž‹/é¸å€‹èƒŒæ™¯/é¸å€‹éŸ³æ•ˆé€™äº›å¤§æŒ‰éˆ•é è¨­éƒ½æ˜¯å¾žç¯„ä¾‹åº«ä¸­é¸æ“‡ï¼Œæ”¹æˆå…¶ä»–æ“ä½œï¼Œåƒæ˜¯ç•«å€‹é€ åž‹ã€ç•«å€‹èƒŒæ™¯â€¦", + "paint-by-default/@name": "更改「é¸å€‹xxã€æŒ‰éˆ•çš„é è¨­æ“作", + "paint-by-default/@settings-name-backdrop": "添加背景", + "paint-by-default/@settings-name-costume": "添加造型", + "paint-by-default/@settings-name-sound": "添加音效", + "paint-by-default/@settings-name-sprite": "添加角色", + "paint-by-default/@settings-select-backdrop-library": "範例庫", + "paint-by-default/@settings-select-backdrop-paint": "繪畫", + "paint-by-default/@settings-select-backdrop-surprise": "驚喜", + "paint-by-default/@settings-select-backdrop-upload": "上傳", + "paint-by-default/@settings-select-costume-library": "範例庫", + "paint-by-default/@settings-select-costume-paint": "繪畫", + "paint-by-default/@settings-select-costume-surprise": "驚喜", + "paint-by-default/@settings-select-costume-upload": "上傳", + "paint-by-default/@settings-select-sound-library": "範例庫", + "paint-by-default/@settings-select-sound-record": "錄製", + "paint-by-default/@settings-select-sound-surprise": "驚喜", + "paint-by-default/@settings-select-sound-upload": "上傳", + "paint-by-default/@settings-select-sprite-library": "範例庫", + "paint-by-default/@settings-select-sprite-paint": "繪畫", + "paint-by-default/@settings-select-sprite-surprise": "驚喜", + "paint-by-default/@settings-select-sprite-upload": "上傳", + "block-cherry-picking/@description": "讓你å¯ä»¥æŒ‰ä½ Ctrl éµæŠŠå–®å€‹ç©æœ¨å¾žç¨‹å¼å€å¡Šè£¡æ‹–曳出來(原來會拖曳出é»åœ¨å¾Œé¢çš„æ‰€æœ‰ç©æœ¨ï¼‰ã€‚", + "block-cherry-picking/@info-flipControls": "如果啟用「功能å轉ã€ï¼Œé‚£éº¼æ‹–æ›³å–®å€‹ç©æœ¨å°±æœƒè®Šæˆé è¨­å‹•ä½œï¼ŒæŒ‰ä½ Ctrl å‰‡æœƒè®Šæˆæ‹–曳整個程å¼å€å¡Šã€‚", + "block-cherry-picking/@info-macContextDisabled": "在 macOS 上,用 Cmd éµä»£æ›¿ Ctrl éµã€‚", + "block-cherry-picking/@name": "æŒ‰ä½ Ctrl 鵿‹–曳單個程å¼ç©æœ¨", + "block-cherry-picking/@settings-name-invertDrag": "功能å轉", + "hide-new-variables/@description": "建立新的變數後,ä¸è¦è‡ªå‹•在舞å°ä¸Šé¡¯ç¤ºè®Šæ•¸é¢æ¿ï¼ˆæ¸…單也é©ç”¨ï¼‰ã€‚", + "hide-new-variables/@name": "éš±è—æ–°çš„è®Šæ•¸é¢æ¿", + "editor-extra-keys/@description": "添加更多的éµåˆ°â€œkey () pressed?†和“按下 () 鵿™‚â€ï¼Œä¾‹å¦‚'enter'ã€é»žã€é€—號等。 這些éµç”šè‡³å°æ²’有 Scratch Addons 的用戶也有效。", + "editor-extra-keys/@info-experimentalKeysWarn": "「實驗中按éµã€åŒ…å«ç­‰è™Ÿã€æ–œæ§“號ã€åˆ†è™Ÿç­‰ã€‚它們å¯èƒ½ä¸é©ç”¨æ–¼æ‰€æœ‰æ“作系統或是éµç›¤ä½ˆå±€ã€‚", + "editor-extra-keys/@info-shiftKeysWarn": "「Shift 按éµã€é€šå¸¸æ˜¯çµåˆéµï¼Œåƒæ˜¯ Shift+數字éµï¼Œåƒæ˜¯äº•å­—ç¬¦è™Ÿã€æ„Ÿå˜†è™Ÿç­‰ã€‚這些按éµåƒ…é©ç”¨æ–¼ã€Œç•¶ï¼ˆï¼‰éµè¢«æŒ‰ä¸‹ã€ç©æœ¨ï¼Œè€Œä¸”也ä¸ä¸€å®šèƒ½åœ¨æ‰€æœ‰æ“作系統或éµç›¤ä½ˆå±€ä¸Šä½¿ç”¨ã€‚", + "editor-extra-keys/@name": "é¡å¤–的按鈕é¸é …", + "editor-extra-keys/@settings-name-experimentalKeys": "顯示實驗éµ", + "editor-extra-keys/@settings-name-shiftKeys": "顯示 shift 按鈕 ", + "hide-delete-button/@description": "éš±è—角色ã€é€ åž‹ã€éŸ³æ•ˆä¸Šçš„刪除按鈕(垃圾桶圖示)。如果è¦åˆªé™¤ï¼Œè¦åœ¨é …目上點擊滑鼠å³éµï¼Œä½¿ç”¨é¸å–®ä¸Šçš„刪除功能。", + "hide-delete-button/@name": "éš±è—刪除按鈕", + "hide-delete-button/@settings-name-costumes": "造型與背景", + "hide-delete-button/@settings-name-sounds": "音效", + "hide-delete-button/@settings-name-sprites": "角色", + "no-script-bumping/@description": "è®“ä½ åœ¨ç§»å‹•æˆ–ä¿®æ”¹ç¨‹å¼æ™‚ï¼Œä¸æœƒå› ç‚ºä¸€æ™‚的程å¼é‡ç–Šå°Žè‡´ç¨‹å¼åŽŸä¾†çš„ä½ç½®è¢«äº‚改變。", + "no-script-bumping/@name": "åœæ­¢è‡ªå‹•分開é‡ç–Šçš„程å¼", + "disable-stage-drag-select/@description": "移除原來在編輯器上å¯ä»¥ä»»æ„拖曳舞å°ä¸Šçš„角色的功能。除éžè¨­å®šè©²è§’è‰²ç‚ºå¯æ‹–曳,或是你å¯ä»¥æŒ‰ä½ Shift éµåŠ ä»¥æ‹–æ›³ã€‚", + "disable-stage-drag-select/@name": "編輯器內ä¸å¯æ‹–曳角色", + "move-to-top-bottom/@description": "在造型或是音效項目å³éµé–‹å•Ÿé¸å–®æ™‚,會有移至最上é¢ã€ç§»è‡³æœ€ä¸‹é¢çš„é¸é …。", + "move-to-top-bottom/@info-developer-tools": "é€™å€‹æ“´å……åŠŸèƒ½ä¹‹å‰æ˜¯åœ¨ã€Œé–‹ç™¼å·¥å…·ã€è£¡ï¼Œç¾åœ¨ç§»è‡³é€™å…’了ï¼", + "move-to-top-bottom/@name": "ç§»è‡³æœ€ä¸Šé¢æˆ–最下é¢", + "disable-paste-offset/@description": "在造型編輯器上使用複製貼上功能時,在原ä½ç½®è²¼ä¸Šï¼Œä¸è¦å‘å³ä¸‹å移。", + "disable-paste-offset/@info-vanilla": "在沒有此Addon的情æ³ä¸‹ï¼Œä¹Ÿå¯ä»¥é€šéŽ Alt+click來åšé€™ä»¶äº‹ã€‚", + "disable-paste-offset/@name": "複製圖案時ä¸è¦åç§»", + "block-duplicate/@description": "é€éŽæŒ‰ä½ Alt 按éµèˆ‡æ‹–曳程å¼ç©æœ¨ï¼Œèƒ½è®“你更快的複製整個程å¼å€å¡Šã€‚加上 Ctrl éµå‰‡å¯ä»¥è¤‡è£½å‡ºä½ åœé§çš„å–®å€‹ç©æœ¨ã€‚", + "block-duplicate/@info-mac": "macOS 上使用 Option 按éµä»£æ›¿ Alt éµï¼ŒCommand éµå–代 Ctrl éµã€‚", + "block-duplicate/@name": "æŒ‰ä½ Alt éµä»¥è¤‡è£½ç©æœ¨", + "rename-broadcasts/@description": "添加一個é¸é …以在boardcasts塊的下拉列表中é‡å‘½å廣播消æ¯çš„å字。", + "rename-broadcasts/@name": "釿–°å‘½å廣播訊æ¯", + "swap-local-global/@description": "åœ¨æœ¬ä¾†çš„é‡æ–°å‘½åè®Šæ•¸æˆ–æ¸…å–®çš„é¢æ¿ä¸Šæ·»åŠ äº†æ›´å¤šåŠŸèƒ½ï¼šåœ¨ã€Œé©ç”¨æ–¼æ‰€æœ‰è§’色ã€å’Œã€Œåƒ…é©ç”¨ç•¶å‰è§’色ã€ä¹‹é–“轉æ›ã€‚也å¯ä»¥ç”¨æ»‘é¼ å³éµé»žæ“Šè®Šæ•¸ï¼Œåœ¨åŠŸèƒ½è¡¨ä¸­ç›´æŽ¥è½‰æ›ã€‚", + "swap-local-global/@name": "在「é©ç”¨æ–¼æ‰€æœ‰è§’色ã€å’Œã€Œåƒ…é©ç”¨ç•¶å‰è§’色ã€ä¹‹é–“轉æ›", + "editor-comment-previews/@description": "當你把游標åœé§åœ¨ç©æœ¨æˆ–者摺疊的註解上,能夠馬上é è¦½åˆ°è¨»è§£çš„å…§å®¹ã€‚ç•¶é€£æŽ¥çš„è¨»è§£é›¢ç©æœ¨å¤ªé ï¼Œæˆ–æ˜¯å¾ˆå¤šè¨»è§£éœ€è¦æ‘ºç–Šæ™‚,這會很有用。", + "editor-comment-previews/@name": "é è¦½è¨»è§£", + "editor-comment-previews/@settings-name-delay": "延鲿™‚é–“", + "editor-comment-previews/@settings-name-follow-mouse": "跟隨滑鼠游標", + "editor-comment-previews/@settings-name-hover-view": "åœé§åœ¨å·²æ‘ºç–Šè¨»è§£æ™‚é è¦½å…§å®¹", + "editor-comment-previews/@settings-name-hover-view-block": "åœé§åœ¨å·²é€£æŽ¥è¨»è§£çš„ç©æœ¨ä¸Šæ™‚é è¦½è¨»è§£å…§å®¹", + "editor-comment-previews/@settings-name-hover-view-procedure": "åœé§åœ¨å‡½å¼ç©æœ¨ä¸Šæ™‚顯示定義的註解內容", + "editor-comment-previews/@settings-name-reduce-animation": "減少彈出動畫", + "editor-comment-previews/@settings-name-reduce-transparency": "æ¸›å°‘é€æ˜Žåº¦", + "editor-comment-previews/@settings-select-delay-long": "較長", + "editor-comment-previews/@settings-select-delay-none": "ç„¡", + "editor-comment-previews/@settings-select-delay-short": "較短", + "columns/@description": "æŠŠå·¥å…·ç®±çš„ç©æœ¨åˆ†é¡žæ”¹æˆå…©åˆ—é¡¯ç¤ºï¼Œä¸¦æŠŠé¢æ¿æ”¾ç½®åœ¨ç·¨è¼¯å™¨é ‚éƒ¨ï¼Œå°±åƒ Scratch 2.0 版那樣。", + "columns/@name": "兩列å¼ç©æœ¨é¸å–®", + "number-pad/@name": "一直顯示數字éµç›¤", + "script-snap/@description": "在程å¼ç·¨è¼¯å€ä¸Šæ‹–æ›³ç¨‹å¼æ™‚,會自動與畫é¢çš„網格貼齊。", + "script-snap/@name": "程å¼ç©æœ¨è²¼é½Šç¶²æ ¼", + "script-snap/@preset-name-default": "é è¨­", + "script-snap/@preset-name-half-block": "åŠå€‹ç©æœ¨", + "script-snap/@preset-name-whole-block": "æ•´å€‹ç©æœ¨", + "script-snap/@settings-name-grid": "格點間è·ï¼ˆåƒç´ ï¼‰", + "fullscreen/@description": "修復了一些全å±é¡¯ç¤ºæ¨¡å¼ä¸‹çš„一些å•é¡Œï¼Œè®“å…¨å±æ™‚åŒæ™‚讓ç€è¦½å™¨ä¹Ÿä»¥å…¨å±å±•開,且å¯ä»¥é¸æ“‡éš±è—綠旗等工具列。", + "fullscreen/@info-hideToolbarNotice": "å¦‚æžœä½ å•Ÿç”¨å…¨å±æ™‚éš±è—工具列,你å¯ä»¥ç”¨ ESC éµä¾†é€€å‡ºå…¨å±æ¨¡å¼ã€‚", + "fullscreen/@name": "增強全å±", + "fullscreen/@settings-name-browserFullscreen": "免屿¨¡å¼æ™‚åŒæ™‚讓ç€è¦½å™¨é€²å…¥å…¨å±", + "fullscreen/@settings-name-hideToolbar": "免屿¨¡å¼æ™‚éš±è—工具列", + "hide-stage/@description": "在專案é è¦½è¦–窗上添加一個按鈕,用來隱è—舞å°å’Œè§’è‰²é¢æ¿ï¼ŒæŒ‰éˆ•按鈕後能讓編輯å€çš„空間變大。", + "hide-stage/@name": "添加隱è—舞å°èˆ‡è§’è‰²é¢æ¿æŒ‰éˆ•", + "editor-stepping/@description": "專案é‹è¡Œæ™‚,以é¡è‰²é«˜äº®æ­£åœ¨åŸ·è¡Œçš„程å¼ç©æœ¨ã€‚", + "editor-stepping/@name": "高亮執行中的程å¼", + "editor-stepping/@settings-name-highlight-color": "高亮é¡è‰²" +} \ No newline at end of file diff --git a/src/addons/addons-l10n/de.json b/src/addons/addons-l10n/de.json new file mode 100644 index 0000000000000000000000000000000000000000..8e298fbb852055dc55591038001695566479d031 --- /dev/null +++ b/src/addons/addons-l10n/de.json @@ -0,0 +1,236 @@ +{ + "editor-devtools/clean-plus": "Blöcke aufräumen +", + "editor-devtools/copy-all": "Alle Kopieren", + "editor-devtools/copy-block": "Kopieren", + "editor-devtools/cut-block": "Ausschneiden", + "editor-devtools/lists": "Listen", + "editor-devtools/make-space": "Platz machen", + "editor-devtools/orphaned": "{count, plural, one {1 alleinstehenden Variablenblock löschen?} other {# alleinstehende Variablenblöcke löschen?} }", + "editor-devtools/paste": "Einfügen", + "editor-devtools/replace": "Alle {name} in dieser Figur austauschen mit der Variable namens:", + "editor-devtools/swap": "{var} in dieser Figur austauschen", + "editor-devtools/unused-list": "{count, plural, one {1 unbenutzte lokale Liste entfernen? Hier ist sie:\n} other {# unbenutzte lokale Listen entfernen? Hier sind sie:\n} }", + "editor-devtools/unused-var": "{count, plural, one {1 unbenutzte lokale Variable löschen? Hier ist sie:\n} other {# unbenutzte lokale Variablen löschen? Hier sind sie:\n} }", + "editor-devtools/var-not-exist": "Diese Variable existiert nicht...", + "editor-devtools/variables": "Variablen", + "find-bar/complex-broadcast": "(Parameter)", + "find-bar/find-placeholder": "Finden (Strg+F)", + "middle-click-popup/start-typing": "Beginne mit der EIngabe...", + "editor-searchable-dropdowns/createBroadcast": "Nachricht „{name}“ erstellen", + "editor-searchable-dropdowns/createGlobalList": "Liste „{name}“ für alle Figuren erstellen", + "editor-searchable-dropdowns/createGlobalVariable": "Variable „{name}“ für alle Figuren erstellen", + "editor-searchable-dropdowns/createLocalList": "Liste „{name}“ nur für diese Figur erstellen", + "editor-searchable-dropdowns/createLocalVariable": "Variable „{name}“ nur für diese Figur erstellen", + "data-category-tweaks-v2/for-all-sprites": "Für alle Figuren:", + "data-category-tweaks-v2/for-this-sprite-only": "Nur für diese Figur:", + "data-category-tweaks-v2/list-category": "Listen", + "hide-flyout/lock": "Palette fixieren", + "hide-flyout/unlock": "Palette loslösen", + "mediarecorder/cancel": "Abbrechen", + "mediarecorder/click-flag": "Warte...", + "mediarecorder/click-flag-description": "Klicke die Grüne Flagge, um die Aufnahme zu starten. Klicke auf diesen Button, um sie zu beenden.", + "mediarecorder/option-title": "Aufnahmeoptionen", + "mediarecorder/record": "Aufnehmen", + "mediarecorder/record-after-flag": "Aufnahme erst starten, wenn die Grüne Flagge angeklickt wird", + "mediarecorder/record-audio": "Projektklänge einschließen", + "mediarecorder/record-audio-description": "Dies schließt Text zu Sprache nicht ein.", + "mediarecorder/record-description": "Die Bühne als WebM-Datei aufnehmen. Du kannst sie nach der Aufnahme auf deinem Computer speichern.\nAnmerkung: Variablen- und Listenanzeigen werden im Video nicht sichtbar sein.", + "mediarecorder/record-duration": "Aufnahmedauer (in Sekunden)", + "mediarecorder/record-mic": "Mikrofonklänge einschließen", + "mediarecorder/record-until-stop": "Aufnahme anhalten, wenn das Projekt gestoppt wird", + "mediarecorder/record-until-stop-disabled": "Du musst \"{afterFlagOption}\" aktivieren um diese Option zu verwenden.", + "mediarecorder/start": "Starten", + "mediarecorder/start-delay": "Startverzögerung (in Sekunden)", + "mediarecorder/starting-in": "Startet in {secs}...", + "mediarecorder/stop": "Aufnahme stoppen", + "debugger/block-breakpoint": "unterbrechen", + "debugger/block-error": "schreibe Fehler %s im Log", + "debugger/block-log": "schreibe %s im Log", + "debugger/block-warn": "schreibe Warnung %s im Log", + "debugger/cannot-pause-player": "Der \"unterbrechen\"-Block kann nur im Editor verwendet werden.", + "debugger/clear": "Löschen", + "debugger/clone-of": "Klon von {sprite}", + "debugger/close": "Schließen", + "debugger/debug": "Debuggen", + "debugger/empty-string": "(leerer Text)", + "debugger/enter-format": "Exportformat eingeben:", + "debugger/export": "Exportieren", + "debugger/export-desc": "Halte die Umschalttaste während dem Klicken gedrückt, um das Exportformat anzupassen.", + "debugger/icon-error": "Fehler", + "debugger/icon-warn": "Warnung", + "debugger/log-msg-broadcasted": "Nachricht '{broadcast}' gesendet.", + "debugger/log-msg-clone-cap": "Klonen von '{sprite}' fehlgeschlagen, es können nicht mehr als 300 Klone erzeugt werden.", + "debugger/log-msg-clone-created": "'{sprite}' geklont.", + "debugger/log-msg-flag-clicked": "Grüne Flagge angeklickt.", + "debugger/no-logs": "Es gibt keine Logs zum Anzeigen.", + "debugger/no-threads-running": "Es werden momentan keine Threads ausgeführt.", + "debugger/step": "Schritt", + "debugger/step-desc": "Führt einen Block aus.", + "debugger/unknown-sprite": "(unbekannte Figur)", + "debugger/unpause": "Fortsetzen", + "clones/clones": "Klone: {cloneCount}", + "color-picker/hex": "Hexadezimal-Farbe", + "remove-sprite-confirm/confirm": "Möchtest du diese Figur löschen?", + "block-count/blocks": "{num, plural, one {1 Block} other {# Blöcke}}", + "onion-skinning/behind": "Hinten", + "onion-skinning/front": "Vorne", + "onion-skinning/layering": "Schichtung", + "onion-skinning/merge": "Mischen", + "onion-skinning/mode": "Modus", + "onion-skinning/next": "Nächstes Kostüm", + "onion-skinning/opacity": "Transparenz (%)", + "onion-skinning/opacityStep": "Transparenz-Abstufung (%)", + "onion-skinning/previous": "Vorheriges Kostüm", + "onion-skinning/settings": "Einstellungen für Onion Skinning", + "onion-skinning/tint": "Färbung", + "onion-skinning/toggle": "Onion Skinning umschalten", + "paint-snap/boxCenter": "Auswahlmitte", + "paint-snap/boxCorners": "Auswahlecken", + "paint-snap/boxEdgeMids": "Mittelpunkte von Auswahlrändern", + "paint-snap/objectCenters": "Objektmitten", + "paint-snap/objectCorners": "Objektecken", + "paint-snap/objectEdges": "Objektecken", + "paint-snap/objectMidlines": "Objektmittellinien", + "paint-snap/off": "Aus", + "paint-snap/on": "Ein", + "paint-snap/pageAxes": "X- und Y- Achsen der Seite ", + "paint-snap/pageCenter": "Seitenmitte", + "paint-snap/pageCorners": "Seitenecken", + "paint-snap/pageEdges": "Seitenrand", + "paint-snap/settings": "Einstellungen für Einrasten", + "paint-snap/snapFrom": "Einrasten von:", + "paint-snap/snapTo": "Einrasten an:", + "paint-snap/threshold": "Einrasteabstand", + "paint-snap/toggle": "Einrasten umschalten", + "2d-color-picker/shade": "Schattieren", + "better-img-uploads/upload": "In HD hochalden", + "variable-manager/for-all-sprites": "Variablen für alle Figuren", + "variable-manager/for-this-sprite": "Variablen für diese Figur", + "variable-manager/search": "Suchen", + "variable-manager/too-big": "Klicke hier, um diesen langen Wert anzuzeigen.", + "variable-manager/variables": "Variablen", + "search-sprites/placeholder": "Figuren suchen", + "sprite-properties/close-properties-panel-tooltip": "Eigenschaften schließen", + "sprite-properties/open-properties-panel-tooltip": "Eigenschaften öffnen", + "gamepad/axes-a-b": "Achsen {a} & {b}", + "gamepad/axis-arrows": "Pfeiltasten", + "gamepad/axis-custom": "Benutzerdefiniert", + "gamepad/axis-none": "Keine", + "gamepad/browser-support": "Dieser Browser und dieses Betriebssystem haben bekannte Bugs, die die Verwendung dieses Addons erschweren könnten. Versuche einen anderen Browser, falls du auf Probleme stößt.", + "gamepad/button-n": "Knopf {n}", + "gamepad/clear": "Alle Steuerungen löschen", + "gamepad/config-header": "Dieser Kommentar enthält die Konfiguration für Gamepad-Steuerung in Tools von Drittanbietern oder Websites wie https://turbowarp.org/\nNicht eigenhändig bearbeiten", + "gamepad/key-click": "Klicken", + "gamepad/key-down": "Unten", + "gamepad/key-left": "Links", + "gamepad/key-none": "(keine)", + "gamepad/key-right": "Rechts", + "gamepad/key-space": "Leertaste", + "gamepad/key-up": "Oben", + "gamepad/keyinput-title": "Klicke und drücke eine Taste oder klicke, um Knopf zu wechseln. Drücke Esc zum abbrechen. Löschen oder Entf zum Löschen.", + "gamepad/no-controllers": "Keine Controller gefunden. Schließe einen an und drücke einen der Knöpfe.", + "gamepad/reset": "Alle Steuerungen zu Projektstandards zurücksetzen", + "gamepad/settings": "Gamepad-Einstellungen", + "gamepad/store-in-project": "Speichere diese Einstellungen im Projekt, um die Standardkonfiguration zu ersetzen (Experimentelles Werkzeug für Projektentwickler)", + "folders/add-to-folder": "zu Ordner \"{folder}\" hinzufügen", + "folders/closed-folder": "Ordner", + "folders/confirm-backpack-folder": "Den ganzen Ordner im Lager speichern?", + "folders/create-folder": "neuer Ordner", + "folders/name-not-allowed": "Ungültiger Ordnername", + "folders/name-prompt": "Ordnername:", + "folders/name-prompt-title": "Neuer Ordner", + "folders/open-folder": "Offen", + "folders/remove-folder": "Ordner entfernen", + "folders/remove-from-folder": "vom Ordner entfernen", + "folders/rename-folder": "Ordner umbenennen", + "folders/rename-folder-prompt": "Ordner umbenennen in:", + "folders/rename-folder-prompt-title": "Ordner umbenennen", + "block-switching/control_forever": "wiederhole fortlaufend", + "block-switching/control_if": "falls, dann", + "block-switching/control_if_else": "falls, dann... sonst", + "block-switching/control_repeat_until": "wiederhole bis", + "block-switching/control_wait_until": "warte bis", + "block-switching/data_changevariableby": "ändere Variable um", + "block-switching/data_hidelist": "verstecke Liste", + "block-switching/data_hidevariable": "verstecke Variable", + "block-switching/data_insertatlist": "füge Element ein", + "block-switching/data_replaceitemoflist": "ersetze Element", + "block-switching/data_setvariableto": "setze Variable auf", + "block-switching/data_showlist": "zeige Liste", + "block-switching/data_showvariable": "zeige Variable", + "block-switching/debugger_error": "Fehler im Log schreiben", + "block-switching/debugger_log": "im Log schreiben", + "block-switching/debugger_warn": "Warnung im Log schreiben", + "block-switching/event_broadcast": "sende an alle", + "block-switching/event_broadcastandwait": "sende an alle und warte", + "block-switching/looks_backdropnumbername": "Bühnenbildnummer oder -name", + "block-switching/looks_changeeffectby": "ändere Effekt um", + "block-switching/looks_changesizeby": "ändere Größe um", + "block-switching/looks_costumenumbername": "Kostümnummer oder -name", + "block-switching/looks_hide": "verstecke dich", + "block-switching/looks_nextbackdrop": "nächstes Bühnenbild", + "block-switching/looks_nextcostume": "nächstes Kostüm", + "block-switching/looks_say": "sage", + "block-switching/looks_sayforsecs": "sage für Sekunden", + "block-switching/looks_seteffectto": "setze Effekt auf", + "block-switching/looks_setsizeto": "setze Größe auf", + "block-switching/looks_show": "zeige dich", + "block-switching/looks_switchbackdropto": "wechsle zu Bühnenbild", + "block-switching/looks_switchbackdroptoandwait": "wechsle zu Bühnenbild und warte", + "block-switching/looks_think": "denke", + "block-switching/looks_thinkforsecs": "denke für Sekunden", + "block-switching/motion_changexby": "ändere x um", + "block-switching/motion_changeyby": "ändere y um", + "block-switching/motion_setx": "setze x auf", + "block-switching/motion_sety": "setze y auf", + "block-switching/motion_turnleft": "drehe dich nach links", + "block-switching/motion_turnright": "drehe dich nach rechts", + "block-switching/motion_xposition": "x-Position", + "block-switching/motion_yposition": "y-Position", + "block-switching/music_changeTempo": "ändere Tempo um", + "block-switching/music_setTempo": "setze Tempo auf", + "block-switching/operator_and": "und", + "block-switching/operator_or": "oder", + "block-switching/pen_changePenColorParamBy": "ändere Parameter", + "block-switching/pen_changePenHueBy": "ändere Farbton um", + "block-switching/pen_changePenShadeBy": "ändere Helligkeit um", + "block-switching/pen_changePenSizeBy": "ändere Größe um", + "block-switching/pen_penDown": "schalte Stift ein", + "block-switching/pen_penUp": "schalte Stift aus", + "block-switching/pen_setPenColorParamTo": "setze Parameter auf", + "block-switching/pen_setPenHueToNumber": "setze Farbton auf", + "block-switching/pen_setPenShadeToNumber": "setze Helligkeit auf", + "block-switching/pen_setPenSizeTo": "setze Größe auf", + "block-switching/sensing_mousex": "Maus-x-Position", + "block-switching/sensing_mousey": "Maus-y-Position", + "block-switching/sound_changeeffectby": "ändere Effekt um", + "block-switching/sound_changevolumeby": "ändere Lautstärke um", + "block-switching/sound_play": "Start", + "block-switching/sound_playuntildone": "spiele Klang ganz", + "block-switching/sound_seteffectto": "setze Effekt auf", + "block-switching/sound_setvolumeto": "setze Lautstärke auf", + "blocks2image/error_blocks_not_added": "Füge Blöcke zum Arbeitsbereich hinzu!", + "blocks2image/export_all_to_PNG": "Alle als PNG exportieren", + "blocks2image/export_all_to_SVG": "Alle als SVG exportieren", + "blocks2image/export_selected_to_PNG": "Exportiere Block als PNG", + "blocks2image/export_selected_to_SVG": "Block als SVG exportieren", + "editor-extra-keys/enter-key": "Enter", + "move-to-top-bottom/bottom": "an letzte Stelle verschieben", + "move-to-top-bottom/top": "an erste Stelle verschieben", + "rename-broadcasts/RENAME_BROADCAST": "Nachricht umbenennen", + "rename-broadcasts/RENAME_BROADCAST_MODAL_TITLE": "Nachricht umbenennen", + "rename-broadcasts/RENAME_BROADCAST_TITLE": "Alle \"{name}\"-Nachrichten umbenennen nach:", + "swap-local-global/cant-convert-cloud": "Cloudvariablen können nicht in nur für diese Figur umgewandelt werden.", + "swap-local-global/cant-convert-conflict": "Konnte nicht umwandeln, weil Konflikte mit Variablen in einer anderen Figur auftreten würden: {sprites}", + "swap-local-global/cant-convert-stage": "Die Bühne kann nicht Variablen nur für diese Figur haben.", + "swap-local-global/cant-convert-to-local": "Konnte nicht umwandeln, weil sie von mehreren Figuren verwendet wird: {sprites}", + "swap-local-global/cant-convert-used-elsewhere": "Konnte nicht umwandeln, weil sie von einer anderen Figur verwendet wird: {sprite}", + "swap-local-global/edit": "Eigenschaften bearbeiten:", + "swap-local-global/edit-list-header": "Liste bearbeiten", + "swap-local-global/edit-list-option": "Liste umbenennen oder bearbeiten", + "swap-local-global/edit-variable-header": "Variable bearbeiten", + "swap-local-global/edit-variable-option": "Variable bearbeiten oder umbenennen", + "swap-local-global/to-global": "In \"Für alle Figuren\" umwandeln", + "swap-local-global/to-local": "In \"Nur für diese Figur\" umwandeln", + "hide-stage/hide-stage": "Bühne ausblenden" +} \ No newline at end of file diff --git a/src/addons/addons-l10n/en.json b/src/addons/addons-l10n/en.json new file mode 100644 index 0000000000000000000000000000000000000000..1239b4998265e58e94ac8a082aec1d504c5604ee --- /dev/null +++ b/src/addons/addons-l10n/en.json @@ -0,0 +1,263 @@ +{ + "editor-devtools/clean-plus": "Clean up Blocks +", + "editor-devtools/copy-all": "Copy All", + "editor-devtools/copy-block": "Copy Block", + "editor-devtools/cut-block": "Cut Block", + "editor-devtools/lists": "lists", + "editor-devtools/make-space": "Make Space", + "editor-devtools/orphaned": "{count, plural, one {Developer tools: Delete 1 orphaned reporter block?} other {Developer tools: Delete # orphaned reporter blocks?} }", + "editor-devtools/paste": "Paste", + "editor-devtools/replace": "Developer tools: Switch all {name} in this sprite for the variable named:", + "editor-devtools/swap": "Swap {var} in Sprite", + "editor-devtools/unused-list": "{count, plural, one {Developer tools: Delete 1 unused local list? Here it is:\n} other {Developer tools: Delete # unused local lists? Here they are:\n} }", + "editor-devtools/unused-var": "{count, plural, one {Developer tools: Delete 1 unused local variable? Here it is:\n} other {Developer tools: Delete # unused local variables? Here they are:\n} }", + "editor-devtools/var-not-exist": "That variable does not exist...", + "editor-devtools/variables": "variables", + "find-bar/complex-broadcast": "(expression)", + "find-bar/find-placeholder": "Find (Ctrl+F)", + "middle-click-popup/start-typing": "Start Typing...", + "editor-searchable-dropdowns/createBroadcast": "Create message \"{name}\"", + "editor-searchable-dropdowns/createGlobalList": "Create list \"{name}\" for all sprites", + "editor-searchable-dropdowns/createGlobalVariable": "Create variable \"{name}\" for all sprites", + "editor-searchable-dropdowns/createLocalList": "Create list \"{name}\" for this sprite only", + "editor-searchable-dropdowns/createLocalVariable": "Create variable \"{name}\" for this sprite only", + "data-category-tweaks-v2/for-all-sprites": "For all sprites:", + "data-category-tweaks-v2/for-this-sprite-only": "For this sprite only:", + "data-category-tweaks-v2/list-category": "Lists", + "hide-flyout/lock": "Lock Palette", + "hide-flyout/unlock": "Unlock Palette", + "mediarecorder/cancel": "Cancel", + "mediarecorder/click-flag": "Waiting...", + "mediarecorder/click-flag-description": "Click the green flag to start recording. Click this button to stop.", + "mediarecorder/option-title": "Record Options", + "mediarecorder/record": "Record", + "mediarecorder/record-after-flag": "Do not start recording until the Green Flag is clicked", + "mediarecorder/record-audio": "Include project sounds", + "mediarecorder/record-audio-description": "This does not include Text-to-Speech.", + "mediarecorder/record-description": "Record the stage as an MP4 or WebM file. You can save it to your computer after the recording is finished.\nNote: variable and list monitors will not be visible.", + "mediarecorder/record-duration": "Record Duration (in seconds)", + "mediarecorder/record-mic": "Include sounds from microphone", + "mediarecorder/record-until-stop": "Stop recording after the project has stopped", + "mediarecorder/record-until-stop-disabled": "You need to enable \"{afterFlagOption}\" to use this option.", + "mediarecorder/start": "Start", + "mediarecorder/start-delay": "Start Delay (in seconds)", + "mediarecorder/starting-in": "Starting in {secs}...", + "mediarecorder/stop": "Stop Recording", + "debugger/block-breakpoint": "breakpoint", + "debugger/block-error": "error %s", + "debugger/block-log": "log %s", + "debugger/block-warn": "warn %s", + "debugger/cannot-pause-player": "Breakpoint block can only be used while on the editor.", + "debugger/clear": "Clear", + "debugger/clone-of": "Clone of {sprite}", + "debugger/close": "Close", + "debugger/console": "Logs", + "debugger/debug": "Debug", + "debugger/empty-string": "(empty string)", + "debugger/enter-format": "Enter export format:", + "debugger/export": "Export", + "debugger/export-desc": "Click while holding Shift to customize export format.", + "debugger/icon-error": "Error", + "debugger/icon-warn": "Warning", + "debugger/log-msg-broadcasted": "Broadcasted '{broadcast}'.", + "debugger/log-msg-clone-cap": "Failed to create clone of '{sprite}', cannot create over 300 clones.", + "debugger/log-msg-clone-created": "Created clone of '{sprite}'.", + "debugger/log-msg-flag-clicked": "Green flag clicked.", + "debugger/no-logs": "There are no logs to display.", + "debugger/no-threads-running": "No threads running.", + "debugger/step": "Step", + "debugger/step-desc": "Executes one block.", + "debugger/tab-logs": "Logs", + "debugger/tab-threads": "Threads", + "debugger/thread": "Thread {id}", + "debugger/unknown-sprite": "(unknown sprite)", + "debugger/unpause": "Resume", + "pause/pause": "Pause", + "clones/clones": "clones: {cloneCount}", + "color-picker/hex": "hex color", + "remove-sprite-confirm/confirm": "Do you want to delete the sprite?", + "block-count/blocks": "{num, plural, one {1 block} other {# blocks}}", + "onion-skinning/behind": "Behind", + "onion-skinning/front": "Front", + "onion-skinning/layering": "Layering", + "onion-skinning/merge": "Merge", + "onion-skinning/mode": "Mode", + "onion-skinning/next": "Next costumes", + "onion-skinning/opacity": "Opacity (%)", + "onion-skinning/opacityStep": "Opacity step (%)", + "onion-skinning/previous": "Previous costumes", + "onion-skinning/settings": "Onion Skinning Settings", + "onion-skinning/tint": "Tint", + "onion-skinning/toggle": "Toggle Onion Skinning", + "paint-snap/boxCenter": "Center of selection", + "paint-snap/boxCorners": "Corners of selection", + "paint-snap/boxEdgeMids": "Selection edge midpoints", + "paint-snap/objectCenters": "Centers of objects", + "paint-snap/objectCorners": "Corners of objects", + "paint-snap/objectEdges": "Edges of objects", + "paint-snap/objectMidlines": "Midlines of objects", + "paint-snap/off": "Off", + "paint-snap/on": "On", + "paint-snap/pageAxes": "Page x and y axes", + "paint-snap/pageCenter": "Center of the page", + "paint-snap/pageCorners": "Corners of the page", + "paint-snap/pageEdges": "Edges of the page", + "paint-snap/settings": "Snap Settings", + "paint-snap/snapFrom": "Snap from:", + "paint-snap/snapTo": "Snap to:", + "paint-snap/threshold": "Snapping distance", + "paint-snap/toggle": "Toggle Snapping", + "2d-color-picker/shade": "Shade", + "better-img-uploads/upload": "HD Upload", + "variable-manager/for-all-sprites": "Variables for all sprites", + "variable-manager/for-this-sprite": "Variables for this sprite", + "variable-manager/search": "Search", + "variable-manager/too-big": "Click to display very large value.", + "variable-manager/variables": "Variables", + "search-sprites/placeholder": "Search sprites...", + "sprite-properties/close-properties-panel-tooltip": "Collapse properties panel", + "sprite-properties/open-properties-panel-tooltip": "Open properties panel", + "gamepad/axes-a-b": "Axes {a} & {b}", + "gamepad/axis-arrows": "Arrow Keys", + "gamepad/axis-cursor": "Cursor", + "gamepad/axis-custom": "Custom", + "gamepad/axis-none": "None", + "gamepad/browser-support": "This browser and operating system have known bugs that may make this addon difficult to use. Try another browser if you encounter problems.", + "gamepad/button-n": "Button {n}", + "gamepad/clear": "Clear all controls", + "gamepad/config-header": "This comment contains configuration for gamepad support in third-party tools or websites such as https://turbowarp.org/\nDo not edit by hand", + "gamepad/key-click": "Click", + "gamepad/key-down": "Down", + "gamepad/key-enter": "Enter", + "gamepad/key-left": "Left", + "gamepad/key-none": "(none)", + "gamepad/key-right": "Right", + "gamepad/key-space": "Space", + "gamepad/key-up": "Up", + "gamepad/keyinput-title": "Click and press a key or click to change button. Escape to cancel. Backspace or delete to clear.", + "gamepad/no-controllers": "No controllers detected. Try plugging one in and pressing a button on it.", + "gamepad/reset": "Reset all controls to project defaults", + "gamepad/settings": "Gamepad Settings", + "gamepad/store-in-project": "Store these settings in the project to override the default configuration (Experimental tool for project creators)", + "folders/add-to-folder": "add to folder: {folder}", + "folders/closed-folder": "Folder", + "folders/confirm-backpack-folder": "Save entire folder to backpack?", + "folders/create-folder": "create folder", + "folders/name-not-allowed": "Invalid folder name", + "folders/name-prompt": "Name of folder:", + "folders/name-prompt-title": "Create Folder", + "folders/open-folder": "Opened", + "folders/remove-folder": "remove folder", + "folders/remove-from-folder": "remove from folder", + "folders/rename-folder": "rename folder", + "folders/rename-folder-prompt": "Rename folder to:", + "folders/rename-folder-prompt-title": "Rename Folder", + "block-switching/control_forever": "forever", + "block-switching/control_if": "if", + "block-switching/control_if_else": "if... else", + "block-switching/control_repeat_until": "repeat until", + "block-switching/control_while": "while", + "block-switching/control_wait_until": "wait until", + "block-switching/data_changevariableby": "change variable", + "block-switching/data_deletealloflist": "delete all", + "block-switching/data_deleteoflist": "delete item", + "block-switching/data_hidelist": "hide list", + "block-switching/data_hidevariable": "hide variable", + "block-switching/data_insertatlist": "insert item", + "block-switching/data_replaceitemoflist": "replace item", + "block-switching/data_setvariableto": "set variable", + "block-switching/data_showlist": "show list", + "block-switching/data_showvariable": "show variable", + "block-switching/debugger_error": "error", + "block-switching/debugger_log": "log", + "block-switching/debugger_warn": "warn", + "block-switching/event_broadcast": "broadcast", + "block-switching/event_broadcastandwait": "broadcast and wait", + "block-switching/looks_backdropnumbername": "backdrop number or name", + "block-switching/looks_changeeffectby": "change effect", + "block-switching/looks_changesizeby": "change size", + "block-switching/looks_costumenumbername": "costume number or name", + "block-switching/looks_goforwardbackwardlayers": "go forward or backward layers", + "block-switching/looks_gotofrontback": "go to front or back layer", + "block-switching/looks_hide": "hide", + "block-switching/looks_nextbackdrop": "next backdrop", + "block-switching/looks_nextcostume": "next costume", + "block-switching/looks_say": "say", + "block-switching/looks_sayforsecs": "say for seconds", + "block-switching/looks_seteffectto": "set effect", + "block-switching/looks_setsizeto": "set size", + "block-switching/looks_show": "show", + "block-switching/looks_switchbackdropto": "switch backdrop", + "block-switching/looks_switchbackdroptoandwait": "switch backdrop and wait", + "block-switching/looks_think": "think", + "block-switching/looks_thinkforsecs": "think for seconds", + "block-switching/motion_changexby": "change x", + "block-switching/motion_changeyby": "change y", + "block-switching/motion_setx": "set x", + "block-switching/motion_sety": "set y", + "block-switching/motion_changebyxy": "change by x y", + "block-switching/motion_gotoxy": "goto x y", + "block-switching/motion_turnleft": "turn left", + "block-switching/motion_turnright": "turn right", + "block-switching/motion_xposition": "x position", + "block-switching/motion_yposition": "y position", + "block-switching/music_changeTempo": "change tempo", + "block-switching/music_setTempo": "set tempo", + "block-switching/operator_add": "+", + "block-switching/operator_and": "and", + "block-switching/operator_divide": "/", + "block-switching/operator_equals": "=", + "block-switching/operator_notequal": "≠", + "block-switching/operator_gt": ">", + "block-switching/operator_lt": "<", + "block-switching/operator_gtorequal": "≥", + "block-switching/operator_ltorequal": "≤", + "block-switching/operator_mod": "mod", + "block-switching/operator_multiply": "*", + "block-switching/operator_or": "or", + "block-switching/operator_subtract": "-", + "block-switching/operator_trueBoolean": "true", + "block-switching/operator_falseBoolean": "false", + "block-switching/operator_power": "^", + "block-switching/pen_changePenColorParamBy": "change parameter", + "block-switching/pen_changePenHueBy": "change hue", + "block-switching/pen_changePenShadeBy": "change shade", + "block-switching/pen_changePenSizeBy": "change size", + "block-switching/pen_penDown": "pen down", + "block-switching/pen_penUp": "pen up", + "block-switching/pen_setPenColorParamTo": "set parameter", + "block-switching/pen_setPenHueToNumber": "set hue", + "block-switching/pen_setPenShadeToNumber": "set shade", + "block-switching/pen_setPenSizeTo": "set size", + "block-switching/sensing_coloristouchingcolor": "color touching color", + "block-switching/sensing_mousex": "mouse x", + "block-switching/sensing_mousey": "mouse y", + "block-switching/sensing_touchingcolor": "touching color", + "block-switching/sound_changeeffectby": "change effect", + "block-switching/sound_changevolumeby": "change volume", + "block-switching/sound_play": "start", + "block-switching/sound_playuntildone": "play until done", + "block-switching/sound_seteffectto": "set effect", + "block-switching/sound_setvolumeto": "set volume", + "blocks2image/error_blocks_not_added": "Add blocks to workspace!", + "blocks2image/export_all_to_PNG": "Export all as PNG", + "blocks2image/export_all_to_SVG": "Export all as SVG", + "blocks2image/export_selected_to_PNG": "Export block as PNG", + "blocks2image/export_selected_to_SVG": "Export block as SVG", + "editor-extra-keys/enter-key": "enter", + "move-to-top-bottom/bottom": "move to bottom", + "move-to-top-bottom/top": "move to top", + "swap-local-global/cant-convert-cloud": "Cloud variables can't be converted to this sprite only.", + "swap-local-global/cant-convert-conflict": "Can't convert because it would conflict with variables in another sprite: {sprites}", + "swap-local-global/cant-convert-stage": "The stage can't have variables for this sprite only.", + "swap-local-global/cant-convert-to-local": "Can't convert because it's used by multiple sprites: {sprites}", + "swap-local-global/cant-convert-used-elsewhere": "Can't convert because it's used by another sprite: {sprite}", + "swap-local-global/edit": "Edit properties:", + "swap-local-global/edit-list-header": "Edit List", + "swap-local-global/edit-list-option": "Rename or edit list", + "swap-local-global/edit-variable-header": "Edit Variable", + "swap-local-global/edit-variable-option": "Rename or edit variable", + "swap-local-global/to-global": "Convert to \"For all sprites\"", + "swap-local-global/to-local": "Convert to \"For this sprite only\"", + "hide-stage/hide-stage": "Hide stage" +} \ No newline at end of file diff --git a/src/addons/addons-l10n/es.json b/src/addons/addons-l10n/es.json new file mode 100644 index 0000000000000000000000000000000000000000..4e16a9c963489a353d0d45887c6543d40f84c8d9 --- /dev/null +++ b/src/addons/addons-l10n/es.json @@ -0,0 +1,228 @@ +{ + "editor-devtools/clean-plus": "Ordenar Bloques +", + "editor-devtools/copy-all": "Copiar Todos", + "editor-devtools/copy-block": "Copiar Bloque", + "editor-devtools/cut-block": "Cortar Bloque", + "editor-devtools/lists": "listas", + "editor-devtools/make-space": "Hacer Espacio", + "editor-devtools/orphaned": "{count, plural, one {Herramientas de desarrollador: ¿borrar 1 bloque reportero huérfano?} many {Herramientas de desarrollador: ¿borrar # bloques reporteros huérfanos?} other {Herramientas de desarrollador: ¿borrar # bloques reporteros huérfanos?} }", + "editor-devtools/paste": "Pegar", + "editor-devtools/replace": "Herramientas de desarrollador: cambiar todos los {name} en este objeto por la variable llamada:", + "editor-devtools/swap": "Intercambiar Variable {var} en Objeto", + "editor-devtools/unused-list": "{count, plural, one {Herramientas de desarrollador: ¿borrar 1 lista local sin usar? Esta es:\n} many {Herramientas de desarrollador: ¿borrar # listas locales sin usar? Estas son:\n} other {Herramientas de desarrollador: ¿borrar # listas locales sin usar? Estas son:\n} }", + "editor-devtools/unused-var": "{count, plural, one {Herramientas de desarrollador: ¿borrar 1 variable local sin usar? Estas son:\n} many {Herramientas de desarrollador: ¿borrar # variables locales sin usar? Estas son:\n} other {Herramientas de desarrollador: ¿borrar # variables locales sin usar? Estas son:\n} }", + "editor-devtools/var-not-exist": "Esa variable no existe..", + "find-bar/complex-broadcast": "(expresión)", + "find-bar/find-placeholder": "Buscar (Ctrl+F)", + "middle-click-popup/start-typing": "Empiece a escribir...", + "editor-searchable-dropdowns/createBroadcast": "Crear mensaje \"{name}\"", + "editor-searchable-dropdowns/createGlobalList": "Crear lista \"{name}\" para todos los objetos", + "editor-searchable-dropdowns/createGlobalVariable": "Crear variable \"{name}\" para todos los objetos", + "editor-searchable-dropdowns/createLocalList": "Crear lista \"{name}\" solo para este objeto", + "editor-searchable-dropdowns/createLocalVariable": "Crear variable \"{name}\" solo para este objeto", + "data-category-tweaks-v2/for-all-sprites": "Para todos los objetos:", + "data-category-tweaks-v2/for-this-sprite-only": "Solo para este objeto:", + "data-category-tweaks-v2/list-category": "Listas", + "hide-flyout/lock": "Bloquear Paleta", + "hide-flyout/unlock": "Desbloquear Paleta", + "mediarecorder/cancel": "Cancelar", + "mediarecorder/click-flag": "Esperando...", + "mediarecorder/click-flag-description": "Haga click en la bandera verde para empezar a grabar. Haga click en este botón para parar.", + "mediarecorder/option-title": "Opciones de grabación", + "mediarecorder/record-after-flag": "No empezar grabación hasta que haga click en la Bandera Verde", + "mediarecorder/record-audio": "Incluir sonidos del proyecto", + "mediarecorder/record-audio-description": "Esto no incluye Text-to-Speech.", + "mediarecorder/record-duration": "Duración (en segundos)", + "mediarecorder/record-mic": "Incluir sonidos del micrófono", + "mediarecorder/record-until-stop": "Parar grabación luego de que el proyecto se detenga", + "mediarecorder/record-until-stop-disabled": "Debes activar \"{afterFlagOption}\" para usar esta opción.", + "mediarecorder/start": "Empezar", + "mediarecorder/start-delay": "Demora para empezar (en segundos)", + "mediarecorder/starting-in": "Empezando en {secs}...", + "mediarecorder/stop": "Detener Grabación", + "debugger/block-log": "loguear", + "debugger/block-warn": "advertir %s", + "debugger/cannot-pause-player": "El bloque breakpoint solo se puede usar mientras esté en el editor.", + "debugger/clear": "Vaciar", + "debugger/clone-of": "Clon de {sprite}", + "debugger/close": "Cerrar", + "debugger/debug": "Depurar", + "debugger/empty-string": "(string vacío)", + "debugger/enter-format": "Ingrese formato de exportación:", + "debugger/export": "Exportar", + "debugger/export-desc": "Haga click mientras mantiene Shift para personalizar el formato de exportación.", + "debugger/icon-warn": "Advertencia", + "debugger/log-msg-broadcasted": "Mensaje enviado '{broadcast}'.", + "debugger/log-msg-clone-cap": "No se pudo crear clon de '{sprite}', no se pueden crear más de 300 clones.", + "debugger/log-msg-clone-created": "Se creo un clon de '{sprite}'.", + "debugger/log-msg-flag-clicked": "Bandera verde clickeada.", + "debugger/no-logs": "No hay logs para mostrar.", + "debugger/no-threads-running": "No hay hilos ejecutándose.", + "debugger/step": "Paso", + "debugger/step-desc": "Ejecuta un bloque.", + "debugger/tab-threads": "Hilos", + "debugger/thread": "Hilo {id}", + "debugger/unknown-sprite": "(objeto desconocido)", + "debugger/unpause": "Continuar", + "pause/pause": "Pausar", + "color-picker/hex": "color hex", + "remove-sprite-confirm/confirm": "¿Quiere borrar este objeto?", + "block-count/blocks": "{num, plural, one {1 bloques} many {# bloques} other {# bloques}}", + "onion-skinning/behind": "Detrás", + "onion-skinning/front": "Frente", + "onion-skinning/layering": "Método de superposición", + "onion-skinning/merge": "Combinar", + "onion-skinning/mode": "Modo", + "onion-skinning/next": "Disfraces siguientes", + "onion-skinning/opacity": "Opacidad (%)", + "onion-skinning/opacityStep": "Salto de opacidad (%)", + "onion-skinning/previous": "Disfraces anteriores", + "onion-skinning/settings": "Ajustes de Capa Sobre Capa", + "onion-skinning/tint": "Teñir", + "onion-skinning/toggle": "Activar/desactivar capa sobre capa", + "paint-snap/boxCenter": "Centro de selección", + "paint-snap/boxCorners": "Esquinas de selección", + "paint-snap/boxEdgeMids": "Seleccionar puntos medios de lados", + "paint-snap/objectCenters": "Centros de objetos", + "paint-snap/objectCorners": "Esquinas de objetos", + "paint-snap/objectEdges": "Lados de objetos", + "paint-snap/objectMidlines": "Líneas centrales de objetos", + "paint-snap/off": "Apagado", + "paint-snap/on": "Encendido", + "paint-snap/pageAxes": "Ejes x e y de la página", + "paint-snap/pageCenter": "Centro de la página", + "paint-snap/pageCorners": "Esquinas de la página", + "paint-snap/pageEdges": "Lados de la página", + "paint-snap/settings": "Configuración de ajuste de posición", + "paint-snap/snapFrom": "Ajustar desde:", + "paint-snap/snapTo": "Ajustar a:", + "paint-snap/threshold": "Distancia de ajuste", + "paint-snap/toggle": "Alternar activación del ajuste de posición", + "2d-color-picker/shade": "Tonalidad", + "better-img-uploads/upload": "Subida HD", + "variable-manager/for-all-sprites": "Variables para todos los objetos", + "variable-manager/for-this-sprite": "Variables para este objeto", + "variable-manager/search": "Buscar", + "search-sprites/placeholder": "Buscar objetos...", + "sprite-properties/close-properties-panel-tooltip": "Colapsar panel de propiedades", + "sprite-properties/open-properties-panel-tooltip": "Abrir panel de propiedades", + "gamepad/axes-a-b": "Ejes {a} y {b}", + "gamepad/axis-arrows": "Flechas del Teclado", + "gamepad/axis-custom": "Personalizado", + "gamepad/axis-none": "Ninguno", + "gamepad/browser-support": "Este navegador y sistema operativo tienen bugs conocidos que pueden causar que este addon sea difícil de usar. Pruebe otro navegador si encuentra problemas.", + "gamepad/button-n": "Botón {n}", + "gamepad/clear": "Borrar todos los controles", + "gamepad/config-header": "Este comentario contiene configuración de soporte de mando de videojuegos para herramientas de terceros o páginas web como https://turbowarp.org/\nNo editar a mano", + "gamepad/key-down": "Abajo", + "gamepad/key-left": "Izquierda", + "gamepad/key-none": "(ninguno)", + "gamepad/key-right": "Derecha", + "gamepad/key-space": "Espacio", + "gamepad/key-up": "Arriba", + "gamepad/keyinput-title": "Haga click y presione una tecla para cambiar el botón. Esc para cancelar. Retroceso o Suprimir para borrar.", + "gamepad/no-controllers": "No se detectó ningún mando. Intente conectar uno y presionar cualquier botón de él.", + "gamepad/reset": "Restablecer todos los controles a los predeterminados del proyecto", + "gamepad/settings": "Ajustes del Mando", + "gamepad/store-in-project": "Guardar estos ajustes en el proyecto para reemplazar la configuración por defecto (herramienta experimental para creadores de proyectos)", + "folders/add-to-folder": "agregar a carpeta: {folder}", + "folders/closed-folder": "Carpeta", + "folders/confirm-backpack-folder": "¿Guardar carpeta entera en la mochila?", + "folders/create-folder": "crear carpeta", + "folders/name-not-allowed": "Nombre de carpeta inválido", + "folders/name-prompt": "Nombre de carpeta:", + "folders/name-prompt-title": "Crear Carpeta", + "folders/open-folder": "Abierta", + "folders/remove-folder": "quitar carpeta", + "folders/remove-from-folder": "quitar de carpeta", + "folders/rename-folder": "renombrar carpeta", + "folders/rename-folder-prompt": "Renombrar carpeta a:", + "folders/rename-folder-prompt-title": "Renombrar Carpeta", + "block-switching/control_forever": "por siempre", + "block-switching/control_if": "si", + "block-switching/control_if_else": "si... si no", + "block-switching/control_repeat_until": "repetir hasta que", + "block-switching/control_wait_until": "esperar hasta que", + "block-switching/data_changevariableby": "cambiar/sumar variable", + "block-switching/data_hidelist": "esconder lista", + "block-switching/data_hidevariable": "esconder variable", + "block-switching/data_insertatlist": "insertar elemento", + "block-switching/data_replaceitemoflist": "reemplazar elemento", + "block-switching/data_setvariableto": "establecer variable", + "block-switching/data_showlist": "mostrar lista", + "block-switching/data_showvariable": "mostrar variable", + "block-switching/debugger_log": "loguear", + "block-switching/debugger_warn": "advertir", + "block-switching/event_broadcast": "enviar", + "block-switching/event_broadcastandwait": "enviar y esperar", + "block-switching/looks_backdropnumbername": "número o nombre de fondo", + "block-switching/looks_changeeffectby": "cambiar/sumar efecto", + "block-switching/looks_changesizeby": "cambiar/sumar tamaño", + "block-switching/looks_costumenumbername": "número o nombre de disfraz", + "block-switching/looks_hide": "ocultar", + "block-switching/looks_nextbackdrop": "siguiente fondo", + "block-switching/looks_nextcostume": "siguiente disfraz", + "block-switching/looks_say": "decir", + "block-switching/looks_sayforsecs": "decir por segundos", + "block-switching/looks_seteffectto": "fijar efecto", + "block-switching/looks_setsizeto": "fijar tamaño", + "block-switching/looks_show": "mostrar", + "block-switching/looks_switchbackdropto": "cambiar fondo", + "block-switching/looks_switchbackdroptoandwait": "cambiar fondo y esperar", + "block-switching/looks_think": "pensar", + "block-switching/looks_thinkforsecs": "pensar por segundos", + "block-switching/motion_changexby": "cambiar/sumar x", + "block-switching/motion_changeyby": "cambiar/sumar y", + "block-switching/motion_setx": "fijar x", + "block-switching/motion_sety": "fijar y", + "block-switching/motion_turnleft": "girar a la izquierda", + "block-switching/motion_turnright": "girar a la derecha", + "block-switching/motion_xposition": "posición en x", + "block-switching/motion_yposition": "posición en y", + "block-switching/music_changeTempo": "cambiar tempo", + "block-switching/music_setTempo": "fijar tempo", + "block-switching/operator_and": "y", + "block-switching/operator_mod": "módulo", + "block-switching/operator_or": "o", + "block-switching/pen_changePenColorParamBy": "fijar parámetro", + "block-switching/pen_changePenHueBy": "cambiar/sumar matiz de color", + "block-switching/pen_changePenShadeBy": "cambiar/sumar sombra de color", + "block-switching/pen_changePenSizeBy": "cambiar/sumar tamaño", + "block-switching/pen_penDown": "bajar lápiz", + "block-switching/pen_penUp": "subir lápiz", + "block-switching/pen_setPenColorParamTo": "cambiar/sumar parámetro", + "block-switching/pen_setPenHueToNumber": "fijar matiz de color", + "block-switching/pen_setPenShadeToNumber": "fijar sombra de color", + "block-switching/pen_setPenSizeTo": "fijar tamaño", + "block-switching/sensing_mousex": "posición x del ratón", + "block-switching/sensing_mousey": "posición y del ratón", + "block-switching/sound_changeeffectby": "cambiar/sumar efecto", + "block-switching/sound_changevolumeby": "cambiar/sumar volumen", + "block-switching/sound_play": "iniciar", + "block-switching/sound_playuntildone": "tocar sonido hasta terminar", + "block-switching/sound_seteffectto": "fijar efecto", + "block-switching/sound_setvolumeto": "fijar volumen", + "blocks2image/error_blocks_not_added": "Agregue bloques al workspace", + "blocks2image/export_all_to_PNG": "Exportar todos como PNG", + "blocks2image/export_all_to_SVG": "Exportar todos como SVG", + "blocks2image/export_selected_to_PNG": "Exportar bloque como PNG", + "blocks2image/export_selected_to_SVG": "Exportar bloque como SVG", + "move-to-top-bottom/bottom": "mover al fondo", + "move-to-top-bottom/top": "movar a la cima", + "rename-broadcasts/RENAME_BROADCAST": "Renombrar mensaje", + "rename-broadcasts/RENAME_BROADCAST_MODAL_TITLE": "Renombrar Mensaje", + "rename-broadcasts/RENAME_BROADCAST_TITLE": "Renombrar todos los mensajes \"{name}\" a:", + "swap-local-global/cant-convert-cloud": "Variables en la nube no pueden ser convertidas a solo para este objeto", + "swap-local-global/cant-convert-conflict": "No se pudo convertir porque entraría en conflicto con variables en otro objeto: {sprites}", + "swap-local-global/cant-convert-stage": "El escenario no puede tener variables solo para este objeto.", + "swap-local-global/cant-convert-to-local": "No se pudo convertir porque es usado por múltiples objetos: {sprites}", + "swap-local-global/cant-convert-used-elsewhere": "No se pudo convertir porque es usado por otro objeto: {sprite}", + "swap-local-global/edit": "Editar propiedades:", + "swap-local-global/edit-list-header": "Editar Lista", + "swap-local-global/edit-list-option": "Renombrar o editar lista", + "swap-local-global/edit-variable-header": "Editar Variable", + "swap-local-global/edit-variable-option": "Renombrar o editar variable", + "swap-local-global/to-global": "Convertir a \"Para todos los objetos\"", + "swap-local-global/to-local": "Convertir a \"Solo para este objeto\"", + "hide-stage/hide-stage": "Esconder escenario" +} \ No newline at end of file diff --git a/src/addons/addons-l10n/fr.json b/src/addons/addons-l10n/fr.json new file mode 100644 index 0000000000000000000000000000000000000000..5335058cd503b4b875676cedfcce5ffc11be4435 --- /dev/null +++ b/src/addons/addons-l10n/fr.json @@ -0,0 +1,221 @@ +{ + "editor-devtools/clean-plus": "Nettoyer les blocs +", + "editor-devtools/copy-all": "Tout Copier", + "editor-devtools/copy-block": "Copier Le Bloc", + "editor-devtools/cut-block": "Couper le bloc", + "editor-devtools/lists": "listes", + "editor-devtools/make-space": "Espacer", + "editor-devtools/orphaned": "{count, plural, one {Outils développeur : Supprimer 1 bloc de valeur seul ?} many {Outils développeur : Supprimer les # blocs de valeur seuls ?} other {Outils développeur : Supprimer les # blocs de valeur seuls ?} }", + "editor-devtools/paste": "Coller", + "editor-devtools/replace": "Outils développeur : Remplacer toutes les utilisations de la variable {name} dans ce sprite par la variable nommée :", + "editor-devtools/swap": "Remplacer la variable \"{var}\" dans le sprite", + "editor-devtools/unused-list": "{count, plural, one {Outils développeur : Supprimer 1 liste locale inutilisée ? La voici :\n} many {Outils développeur : Supprimer # listes locales inutilisées ? Les voici :\n} other {Outils développeur : Supprimer # listes locales inutilisées ? Les voici :\n} }", + "editor-devtools/unused-var": "{count, plural, one {Outils développeur : Supprimer 1 variable locale inutilisée ? Là voilà :\n} many {Outils développeur : Supprimer les # variables locales inutilisées ? Les voici :\n} other {Outils développeur : Supprimer les # variables locales inutilisées ? Les voici :\n} }", + "editor-devtools/var-not-exist": "Cette variable n'existe pas...", + "find-bar/find-placeholder": "Rechercher (Ctrl + F)", + "middle-click-popup/start-typing": "Commencez à taper…", + "editor-searchable-dropdowns/createBroadcast": "Créer un message nommé \"{name}\"", + "editor-searchable-dropdowns/createGlobalList": "Créer une liste \"{name}\" pour tous les sprites", + "editor-searchable-dropdowns/createGlobalVariable": "Créer une variable \"{name}\" pour tous les sprites", + "editor-searchable-dropdowns/createLocalList": "Créer une liste \"{name}\" pour ce sprite uniquement", + "editor-searchable-dropdowns/createLocalVariable": "Créer une variable \"{name}\" pour ce sprite uniquement", + "data-category-tweaks-v2/for-all-sprites": "Pour tous les sprites :", + "data-category-tweaks-v2/for-this-sprite-only": "Pour ce sprite uniquement :", + "data-category-tweaks-v2/list-category": "Listes", + "hide-flyout/lock": "Vérouiller la palette", + "hide-flyout/unlock": "Dévérouiller la palette", + "mediarecorder/cancel": "Annuler", + "mediarecorder/click-flag": "En attente...", + "mediarecorder/click-flag-description": "Cliquez sur le drapeau vert pour démarrer l'enregistrement. Cliquez sur ce bouton pour arrêter.", + "mediarecorder/option-title": "Options d'enregistrement", + "mediarecorder/record": "Enregistrer", + "mediarecorder/record-after-flag": "Ne démarrez pas l'enregistrement tant que le drapeau vert n'est pas été cliqué", + "mediarecorder/record-audio": "Inclure les sons du projet", + "mediarecorder/record-audio-description": "Cela n'inclut pas la synthèse vocale.", + "mediarecorder/record-duration": "Durée de l'enregistrement (en secondes)", + "mediarecorder/record-mic": "Inclure les sons du microphone", + "mediarecorder/record-until-stop": "Arrêter l'enregistrement quand le projet se termine", + "mediarecorder/record-until-stop-disabled": "Vous devez activer \"{afterFlagOption}\" pour utiliser cette option.", + "mediarecorder/start": "Commencer", + "mediarecorder/start-delay": "Délai de démarrage (en secondes)", + "mediarecorder/starting-in": "Démarrage dans{secs} ...", + "mediarecorder/stop": "Arrêter l'enregistrement", + "debugger/block-breakpoint": "point d'arrêt", + "debugger/block-error": "afficher erreur %s", + "debugger/block-log": "afficher message %s", + "debugger/block-warn": "afficher avertissement %s", + "debugger/cannot-pause-player": "Le bloc de point d'arrêt ne peut être utilisé que dans l'éditeur.", + "debugger/clear": "Effacer", + "debugger/clone-of": "Clone de {sprite}", + "debugger/close": "Fermer", + "debugger/console": "Console", + "debugger/debug": "Débogage", + "debugger/empty-string": "(chaîne de caractères vide)", + "debugger/enter-format": "Entrez un format d'export :", + "debugger/export": "Exporter", + "debugger/export-desc": "Cliquez tout en maintenant la touche Maj. enfoncée pour personnaliser le format d'exportation.", + "debugger/icon-error": "Erreur", + "debugger/icon-warn": "Avertissement", + "debugger/log-msg-broadcasted": "\"{broadcast}\" envoyé à tous les sprites.", + "debugger/log-msg-clone-cap": "Échec lors de la création d'un clone de '{sprite}', car il est impossible de créer plus de 300 clones.", + "debugger/log-msg-clone-created": "Un clone de '{sprite}' a été créé.", + "debugger/log-msg-flag-clicked": "Drapeau vert cliqué.", + "debugger/no-logs": "Il y a aucune activité à montrer.", + "debugger/no-threads-running": "Aucun processus en cours d'exécution.", + "debugger/step": "Avancer", + "debugger/step-desc": "Exécute un seul bloc.", + "debugger/tab-logs": "Activités", + "debugger/tab-threads": "Processus", + "debugger/unknown-sprite": "(sprite inconnu)", + "debugger/unpause": "Reprendre", + "clones/clones": "clones : {cloneCount}", + "color-picker/hex": "couleur hexa", + "remove-sprite-confirm/confirm": "Voulez-vous supprimer le sprite ?", + "block-count/blocks": "{num, plural, one {1 bloc} many {# blocs} other {# blocs}}", + "onion-skinning/behind": "Derrière", + "onion-skinning/front": "Devant", + "onion-skinning/layering": "Calques", + "onion-skinning/merge": "Combiner", + "onion-skinning/next": "Costumes suivants", + "onion-skinning/opacity": "Opacité (%)", + "onion-skinning/opacityStep": "Différence d'opacité (%)", + "onion-skinning/previous": "Costumes précédents", + "onion-skinning/settings": "Paramètres de Pelure d'Oignon", + "onion-skinning/tint": "Teinte", + "onion-skinning/toggle": "Activer la Pelure d'Oignon", + "paint-snap/objectEdges": "Bords des objets", + "paint-snap/pageEdges": "Bords de la page", + "paint-snap/settings": "Réglages du Snap", + "paint-snap/snapTo": "Snap à :", + "2d-color-picker/shade": "Nuancier", + "better-img-uploads/upload": "Charger HD", + "variable-manager/for-all-sprites": "Variables pour tous les sprites", + "variable-manager/for-this-sprite": "Variables de ce sprite", + "variable-manager/search": "Rechercher", + "search-sprites/placeholder": "Rechercher des sprites...", + "sprite-properties/close-properties-panel-tooltip": "Réduire le panneau des propriétés", + "sprite-properties/open-properties-panel-tooltip": "Ouvrir le panneau des propriétés", + "gamepad/axis-arrows": "Flèches", + "gamepad/axis-cursor": "Curseur", + "gamepad/axis-custom": "Personnalisé", + "gamepad/axis-none": "Aucun", + "gamepad/browser-support": "Ce navigateur et ce système d'exploitation ont des bugs connus qui peuvent rendre cet addon difficile à utiliser. Essayez un autre navigateur si vous rencontrez des problèmes.", + "gamepad/button-n": "Bouton {n}", + "gamepad/clear": "Effacer tous les contrôles", + "gamepad/config-header": "Ce commentaire contient la configuration pour le support de la manette dans d'autres outils et sites web, tels que https://turbowarp.org/\nNe le modifiez pas à la main", + "gamepad/key-click": "Clic", + "gamepad/key-down": "Bas", + "gamepad/key-enter": "Entrée", + "gamepad/key-left": "Gauche", + "gamepad/key-none": "(aucun)", + "gamepad/key-right": "Droite", + "gamepad/key-space": "Espace", + "gamepad/key-up": "Haut", + "gamepad/keyinput-title": "Cliquez et appuyez sur une touche ou cliquez pour modifier le bouton. Échap pour annuler. Retour arrière ou supprimer pour effacer.", + "gamepad/no-controllers": "Aucuns contrôleurs détectés. Essayez d'en brancher un et d'appuyer sur un bouton.", + "gamepad/reset": "Réinitialiser tous les contrôles aux paramètres par défaut du projet", + "gamepad/settings": "Paramètres de la manette", + "gamepad/store-in-project": "Stockez ces paramètres dans le projet pour remplacer la configuration par défaut (Outil expérimental pour les créateurs de projets)", + "folders/add-to-folder": "ajouter au dossier : {folder}", + "folders/closed-folder": "Dossier", + "folders/confirm-backpack-folder": "Sauvegarder tout le dossier dans le sac-à-dos ?", + "folders/create-folder": "créer un dossier", + "folders/name-not-allowed": "Nom de dossier invalide", + "folders/name-prompt": "Nom du dossier :", + "folders/name-prompt-title": "Créer un dossier", + "folders/open-folder": "Ouvert", + "folders/remove-folder": "supprimer le dossier", + "folders/remove-from-folder": "supprimer du dossier", + "folders/rename-folder": "renommer le dossier", + "folders/rename-folder-prompt": "Renommer le dossier en :", + "folders/rename-folder-prompt-title": "Renommer le dossier", + "block-switching/control_forever": "répéter indéfiniment", + "block-switching/control_if": "si", + "block-switching/control_if_else": "si... sinon", + "block-switching/control_repeat_until": "répéter jusqu'à ce que", + "block-switching/control_wait_until": "attendre jusqu'à ce que", + "block-switching/data_changevariableby": "ajouter à la variable", + "block-switching/data_hidelist": "cacher la liste", + "block-switching/data_hidevariable": "cacher la variable", + "block-switching/data_insertatlist": "insérer l'élément", + "block-switching/data_replaceitemoflist": "remplacer l'élément", + "block-switching/data_setvariableto": "mettre la variable à", + "block-switching/data_showlist": "montrer la liste", + "block-switching/data_showvariable": "montrer la variable", + "block-switching/debugger_error": "erreur", + "block-switching/debugger_log": "noter", + "block-switching/debugger_warn": "avertis", + "block-switching/event_broadcast": "envoyer", + "block-switching/event_broadcastandwait": "envoyer et attendre", + "block-switching/looks_backdropnumbername": "numéro ou nom de l'arrière-plan", + "block-switching/looks_changeeffectby": "ajouter à l'effet", + "block-switching/looks_changesizeby": "ajouter à la taille", + "block-switching/looks_costumenumbername": "numéro ou nom du costume", + "block-switching/looks_hide": "cacher", + "block-switching/looks_nextbackdrop": "arrière-plan suivant", + "block-switching/looks_nextcostume": "costume suivant", + "block-switching/looks_say": "dire", + "block-switching/looks_sayforsecs": "dire pendant secondes", + "block-switching/looks_seteffectto": "mettre l'effet à", + "block-switching/looks_setsizeto": "mettre la taille à", + "block-switching/looks_show": "montrer", + "block-switching/looks_switchbackdropto": "basculer sur l'arrière-plan", + "block-switching/looks_switchbackdroptoandwait": "basculer sur l'arrière-plan et attendre", + "block-switching/looks_think": "penser à", + "block-switching/looks_thinkforsecs": "penser à pendant secondes", + "block-switching/motion_changexby": "ajouter à x", + "block-switching/motion_changeyby": "ajouter à y", + "block-switching/motion_setx": "mettre x à", + "block-switching/motion_sety": "mettre y à", + "block-switching/motion_turnleft": "tourner gauche", + "block-switching/motion_turnright": "tourner droite", + "block-switching/motion_xposition": "position x", + "block-switching/motion_yposition": "position y", + "block-switching/music_changeTempo": "ajouter au tempo", + "block-switching/music_setTempo": "mettre le tempo à", + "block-switching/operator_and": "et", + "block-switching/operator_mod": "modulo", + "block-switching/operator_or": "ou", + "block-switching/pen_changePenColorParamBy": "ajouter au paramètre", + "block-switching/pen_changePenHueBy": "ajouter à la couleur", + "block-switching/pen_changePenShadeBy": "ajouter à la luminosité", + "block-switching/pen_changePenSizeBy": "ajouter à la taille", + "block-switching/pen_penDown": "stylo en position d'écriture", + "block-switching/pen_penUp": "relever le stylo", + "block-switching/pen_setPenColorParamTo": "mettre le paramètre à", + "block-switching/pen_setPenHueToNumber": "mettre la couleur à", + "block-switching/pen_setPenShadeToNumber": "mettre la luminosité à", + "block-switching/pen_setPenSizeTo": "mettre la taille à", + "block-switching/sensing_mousex": "souris x", + "block-switching/sensing_mousey": "souris y", + "block-switching/sound_changeeffectby": "ajouter à l'effet", + "block-switching/sound_changevolumeby": "ajouter au volume", + "block-switching/sound_play": "débute", + "block-switching/sound_playuntildone": "jouer jusqu'au bout", + "block-switching/sound_seteffectto": "mettre l'effet à", + "block-switching/sound_setvolumeto": "mettre le volume à", + "blocks2image/error_blocks_not_added": "Ajoute des blocs à l'espace de travail  !", + "blocks2image/export_all_to_PNG": "Tout exporter au format PNG", + "blocks2image/export_all_to_SVG": "Tout exporter au format SVG", + "blocks2image/export_selected_to_PNG": "Exporter le bloc au format PNG", + "blocks2image/export_selected_to_SVG": "Exporter le bloc au format SVG", + "editor-extra-keys/enter-key": "entrée", + "move-to-top-bottom/bottom": "Déplacé en bas", + "move-to-top-bottom/top": "Déplacé en haut", + "rename-broadcasts/RENAME_BROADCAST": "Renommer le message", + "rename-broadcasts/RENAME_BROADCAST_MODAL_TITLE": "Renommer le message", + "rename-broadcasts/RENAME_BROADCAST_TITLE": "Renommer tous les messages \"{name}\" en :", + "swap-local-global/cant-convert-cloud": "Les variables cloud ne peuvent pas être converties uniquement dans ce sprite.", + "swap-local-global/cant-convert-conflict": "Impossible d'effectuer la conversion car cela entrerait en conflit avec les variables d'un autre sprite : {sprites}", + "swap-local-global/cant-convert-stage": "La scène ne peut pas avoir de variables uniquement pour ce sprite.", + "swap-local-global/cant-convert-to-local": "Impossible d'effectuer la conversion car plusieurs sprites l'utilisent : {sprites}", + "swap-local-global/cant-convert-used-elsewhere": "Impossible d'effectuer la conversion car un autre sprite l'utilise : {sprite}", + "swap-local-global/edit": "Modifier les propriétés", + "swap-local-global/edit-list-header": "Modifier la liste", + "swap-local-global/edit-list-option": "Renommer ou modifier la liste", + "swap-local-global/edit-variable-header": "Modifier la variable", + "swap-local-global/edit-variable-option": "Renommer ou modifier la variable", + "swap-local-global/to-global": "Convertir en \"Pour tous les sprites\"", + "swap-local-global/to-local": "Convertir en \"Pour ce sprite uniquement\"", + "hide-stage/hide-stage": "Cacher la scène" +} \ No newline at end of file diff --git a/src/addons/addons-l10n/hu.json b/src/addons/addons-l10n/hu.json new file mode 100644 index 0000000000000000000000000000000000000000..b6c9f73e121e86faa0e64071002d0c510e1facf2 --- /dev/null +++ b/src/addons/addons-l10n/hu.json @@ -0,0 +1,238 @@ +{ + "editor-devtools/clean-plus": "Rendrakás +", + "editor-devtools/copy-all": "Minden Másolása", + "editor-devtools/copy-block": "Blokk Másolása", + "editor-devtools/cut-block": "Blokk Kivágása", + "editor-devtools/lists": "listák", + "editor-devtools/make-space": "Csinálj Helyet", + "editor-devtools/orphaned": "{count, plural, one {FejlesztÅ‘i eszközök: Törölni szeretnél 1 kódon kívüli értékadó blokkot?} other {FejlesztÅ‘i eszközök: Törölni szeretnél # kódon kívüli értékadó blokkot?} }", + "editor-devtools/paste": "Beillesztés", + "editor-devtools/replace": "FejlesztÅ‘i eszközök: Lecserélsz minden {name} változót ebben a szereplÅ‘ben egy másik változóra, amit úgy hívnak:", + "editor-devtools/swap": "{var} cserélye a SzereplÅ‘ben", + "editor-devtools/unused-list": "{count, plural, one {FejlesztÅ‘i eszközök: Törölni szeretnél 1 nem használt helyi listát? Itt van:\n} other {FejlesztÅ‘i eszközök: Törölni szeretnél # nem használt heliy listát? Itt vannak:\n} }", + "editor-devtools/unused-var": "{count, plural, one {FejlesztÅ‘i eszközök: Törölni szeretnél 1 nem használt helyi változót? Itt van:\n} other {FejlesztÅ‘i eszközök: Törölni szeretnél # nem használt helyi változót? Itt vannak:\n} }", + "editor-devtools/var-not-exist": "Ez a változó nem létezik...", + "editor-devtools/variables": "változók", + "find-bar/complex-broadcast": "(kifejezés)", + "find-bar/find-placeholder": "Keresés (Ctrl+F)", + "middle-click-popup/start-typing": "Kezdjen el gépelni...", + "editor-searchable-dropdowns/createBroadcast": "\"{name}\" üzenet létrehozása", + "editor-searchable-dropdowns/createGlobalList": "\"{name}\" lista létrehozása minden szereplÅ‘nek", + "editor-searchable-dropdowns/createGlobalVariable": "\"{name}\" változó létrehozása minden szereplÅ‘nek", + "editor-searchable-dropdowns/createLocalList": "\"{name}\" lista létrehozása ennek a szereplÅ‘nek", + "editor-searchable-dropdowns/createLocalVariable": "\"{name}\" változó létrehozása ennek a szereplÅ‘nek", + "data-category-tweaks-v2/for-all-sprites": "Minden szereplőé:", + "data-category-tweaks-v2/for-this-sprite-only": "A kiválasztott szereplőé:", + "data-category-tweaks-v2/list-category": "Listák", + "hide-flyout/lock": "Paletta zárolása", + "hide-flyout/unlock": "Paletta zárolásának visszavonása", + "mediarecorder/cancel": "Mégsem", + "mediarecorder/click-flag": "Várakozás...", + "mediarecorder/click-flag-description": "Kattints a zöld zászlóra a felvételhez. Kattints erre a gombra, hogy leállítsd a felvételt.", + "mediarecorder/option-title": "Felvétel Opciók", + "mediarecorder/record": "Felvétel", + "mediarecorder/record-after-flag": "Ne kezdÅ‘djön el a felvétel, amíg a zöld zászlóra rá nem kattintasz", + "mediarecorder/record-audio": "Projekt hangok felvétele", + "mediarecorder/record-audio-description": "Ez nem tartalmaz Text-to-Speech-t.", + "mediarecorder/record-description": "Felveheted a színpadot WebM fájlként. Ezt elmentheted a számítógépedre miután a felvétel véget ért.\nMegjegyzés: a változó- és listamegjelenítÅ‘k nem lesznek láthatóak rajta.", + "mediarecorder/record-duration": "Felvétel IdÅ‘tartama (másodperc)", + "mediarecorder/record-mic": "Mikrofon hangjának felvétele", + "mediarecorder/record-until-stop": "Felvétel leállítása miután a projekt megállt", + "mediarecorder/record-until-stop-disabled": "Engedélyezned kell a(z) \"{afterFlagOption}\" ennek az opciónak a használatához.", + "mediarecorder/start": "Kezdés", + "mediarecorder/start-delay": "Kezdési késleltetés (másodperc)", + "mediarecorder/starting-in": "Kezdés {secs} másodperc múlva...", + "mediarecorder/stop": "Felvétel Leállítása", + "debugger/block-breakpoint": "töréspont", + "debugger/block-error": "hibajelentés %s-vel", + "debugger/block-log": "naplózd %s-t", + "debugger/block-warn": "figyelmeztess %s-vel", + "debugger/cannot-pause-player": "A töréspont blokk csak a szerkeztÅ‘ben használható", + "debugger/clear": "Törlés", + "debugger/clone-of": "{sprite}klónja", + "debugger/close": "Bezárás", + "debugger/console": "Napló", + "debugger/debug": "Hibakeresés", + "debugger/empty-string": "(üres érték)", + "debugger/enter-format": "Adja meg az exportálási formátumot:", + "debugger/export": "Exportálás", + "debugger/export-desc": "Kattintson Shift lenyomása közben az exportálási formátum módosításához", + "debugger/icon-error": "Hiba", + "debugger/icon-warn": "Figyelmeztetés", + "debugger/log-msg-broadcasted": "A(z) „{broadcast}†üzenet elküldve.", + "debugger/log-msg-clone-cap": "Nem sikerült „{sprite}â€-t lemásolni, 300 klónnál nem lehet többet készíteni.", + "debugger/log-msg-clone-created": "„{sprite}†lemásolódott.", + "debugger/log-msg-flag-clicked": "A zöld zászló le volt nyomva.", + "debugger/no-logs": "Nincs esemény feljegyezve.", + "debugger/no-threads-running": "Nincsenek éppen futó szálak.", + "debugger/step": "Továbblépés", + "debugger/step-desc": "Lefuttat egy blokkot", + "debugger/tab-logs": "Napló", + "debugger/tab-threads": "Szálak", + "debugger/thread": "Szál {id}", + "debugger/unknown-sprite": "(névtelen szereplÅ‘)", + "debugger/unpause": "Visszatérés", + "pause/pause": "Megállítás", + "clones/clones": "másolatok: {cloneCount}", + "color-picker/hex": "hex szín", + "remove-sprite-confirm/confirm": "Ki szeretnéd törölni a szereplÅ‘t?", + "block-count/blocks": "{num, plural, one {1 blokk} other {# blokk}}", + "onion-skinning/behind": "Mögé", + "onion-skinning/front": "Elé", + "onion-skinning/layering": "Rétegezés", + "onion-skinning/merge": "Összeolvasztás", + "onion-skinning/mode": "Mód", + "onion-skinning/next": "KövetkezÅ‘ jelmezek", + "onion-skinning/opacity": "Ãtlátszatlanság (%)", + "onion-skinning/opacityStep": "Ãtlátszatlanság változás (%)", + "onion-skinning/previous": "ElÅ‘zÅ‘ jelmezek", + "onion-skinning/settings": "Onion Skinning beállítások", + "onion-skinning/tint": "Ãrnyalás", + "onion-skinning/toggle": "Onion Skinning bekapcsolása", + "paint-snap/boxCenter": "Kijelölés közepe", + "paint-snap/boxCorners": "Kijelölés közepei", + "paint-snap/boxEdgeMids": "Kijelölés széleinek felezÅ‘pontjai", + "paint-snap/objectCenters": "Objektumok közepei", + "paint-snap/objectCorners": "Objektumok sarkai", + "paint-snap/objectEdges": "Objektumok szélei", + "paint-snap/objectMidlines": "Objektumok középvonalai", + "paint-snap/off": "Ki", + "paint-snap/on": "Be", + "paint-snap/pageAxes": "Lap x és y tengelyei", + "paint-snap/pageCenter": "Lap közepe", + "paint-snap/pageCorners": "Lap sarkai", + "paint-snap/pageEdges": "Lap szélei", + "paint-snap/settings": "Illesztés beállításai", + "paint-snap/snapFrom": "Illesztés innen:", + "paint-snap/snapTo": "Illessztés ide:", + "paint-snap/threshold": "Illesztési távolság", + "paint-snap/toggle": "Illesztés átváltása", + "2d-color-picker/shade": "Ãrnyalat", + "better-img-uploads/upload": "HD feltöltés", + "variable-manager/for-all-sprites": "Változók minden szereplÅ‘nek", + "variable-manager/for-this-sprite": "Változók ennek a szereplÅ‘nek", + "variable-manager/search": "Keresés", + "variable-manager/too-big": "Kattints a nagyon hosszú érték megjelenítéséhez.", + "variable-manager/variables": "Változók", + "search-sprites/placeholder": "SzereplÅ‘k keresése...", + "sprite-properties/close-properties-panel-tooltip": "Tulajdonságok panel összecsukása", + "sprite-properties/open-properties-panel-tooltip": "Tulajdonságok panel megnyitása", + "gamepad/axes-a-b": "Tengelyek {a} & {b}", + "gamepad/axis-arrows": "Nyíl-billentyűk", + "gamepad/axis-cursor": "Kurzor", + "gamepad/axis-custom": "Egyedi", + "gamepad/axis-none": "Egyik sem", + "gamepad/browser-support": "Ennek a böngészÅ‘nek és operációs rendszernek ismert hibái vannak, amik lehet, hogy megnehezítik ennek a kiegészítÅ‘nek a használatát. Próbálj ki egy másik böngészÅ‘t, ha problémákat észlelsz.", + "gamepad/button-n": "Gomb {n}", + "gamepad/clear": "VezérlÅ‘k eltávolítása", + "gamepad/config-header": "Ez a komment gamepad támogatáshoz szükséges konfigurációkat tartalmaz harmadik féltÅ‘l származó eszközökhöz, vagy weboldalakhoz, mint például: https://turbowarp.org/\nNe szerkeszd kézileg!", + "gamepad/key-click": "Kattintás", + "gamepad/key-down": "Le", + "gamepad/key-left": "Balra", + "gamepad/key-none": "(semmi)", + "gamepad/key-right": "Jobbra", + "gamepad/key-space": "Szóköz", + "gamepad/key-up": "Fel", + "gamepad/keyinput-title": "Kattints, és nyomj meg egy billentyűt, vagy kattints, hogy megváltoztass egy gombot. \"Escape\" a kilépéshez. \"Backspace\" vagy \"Delete\" gombok a törléshez.", + "gamepad/no-controllers": "Nem található kontroller. Próbálj csatlakoztatni egyet, majd egy gombot megnyomni rajta.", + "gamepad/reset": "Minden vezérlÅ‘ visszaállítása a projekt alapértelmezettjére", + "gamepad/settings": "Gamepad beállítások", + "gamepad/store-in-project": "Tárold ezeket a beállításokat a projektben, hogy felülírd az alapértelmezett konfigurációkat (Kísérleti segítÅ‘eszköz projekt-készítÅ‘knek)", + "folders/add-to-folder": "hozzáadás ehhez a mappához: {folder}", + "folders/closed-folder": "Mappa", + "folders/confirm-backpack-folder": "Egész mappa mentése a hátizsákba?", + "folders/create-folder": "mappa létrehozása", + "folders/name-not-allowed": "Helytelen mappa név", + "folders/name-prompt": "Mappa neve:", + "folders/name-prompt-title": "Mappa létrehozása", + "folders/open-folder": "Nyitott", + "folders/remove-folder": "mappa eltávolítása", + "folders/remove-from-folder": "eltávolítás mappából", + "folders/rename-folder": "mappa átnevezése", + "folders/rename-folder-prompt": "Mappa átnevezése erre:", + "folders/rename-folder-prompt-title": "Mappa átnevezése", + "block-switching/control_forever": "mindig", + "block-switching/control_if": "ha", + "block-switching/control_if_else": "ha... különben", + "block-switching/control_repeat_until": "ismételd eddig", + "block-switching/control_wait_until": "várj eddig", + "block-switching/data_changevariableby": "változó változzon", + "block-switching/data_hidelist": "lista tűnjön el", + "block-switching/data_hidevariable": "változó tűnjön el", + "block-switching/data_insertatlist": "illessz be elemet", + "block-switching/data_replaceitemoflist": "cseréld ki elemet", + "block-switching/data_setvariableto": "változó legyen", + "block-switching/data_showlist": "lista jelenjen meg", + "block-switching/data_showvariable": "változó jelenjen meg", + "block-switching/debugger_error": "hiba", + "block-switching/debugger_log": "naplózd", + "block-switching/debugger_warn": "figyelmeztess", + "block-switching/event_broadcast": "üzenet küldése", + "block-switching/event_broadcastandwait": "küldj üzenetet és várj", + "block-switching/looks_backdropnumbername": "háttér sorszáma vagy neve", + "block-switching/looks_changeeffectby": "effekt változzon", + "block-switching/looks_changesizeby": "méret változzon", + "block-switching/looks_costumenumbername": "jelmez sorszáma vagy neve", + "block-switching/looks_hide": "tűnj el", + "block-switching/looks_nextbackdrop": "következÅ‘ háttér", + "block-switching/looks_nextcostume": "következÅ‘ jelmez", + "block-switching/looks_say": "mond", + "block-switching/looks_sayforsecs": "mond másodpercig", + "block-switching/looks_seteffectto": "effekt legyen", + "block-switching/looks_setsizeto": "méret legyen", + "block-switching/looks_show": "jelenj meg", + "block-switching/looks_switchbackdropto": "háttér legyen", + "block-switching/looks_switchbackdroptoandwait": "háttér legyen és várj", + "block-switching/looks_think": "gondold", + "block-switching/looks_thinkforsecs": "gondold másodpercig", + "block-switching/motion_changexby": "x változzon", + "block-switching/motion_changeyby": "y változzon", + "block-switching/motion_setx": "x legyen", + "block-switching/motion_sety": "y legyen", + "block-switching/motion_turnleft": "fordulj balra", + "block-switching/motion_turnright": "fordulj jobbra", + "block-switching/motion_xposition": "x pozíció", + "block-switching/motion_yposition": "y pozíció", + "block-switching/music_changeTempo": "tempó változzon", + "block-switching/music_setTempo": "tempó legyen", + "block-switching/operator_and": "és", + "block-switching/operator_mod": "maradéka", + "block-switching/operator_or": "vagy", + "block-switching/pen_changePenColorParamBy": "paraméter változzon", + "block-switching/pen_changePenHueBy": "színárnyalat változzon", + "block-switching/pen_changePenShadeBy": "árnyalat változzon", + "block-switching/pen_changePenSizeBy": "méret változzon", + "block-switching/pen_penDown": "tollat le", + "block-switching/pen_penUp": "tollat fel", + "block-switching/pen_setPenColorParamTo": "paraméter legyen", + "block-switching/pen_setPenHueToNumber": "színárnyalat legyen", + "block-switching/pen_setPenShadeToNumber": "árnyalat legyen", + "block-switching/pen_setPenSizeTo": "méret legyen", + "block-switching/sensing_mousex": "egér x", + "block-switching/sensing_mousey": "egér y", + "block-switching/sound_changeeffectby": "effekt változzon", + "block-switching/sound_changevolumeby": "hangerÅ‘ változzon", + "block-switching/sound_playuntildone": "játszd végig", + "block-switching/sound_seteffectto": "effekt legyen", + "block-switching/sound_setvolumeto": "hangerÅ‘ legyen", + "blocks2image/error_blocks_not_added": "Blokk hozzáadása a munkaterülethez!", + "blocks2image/export_all_to_PNG": "Minden exportálása PNG-ként", + "blocks2image/export_all_to_SVG": "Minden exportálása SVG-ként", + "blocks2image/export_selected_to_PNG": "Blokk exportálása SVG-ként", + "blocks2image/export_selected_to_SVG": "Exportáld a blokkokat SVG-ként", + "move-to-top-bottom/bottom": "áthelyezés legalulra", + "move-to-top-bottom/top": "áthelyezés legfelülre", + "swap-local-global/cant-convert-cloud": "Megosztott változókat nem lehet átkonvertálni a kiválasztott szereplőévé.", + "swap-local-global/cant-convert-conflict": "Nem konvertálható, mert szembeütközne más szereplÅ‘ben található változókkal: {sprites}", + "swap-local-global/cant-convert-stage": "A színpadnak nem lehetnek kiválsztott szereplÅ‘i változói.", + "swap-local-global/cant-convert-to-local": "Nem lehet konvertálni, mert több szereplÅ‘ is használja: {sprites}", + "swap-local-global/cant-convert-used-elsewhere": "Nem konvertálható, mert ezt a nevet már használja egy másik szereplÅ‘: {sprite}", + "swap-local-global/edit": "Tulajdonságok szerkesztése:", + "swap-local-global/edit-list-header": "Lista szerkesztése", + "swap-local-global/edit-list-option": "Lista átnevezése vagy szerkesztése", + "swap-local-global/edit-variable-header": "Változó szerkesztése", + "swap-local-global/edit-variable-option": "Változó átnevezése vagy szerkesztése", + "swap-local-global/to-global": "Konvertálás \"Minden szereplőé\"-vé", + "swap-local-global/to-local": "Konvertálás \"A kiválasztott szereplőé\"-vé", + "hide-stage/hide-stage": "Színpad elrejtése" +} \ No newline at end of file diff --git a/src/addons/addons-l10n/it.json b/src/addons/addons-l10n/it.json new file mode 100644 index 0000000000000000000000000000000000000000..5f3d34746c1ea8d369785f607d112e111b224f91 --- /dev/null +++ b/src/addons/addons-l10n/it.json @@ -0,0 +1,235 @@ +{ + "editor-devtools/clean-plus": "Riordina i Blocchi (+)", + "editor-devtools/copy-all": "Copia Tutti", + "editor-devtools/copy-block": "Copia il Blocco", + "editor-devtools/cut-block": "Taglia il Blocco", + "editor-devtools/lists": "liste", + "editor-devtools/make-space": "Fai Spazio", + "editor-devtools/orphaned": "{count, plural, one {Strumenti per sviluppatori: Rimuovere 1 blocco monitor non collegato agli script?} many {Strumenti per sviluppatori: Rimuovere # blocchi monitor non collegati agli script?} other {Strumenti per sviluppatori: Rimuovere # blocchi monitor non collegati agli script?} }", + "editor-devtools/paste": "Incolla", + "editor-devtools/replace": "Strumenti per sviluppatori: Scambia tutti le occorrenze della variabile {name} in questo sprite con la variabile:", + "editor-devtools/swap": "Scambia {var} nello Sprite", + "editor-devtools/unused-list": "{count, plural, one {Strumenti per sviluppatori: Rimuovere 1 lista locale inutilizzata? Eccola qui:\n} many {Strumenti per sviluppatori: Rimuovere # liste locali inutilizzate? Eccole qui:\n} other {Strumenti per sviluppatori: Rimuovere # liste locali inutilizzate? Eccole qui:\n} }", + "editor-devtools/unused-var": "{count, plural, one {Strumenti per sviluppatori: Rimuovere 1 variabile locale inutilizzata? Eccola qui:\n} many {Strumenti per sviluppatori: Rimuovere # variabili locali inutilizzate? Eccole qui:\n} other {Strumenti per sviluppatori: Rimuovere # variabili locali inutilizzate? Eccole qui:\n} }", + "editor-devtools/var-not-exist": "Questa variabile non esiste...", + "editor-devtools/variables": "variabili", + "find-bar/complex-broadcast": "(espressione)", + "find-bar/find-placeholder": "Cerca (Ctrl+F)", + "middle-click-popup/start-typing": "Inizia a Scrivere...", + "editor-searchable-dropdowns/createBroadcast": "Crea il messaggio \"{name}\"", + "editor-searchable-dropdowns/createGlobalList": "Crea la lista \"{name}\" per tutti gli sprite", + "editor-searchable-dropdowns/createGlobalVariable": "Crea la variabile \"{name}\" per tutti gli sprite.", + "editor-searchable-dropdowns/createLocalList": "Crea la lista \"{name}\" solo per questo sprite", + "editor-searchable-dropdowns/createLocalVariable": "Crea la variabile \"{name}\" solo per questo sprite", + "data-category-tweaks-v2/for-all-sprites": "Per tutti gli sprite:", + "data-category-tweaks-v2/for-this-sprite-only": "Solo per questo sprite:", + "data-category-tweaks-v2/list-category": "Liste", + "hide-flyout/lock": "Blocca Elenco Blocchi", + "hide-flyout/unlock": "Sblocca Elenco Blocchi", + "mediarecorder/cancel": "Annulla", + "mediarecorder/click-flag": "In attesa...", + "mediarecorder/click-flag-description": "Clicca la bandiera verde per avviare la registrazione. Clicca questo tasto per fermarla.", + "mediarecorder/option-title": "Opzioni Registrazione", + "mediarecorder/record": "Registra", + "mediarecorder/record-after-flag": "Non avviare la registrazione finché non viene cliccata la bandiera verde", + "mediarecorder/record-audio": "Includi suoni del progetto", + "mediarecorder/record-audio-description": "Questo non include l'estensione Da Testo A Voce", + "mediarecorder/record-description": "Registra lo stage come file WebM. Quando la registrazione termina puoi salvarla sul tuo computer.\nNota: i monitor delle variabili e delle liste non saranno visibili.", + "mediarecorder/record-duration": "Durata Registrazione (in secondi)", + "mediarecorder/record-mic": "Includi i suoni del microfono", + "mediarecorder/record-until-stop": "Arresta la registrazione quando il progetto viene fermato", + "mediarecorder/record-until-stop-disabled": "Devi abilitare “{afterFlagOption}†per usare questa opzione.", + "mediarecorder/start": "Avvia", + "mediarecorder/start-delay": "Ritardo Avvio (in secondi)", + "mediarecorder/starting-in": "Inizierà tra {secs}...", + "mediarecorder/stop": "Arresta Registrazione", + "debugger/block-error": "errore %s", + "debugger/block-warn": "avviso %s", + "debugger/cannot-pause-player": "Il blocco breakpoint può essere usato solo nell'editor.", + "debugger/clear": "Cancella", + "debugger/clone-of": "Clone di {sprite}", + "debugger/close": "Chiudi", + "debugger/console": "Log", + "debugger/empty-string": "(stringa vuota)", + "debugger/enter-format": "Inserisci il formato di esportazione:", + "debugger/export": "Esporta", + "debugger/export-desc": "Per personalizzare il formato di esportazione clicca tenendo premuto Shift.", + "debugger/icon-error": "Errore", + "debugger/icon-warn": "Avviso", + "debugger/log-msg-broadcasted": "Inviato '{broadcast}'.", + "debugger/log-msg-clone-cap": "Creazione del clone di '{sprite}' fallita, non è possibile creare più di 300 cloni..", + "debugger/log-msg-clone-created": "Creato clone di '{sprite}'.", + "debugger/log-msg-flag-clicked": "Bandiera verde cliccata.", + "debugger/no-logs": "Non ci sono log da mostrare.", + "debugger/no-threads-running": "Nessun thread in esecuzione.", + "debugger/step": "Passi", + "debugger/step-desc": "Esegue un blocco.", + "debugger/tab-logs": "Log", + "debugger/tab-threads": "Thread", + "debugger/unknown-sprite": "(sprite sconosciuto)", + "debugger/unpause": "Riprendi", + "pause/pause": "Pausa", + "clones/clones": "cloni: {cloneCount}", + "color-picker/hex": "colore esadecimale", + "remove-sprite-confirm/confirm": "Vuoi cancellare lo sprite?", + "block-count/blocks": "{num, plural, one {1 blocco} many {# blocchi} other {# blocchi}}", + "onion-skinning/behind": "Secondo piano", + "onion-skinning/front": "Primo piano", + "onion-skinning/layering": "Livelli", + "onion-skinning/merge": "Unisci", + "onion-skinning/mode": "Modalità", + "onion-skinning/next": "Costumi seguenti", + "onion-skinning/opacity": "Opacità (%)", + "onion-skinning/opacityStep": "Incremento opacità (%)", + "onion-skinning/previous": "Costumi precedenti", + "onion-skinning/settings": "Impostazioni Onion Skin", + "onion-skinning/tint": "Colore", + "onion-skinning/toggle": "Attiva/Disattiva Onion Skin", + "paint-snap/boxCenter": "Centro della selezione", + "paint-snap/boxCorners": "Angoli della selezione", + "paint-snap/boxEdgeMids": "Punti mediani sui bordi della selezione", + "paint-snap/objectCenters": "Centri degli oggetti", + "paint-snap/objectCorners": "Angoli degli oggetti", + "paint-snap/objectEdges": "Bordi degli oggetti", + "paint-snap/objectMidlines": "Linea mediana degli oggetti", + "paint-snap/off": "Disattivato", + "paint-snap/on": "Attivo", + "paint-snap/pageAxes": "Assi x e y della pagina", + "paint-snap/pageCenter": "Centro della pagina", + "paint-snap/pageCorners": "Angoli della pagina", + "paint-snap/pageEdges": "Bordi della pagina", + "paint-snap/settings": "Impostazioni Magnete", + "paint-snap/snapFrom": "Attiva magnete da:", + "paint-snap/snapTo": "Attacca a:", + "paint-snap/threshold": "DIstanza di attivazione del magnete", + "paint-snap/toggle": "Attiva/Disattiva Magnete", + "2d-color-picker/shade": "Ombreggiatura", + "better-img-uploads/upload": "Caricamento HD", + "variable-manager/for-all-sprites": "Variabili per tutti gli sprite", + "variable-manager/for-this-sprite": "Variabili di questo sprite", + "variable-manager/search": "Cerca", + "variable-manager/too-big": "Clicca per mostrare valori molto grandi.", + "variable-manager/variables": "Variabili", + "search-sprites/placeholder": "Cerca sprite...", + "sprite-properties/close-properties-panel-tooltip": "Nascondi il pannello delle informazioni", + "sprite-properties/open-properties-panel-tooltip": "Apri il pannello delle informazioni", + "gamepad/axes-a-b": "Assi {a} & {b}", + "gamepad/axis-arrows": "Tasti Freccia", + "gamepad/axis-cursor": "Cursore", + "gamepad/axis-custom": "Personalizzato", + "gamepad/axis-none": "Nessuno", + "gamepad/browser-support": "Questo browser e sistema operativo hanno bug noti che possono rendere questo addon difficile da usare. Prova un diverso browser se riscontri dei problemi.", + "gamepad/button-n": "Pulsante {n}", + "gamepad/clear": "Rimuovi tutti i controli", + "gamepad/config-header": "Questo commento contiene impostazioni di configurazione per il supporto di gamepad support in tool di terze parti o in siti come https://turbowarp.org/\nNon modificare a mano", + "gamepad/key-down": "Giù", + "gamepad/key-enter": "Invio", + "gamepad/key-left": "Sinistra", + "gamepad/key-none": "(nessuno)", + "gamepad/key-right": "Destra", + "gamepad/key-space": "Spazio", + "gamepad/key-up": "Su", + "gamepad/keyinput-title": "Clicca e premi un tasto o clicca per cambiare pulsante. Escape per annullare. Backspace o cancella per ripulire.", + "gamepad/no-controllers": "Nessun controller rilevato. Prova a collegarne uno e a premere un pulsante del controller.", + "gamepad/reset": "Riporta i controli a quelli predefiniti", + "gamepad/settings": "Impostazioni Gamepad", + "gamepad/store-in-project": "Memorizza queste impostazioni nel progetto per evitare le configurazioni predefinite (Tool sperimentale per i creatori di progetti)", + "folders/add-to-folder": "inserisci nella cartella: {folder}", + "folders/closed-folder": "Cartella", + "folders/confirm-backpack-folder": "Salvare l'intera cartella nella valigetta?", + "folders/create-folder": "crea cartella", + "folders/name-not-allowed": "Nome cartella non valido", + "folders/name-prompt": "Nome della cartella:", + "folders/name-prompt-title": "Crea Cartella", + "folders/open-folder": "Aperto", + "folders/remove-folder": "rimuovi cartella", + "folders/remove-from-folder": "rimuovi dalla cartella", + "folders/rename-folder": "rinomina cartella", + "folders/rename-folder-prompt": "Rinomina cartella come:", + "folders/rename-folder-prompt-title": "Rinomina Cartella", + "block-switching/control_forever": "per sempre", + "block-switching/control_if": "se allora", + "block-switching/control_if_else": "se allora... altrimenti", + "block-switching/control_repeat_until": "ripeti fino a quando", + "block-switching/control_wait_until": "attendi fino a quando", + "block-switching/data_changevariableby": "cambia variabile di", + "block-switching/data_hidelist": "nascondi la lista", + "block-switching/data_hidevariable": "nascondi la variabile", + "block-switching/data_insertatlist": "inserisci elemento alla posizione di", + "block-switching/data_replaceitemoflist": "sostituisci elemento", + "block-switching/data_setvariableto": "porta variabile a", + "block-switching/data_showlist": "mostra la lista", + "block-switching/data_showvariable": "mostra la variabile", + "block-switching/debugger_error": "errore", + "block-switching/debugger_warn": "avviso", + "block-switching/event_broadcast": "Invia a tutti", + "block-switching/event_broadcastandwait": "Invia a tutti e attendi", + "block-switching/looks_backdropnumbername": "numero o nome sfondo", + "block-switching/looks_changeeffectby": "cambia effetto di", + "block-switching/looks_changesizeby": "cambia dimensione di", + "block-switching/looks_costumenumbername": "numero o nome costume", + "block-switching/looks_hide": "nascondi", + "block-switching/looks_nextbackdrop": "passa allo sfondo seguente", + "block-switching/looks_nextcostume": "passa al costume seguente", + "block-switching/looks_say": "dire", + "block-switching/looks_sayforsecs": "dire per secondi", + "block-switching/looks_seteffectto": "porta effetto a", + "block-switching/looks_setsizeto": "porta dimensione a", + "block-switching/looks_show": "mostra", + "block-switching/looks_switchbackdropto": "passa allo sfondo", + "block-switching/looks_switchbackdroptoandwait": "passa allo sfondo e attendi", + "block-switching/looks_think": "pensa", + "block-switching/looks_thinkforsecs": "pensa per secondi", + "block-switching/motion_changexby": "cambia x di", + "block-switching/motion_changeyby": "cambia y di", + "block-switching/motion_setx": "vai dove x è", + "block-switching/motion_sety": "vai dove x è", + "block-switching/motion_turnleft": "ruota a sinistra", + "block-switching/motion_turnright": "ruota a destra", + "block-switching/motion_xposition": "posizione x", + "block-switching/motion_yposition": "posizione y", + "block-switching/music_changeTempo": "cambia tempo di", + "block-switching/music_setTempo": "imposta tempo a bpm", + "block-switching/operator_and": "e", + "block-switching/operator_mod": "resto della divisione", + "block-switching/operator_or": "o", + "block-switching/pen_changePenColorParamBy": "cambia parametro di", + "block-switching/pen_changePenHueBy": "cambia colore di", + "block-switching/pen_changePenShadeBy": "cambia ombreggiatura di", + "block-switching/pen_changePenSizeBy": "cambia dimensione di", + "block-switching/pen_penDown": "penna giù", + "block-switching/pen_penUp": "penna su", + "block-switching/pen_setPenColorParamTo": "porta parametro a", + "block-switching/pen_setPenHueToNumber": "porta colore a", + "block-switching/pen_setPenShadeToNumber": "porta ombreggiatura a", + "block-switching/pen_setPenSizeTo": "porta dimensione a", + "block-switching/sensing_mousex": "x del mouse", + "block-switching/sensing_mousey": "y del mouse", + "block-switching/sound_changeeffectby": "cambia effetto di", + "block-switching/sound_changevolumeby": "cambia volume di", + "block-switching/sound_play": "avvia", + "block-switching/sound_playuntildone": "riproduci suono e attendi la fine", + "block-switching/sound_seteffectto": "porta effetto a", + "block-switching/sound_setvolumeto": "porta volume a", + "blocks2image/error_blocks_not_added": "Aggiungi i blocchi al tuo workspace!", + "blocks2image/export_all_to_PNG": "Esporta tutto come PNG", + "blocks2image/export_all_to_SVG": "Esporta tutto come SVG", + "blocks2image/export_selected_to_PNG": "Esporta gli script come PNG", + "blocks2image/export_selected_to_SVG": "Esporta gli script come SVG", + "editor-extra-keys/enter-key": "invio", + "move-to-top-bottom/bottom": "porta in fondo", + "move-to-top-bottom/top": "porta in cima", + "swap-local-global/cant-convert-cloud": "Le variabili cloud non possono essere convertite a \"Solo per questo sprite\"", + "swap-local-global/cant-convert-conflict": "Impossibile convertire perché entrerebbe in conflitto con le variabili di un altro sprite: {sprites}", + "swap-local-global/cant-convert-stage": "Lo stage non può avere variabili \"Solo per questo sprite\".", + "swap-local-global/cant-convert-to-local": "Impossibile fare la conversione perché è usata in più sprite: {sprites}", + "swap-local-global/cant-convert-used-elsewhere": "Impossibile fare la conversione perché è usata in un altro sprite: {sprite}", + "swap-local-global/edit": "Modifica le proprietà:", + "swap-local-global/edit-list-header": "Modifica Lista", + "swap-local-global/edit-list-option": "Rinomina o modifica una lista", + "swap-local-global/edit-variable-header": "Modifica Variabile", + "swap-local-global/edit-variable-option": "Rinomina o modifica una variabile", + "swap-local-global/to-global": "Converti in \"Per tutti gli sprite\"", + "swap-local-global/to-local": "Converti in \"Solo per questo sprite\"", + "hide-stage/hide-stage": "Nascondi stage" +} \ No newline at end of file diff --git a/src/addons/addons-l10n/ja.json b/src/addons/addons-l10n/ja.json new file mode 100644 index 0000000000000000000000000000000000000000..ba21f9ad2e40c697c0e91a838bf4bdb79a62826b --- /dev/null +++ b/src/addons/addons-l10n/ja.json @@ -0,0 +1,238 @@ +{ + "editor-devtools/clean-plus": "ãれã„ã«ã™ã‚‹ +", + "editor-devtools/copy-all": "ã™ã¹ã¦ã‚³ãƒ”ー", + "editor-devtools/copy-block": "ブロックをコピー", + "editor-devtools/cut-block": "ブロックを切りå–り", + "editor-devtools/lists": "リスト", + "editor-devtools/make-space": "スペースを確ä¿", + "editor-devtools/orphaned": "{count, plural, other {開発者ツール: 未使用ã®å€¤ãƒ–ロックを # 個見ã¤ã‘ã¾ã—ãŸã€‚削除ã—ã¾ã™ã‹?} }", + "editor-devtools/paste": "貼り付ã‘", + "editor-devtools/replace": "開発者ツール: ã“ã®ã‚¹ãƒ—ライト内ã®å¤‰æ•°{name}ã‚’ã™ã¹ã¦ç½®ãæ›ãˆã‚‹:", + "editor-devtools/swap": "スプライト内ã®{var}を一括切り替ãˆ", + "editor-devtools/unused-list": "{count, plural, other {開発者ツール: 未使用ã®ã“ã®ã‚¹ãƒ—ライトã®ã¿ã®ãƒªã‚¹ãƒˆã‚’ # 個見ã¤ã‘ã¾ã—ãŸã€‚削除ã—ã¾ã™ã‹? 以下ãŒä¸€è¦§ã§ã™:\n} }", + "editor-devtools/unused-var": "{count, plural, other {開発者ツール: 未使用ã®ã“ã®ã‚¹ãƒ—ライトã®ã¿ã®å¤‰æ•°ã‚’ # 個見ã¤ã‘ã¾ã—ãŸã€‚削除ã—ã¾ã™ã‹? 以下ãŒä¸€è¦§ã§ã™:\n} }", + "editor-devtools/var-not-exist": "ãã®å¤‰æ•°ã¯å­˜åœ¨ã—ã¾ã›ã‚“。", + "editor-devtools/variables": "変数", + "find-bar/complex-broadcast": "(å¼)", + "find-bar/find-placeholder": "検索 (Ctrl+F)", + "middle-click-popup/start-typing": "入力ã™ã‚‹...", + "editor-searchable-dropdowns/createBroadcast": "メッセージ「{name}ã€ã‚’作æˆ", + "editor-searchable-dropdowns/createGlobalList": "ã™ã¹ã¦ã®ã‚¹ãƒ—ライト用ã®ãƒªã‚¹ãƒˆã€Œ{name}ã€ã‚’作æˆ", + "editor-searchable-dropdowns/createGlobalVariable": "ã™ã¹ã¦ã®ã‚¹ãƒ—ライト用ã®å¤‰æ•°ã€Œ{name}ã€ã‚’作æˆ", + "editor-searchable-dropdowns/createLocalList": "ã“ã®ã‚¹ãƒ—ライトã®ã¿ã®ãƒªã‚¹ãƒˆã€Œ{name}ã€ã‚’作æˆ", + "editor-searchable-dropdowns/createLocalVariable": "ã“ã®ã‚¹ãƒ—ライトã®ã¿ã®å¤‰æ•°ã€Œ{name}ã€ã‚’作æˆ", + "data-category-tweaks-v2/for-all-sprites": "ã™ã¹ã¦ã®ã‚¹ãƒ—ライト用:", + "data-category-tweaks-v2/for-this-sprite-only": "ã“ã®ã‚¹ãƒ—ライトã®ã¿:", + "data-category-tweaks-v2/list-category": "リスト", + "hide-flyout/lock": "パレットをロック", + "hide-flyout/unlock": "パレットをロック解除", + "mediarecorder/cancel": "キャンセル", + "mediarecorder/click-flag": "待機中...", + "mediarecorder/click-flag-description": "ç·‘ã®æ——を押ã—ã¦éŒ²ç”»ã‚’é–‹å§‹ã—ã¦ãã ã•ã„。ã“ã®ãƒœã‚¿ãƒ³ã‚’押ã™ã¨éŒ²ç”»ã‚’中止ã§ãã¾ã™ã€‚", + "mediarecorder/option-title": "録画ã®ã‚ªãƒ—ション", + "mediarecorder/record-after-flag": "ç·‘ã®æ——を押ã—ã¦éŒ²ç”»ã‚’é–‹å§‹ã™ã‚‹", + "mediarecorder/record-audio": "プロジェクトを録音ã™ã‚‹", + "mediarecorder/record-audio-description": "éŸ³å£°åˆæˆã¯å«ã¾ã‚Œã¾ã›ã‚“。", + "mediarecorder/record-duration": "録画時間 (ç§’)", + "mediarecorder/record-mic": "マイクã®éŸ³ã‚’録音ã™ã‚‹", + "mediarecorder/record-until-stop": "プロジェクトã®åœæ­¢å¾Œã«éŒ²ç”»ã‚‚åœæ­¢ã™ã‚‹", + "mediarecorder/record-until-stop-disabled": "ã“ã®ã‚ªãƒ—ションを有効化ã™ã‚‹ã«ã¯ã€ã€Œ{afterFlagOption}ã€ã‚’å…ˆã«æœ‰åŠ¹åŒ–ã—ã¦ãã ã•ã„。", + "mediarecorder/start": "録画開始", + "mediarecorder/start-delay": "å¾…ã¡æ™‚é–“ (ç§’)", + "mediarecorder/starting-in": "{secs}秒後ã«é–‹å§‹...", + "mediarecorder/stop": "éŒ²ç”»ã‚’åœæ­¢", + "debugger/block-breakpoint": "ブレークãƒã‚¤ãƒ³ãƒˆ", + "debugger/block-error": "エラー%sを記録", + "debugger/block-log": "%sをログã«è¨˜éŒ²", + "debugger/block-warn": "警告%sを記録", + "debugger/cannot-pause-player": "ブレークãƒã‚¤ãƒ³ãƒˆãƒ–ロックã¯ã€ã‚¨ãƒ‡ã‚£ã‚¿ãƒ¼å†…ã®ã¿ã§åˆ©ç”¨ã§ãã¾ã™ã€‚", + "debugger/clear": "消ã™", + "debugger/clone-of": "{sprite}ã®ã‚¯ãƒ­ãƒ¼ãƒ³", + "debugger/close": "é–‰ã˜ã‚‹", + "debugger/console": "ログ", + "debugger/debug": "デãƒãƒƒã‚°", + "debugger/empty-string": "(空文字列)", + "debugger/enter-format": "出力方å¼ã‚’入力:", + "debugger/export": "書ã出ã—", + "debugger/export-desc": "Shiftキーを押ã—ãªãŒã‚‰ã‚¯ãƒªãƒƒã‚¯ã—ã¦å‡ºåŠ›æ–¹å¼ã‚’指定ã§ãã¾ã™ã€‚", + "debugger/icon-error": "エラー", + "debugger/icon-warn": "警告", + "debugger/log-msg-broadcasted": "メッセージ「{broadcast}ã€ã‚’é€ã‚Šã¾ã—ãŸã€‚", + "debugger/log-msg-clone-cap": "「{sprite}ã€ã®ã‚¯ãƒ­ãƒ¼ãƒ³ã«å¤±æ•—ã—ã¾ã—ãŸ: クローンã¯åˆè¨ˆ300個ã¾ã§ã—ã‹ä½œæˆã§ãã¾ã›ã‚“。", + "debugger/log-msg-clone-created": "「{sprite}ã€ã‚’クローンã—ã¾ã—ãŸã€‚", + "debugger/log-msg-flag-clicked": "ç·‘ã®æ——ãŒæŠ¼ã•れã¾ã—ãŸã€‚", + "debugger/no-logs": "表示ã™ã‚‹å†…容ãŒã‚りã¾ã›ã‚“。", + "debugger/no-threads-running": "実行中ã®ã‚¹ãƒ¬ãƒƒãƒ‰ã¯ã‚りã¾ã›ã‚“。", + "debugger/step": "次ã«é€²ã‚€", + "debugger/step-desc": "ブロックを一ã¤ãšã¤å®Ÿè¡Œã™ã‚‹ã€‚", + "debugger/tab-logs": "ログ", + "debugger/tab-threads": "スレッド", + "debugger/thread": "スレッド {id}", + "debugger/unknown-sprite": "(䏿˜Žãªã‚¹ãƒ—ライト)", + "debugger/unpause": "å†é–‹", + "pause/pause": "ä¸€æ™‚åœæ­¢", + "clones/clones": "クローン: {cloneCount}", + "color-picker/hex": "16進数カラーコード", + "remove-sprite-confirm/confirm": "スプライトを削除ã—ãŸã„ã§ã™ã‹?", + "block-count/blocks": "{num, plural, other {# ブロック}}", + "onion-skinning/behind": "後ã‚", + "onion-skinning/front": "å‰", + "onion-skinning/layering": "レイヤー", + "onion-skinning/merge": "マージ", + "onion-skinning/mode": "モード", + "onion-skinning/next": "次ã®ã‚³ã‚¹ãƒãƒ¥ãƒ¼ãƒ ", + "onion-skinning/opacity": "逿˜Žåº¦ (%)", + "onion-skinning/opacityStep": "逿˜Žåº¦ã®å¤‰åŒ–ã®å‰²åˆ (%)", + "onion-skinning/previous": "å‰ã®ã‚³ã‚¹ãƒãƒ¥ãƒ¼ãƒ ", + "onion-skinning/settings": "åŠé€æ˜Žã‚¨ãƒ‡ã‚£ã‚¿ãƒ¼ã®è¨­å®š", + "onion-skinning/tint": "色åˆã„", + "onion-skinning/toggle": "åŠé€æ˜Žã«ã™ã‚‹", + "paint-snap/boxCenter": "é¸æŠžã—ãŸã‚ªãƒ–ジェクトã®ä¸­å¤®", + "paint-snap/boxCorners": "é¸æŠžã—ãŸã‚ªãƒ–ジェクトã®è§’", + "paint-snap/boxEdgeMids": "é¸æŠžã—ãŸã‚ªãƒ–ジェクトã®ä¸­ç‚¹", + "paint-snap/objectCenters": "オブジェクトã®ä¸­å¤®", + "paint-snap/objectCorners": "オブジェクトã®è§’", + "paint-snap/objectEdges": "オブジェクトã®ç«¯", + "paint-snap/objectMidlines": "オブジェクトã®ä¸­å¤®ç·š", + "paint-snap/off": "オフ", + "paint-snap/on": "オン", + "paint-snap/pageAxes": "ページã®åº§æ¨™è»¸", + "paint-snap/pageCenter": "ページã®ä¸­å¤®", + "paint-snap/pageCorners": "ページã®è§’", + "paint-snap/pageEdges": "ページã®ç«¯", + "paint-snap/settings": "スナップ設定", + "paint-snap/snapFrom": "スナップ元:", + "paint-snap/snapTo": "スナップ先:", + "paint-snap/threshold": "スナップè·é›¢", + "paint-snap/toggle": "スナップを有効化", + "2d-color-picker/shade": "濃ã•", + "better-img-uploads/upload": "HD アップロード", + "variable-manager/for-all-sprites": "ã™ã¹ã¦ã®ã‚¹ãƒ—ライト用ã®å¤‰æ•°", + "variable-manager/for-this-sprite": "ã“ã®ã‚¹ãƒ—ライトã®å¤‰æ•°", + "variable-manager/search": "検索", + "variable-manager/too-big": "クリックã—ã¦éžå¸¸ã«å¤§ããªå€¤ã‚’表示", + "variable-manager/variables": "変数", + "search-sprites/placeholder": "スプライトを検索...", + "sprite-properties/close-properties-panel-tooltip": "プロパティ―パãƒãƒ«ã‚’é–‰ã˜ã‚‹", + "sprite-properties/open-properties-panel-tooltip": "プロパティ―パãƒãƒ«ã‚’é–‹ã", + "gamepad/axes-a-b": "軸 {a} 㨠{b}", + "gamepad/axis-arrows": "矢å°ã‚­ãƒ¼", + "gamepad/axis-cursor": "カーソル", + "gamepad/axis-custom": "カスタム", + "gamepad/axis-none": "ãªã—", + "gamepad/browser-support": "ã“ã®ãƒ–ラウザーã¨OSã§ã¯ã‚¢ãƒ‰ã‚ªãƒ³ã¯æ­£å¸¸ã«å‹•作ã—ã¾ã›ã‚“。他ã®ãƒ–ラウザーã®åˆ©ç”¨ã‚’ãŠã™ã™ã‚ã—ã¾ã™ã€‚", + "gamepad/button-n": "ボタン{n}", + "gamepad/clear": "コントロールを全解除", + "gamepad/config-header": "以下ã®ã‚³ãƒ¡ãƒ³ãƒˆã«ã¯ã€https://turbowarp.org/ ãªã©ã®å¤–部ã®ãƒ„ールやウェブサイトã§åˆ©ç”¨ã•れるゲームパッド設定ãŒä¿å­˜ã•れã¦ã„ã¾ã™ã€‚\n編集ã—ãªã„ã“ã¨ã€‚", + "gamepad/key-click": "クリック", + "gamepad/key-down": "下", + "gamepad/key-left": "å·¦", + "gamepad/key-none": "(ãªã—)", + "gamepad/key-right": "å³", + "gamepad/key-space": "スペース", + "gamepad/key-up": "上", + "gamepad/keyinput-title": "キーを押ã—ã¦ãƒœã‚¿ãƒ³ãŒå¤‰æ›´ã§ãã¾ã™ã€‚Escキーã§ã‚­ãƒ£ãƒ³ã‚»ãƒ«ã§ãã¾ã™ã€‚Backspaceã¾ãŸã¯Deleteキーã§å‰Šé™¤ã§ãã¾ã™ã€‚", + "gamepad/no-controllers": "ã‚³ãƒ³ãƒˆãƒ­ãƒ¼ãƒ©ãƒ¼ãŒæŽ¥ç¶šã•れã¦ã„ã¾ã›ã‚“。接続ã—ã¦ã€ãƒœã‚¿ãƒ³ã‚’押ã—ã¦ãã ã•ã„。", + "gamepad/reset": "ãƒ—ãƒ­ã‚¸ã‚§ã‚¯ãƒˆã®æ—¢å®šã«ãƒªã‚»ãƒƒãƒˆ", + "gamepad/settings": "ゲームパッド設定", + "gamepad/store-in-project": "プロジェクトã«åˆæœŸè¨­å®šã‚’ä¿å­˜ã™ã‚‹ (プロジェクト作æˆè€…ã®ãŸã‚ã®å®Ÿé¨“的機能)", + "folders/add-to-folder": "フォルダー {folder} ã«è¿½åŠ ", + "folders/closed-folder": "フォルダー", + "folders/confirm-backpack-folder": "フォルダーをãƒãƒƒã‚¯ãƒ‘ックã—ã¾ã™ã‹?", + "folders/create-folder": "フォルダーを作æˆ", + "folders/name-not-allowed": "フォルダーåã¯ç„¡åйã§ã™", + "folders/name-prompt": "フォルダーå:", + "folders/name-prompt-title": "フォルダーを作æˆ", + "folders/open-folder": "表示中", + "folders/remove-folder": "フォルダーを削除", + "folders/remove-from-folder": "フォルダーã‹ã‚‰å‡ºã™", + "folders/rename-folder": "フォルダーを改å", + "folders/rename-folder-prompt": "ãƒ•ã‚©ãƒ«ãƒ€ãƒ¼ã®æ”¹åå…ˆ:", + "folders/rename-folder-prompt-title": "フォルダーを改å", + "block-switching/control_forever": "ãšã£ã¨", + "block-switching/control_if": "ã‚‚ã—", + "block-switching/control_if_else": "ã‚‚ã—... ã§ãªã‘れã°", + "block-switching/control_repeat_until": "...回繰り返ã™", + "block-switching/control_wait_until": "...ã¾ã§å¾…ã¤", + "block-switching/data_changevariableby": "変数を...ãšã¤å¤‰ãˆã‚‹", + "block-switching/data_hidelist": "リスト...ã‚’éš ã™", + "block-switching/data_hidevariable": "変数...ã‚’éš ã™", + "block-switching/data_insertatlist": "挿入ã™ã‚‹", + "block-switching/data_replaceitemoflist": "ç½®ãæ›ãˆã‚‹", + "block-switching/data_setvariableto": "変数を...ã«ã™ã‚‹", + "block-switching/data_showlist": "リスト...を表示ã™ã‚‹", + "block-switching/data_showvariable": "変数...を表示ã™ã‚‹", + "block-switching/debugger_error": "エラー", + "block-switching/debugger_log": "ログ", + "block-switching/debugger_warn": "警告", + "block-switching/event_broadcast": "...ã‚’é€ã‚‹", + "block-switching/event_broadcastandwait": "...ã‚’é€ã£ã¦å¾…ã¤", + "block-switching/looks_backdropnumbername": "背景ã®ç•ªå·ãƒ»åå‰", + "block-switching/looks_changeeffectby": "ç”»åƒåŠ¹æžœã‚’...ãšã¤å¤‰ãˆã‚‹", + "block-switching/looks_changesizeby": "大ãã•ã‚’...ãšã¤å¤‰ãˆã‚‹", + "block-switching/looks_costumenumbername": "コスãƒãƒ¥ãƒ¼ãƒ ã®ç•ªå·ãƒ»åå‰", + "block-switching/looks_hide": "éš ã™", + "block-switching/looks_nextbackdrop": "次ã®èƒŒæ™¯", + "block-switching/looks_nextcostume": "次ã®ã‚³ã‚¹ãƒãƒ¥ãƒ¼ãƒ ", + "block-switching/looks_say": "~ã¨è¨€ã†", + "block-switching/looks_sayforsecs": "~ã¨ï½žç§’言ã†", + "block-switching/looks_seteffectto": "ç”»åƒåŠ¹æžœã‚’...ã«ã™ã‚‹", + "block-switching/looks_setsizeto": "大ãã•ã‚’...%ã«ã™ã‚‹", + "block-switching/looks_show": "表示ã™ã‚‹", + "block-switching/looks_switchbackdropto": "背景を~ã«ã™ã‚‹", + "block-switching/looks_switchbackdroptoandwait": "背景を~ã«ã—ã¦å¾…ã¤", + "block-switching/looks_think": "~ã¨è€ƒãˆã‚‹", + "block-switching/looks_thinkforsecs": "~ã¨ï½žç§’考ãˆã‚‹", + "block-switching/motion_changexby": "x座標を...ãšã¤å¤‰ãˆã‚‹", + "block-switching/motion_changeyby": "y座標を...ãšã¤å¤‰ãˆã‚‹", + "block-switching/motion_setx": "x座標を...ã«ã™ã‚‹", + "block-switching/motion_sety": "y座標を...ã«ã™ã‚‹", + "block-switching/motion_turnleft": "左回転", + "block-switching/motion_turnright": "å³å›žè»¢", + "block-switching/motion_xposition": "x座標", + "block-switching/motion_yposition": "y座標", + "block-switching/music_changeTempo": "テンãƒã‚’~ãšã¤å¤‰ãˆã‚‹", + "block-switching/music_setTempo": "テンãƒã‚’~ã«ã™ã‚‹", + "block-switching/operator_and": "ã‹ã¤", + "block-switching/operator_mod": "余り", + "block-switching/operator_or": "ã¾ãŸã¯", + "block-switching/pen_changePenColorParamBy": "ペンã®...ã‚’...ãšã¤å¤‰ãˆã‚‹", + "block-switching/pen_changePenHueBy": "ペンã®è‰²ã‚’...ãšã¤å¤‰ãˆã‚‹", + "block-switching/pen_changePenShadeBy": "ãƒšãƒ³ã®æ¿ƒã•ã‚’...ãšã¤å¤‰ãˆã‚‹", + "block-switching/pen_changePenSizeBy": "ペンã®å¤ªã•ã‚’...ãšã¤å¤‰ãˆã‚‹", + "block-switching/pen_penDown": "ペンを下ã‚ã™", + "block-switching/pen_penUp": "ペンを上ã’ã‚‹", + "block-switching/pen_setPenColorParamTo": "ペンã®...ã‚’...ã«ã™ã‚‹", + "block-switching/pen_setPenHueToNumber": "ペンã®è‰²ã‚’...ã«ã™ã‚‹", + "block-switching/pen_setPenShadeToNumber": "ãƒšãƒ³ã®æ¿ƒã•ã‚’...ã«ã™ã‚‹", + "block-switching/pen_setPenSizeTo": "ペンã®å¤ªã•ã‚’...ã«ã™ã‚‹", + "block-switching/sensing_mousex": "マウスã®x座標", + "block-switching/sensing_mousey": "マウスã®y座標", + "block-switching/sound_changeeffectby": "音ã®åŠ¹æžœã‚’...ãšã¤å¤‰ãˆã‚‹", + "block-switching/sound_changevolumeby": "音é‡ã‚’...ãšã¤å¤‰ãˆã‚‹", + "block-switching/sound_play": "...ã®éŸ³ã‚’鳴らã™", + "block-switching/sound_playuntildone": "終ã‚ã‚‹ã¾ã§...ã®éŸ³ã‚’鳴らã™", + "block-switching/sound_seteffectto": "音ã®åŠ¹æžœã‚’...ã«ã™ã‚‹", + "block-switching/sound_setvolumeto": "音é‡ã‚’...%ã«ã™ã‚‹", + "blocks2image/error_blocks_not_added": "ブロックを追加ã—ã¦ãã ã•ã„。", + "blocks2image/export_all_to_PNG": "ã™ã¹ã¦ã‚’PNGã¨ã—ã¦å‡ºåŠ›", + "blocks2image/export_all_to_SVG": "ã™ã¹ã¦ã‚’SVGã¨ã—ã¦å‡ºåŠ›", + "blocks2image/export_selected_to_PNG": "ブロックをPNGã¨ã—ã¦å‡ºåŠ›", + "blocks2image/export_selected_to_SVG": "ブロックをSVGã¨ã—ã¦å‡ºåŠ›", + "editor-extra-keys/enter-key": "Enter", + "move-to-top-bottom/bottom": "一番下ã«ç§»å‹•", + "move-to-top-bottom/top": "一番上ã«ç§»å‹•", + "swap-local-global/cant-convert-cloud": "クラウド変数を「ã“ã®ã‚¹ãƒ—ライトã®ã¿ã€ã«è¨­å®šã™ã‚‹ã“ã¨ã¯ã§ãã¾ã›ã‚“。", + "swap-local-global/cant-convert-conflict": "ä»–ã®ã‚¹ãƒ—ライトã§åå‰ãŒè¡çªã™ã‚‹ãŸã‚変更ã§ãã¾ã›ã‚“: {sprites}", + "swap-local-global/cant-convert-stage": "ステージã¯ã€Œã“ã®ã‚¹ãƒ—ライトã®ã¿ã€å¤‰æ•°ã‚’æŒã¤ã“ã¨ãŒã§ãã¾ã›ã‚“。", + "swap-local-global/cant-convert-to-local": "複数ã®ã‚¹ãƒ—ライトã§ä½¿ã‚れã¦ã„ã‚‹ãŸã‚変更ã§ãã¾ã›ã‚“: {sprites}", + "swap-local-global/cant-convert-used-elsewhere": "ä»–ã®ã‚¹ãƒ—ライトã§ä½¿ç”¨ã•れã¦ã„ã‚‹ãŸã‚変更ã§ãã¾ã›ã‚“: {sprite}", + "swap-local-global/edit": "属性を編集:", + "swap-local-global/edit-list-header": "リストを編集", + "swap-local-global/edit-list-option": "リストを改å・編集", + "swap-local-global/edit-variable-header": "変数を編集", + "swap-local-global/edit-variable-option": "変数を改å・編集", + "swap-local-global/to-global": "「ã™ã¹ã¦ã®ã‚¹ãƒ—ライト用ã€ã«ã™ã‚‹", + "swap-local-global/to-local": "「ã“ã®ã‚¹ãƒ—ライトã®ã¿ã€ã«ã™ã‚‹", + "hide-stage/hide-stage": "ステージを隠ã™" +} \ No newline at end of file diff --git a/src/addons/addons-l10n/ko.json b/src/addons/addons-l10n/ko.json new file mode 100644 index 0000000000000000000000000000000000000000..132dc592137f02ef55ebb86b2403460f59a85149 --- /dev/null +++ b/src/addons/addons-l10n/ko.json @@ -0,0 +1,216 @@ +{ + "editor-devtools/clean-plus": "블럭 정리하기 +", + "editor-devtools/copy-all": "ëª¨ë‘ ë³µì‚¬í•˜ê¸°", + "editor-devtools/copy-block": "블럭 복사하기", + "editor-devtools/cut-block": "블럭 잘ë¼ë‚´ê¸°", + "editor-devtools/lists": "리스트", + "editor-devtools/make-space": "여백 만들기", + "editor-devtools/orphaned": "{count, plural, other {ê°œë°œìž ë„구: #ê°œì˜ ì‚¬ìš©í•˜ì§€ 않는 리í¬í„° ë¸”ëŸ­ì„ ì‚­ì œí•˜ì‹œê² ìŠµë‹ˆê¹Œ?} }", + "editor-devtools/paste": "붙여넣기", + "editor-devtools/replace": "ê°œë°œìž ë„구: 다ìŒì— 나올 ì´ë¦„ì˜ ë³€ìˆ˜ì— ëŒ€í•´ ì´ ìŠ¤í”„ë¼ì´íŠ¸ì˜ ëª¨ë“  {name}ì„(를) 전환합니다:", + "editor-devtools/swap": "스프ë¼ì´íЏì—서 {var} 치환하기", + "editor-devtools/unused-list": "{count, plural, other {ê°œë°œìž ë„구: #ê°œì˜ ì‚¬ìš©í•˜ì§€ 않는 지역 리스트를 제거하시겠습니까? 사용하지 않는 지역 리스트:} }", + "editor-devtools/unused-var": "{count, plural, other {ê°œë°œìž ë„구: #ê°œì˜ ì‚¬ìš©í•˜ì§€ 않는 지역변수를 삭제하시겠습니까?} }", + "editor-devtools/var-not-exist": "ì´ ë³€ìˆ˜ëŠ” 존재하지 않습니다.", + "editor-devtools/variables": "변수", + "find-bar/find-placeholder": "찾기 (Ctrl+F)", + "middle-click-popup/start-typing": "ìž…ë ¥ 시작...", + "editor-searchable-dropdowns/createBroadcast": "메시지 \"{name}\"ì„(를) ìƒì„±í•˜ê¸°", + "editor-searchable-dropdowns/createGlobalList": "ì „ì—­ 리스트 \"{name}\"ì„(를) ìƒì„±í•˜ê¸°", + "editor-searchable-dropdowns/createGlobalVariable": "전역변수 \"{name}\"ì„(를) ìƒì„±í•˜ê¸°", + "editor-searchable-dropdowns/createLocalList": "지역 리스트 \"{name}\"ì„(를) ìƒì„±í•˜ê¸°", + "editor-searchable-dropdowns/createLocalVariable": "지역변수 \"{name}\"ì„(를) ìƒì„±í•˜ê¸°", + "data-category-tweaks-v2/for-all-sprites": "ì „ì—­ì ìœ¼ë¡œ 사용ë¨:", + "data-category-tweaks-v2/for-this-sprite-only": "지역ì ìœ¼ë¡œ 사용ë¨:", + "data-category-tweaks-v2/list-category": "리스트", + "mediarecorder/cancel": "취소", + "mediarecorder/click-flag": "기다려 주세요...", + "mediarecorder/click-flag-description": "ì´ˆë¡ ê¹ƒë°œì„ ëˆŒëŸ¬ 녹화를 시작합니다. ì´ ë²„íŠ¼ì„ ëˆŒëŸ¬ 종료하세요.", + "mediarecorder/option-title": "녹화 설정", + "mediarecorder/record-after-flag": "ì´ˆë¡ ê¹ƒë°œì„ í´ë¦­í•  때까지 녹화를 시작하지 않습니다.", + "mediarecorder/record-audio": "프로ì íЏ 소리 í¬í•¨", + "mediarecorder/record-audio-description": "ì´ê²ƒì€ TTSê°€ í¬í•¨ë˜ì§€ 않습니다.", + "mediarecorder/record-duration": "녹화 시간(ì´ˆ)", + "mediarecorder/record-mic": "마ì´í¬ë¥¼ 통한 소리 í¬í•¨", + "mediarecorder/record-until-stop": "프로ì íŠ¸ê°€ ë©ˆì·„ì„ ë•Œ 녹화를 종료합니다.", + "mediarecorder/record-until-stop-disabled": "ë‹¹ì‹ ì€ ì´ ì„¤ì •ì„ ì‚¬ìš©í•˜ê¸° 위해선 \"{afterFlagOption}\"ì„(를) 켜야 합니다.", + "mediarecorder/start": "시작", + "mediarecorder/start-delay": "시작 ë”œë ˆì´ (ì´ˆ 단위)", + "mediarecorder/starting-in": "{secs} í›„ì— ì‹œìž‘í•©ë‹ˆë‹¤... ", + "mediarecorder/stop": "녹화 종료", + "debugger/block-breakpoint": "중단ì ", + "debugger/block-error": "오류 %s", + "debugger/block-log": "ê¸°ë¡ %s", + "debugger/block-warn": "경고 %s", + "debugger/cannot-pause-player": "ì¤‘ë‹¨ì  ë¸”ë¡ì€ ì—ë””í„°ì— ìžˆì„ ë•Œì—ë§Œ 사용 가능합니다.", + "debugger/clear": "지우기", + "debugger/clone-of": "{sprite}ì˜ ë³µì œë³¸", + "debugger/close": "닫기", + "debugger/console": "기ë¡", + "debugger/debug": "디버그", + "debugger/empty-string": "(빈 문ìžì—´)", + "debugger/enter-format": "내보낼 ë°©ë²•ì„ ìž…ë ¥í•˜ì„¸ìš”:", + "debugger/export": "내보내기", + "debugger/export-desc": "내보낼 ë°©ë²•ì„ ê°œì¸ ì„¤ì •í•˜ë ¤ë©´ Shift키를 누른 ìƒíƒœë¡œ í´ë¦­í•˜ì„¸ìš”.", + "debugger/icon-error": "오류", + "debugger/icon-warn": "경고", + "debugger/log-msg-broadcasted": "신호 '{broadcast}'ê°€ 발송ë˜ì—ˆìŠµë‹ˆë‹¤.", + "debugger/log-msg-clone-cap": "'{sprite}'ì˜ ë³µì œë³¸ì„ ìƒì„±í•˜ëŠ” ë° ì‹¤íŒ¨í–ˆìŠµë‹ˆë‹¤. 300개가 넘는 ë³µì œë³¸ì„ ë§Œë“¤ 수 없습니다.", + "debugger/log-msg-clone-created": "'{sprite}'ì˜ ë³µì œë³¸ì´ ë§Œë“¤ì–´ì¡ŒìŠµë‹ˆë‹¤.", + "debugger/log-msg-flag-clicked": "녹색 ê¹ƒë°œì´ í´ë¦­ë˜ì—ˆìŠµë‹ˆë‹¤.", + "debugger/no-logs": "표시할 기ë¡ì´ 없습니다.", + "debugger/no-threads-running": "실행 ì¤‘ì¸ ìž‘ì—… ì—†ìŒ.", + "debugger/step": "절차", + "debugger/step-desc": "한 블ë¡ì„ 실행합니다.", + "debugger/tab-logs": "기ë¡", + "debugger/tab-threads": "실행 ì¤‘ì¸ ìž‘ì—…", + "debugger/thread": "작업 {id}", + "debugger/unknown-sprite": "(알 수 없는 스프ë¼ì´íЏ)", + "debugger/unpause": "재개하기", + "pause/pause": "ì¼ì‹œì •ì§€", + "clones/clones": "복제본 {cloneCount}ê°œ", + "color-picker/hex": "HEX 색ìƒ", + "remove-sprite-confirm/confirm": "ì´ ìŠ¤í”„ë¼ì´íŠ¸ë¥¼ ì •ë§ë¡œ 삭제하시겠습니까?", + "block-count/blocks": "{num, plural, other {블럭 #ê°œ}}", + "onion-skinning/behind": "ë’¤", + "onion-skinning/front": "앞", + "onion-skinning/layering": "ë ˆì´ì–´í™”", + "onion-skinning/merge": "병합", + "onion-skinning/mode": "모드", + "onion-skinning/next": "ë‹¤ìŒ ëª¨ì–‘", + "onion-skinning/opacity": "íˆ¬ëª…ë„ (%)", + "onion-skinning/opacityStep": "íˆ¬ëª…ë„ ìŠ¤í‘¸ë§ˆí†  (%)", + "onion-skinning/previous": "ì „ 모양", + "onion-skinning/settings": "어니언 ìŠ¤í‚¤ë‹ ì„¤ì •", + "onion-skinning/tint": "단색 표시", + "onion-skinning/toggle": "어니언 ìŠ¤í‚¤ë‹ ì¼œê¸°", + "2d-color-picker/shade": "ìŒì˜", + "better-img-uploads/upload": "ê³ í•´ìƒë„ 사진 업로드", + "variable-manager/for-all-sprites": "전역변수", + "variable-manager/for-this-sprite": "지역변수", + "variable-manager/search": "찾기", + "variable-manager/variables": "변수", + "search-sprites/placeholder": "스프ë¼ì´íЏ 검색...", + "gamepad/axes-a-b": "ì¶• {a}와 {b}", + "gamepad/axis-arrows": "방향키", + "gamepad/axis-cursor": "커서", + "gamepad/axis-custom": "ê°œì¸ ì„¤ì •", + "gamepad/axis-none": "ì—†ìŒ", + "gamepad/browser-support": "ì´ ë¸Œë¼ìš°ì €ì™€ ìš´ì˜ ì²´ì œê°€ 가지고 있는 알려진 ë²„ê·¸ë“¤ì€ ì• ë“œì˜¨ì„ ì‚¬ìš©í•˜ê¸° 힘들게 í•  수 있습니다. 문제와 마주치는 경우 다른 브ë¼ìš°ì €ë¥¼ 시ë„í•´ 보세요.", + "gamepad/button-n": "버튼 {n}", + "gamepad/config-header": "ì´ ì£¼ì„ì€ https://turbowarp.org/ 와 ê°™ì€ ì™¸ë¶€ ë„구나 웹사ì´íЏì—ì„œë„ ê²Œìž„íŒ¨ë“œë¥¼ ì§€ì›í•  수 있ë„ë¡ í•˜ëŠ” 실행 정보를 ë‹´ê³  있습니다.\nì§ì ‘ 편집하지 마세요.", + "gamepad/key-click": "í´ë¦­", + "gamepad/key-down": "아래", + "gamepad/key-enter": "엔터", + "gamepad/key-left": "좌", + "gamepad/key-none": "(ì—†ìŒ)", + "gamepad/key-right": "ìš°", + "gamepad/key-space": "스페ì´ìФ", + "gamepad/key-up": "위", + "gamepad/keyinput-title": "í´ë¦­ê³¼ 키를 누르거나 바꾸기 ë²„íŠ¼ì„ ëˆ„ë¥´ì„¸ìš”. Esc로 취소합니다. Backspace나 delete로 ì§€ì›ë‹ˆë‹¤.", + "gamepad/no-controllers": "ê°ì§€ëœ 컨트롤러가 없습니다. 하나를 꽂고 ë²„íŠ¼ì„ ëˆŒëŸ¬ 보세요.", + "gamepad/settings": "게임패드 설정", + "gamepad/store-in-project": "ì´ ì„¤ì •ì„ í”„ë¡œì íŠ¸ì— ì €ìž¥í•˜ì—¬ 기본 êµ¬ì„±ì„ ë®ì–´ì”Œì›ë‹ˆë‹¤.(프로ì íЏ 제작ìžë“¤ì„ 위한 실험 ë„구)", + "folders/add-to-folder": "í´ë”를 {folder}ì— ì¶”ê°€í•˜ê¸°", + "folders/closed-folder": "í´ë”", + "folders/confirm-backpack-folder": "ì „ì²´ í´ë”를 ì €ìž¥ì†Œì— ë‹´ìœ¼ì‹œê² ìŠµë‹ˆê¹Œ?", + "folders/create-folder": "í´ë” ìƒì„±", + "folders/name-not-allowed": "ìž˜ëª»ëœ í´ë” ì´ë¦„", + "folders/name-prompt": "í´ë” ì´ë¦„:", + "folders/name-prompt-title": "í´ë” 만들기", + "folders/open-folder": "열림", + "folders/remove-folder": "í´ë” 삭제하기", + "folders/remove-from-folder": "í´ë”ì—서 삭제하기", + "folders/rename-folder": "í´ë” ì´ë¦„ 변경하기", + "folders/rename-folder-prompt": "í´ë” ì´ë¦„ 변경:", + "folders/rename-folder-prompt-title": "í´ë”ì˜ ì´ë¦„ì„ ë‹¤ì‹œ 정하기", + "block-switching/control_forever": "무한 반복하기", + "block-switching/control_if": "만약", + "block-switching/control_if_else": "만약... 아니ë¼ë©´", + "block-switching/control_repeat_until": "까지 기다리기", + "block-switching/control_wait_until": "까지 기다리기", + "block-switching/data_changevariableby": "변수 변경하기", + "block-switching/data_hidelist": "리스트 숨기기", + "block-switching/data_hidevariable": "변수 숨기기", + "block-switching/data_insertatlist": "항목 넣기", + "block-switching/data_replaceitemoflist": "항목 바꾸기", + "block-switching/data_setvariableto": "변수 설정하기", + "block-switching/data_showlist": "리스트 ë³´ì´ê¸°", + "block-switching/data_showvariable": "변수 ë³´ì´ê¸°", + "block-switching/debugger_error": "오류", + "block-switching/debugger_log": "기ë¡", + "block-switching/debugger_warn": "경고", + "block-switching/event_broadcast": "신호 보내기", + "block-switching/event_broadcastandwait": "신호 ë³´ë‚´ê³  기다리기", + "block-switching/looks_backdropnumbername": "무대 번호 ë˜ëŠ” ì´ë¦„", + "block-switching/looks_changeeffectby": "효과 바꾸기", + "block-switching/looks_changesizeby": "í¬ê¸° 변경하기", + "block-switching/looks_costumenumbername": "모양 번호나 ì´ë¦„", + "block-switching/looks_hide": "숨기기", + "block-switching/looks_nextbackdrop": "ë‹¤ìŒ ë°°ê²½", + "block-switching/looks_nextcostume": "ë‹¤ìŒ ëª¨ì–‘", + "block-switching/looks_say": "ë§í•˜ê¸°", + "block-switching/looks_sayforsecs": "ì´ˆ ë™ì•ˆ ë§í•˜ê¸°", + "block-switching/looks_seteffectto": "효과 설정하기", + "block-switching/looks_setsizeto": "í¬ê¸° 설정하기", + "block-switching/looks_show": "ë³´ì´ê¸°", + "block-switching/looks_switchbackdropto": "ë°°ê²½ 바꾸기", + "block-switching/looks_switchbackdroptoandwait": "ë°°ê²½ 바꾸고 기다리기", + "block-switching/looks_think": "ìƒê°í•˜ê¸°", + "block-switching/looks_thinkforsecs": "ì´ˆ ë™ì•ˆ ìƒê°í•˜ê¸°", + "block-switching/motion_changexby": "x좌표 바꾸기", + "block-switching/motion_changeyby": "y좌표 바꾸기", + "block-switching/motion_setx": "x좌표 설정하기", + "block-switching/motion_sety": "y좌표 설정하기", + "block-switching/motion_turnleft": "왼쪽으로 회전하기", + "block-switching/motion_turnright": "오른쪽으로 회전하기", + "block-switching/motion_xposition": "x좌표", + "block-switching/motion_yposition": "y좌표", + "block-switching/music_changeTempo": "빠르기 변경하기", + "block-switching/music_setTempo": "빠르기 설정하기", + "block-switching/operator_and": "그리고", + "block-switching/operator_mod": "나머지", + "block-switching/operator_or": "ë˜ëŠ”", + "block-switching/pen_changePenColorParamBy": "파ë¼ë¯¸í„° 변경하기", + "block-switching/pen_changePenHueBy": "ìƒ‰ìƒ ë°”ê¾¸ê¸°", + "block-switching/pen_changePenShadeBy": "ìƒ‰ìƒ ë°”ê¾¸ê¸°", + "block-switching/pen_changePenSizeBy": "í¬ê¸° 바꾸기", + "block-switching/pen_penDown": "펜 내리기", + "block-switching/pen_penUp": "펜 올리기", + "block-switching/pen_setPenColorParamTo": "파ë¼ë¯¸í„° 설정하기", + "block-switching/pen_setPenHueToNumber": "ìƒ‰ìƒ ì„¤ì •í•˜ê¸°", + "block-switching/pen_setPenShadeToNumber": "ìƒ‰ìƒ ì„¤ì •í•˜ê¸°", + "block-switching/pen_setPenSizeTo": "í¬ê¸° 설정하기", + "block-switching/sensing_mousex": "마우스 x좌표", + "block-switching/sensing_mousey": "마우스 y좌표", + "block-switching/sound_changeeffectby": "효과 바꾸기", + "block-switching/sound_changevolumeby": "ìŒëŸ‰ 바꾸기", + "block-switching/sound_play": "시작", + "block-switching/sound_playuntildone": "ëë‚  때까지 플레ì´í•˜ê¸°", + "block-switching/sound_seteffectto": "효과 설정하기", + "block-switching/sound_setvolumeto": "ìŒëŸ‰ 설정하기", + "blocks2image/error_blocks_not_added": "작업 ê³µê°„ì— ë¸”ë¡ì„ 추가합니다!", + "blocks2image/export_all_to_PNG": "ëª¨ë‘ PNG로 내보내기", + "blocks2image/export_all_to_SVG": "ëª¨ë‘ SVG로 내보내기", + "blocks2image/export_selected_to_PNG": "PNG로 ë¸”ë¡ ë‚´ë³´ë‚´ê¸°", + "blocks2image/export_selected_to_SVG": "SVG로 내보내기", + "editor-extra-keys/enter-key": "엔터", + "move-to-top-bottom/bottom": "맨 아래로 옮기기", + "move-to-top-bottom/top": "맨 위로 옮기기", + "rename-broadcasts/RENAME_BROADCAST": "메시지 ì´ë¦„ 변경하기", + "rename-broadcasts/RENAME_BROADCAST_MODAL_TITLE": "메시지 ì´ë¦„ 변경하기", + "rename-broadcasts/RENAME_BROADCAST_TITLE": "모든 \"{name}\" 메시지를 다ìŒìœ¼ë¡œ 변경:", + "swap-local-global/cant-convert-cloud": "í´ë¼ìš°ë“œ 변수는 'ì´ ìŠ¤í”„ë¼ì´íЏì—서만 사용'으로 변경할 수 없습니다.", + "swap-local-global/cant-convert-conflict": "다른 스프ë¼ì´íЏ {sprites}ì˜ ë³€ìˆ˜ì™€ ì¶©ëŒí•˜ê¸° ë•Œë¬¸ì— ë³€í™˜í•  수 없습니다.", + "swap-local-global/cant-convert-stage": "무대는 '모든 스프ë¼ì´íЏì—서 사용'ë§Œ 사용할 수 있습니다.", + "swap-local-global/cant-convert-to-local": "여러 스프ë¼ì´íЏ({sprites})ì—서 사용ë˜ì—ˆê¸° ë•Œë¬¸ì— ë³€í™˜í•  수 없습니다.", + "swap-local-global/cant-convert-used-elsewhere": "다른 스프ë¼ì´íЏ {sprite}ì— ì‚¬ìš©ë˜ì—ˆê¸° ë•Œë¬¸ì— ë³€í™˜í•  수 없습니다.", + "swap-local-global/edit": "ì†ì„± 편집:", + "swap-local-global/edit-list-header": "리스트 편집하기", + "swap-local-global/edit-list-option": "ì´ë¦„ì„ ë³€ê²½í•˜ê±°ë‚˜ 리스트를 편집하기", + "swap-local-global/edit-variable-header": "변수 편집하기", + "swap-local-global/edit-variable-option": "ì´ë¦„ì„ ë³€ê²½í•˜ê±°ë‚˜ 리스트를 편집하기", + "swap-local-global/to-global": "\"모든 스프ë¼ì´íЏì—서 사용\"으로 바꾸기", + "swap-local-global/to-local": "\"ì´ ìŠ¤í”„ë¼ì´íЏì—서만 사용\"으로 바꾸기", + "hide-stage/hide-stage": "무대 숨기기" +} \ No newline at end of file diff --git a/src/addons/addons-l10n/nl.json b/src/addons/addons-l10n/nl.json new file mode 100644 index 0000000000000000000000000000000000000000..1a69ef4de3dc3e6a939a9defed70a5c38a6e5264 --- /dev/null +++ b/src/addons/addons-l10n/nl.json @@ -0,0 +1,229 @@ +{ + "editor-devtools/clean-plus": "Blokken Opruimen +", + "editor-devtools/copy-all": "Alles Kopiëren", + "editor-devtools/copy-block": "Blok Kopiëren", + "editor-devtools/cut-block": "Blok Knippen", + "editor-devtools/lists": "lijsten", + "editor-devtools/make-space": "Ruimte Maken", + "editor-devtools/orphaned": "{count, plural, one {Ontwikkelaarstools: 1 los meldingsblok verwijderen?} other {Ontwikkelaarstools: # losse meldingsblokken verwijderen?} }", + "editor-devtools/paste": "Plakken", + "editor-devtools/replace": "Ontwikkelaarstools: Alle {name} in deze sprite wisselen voor de variabele genaamd:", + "editor-devtools/swap": "Wissel {var} in Sprite", + "editor-devtools/unused-list": "{count, plural, one {Ontwikkelaarstools: 1 ongebruikte lokale lijst verwijderen? Hier is het:\n} other {Ontwikkelaarstools: # ongebruikte lokale lijsten verwijderen? Hier zijn ze:\n} }", + "editor-devtools/unused-var": "{count, plural, one {Ontwikkelaarstools: 1 ongebruikte lokale variabele verwijderen? Hier is het:\n} other {Ontwikkelaarstools: # ongebruikte lokale variabelen verwijderen? Hier zijn ze:\n} }", + "editor-devtools/var-not-exist": "Die variabele bestaat niet...", + "editor-devtools/variables": "variabelen", + "find-bar/complex-broadcast": "(expressie)", + "find-bar/find-placeholder": "Zoeken (Ctrl+F)", + "middle-click-popup/start-typing": "Begin met Typen...", + "editor-searchable-dropdowns/createBroadcast": "Bericht \"{name}\" maken", + "editor-searchable-dropdowns/createGlobalList": "Lijst \"{name}\" maken voor alle sprites", + "editor-searchable-dropdowns/createGlobalVariable": "Variabele \"{name}\" maken voor alle sprites", + "editor-searchable-dropdowns/createLocalList": "Lijst \"{name}\" maken voor alleen deze sprite", + "editor-searchable-dropdowns/createLocalVariable": "Variabele \"{name}\" maken voor alleen deze sprite", + "data-category-tweaks-v2/for-all-sprites": "Voor alle sprites:", + "data-category-tweaks-v2/for-this-sprite-only": "Alleen voor deze sprite:", + "data-category-tweaks-v2/list-category": "Lijsten", + "hide-flyout/lock": "Palet Vergrendelen", + "hide-flyout/unlock": "Palet Ontgrendelen", + "mediarecorder/cancel": "Annuleren", + "mediarecorder/click-flag": "Wachten...", + "mediarecorder/click-flag-description": "Klik op de groene vlag om te starten met opnemen. Klik op deze knop om te stoppen.", + "mediarecorder/option-title": "Opneemopties", + "mediarecorder/record": "Opnemen", + "mediarecorder/record-after-flag": "Begin niet met opnemen tot de Groene Vlag is geklikt", + "mediarecorder/record-audio": "Projectgeluiden opnemen", + "mediarecorder/record-audio-description": "Dit neemt Tekst-naar-Spraak niet op.", + "mediarecorder/record-description": "Neem het speelveld op als een WebM-bestand. Je kunt het opslaan op je computer nadat de opname klaar is.\nOpmerking: monitoren van variabelen en lijsten zijn niet zichtbaar.", + "mediarecorder/record-duration": "Opnamelengte (in seconden)", + "mediarecorder/record-mic": "Microfoon opnemen", + "mediarecorder/record-until-stop": "Stop met opnemen nadat het project is gestopt", + "mediarecorder/record-until-stop-disabled": "Je moet \"{afterFlagOption}\" aanzetten om deze optie te gebruiken.", + "mediarecorder/start-delay": "Startvertraging (in seconden)", + "mediarecorder/starting-in": "Start in {secs}…", + "mediarecorder/stop": "Opname Stoppen", + "debugger/block-breakpoint": "onderbreking", + "debugger/block-warn": "waarschuw %s", + "debugger/cannot-pause-player": "Onderbrekingsblokken kunnen alleen gebruikt worden in de editor.", + "debugger/clear": "Wissen", + "debugger/clone-of": "Kloon van {sprite}", + "debugger/close": "Sluiten", + "debugger/empty-string": "(lege string)", + "debugger/enter-format": "Voer exporteerformaat in:", + "debugger/export": "Exporteren", + "debugger/export-desc": "Shift + klik om exporteerformaat aan te passen.", + "debugger/icon-warn": "Waarschuwing", + "debugger/log-msg-broadcasted": "'{broadcast}' verzonden.", + "debugger/log-msg-clone-cap": "Kon geen kloon maken van '{sprite}', kan niet meer dan 300 klonen maken.", + "debugger/log-msg-clone-created": "Kloon gemaakt van '{sprite}'.", + "debugger/log-msg-flag-clicked": "Groene vlag geklikt.", + "debugger/no-logs": "Er zijn geen logs om weer te geven.", + "debugger/no-threads-running": "Geen threads aan de gang.", + "debugger/step": "Stap", + "debugger/step-desc": "Voert één blok uit.", + "debugger/unknown-sprite": "(onbekende sprite)", + "debugger/unpause": "Hervatten", + "pause/pause": "Pauzeren", + "clones/clones": "klonen: {cloneCount}", + "color-picker/hex": "hex-kleur", + "remove-sprite-confirm/confirm": "Wil je de sprite verwijderen?", + "block-count/blocks": "{num, plural, one {1 blok} other {# blokken}}", + "onion-skinning/behind": "Achter", + "onion-skinning/front": "Voor", + "onion-skinning/layering": "Lagen", + "onion-skinning/merge": "Samenvoegen", + "onion-skinning/mode": "Modus", + "onion-skinning/next": "Volgende uiterlijken", + "onion-skinning/opacity": "Doorzichtigheid (%)", + "onion-skinning/opacityStep": "Doorzichtigheidsstap (%)", + "onion-skinning/previous": "Vorige uiterlijken", + "onion-skinning/settings": "\"Onion Skinning\"-Instellingen", + "onion-skinning/toggle": "\"Onion Skinning\" aanzetten", + "paint-snap/boxCenter": "Middelpunt selectie", + "paint-snap/boxCorners": "Hoeken selectie", + "paint-snap/boxEdgeMids": "Middelpunten op randen selectie", + "paint-snap/objectCenters": "Objectmiddelpunt", + "paint-snap/objectCorners": "Objecthoeken", + "paint-snap/objectEdges": "Objectranden", + "paint-snap/objectMidlines": "Objectmiddenlijn", + "paint-snap/off": "Uit", + "paint-snap/on": "Aan", + "paint-snap/pageAxes": "X- en Y-assen van pagina", + "paint-snap/pageCenter": "Paginamiddelpunt", + "paint-snap/pageCorners": "Paginahoeken", + "paint-snap/pageEdges": "Paginaranden", + "paint-snap/settings": "Instellingen voor Uitlijnen", + "paint-snap/snapFrom": "Uitlijnen vanaf:", + "paint-snap/snapTo": "Uitlijnen op:", + "paint-snap/threshold": "Uitlijnafstand", + "paint-snap/toggle": "Uitlijnen Inschakelen", + "2d-color-picker/shade": "Tint", + "better-img-uploads/upload": "HD-Upload", + "variable-manager/for-all-sprites": "Variabelen voor alle sprites", + "variable-manager/for-this-sprite": "Variabelen voor deze sprite", + "variable-manager/search": "Zoeken", + "variable-manager/too-big": "Klik om grote waarde weer te geven.", + "variable-manager/variables": "Variabelen", + "search-sprites/placeholder": "Sprites zoeken...", + "sprite-properties/close-properties-panel-tooltip": "Eigenschappenpaneel samenvouwen", + "sprite-properties/open-properties-panel-tooltip": "Eigenschappenpaneel openvouwen", + "gamepad/axes-a-b": "Assen {a} & {b}", + "gamepad/axis-arrows": "Pijltjestoetsen", + "gamepad/axis-cursor": "Muisaanwijzer", + "gamepad/axis-custom": "Aangepast", + "gamepad/axis-none": "Geen", + "gamepad/browser-support": "Deze browser en besturingssysteem hebben bekende bugs die deze addon mogelijk lastig maken om te gebruiken. Probeer een andere browser als je problemen ervaart.", + "gamepad/button-n": "Knop {n}", + "gamepad/clear": "Alle besturingen verwijderen", + "gamepad/config-header": "Deze opmerking bevat configuratie voor gamepad-ondersteuning in derde-partij hulpmiddelen of websites zoals https://turbowarp.org/\nNiet met de hand bewerken", + "gamepad/key-click": "Klik", + "gamepad/key-down": "Omlaag", + "gamepad/key-left": "Links", + "gamepad/key-none": "(geen)", + "gamepad/key-right": "Rechts", + "gamepad/key-space": "Spatie", + "gamepad/key-up": "Omhoog", + "gamepad/keyinput-title": "Klik en druk een toets in of klik om knop te veranderen. Escape om te annuleren. Backspace of delete om te wissen.", + "gamepad/no-controllers": "Geen controllers gevonden. Probeer er een in te pluggen en druk een knop in.", + "gamepad/reset": "Alle besturingen resetten naar standaard van project", + "gamepad/settings": "Gamepadinstellingen", + "gamepad/store-in-project": "Sla deze instellingen op in het project om de standaardconfiguratie te overschrijven (Experimentele hulpmiddel voor projectmakers)", + "folders/add-to-folder": "voeg toe aan map: {folder}", + "folders/closed-folder": "Map", + "folders/confirm-backpack-folder": "Hele map in rugzak opslaan?", + "folders/create-folder": "map aanmaken", + "folders/name-not-allowed": "Ongeldige mapnaam", + "folders/name-prompt": "Naam van map:", + "folders/name-prompt-title": "Map Aanmaken", + "folders/open-folder": "Geopend", + "folders/remove-folder": "map verwijderen", + "folders/remove-from-folder": "verwijder uit map", + "folders/rename-folder": "map hernoemen", + "folders/rename-folder-prompt": "Hernoem map naar:", + "folders/rename-folder-prompt-title": "Map Hernoemen", + "block-switching/control_forever": "herhaal", + "block-switching/control_if": "als", + "block-switching/control_if_else": "als... anders", + "block-switching/control_repeat_until": "herhaal tot", + "block-switching/control_wait_until": "wacht tot", + "block-switching/data_changevariableby": "verander variabele", + "block-switching/data_hidelist": "verberg lijst", + "block-switching/data_hidevariable": "verberg variabele", + "block-switching/data_insertatlist": "voeg item toe", + "block-switching/data_replaceitemoflist": "vervang item", + "block-switching/data_setvariableto": "maak variabele", + "block-switching/data_showlist": "toon lijst", + "block-switching/data_showvariable": "toon variabele", + "block-switching/debugger_warn": "waarschuw", + "block-switching/event_broadcast": "zend signaal", + "block-switching/event_broadcastandwait": "zend signaal en wacht", + "block-switching/looks_backdropnumbername": "achtergrondnummer of -naam", + "block-switching/looks_changeeffectby": "verander effect", + "block-switching/looks_changesizeby": "verander grootte", + "block-switching/looks_costumenumbername": "uiterlijknummer of -naam", + "block-switching/looks_hide": "verdwijn", + "block-switching/looks_nextbackdrop": "volgende achtergrond", + "block-switching/looks_nextcostume": "volgend uiterlijk", + "block-switching/looks_say": "zeg", + "block-switching/looks_sayforsecs": "zeg voor sec.", + "block-switching/looks_seteffectto": "maak effect", + "block-switching/looks_setsizeto": "maak grootte", + "block-switching/looks_show": "verschijn", + "block-switching/looks_switchbackdropto": "verander achtergrond", + "block-switching/looks_switchbackdroptoandwait": "verander achtergrond en wacht", + "block-switching/looks_think": "denk", + "block-switching/looks_thinkforsecs": "denk voor sec.", + "block-switching/motion_changexby": "verander x", + "block-switching/motion_changeyby": "verander y", + "block-switching/motion_setx": "maak x", + "block-switching/motion_sety": "maak y", + "block-switching/motion_turnleft": "draai links", + "block-switching/motion_turnright": "draai rechts", + "block-switching/motion_xposition": "x-positie", + "block-switching/motion_yposition": "y-positie", + "block-switching/music_changeTempo": "verander tempo", + "block-switching/music_setTempo": "maak tempo", + "block-switching/operator_and": "en", + "block-switching/operator_mod": "modulo", + "block-switching/operator_or": "of", + "block-switching/pen_changePenColorParamBy": "verander penkleur", + "block-switching/pen_changePenHueBy": "verander kleur", + "block-switching/pen_changePenShadeBy": "verander helderheid", + "block-switching/pen_changePenSizeBy": "verander grootte", + "block-switching/pen_penDown": "pen neer", + "block-switching/pen_penUp": "pen op", + "block-switching/pen_setPenColorParamTo": "maak penkleur", + "block-switching/pen_setPenHueToNumber": "maak kleur", + "block-switching/pen_setPenShadeToNumber": "maak helderheid", + "block-switching/pen_setPenSizeTo": "maak grootte", + "block-switching/sensing_mousex": "muis x", + "block-switching/sensing_mousey": "muis y", + "block-switching/sound_changeeffectby": "verander effect", + "block-switching/sound_changevolumeby": "verander volume", + "block-switching/sound_playuntildone": "start en wacht", + "block-switching/sound_seteffectto": "maak effect", + "block-switching/sound_setvolumeto": "zet volume", + "blocks2image/error_blocks_not_added": "Voeg blokken toe aan werkplek!", + "blocks2image/export_all_to_PNG": "Alles exporteren als PNG", + "blocks2image/export_all_to_SVG": "Alles exporteren als SVG", + "blocks2image/export_selected_to_PNG": "Blok exporteren als PNG", + "blocks2image/export_selected_to_SVG": "Blok exporteren als SVG", + "move-to-top-bottom/bottom": "naar beneden", + "move-to-top-bottom/top": "naar boven", + "rename-broadcasts/RENAME_BROADCAST": "Signaal hernoemen", + "rename-broadcasts/RENAME_BROADCAST_MODAL_TITLE": "Signaal Hernoemen", + "rename-broadcasts/RENAME_BROADCAST_TITLE": "Alle \"{name}\"-signalen hernoemen naar:", + "swap-local-global/cant-convert-cloud": "Cloudvariabelen kunnen niet alleen voor deze sprite zijn.", + "swap-local-global/cant-convert-conflict": "Kan niet veranderen omdat variabelen in andere sprites dezelfde naam hebben: {sprites}", + "swap-local-global/cant-convert-stage": "Het speelveld kan geen variabelen voor alleen deze sprite hebben.", + "swap-local-global/cant-convert-to-local": "Kan niet veranderen omdat het wordt gebruikt door meerdere sprites: {sprites}", + "swap-local-global/cant-convert-used-elsewhere": "Kan niet veranderen omdat het wordt gebruikt door een andere sprite: {sprite}", + "swap-local-global/edit": "Eigenschappen bewerken:", + "swap-local-global/edit-list-header": "Lijst Bewerken", + "swap-local-global/edit-list-option": "Lijst hernoemen of bewerken", + "swap-local-global/edit-variable-header": "Variabele Bewerken", + "swap-local-global/edit-variable-option": "Variabele hernoemen of bewerken", + "swap-local-global/to-global": "Veranderen naar \"Voor alle sprites\"", + "swap-local-global/to-local": "Veranderen naar \"Alleen voor deze sprite\"", + "hide-stage/hide-stage": "Speelveld verbergen" +} \ No newline at end of file diff --git a/src/addons/addons-l10n/pl.json b/src/addons/addons-l10n/pl.json new file mode 100644 index 0000000000000000000000000000000000000000..69e5f3021ac08a1aea7f49efe2ae468b042ad44c --- /dev/null +++ b/src/addons/addons-l10n/pl.json @@ -0,0 +1,236 @@ +{ + "editor-devtools/clean-plus": "Wyczyść bloki +", + "editor-devtools/copy-all": "Kopiuj wszystko", + "editor-devtools/copy-block": "Kopiuj Blok", + "editor-devtools/cut-block": "Wytnij Blok", + "editor-devtools/lists": "listy", + "editor-devtools/make-space": "Zrób miejsce", + "editor-devtools/orphaned": "{count, plural, one {NarzÄ™dzia Developerskie: Usunąć 1 odłączony blok?} few {NarzÄ™dzia Developerskie: Usunąć # odłączonych bloków?} many {NarzÄ™dzia Developerskie: Usunąć # odłączonych bloków?} other {NarzÄ™dzia Developerskie: Usunąć # odłączonych bloków?} }", + "editor-devtools/paste": "Wklej", + "editor-devtools/replace": "NarzÄ™dzia Developerskie: ZmieÅ„ nazwy wszystkie zmiennych {name} w tym duszku na:", + "editor-devtools/swap": "ZamieÅ„ {var} w Duszku", + "editor-devtools/unused-list": "{count, plural, one {NarzÄ™dzia Developerskie: Usunąć 1 nieużywanÄ… listÄ™ o nazwie:\n} few {NarzÄ™dzia Developerskie: Usunąć # nieużywanych list? Oto one: \n} many {NarzÄ™dzia Developerskie: Usunąć # nieużywanych list? Oto one: \n} other {NarzÄ™dzia Developerskie: Usunąć # nieużywanych list? Oto one: \n} }", + "editor-devtools/unused-var": "{count, plural, one {NarzÄ™dzia Developerskie: Usunąć 1 nieużywanÄ… zmiennÄ… o nazwie: \n} few {NarzÄ™dzia Developerskie: Usunąć # nieużywanych zmiennych? Oto one: \n} many {NarzÄ™dzia Developerskie: Usunąć # nieużywanych zmiennych? Oto one: \n} other {NarzÄ™dzia Developerskie: Usunąć # nieużywanych zmiennych? Oto one: \n} }", + "editor-devtools/var-not-exist": "Ta zmienna nie istnieje...", + "editor-devtools/variables": "zmienne", + "find-bar/complex-broadcast": "(dziaÅ‚anie)", + "find-bar/find-placeholder": "Szukaj (Ctr+F)", + "middle-click-popup/start-typing": "Zacznij pisać...", + "editor-searchable-dropdowns/createBroadcast": "Stwórz wiadomość \"{name}\"", + "editor-searchable-dropdowns/createGlobalList": "Utwórz listÄ™ \"{name}\" dla wszystkich duszków", + "editor-searchable-dropdowns/createGlobalVariable": "Utwórz zmiennÄ… \"{name}\" dla wszystkich duszków", + "editor-searchable-dropdowns/createLocalList": "Utwórz listÄ™ \"{name}\" tylko dla tego duszka", + "editor-searchable-dropdowns/createLocalVariable": "Utwórz zmiennÄ… \"{name}\" tylko dla tego duszka", + "data-category-tweaks-v2/for-all-sprites": "Dla wszystkich duszków:", + "data-category-tweaks-v2/for-this-sprite-only": "Tylko dla tego duszka:", + "data-category-tweaks-v2/list-category": "Listy", + "hide-flyout/lock": "Zablokuj paletÄ™ bloków", + "hide-flyout/unlock": "Odblokuj paletÄ™ bloków", + "mediarecorder/cancel": "Anuluj", + "mediarecorder/click-flag": "Czekanie...", + "mediarecorder/click-flag-description": "Kliknij zielonÄ… flagÄ™ by zacząć nagrywanie. Kliknij ten przycisk by zatrzymać nagranie.", + "mediarecorder/option-title": "Opcje nagrywania", + "mediarecorder/record-after-flag": "Nie włączaj nagrywania dopóki zielona flaga nie jest klikniÄ™ta", + "mediarecorder/record-audio": "UwzglÄ™dnij dźwiÄ™ki projektu", + "mediarecorder/record-audio-description": "Nie dotyczy to zamiany tekstu na mowÄ™.", + "mediarecorder/record-duration": "DÅ‚ugość nagrywania (w sekundach)", + "mediarecorder/record-mic": "UwzglÄ™dnij dźwiÄ™ki z mikrofonu", + "mediarecorder/record-until-stop": "Zatrzymaj nagrywanie gdy projekt siÄ™ zatrzymaÅ‚", + "mediarecorder/record-until-stop-disabled": "Aby korzystać z tej opcji, musisz włączyć opcjÄ™ \"{afterFlagOption}\".", + "mediarecorder/start-delay": "Opóźnienie Startu (w sekundach)", + "mediarecorder/starting-in": "RozpoczÄ™cie w {secs}...", + "mediarecorder/stop": "PrzestaÅ„ Nagrywać", + "debugger/block-breakpoint": "punkt przerwania ", + "debugger/block-error": "zgÅ‚oÅ› błąd %s", + "debugger/block-log": "loguj %s", + "debugger/block-warn": "ostrzeż %s", + "debugger/cannot-pause-player": "Blok \"punktu przerwania\" można używać tylko w edytorze. ", + "debugger/clear": "Wyczyść", + "debugger/clone-of": "Klon duszka {sprite}", + "debugger/close": "Zamknij", + "debugger/console": "Logi", + "debugger/debug": "Debuguj", + "debugger/empty-string": "(puste pole tekstowe)", + "debugger/enter-format": "Podaj format eksportowanego pliku:", + "debugger/export": "Eksportuj", + "debugger/export-desc": "Kliknij prawym klawiszem trzymajÄ…c Shift, aby zmienić typ wyeksportowanego pliku.", + "debugger/icon-error": "Błąd", + "debugger/icon-warn": "Ostrzeżenie", + "debugger/log-msg-broadcasted": "OgÅ‚oszono '{broadcast}'", + "debugger/log-msg-clone-cap": "Nie udaÅ‚o siÄ™ stworzyć klona z duszka '{sprite}', ponieważ osiÄ…gnÄ…Å‚ limit 300 klonów.", + "debugger/log-msg-clone-created": "Stworzono klona z duszka '{sprite}'", + "debugger/log-msg-flag-clicked": "Zielona Flaga zostaÅ‚a naciÅ›niÄ™ta.", + "debugger/no-logs": "Na razie nie ma żadnych informacji do wyÅ›wietlenia.", + "debugger/no-threads-running": "Å»adne wÄ…tki nie dziaÅ‚ajÄ….", + "debugger/step": "Krok", + "debugger/step-desc": "WywoÅ‚uje jeden blok.", + "debugger/tab-logs": "Logi", + "debugger/tab-threads": "WÄ…tki", + "debugger/thread": "WÄ…tek {id}", + "debugger/unknown-sprite": "(nieznany duszek)", + "debugger/unpause": "Wznów", + "pause/pause": "Pauza", + "clones/clones": "klony:{cloneCount}", + "color-picker/hex": "hex kolor", + "remove-sprite-confirm/confirm": "Czy chcesz usunąć duszka?", + "block-count/blocks": "{num, plural, one {1 blok} few {# bloki} many {# bloków} other {# bloków}}", + "onion-skinning/behind": "TyÅ‚", + "onion-skinning/front": "Przód", + "onion-skinning/layering": "Warstwowanie", + "onion-skinning/merge": "ÅÄ…cz", + "onion-skinning/mode": "Tryb", + "onion-skinning/next": "NastÄ™pne kostiumy", + "onion-skinning/opacity": "Nieprzezroczystość (%)", + "onion-skinning/opacityStep": "Nieprzezroczystość kroku (%)", + "onion-skinning/previous": "Poprzednie kostiumy", + "onion-skinning/settings": "Ustawienia Onion Skinning", + "onion-skinning/tint": "OdcieÅ„", + "onion-skinning/toggle": "Przełącz Warstwy Cebuli", + "paint-snap/boxCenter": "Åšrodka zaznaczonego obiektu", + "paint-snap/boxCorners": "Rogów zaznaczonego obiektu", + "paint-snap/boxEdgeMids": "Lini Å›rodkowych zaznaczonego obiektu", + "paint-snap/objectCenters": "Åšrodku obiektów", + "paint-snap/objectCorners": "Rogów obiektów", + "paint-snap/objectEdges": "Boków obiektów", + "paint-snap/objectMidlines": "Lini Å›rodkowych obiektów", + "paint-snap/off": "Wyłącz", + "paint-snap/on": "Włącz", + "paint-snap/pageAxes": "Osi X i Y", + "paint-snap/pageCenter": "Åšrodka strony", + "paint-snap/pageCorners": "Rogów strony", + "paint-snap/pageEdges": "Boków strony", + "paint-snap/settings": "Ustawienia Przyczepiania", + "paint-snap/snapFrom": "Przyczep od:", + "paint-snap/snapTo": "Przyczep do:", + "paint-snap/threshold": "Dystans przyczepiania", + "paint-snap/toggle": "Włącz Przyczepianie", + "2d-color-picker/shade": "CieÅ„", + "better-img-uploads/upload": "PrzesyÅ‚anie HD", + "variable-manager/for-all-sprites": "Zmienne dla wszystkich duszków", + "variable-manager/for-this-sprite": "Zmienne dla tego duszka", + "variable-manager/search": "Szukaj", + "variable-manager/too-big": "Kliknij, aby wyÅ›wietlić bardzo dużą wartość.", + "variable-manager/variables": "Zmienne", + "search-sprites/placeholder": "Szukaj duszków...", + "sprite-properties/open-properties-panel-tooltip": "Otwórz panel wÅ‚aÅ›ciwoÅ›ci", + "gamepad/axes-a-b": "Osie {a} i {b}", + "gamepad/axis-arrows": "Przyciski StrzaÅ‚ek", + "gamepad/axis-cursor": "Kursor", + "gamepad/axis-custom": "Niestandardowy", + "gamepad/axis-none": "Nic", + "gamepad/browser-support": "Ta przeglÄ…darka i system operacyjny zawierajÄ… znane błędy, które mogÄ… utrudniać korzystanie z tego dodatku. Wypróbuj innÄ… przeglÄ…darkÄ™, jeÅ›li napotkasz problemy. ", + "gamepad/button-n": "Przycisk {n}", + "gamepad/clear": "Wyczyść wszystkie ustawione przyciski", + "gamepad/config-header": "Ten komentarz zawiera konfiguracjÄ™ dla obsÅ‚ug pada do gier w programach jak https://turbowarp.org/\nNie edytuj rÄ™cznie!", + "gamepad/key-click": "KlikniÄ™cie", + "gamepad/key-down": "Dół", + "gamepad/key-left": "Lewo", + "gamepad/key-none": "(nic)", + "gamepad/key-right": "Prawo", + "gamepad/key-space": "Spacja", + "gamepad/key-up": "Góra", + "gamepad/keyinput-title": "NaciÅ›nij i kliknij klawisz, aby zmienić przycisk. Kliknij escape, aby anulować. Aby wyczyÅ›cić naciÅ›nij Backspace lub Cancel.", + "gamepad/no-controllers": "Nie wykryto żadnego kontrolera. Spróbuj podłączyć jeden z nich i nacisnąć przycisk na nim.", + "gamepad/reset": "Resetuj wszystkie przyciski do ustawieÅ„ fabrycznych", + "gamepad/settings": "Ustawienia Gamepada", + "gamepad/store-in-project": "Zapisz ustawienia w projekcie, aby zastÄ…pić domyÅ›lnÄ… konfiguracjÄ™ (narzÄ™dzie eksperymentalne dla twórców projektów) .", + "folders/add-to-folder": "dodaj do folderu: {folder}", + "folders/confirm-backpack-folder": "Czy chcesz zapisać caÅ‚y folder do plecaka?", + "folders/create-folder": "stwórz folder", + "folders/name-not-allowed": "NieprawidÅ‚owa nazwa folderu", + "folders/name-prompt": "Nazwa folderu:", + "folders/name-prompt-title": "Stwórz folder", + "folders/open-folder": "Otwarte", + "folders/remove-folder": "usuÅ„ folder", + "folders/remove-from-folder": "usuÅ„ z folderu", + "folders/rename-folder": "zmieÅ„ nazwÄ™ folderu", + "folders/rename-folder-prompt": "ZmieÅ„ nazwÄ™ folderu na:", + "folders/rename-folder-prompt-title": "ZmieÅ„ nazwÄ™ folderu", + "block-switching/control_forever": "zawsze", + "block-switching/control_if": "jeżeli", + "block-switching/control_if_else": "jeżeli.. w przeciwnym razie", + "block-switching/control_repeat_until": "powtarzaj aż", + "block-switching/control_wait_until": "czekaj aż", + "block-switching/data_changevariableby": "zmieÅ„ zmiennÄ…", + "block-switching/data_hidelist": "ukryj listÄ™", + "block-switching/data_hidevariable": "ukryj zmiennÄ…", + "block-switching/data_insertatlist": "wstaw objekt", + "block-switching/data_replaceitemoflist": "zamieÅ„ objekt", + "block-switching/data_setvariableto": "ustaw zmiennÄ…", + "block-switching/data_showlist": "pokaż listÄ™", + "block-switching/data_showvariable": "pokaż zmiennÄ…", + "block-switching/debugger_error": "błąd", + "block-switching/debugger_log": "loguj", + "block-switching/debugger_warn": "ostrzeż", + "block-switching/event_broadcast": "nadaj", + "block-switching/event_broadcastandwait": "nadaj i czekaj", + "block-switching/looks_backdropnumbername": "numer tÅ‚a lub nazwa", + "block-switching/looks_changeeffectby": "zmieÅ„ efekt", + "block-switching/looks_changesizeby": "zmieÅ„ rozmiar", + "block-switching/looks_costumenumbername": "numer kostiumu lub nazwa", + "block-switching/looks_hide": "ukryj", + "block-switching/looks_nextbackdrop": "nastÄ™pne tÅ‚o", + "block-switching/looks_nextcostume": "nastÄ™pny kostium", + "block-switching/looks_say": "powiedz", + "block-switching/looks_sayforsecs": "powiedz przez sekund", + "block-switching/looks_seteffectto": "ustaw efekt", + "block-switching/looks_setsizeto": "ustaw rozmiar", + "block-switching/looks_show": "pokaż", + "block-switching/looks_switchbackdropto": "zmieÅ„ tÅ‚o", + "block-switching/looks_switchbackdroptoandwait": "zmieÅ„ tÅ‚o i czekaj", + "block-switching/looks_think": "myÅ›l", + "block-switching/looks_thinkforsecs": "myÅ›l przez sekund", + "block-switching/motion_changexby": "zmieÅ„ x", + "block-switching/motion_changeyby": "zmieÅ„ y", + "block-switching/motion_setx": "ustaw x", + "block-switching/motion_sety": "ustaw y", + "block-switching/motion_turnleft": "skręć w lewo", + "block-switching/motion_turnright": "skręć w prawo", + "block-switching/motion_xposition": "pozycja x", + "block-switching/motion_yposition": "pozycja y", + "block-switching/music_changeTempo": "zmieÅ„ tempo", + "block-switching/music_setTempo": "ustaw tempo", + "block-switching/operator_and": "i", + "block-switching/operator_mod": "modulo", + "block-switching/operator_or": "lub", + "block-switching/pen_changePenColorParamBy": "zmieÅ„ parametr", + "block-switching/pen_changePenHueBy": "zmieÅ„ kolor", + "block-switching/pen_changePenShadeBy": "zmieÅ„ odcieÅ„", + "block-switching/pen_changePenSizeBy": "zmieÅ„ rozmiar", + "block-switching/pen_penDown": "przyłóż pisak", + "block-switching/pen_penUp": "podnieÅ› pisak", + "block-switching/pen_setPenColorParamTo": "ustaw parametr", + "block-switching/pen_setPenHueToNumber": "ustaw kolor", + "block-switching/pen_setPenShadeToNumber": "ustaw odcieÅ„", + "block-switching/pen_setPenSizeTo": "ustaw rozmiar", + "block-switching/sensing_mousex": "x myszy", + "block-switching/sensing_mousey": "y myszy", + "block-switching/sound_changeeffectby": "zmieÅ„ efekt", + "block-switching/sound_changevolumeby": "zmieÅ„ gÅ‚oÅ›ność", + "block-switching/sound_playuntildone": "graj aż siÄ™ skoÅ„czy", + "block-switching/sound_seteffectto": "ustaw efekt", + "block-switching/sound_setvolumeto": "ustaw gÅ‚oÅ›ność", + "blocks2image/error_blocks_not_added": "Dodaj bloki do przestrzeni roboczej!", + "blocks2image/export_all_to_PNG": "Eksportuj wszystko jako PNG", + "blocks2image/export_all_to_SVG": "Eksportuj wszystko jako SVG", + "blocks2image/export_selected_to_PNG": "Eksportuj blok jako obraz PNG", + "blocks2image/export_selected_to_SVG": "Eksportuj blok jako SVG", + "move-to-top-bottom/bottom": "przenieÅ› na dół", + "move-to-top-bottom/top": "przenieÅ› na górÄ™", + "rename-broadcasts/RENAME_BROADCAST": "ZmieÅ„ wiadomość", + "rename-broadcasts/RENAME_BROADCAST_MODAL_TITLE": "ZmieÅ„ Wiadomość", + "rename-broadcasts/RENAME_BROADCAST_TITLE": "ZmieÅ„ nazwÄ™ wszystkich wiadomoÅ›ci \"{name}\" na:", + "swap-local-global/cant-convert-cloud": "\"Zmienne w chmurze\" nie mogÄ… być zamienione na \"Dla jednego duszka\"", + "swap-local-global/cant-convert-conflict": "Nie można zamienić, ponieważ koliduje ze zmiennymi w innym duszku: {sprites}", + "swap-local-global/cant-convert-stage": "Scena nie może mieć zmiennych \"Tylko dla tego duszka\".", + "swap-local-global/cant-convert-to-local": "Nie można zamienić, ponieważ to jest używane przez wiele duszków: {sprites}", + "swap-local-global/cant-convert-used-elsewhere": "Nie można zamienić, ponieważ jest używana przez duszka: {sprite}", + "swap-local-global/edit": "Edytuj wÅ‚aÅ›ciwoÅ›ci:", + "swap-local-global/edit-list-header": "Edytuj ListÄ™", + "swap-local-global/edit-list-option": "ZmieÅ„ nazwÄ™ lub edytuj listÄ™", + "swap-local-global/edit-variable-header": "Edytuj ZmiennÄ…", + "swap-local-global/edit-variable-option": "ZmieÅ„ nazwÄ™ lub edytuj zmiennÄ…", + "swap-local-global/to-global": "ZamieÅ„ na \"Dla wszystkich duszków\"", + "swap-local-global/to-local": "ZamieÅ„ na \"Tylko dla tego duszka\"", + "hide-stage/hide-stage": "Ukryj scenÄ™" +} \ No newline at end of file diff --git a/src/addons/addons-l10n/pt.json b/src/addons/addons-l10n/pt.json new file mode 100644 index 0000000000000000000000000000000000000000..385612c5fbdda5796a2d65760c4298deb89a5ee7 --- /dev/null +++ b/src/addons/addons-l10n/pt.json @@ -0,0 +1,207 @@ +{ + "editor-devtools/clean-plus": "Limpar Blocos +", + "editor-devtools/copy-all": "Copiar Pilha", + "editor-devtools/copy-block": "Copiar Bloco", + "editor-devtools/cut-block": "Recortar Bloco", + "editor-devtools/lists": "listas", + "editor-devtools/make-space": "Abrir Espaço", + "editor-devtools/orphaned": "{count, plural, one {Ferramentas de desenvolvedor: Deletar 1 bloco redondo órfão?} many {Ferramentas de desenvolvedor: Deletar # blocos redondos órfãos?} other {Ferramentas de desenvolvedor: Deletar # blocos redondos órfãos?} }", + "editor-devtools/paste": "Colar", + "editor-devtools/replace": "Ferramentas de desenvolvedor: Trocar {name} nesse ator pela variável chamada:", + "editor-devtools/swap": "Trocar {var} no Ator", + "editor-devtools/unused-list": "{count, plural, one {Ferramentas de desenvolvedor: Deletar 1 lista local não utilizada? Aqui estão:\n} many {Ferramentas de desenvolvedor: Deletar # listas locais não utilizadas? Aqui está:\n} other {Ferramentas de desenvolvedor: Deletar # listas locais não utilizadas? Aqui está:\n} }", + "editor-devtools/unused-var": "{count, plural, one {Ferramentas de desenvolvedor: Deletar 1 variável local não utilizada? Aqui está:\n} many {Ferramentas de desenvolvedor: Deletar # variáveis locais não utilizadas? Aqui estão:\n} other {Ferramentas de desenvolvedor: Deletar # variáveis locais não utilizadas? Aqui estão:\n} }", + "editor-devtools/var-not-exist": "Essa variável não existe...", + "editor-devtools/variables": "variáveis", + "find-bar/find-placeholder": "Localizar (Ctrl+F)", + "editor-searchable-dropdowns/createBroadcast": "Criar mensagem \"{name}\"", + "editor-searchable-dropdowns/createGlobalList": "Criar lista \"{name}\" para todos os atores", + "editor-searchable-dropdowns/createGlobalVariable": "Criar variável \"{name}\" para todos os atores", + "editor-searchable-dropdowns/createLocalList": "Criar lista \"{name}\" somente para este ator", + "editor-searchable-dropdowns/createLocalVariable": "Criar variável \"{name}\" somente para este ator", + "data-category-tweaks-v2/for-all-sprites": "Para todos os atores:", + "data-category-tweaks-v2/for-this-sprite-only": "Apenas para este ator:", + "data-category-tweaks-v2/list-category": "Listas", + "hide-flyout/lock": "Trancar Paleta", + "hide-flyout/unlock": "Destrancar Paleta", + "mediarecorder/cancel": "Cancelar", + "mediarecorder/click-flag": "Esperando...", + "mediarecorder/click-flag-description": "Clique na bandeira verde para começar a gravar. Clique nesse botão para parar.", + "mediarecorder/option-title": "Opções de Gravação", + "mediarecorder/record-after-flag": "Só começar a gravar quando a bandeira verde for clicada", + "mediarecorder/record-audio": "Incluir sons do projeto", + "mediarecorder/record-audio-description": "Isso não inclui Texto-para-Fala", + "mediarecorder/record-duration": "Tempo de Gravação (em segundos)", + "mediarecorder/record-mic": "Incluir sons do microfone", + "mediarecorder/record-until-stop": "Parar de gravar quando o projeto for parado", + "mediarecorder/record-until-stop-disabled": "Você precisa ativar \"{afterFlagOption}\" para usar essa opção.", + "mediarecorder/start": "Começar", + "mediarecorder/start-delay": "Delay Inicial (em segundos)", + "mediarecorder/starting-in": "Começando em {secs}...", + "mediarecorder/stop": "Parar Gravação", + "debugger/block-error": "erro %s", + "debugger/block-warn": "aviso %s", + "debugger/cannot-pause-player": "O bloco de breakpoint só pode ser usado no editor.", + "debugger/clear": "Limpar", + "debugger/clone-of": "Clone de {sprite}", + "debugger/close": "Fechar", + "debugger/empty-string": "(nenhum texto)", + "debugger/enter-format": "Escolha o formato de exportação:", + "debugger/export": "Exportar", + "debugger/export-desc": "Clique enquanto segura Shift para customizar o formato de exportação.", + "debugger/icon-error": "Erro", + "debugger/icon-warn": "Aviso", + "debugger/log-msg-broadcasted": "Mensagem '{broadcast}' enviada.", + "debugger/log-msg-clone-cap": "Falha ao criar clone de '{sprite}', não é possível criar mais que 300 clones.", + "debugger/log-msg-clone-created": "Clone de '{sprite}' criado.", + "debugger/log-msg-flag-clicked": "Bandeira verde clicada.", + "debugger/no-logs": "Não há registros para mostrar.", + "debugger/no-threads-running": "Nenhuma linha em execução.", + "debugger/step": "Avançar um passo", + "debugger/step-desc": "Executa um bloco.", + "debugger/tab-logs": "Registros", + "debugger/tab-threads": "Linhas de execução", + "debugger/thread": "Linha de execução {id}", + "debugger/unknown-sprite": "(ator desconhecido)", + "debugger/unpause": "Continuar", + "pause/pause": "Pausar", + "color-picker/hex": "cor hex", + "remove-sprite-confirm/confirm": "Quer deletar esse ator?", + "block-count/blocks": "{num, plural, one {1 bloco} many {# blocos} other {# blocos}}", + "onion-skinning/behind": "Atrás", + "onion-skinning/front": "Na frente", + "onion-skinning/layering": "Camada", + "onion-skinning/merge": "Transparente", + "onion-skinning/mode": "Modo", + "onion-skinning/next": "Próximas fantasias", + "onion-skinning/opacity": "Opacidade (%)", + "onion-skinning/opacityStep": "Aumento de opacidade (%)", + "onion-skinning/previous": "Fantasias anteriores", + "onion-skinning/settings": "Configurações de Onion Skinning", + "onion-skinning/tint": "Colorido", + "onion-skinning/toggle": "Ligar/Desligar Onion Skinning", + "2d-color-picker/shade": "Tom", + "better-img-uploads/upload": "Carregar Fantasia HD", + "variable-manager/for-all-sprites": "Variáveis para todos os atores", + "variable-manager/for-this-sprite": "Variáveis desse ator", + "variable-manager/search": "Buscar", + "variable-manager/variables": "Variáveis", + "search-sprites/placeholder": "Buscar atores...", + "gamepad/axes-a-b": "Direcionais {a} e {b}", + "gamepad/axis-arrows": "Setinhas", + "gamepad/axis-custom": "Customizado", + "gamepad/axis-none": "Nenhum", + "gamepad/browser-support": "Esse navegador e sistema operacional têm bugs que dificultam o uso desse addon. Tente outro navegador se você encontrar problemas.", + "gamepad/button-n": "Botão {n}", + "gamepad/clear": "Limpar todos os controles", + "gamepad/config-header": "Esse comentário contém configuração de suporte para controle em sites e ferramentas de terceiros como https://turbowarp.org/\nNão edite manualmente", + "gamepad/key-click": "Clique", + "gamepad/key-down": "Baixo", + "gamepad/key-left": "Esquerda", + "gamepad/key-none": "(nenhum)", + "gamepad/key-right": "Direita", + "gamepad/key-space": "Espaço", + "gamepad/key-up": "Cima", + "gamepad/keyinput-title": "Clique e aperte uma tecla ou clique para trocar o botão. Aperte Esc para cancelar. Aperte Backspace ou Delete para apagar.", + "gamepad/no-controllers": "Nenhum controle detectado. Tente conectar um e apertar um botão nele.", + "gamepad/reset": "Redefinir todos os controles ao padrão do projeto", + "gamepad/settings": "Configurações do Controle", + "gamepad/store-in-project": "Guardar essas configurações no projeto para sobrescrever configuração padrão (Ferramenta experimental para criadores de projeto)", + "folders/add-to-folder": "adicionar à pasta: {folder}", + "folders/closed-folder": "Pasta", + "folders/confirm-backpack-folder": "Salvar pasta inteira na mochila?", + "folders/create-folder": "criar pasta", + "folders/name-not-allowed": "Nome de pasta inválido", + "folders/name-prompt": "Nome da pasta:", + "folders/name-prompt-title": "Criar Pasta", + "folders/open-folder": "Aberta", + "folders/remove-folder": "remover pasta", + "folders/remove-from-folder": "remover da pasta", + "folders/rename-folder": "renomear pasta", + "folders/rename-folder-prompt": "Renomear pasta para:", + "folders/rename-folder-prompt-title": "Renomear Pasta", + "block-switching/control_forever": "sempre", + "block-switching/control_if": "se", + "block-switching/control_if_else": "se... senão", + "block-switching/control_repeat_until": "repita até que", + "block-switching/control_wait_until": "espere até que", + "block-switching/data_changevariableby": "adicionar à variável", + "block-switching/data_hidelist": "esconder lista", + "block-switching/data_hidevariable": "esconder variável", + "block-switching/data_insertatlist": "insira um item", + "block-switching/data_replaceitemoflist": "substitua um item", + "block-switching/data_setvariableto": "mude a variável para", + "block-switching/data_showlist": "mostrar lista", + "block-switching/data_showvariable": "mostrar variável", + "block-switching/debugger_error": "erro", + "block-switching/debugger_warn": "aviso", + "block-switching/event_broadcast": "transmita", + "block-switching/event_broadcastandwait": "transmita e espere", + "block-switching/looks_backdropnumbername": "número ou nome do cenário", + "block-switching/looks_changeeffectby": "mude ao efeito", + "block-switching/looks_changesizeby": "mude no tamanho", + "block-switching/looks_costumenumbername": "número ou nome da fantasia", + "block-switching/looks_hide": "esconda", + "block-switching/looks_nextbackdrop": "próximo cenário", + "block-switching/looks_nextcostume": "próxima fantasia", + "block-switching/looks_say": "diga", + "block-switching/looks_sayforsecs": "diga por segundos", + "block-switching/looks_seteffectto": "defina o efeito como", + "block-switching/looks_setsizeto": "defina o tamanho como", + "block-switching/looks_show": "mostre", + "block-switching/looks_switchbackdropto": "mude para o cenário", + "block-switching/looks_switchbackdroptoandwait": "mude para o cenário e espere", + "block-switching/looks_think": "pense", + "block-switching/looks_thinkforsecs": "pense por segundos", + "block-switching/motion_changexby": "adicione a x", + "block-switching/motion_changeyby": "adicione a y", + "block-switching/motion_setx": "mude x para", + "block-switching/motion_sety": "mude y para", + "block-switching/motion_turnleft": "gire para a esquerda", + "block-switching/motion_turnright": "gire para a direita", + "block-switching/motion_xposition": "posição x", + "block-switching/motion_yposition": "posição y", + "block-switching/music_changeTempo": "adicionar ao ritmo", + "block-switching/music_setTempo": "mudar ritmo para", + "block-switching/operator_and": "e", + "block-switching/operator_mod": "resto de... por...", + "block-switching/operator_or": "ou", + "block-switching/pen_changePenColorParamBy": "adicione ao parâmetro", + "block-switching/pen_changePenHueBy": "adicione à cor", + "block-switching/pen_changePenShadeBy": "adicione ao tom", + "block-switching/pen_changePenSizeBy": "adicione ao tamanho", + "block-switching/pen_penDown": "use a caneta", + "block-switching/pen_penUp": "levante a caneta", + "block-switching/pen_setPenColorParamTo": "mude o parâmetro para", + "block-switching/pen_setPenHueToNumber": "mude a cor para", + "block-switching/pen_setPenShadeToNumber": "mude o tom para", + "block-switching/pen_setPenSizeTo": "mude o tamanho para", + "block-switching/sensing_mousex": "posição x do mouse", + "block-switching/sensing_mousey": "posição y do mouse", + "block-switching/sound_changeeffectby": "adicione ao efeito", + "block-switching/sound_changevolumeby": "adicione ao volume", + "block-switching/sound_play": "toque", + "block-switching/sound_playuntildone": "toque o som até o fim", + "block-switching/sound_seteffectto": "mude o efeito para", + "block-switching/sound_setvolumeto": "mude o volume para", + "blocks2image/error_blocks_not_added": "Adicione blocos à área de trabalho!", + "blocks2image/export_all_to_PNG": "Exportar tudo como PNG", + "blocks2image/export_all_to_SVG": "Exportar tudo como SVG", + "blocks2image/export_selected_to_PNG": "Exportar bloco como PNG", + "blocks2image/export_selected_to_SVG": "Exportar blocos como SVG", + "move-to-top-bottom/bottom": "mover ao fundo", + "move-to-top-bottom/top": "mover ao topo", + "swap-local-global/cant-convert-cloud": "Variáveis na nuvem não podem ser convertidas para apenas para este ator.", + "swap-local-global/cant-convert-conflict": "Não foi possível converter porque o nome dessa variável iria causar conflitos com outro ator: {sprites}", + "swap-local-global/cant-convert-stage": "O palco não pode ter variáveis apenas para este ator.", + "swap-local-global/cant-convert-to-local": "Não foi possível converter porque essa variável é usada por vários atores: {sprites}", + "swap-local-global/cant-convert-used-elsewhere": "Não foi possível converter porque essa variável é usada por outro ator: {sprite}", + "swap-local-global/edit": "Editar propriedades:", + "swap-local-global/edit-list-header": "Editar Lista", + "swap-local-global/edit-list-option": "Renomear ou editar lista", + "swap-local-global/edit-variable-header": "Editar Variável", + "swap-local-global/edit-variable-option": "Renomear ou editar variável", + "swap-local-global/to-global": "Converter para \"Para todos os atores\"", + "swap-local-global/to-local": "Converter para \"Apenas para este ator\"", + "hide-stage/hide-stage": "Esconder palco" +} \ No newline at end of file diff --git a/src/addons/addons-l10n/ro.json b/src/addons/addons-l10n/ro.json new file mode 100644 index 0000000000000000000000000000000000000000..e5c75f13bfd772aaf40cb68c087bff265c2d54e2 --- /dev/null +++ b/src/addons/addons-l10n/ro.json @@ -0,0 +1,136 @@ +{ + "editor-devtools/copy-all": "Copiază Toate", + "editor-devtools/copy-block": "Copiază Blocul", + "editor-devtools/cut-block": "Decupează Blocul", + "editor-devtools/lists": "liste", + "editor-devtools/make-space": "Fă spaÈ›iu", + "editor-devtools/paste": "Inserează", + "editor-devtools/var-not-exist": "Acea variabilă nu există...", + "editor-devtools/variables": "variabile", + "data-category-tweaks-v2/for-all-sprites": "Pentru toate personajele:", + "data-category-tweaks-v2/for-this-sprite-only": "Doar pentru acest personaj:", + "data-category-tweaks-v2/list-category": "Liste", + "mediarecorder/cancel": "Anulează", + "mediarecorder/click-flag": "Se aÈ™teaptă...", + "mediarecorder/click-flag-description": "Apasă pe steagul verde pentru a începe să înregistrezi. Apasă acest buton pentru a o opri.", + "mediarecorder/option-title": "OpÈ›iuni pentru ÃŽnregistrare", + "mediarecorder/record-after-flag": "Nu porni înregistrarea până nu se apasă pe Steagul Verde", + "mediarecorder/record-audio": "Include sunetele proiectului", + "mediarecorder/record-audio-description": "Asta nu include Text-în-Vorbire.", + "mediarecorder/record-duration": "Durata înregistrării (în secunde)", + "mediarecorder/record-mic": "Include sunete de la microfon", + "mediarecorder/record-until-stop": "OpreÈ™te înregistrarea la oprirea proiectului", + "mediarecorder/record-until-stop-disabled": "Ai nevoie să activezi „{afterFlagOption}†pentru a folosi această opÈ›iune.", + "mediarecorder/start": "PorneÈ™te", + "mediarecorder/stop": "OpreÈ™te ÃŽnregistrarea", + "pause/pause": "ÃŽntrerupe", + "clones/clones": "clone: {cloneCount}", + "color-picker/hex": "culoare hex", + "remove-sprite-confirm/confirm": "Vrei să È™tergi acest personaj?", + "block-count/blocks": "{num, plural, one {1 bloc} few {# blocuri} other {# de blocuri}}", + "onion-skinning/behind": "ÃŽn spate", + "onion-skinning/front": "Deasupra", + "onion-skinning/layering": "Stratificare", + "onion-skinning/merge": "Combină", + "onion-skinning/mode": "Mod", + "onion-skinning/next": "Costume următoare", + "onion-skinning/opacity": "Opacitate (%)", + "onion-skinning/opacityStep": "CreÈ™terea Opacității (%)", + "onion-skinning/previous": "Costume anterioare", + "onion-skinning/settings": "Setări pentru modul Costume Suprapuse", + "onion-skinning/tint": "NuanÈ›e", + "onion-skinning/toggle": "PorneÈ™te/OpreÈ™te modul Costume Suprapuse", + "2d-color-picker/shade": "Umbră", + "variable-manager/for-all-sprites": " Variabile pentru toate personaj", + "variable-manager/for-this-sprite": " Variabile pentru acest personaj", + "variable-manager/search": "Caută", + "variable-manager/variables": "Variabile", + "search-sprites/placeholder": "Caută personaje...", + "gamepad/axes-a-b": "Axele {a} È™i {b}", + "gamepad/axis-arrows": "Taste săgeÈ›i", + "gamepad/axis-none": "Nimic", + "gamepad/button-n": "Buton {n}", + "gamepad/key-click": "Clic", + "gamepad/key-down": "Jos", + "gamepad/key-left": "Stânga", + "gamepad/key-none": "(nimic)", + "gamepad/key-right": "Dreapta", + "gamepad/key-space": "SpaÈ›iu", + "gamepad/key-up": "Sus", + "gamepad/no-controllers": "Niciun controller detectat. ÃŽncearcă să conectezi unul È™i să apeÈ™i un buton de pe el.", + "gamepad/settings": "Setări gamepad", + "folders/add-to-folder": "adaugă în dosar: {folder}", + "folders/closed-folder": "Dosar", + "folders/confirm-backpack-folder": "Salvezi întregul folder în Rucsac?", + "folders/create-folder": "creează dosar", + "folders/name-not-allowed": "Nume de dosar invalid", + "folders/name-prompt": "Numele dosarului:", + "folders/open-folder": "Deschis", + "folders/remove-folder": "elimină dosar", + "folders/remove-from-folder": "elimină din dosar", + "folders/rename-folder": "redenumeÈ™te dosar", + "folders/rename-folder-prompt": "RedenumeÈ™te dosar la:", + "block-switching/control_forever": "la infinit", + "block-switching/control_if": "dacă", + "block-switching/control_if_else": "dacă... altfel", + "block-switching/control_repeat_until": "repetă până când", + "block-switching/control_wait_until": "aÈ™teaptă până când", + "block-switching/data_changevariableby": "schimbă variabila", + "block-switching/data_hidelist": "ascunde lista", + "block-switching/data_hidevariable": "ascunde variabila", + "block-switching/data_insertatlist": "inserează element", + "block-switching/data_replaceitemoflist": "înlocuieÈ™te element", + "block-switching/data_setvariableto": "setează variabila", + "block-switching/data_showlist": "arată lista", + "block-switching/data_showvariable": "arată variabila", + "block-switching/event_broadcast": "difuzează", + "block-switching/event_broadcastandwait": "difuzează È™i aÈ™teaptă", + "block-switching/looks_backdropnumbername": "număr sau nume decor", + "block-switching/looks_changeeffectby": "modifică efect", + "block-switching/looks_changesizeby": "modifică mărimea", + "block-switching/looks_costumenumbername": "număr sau nume costum", + "block-switching/looks_hide": "ascunde", + "block-switching/looks_nextbackdrop": "decorul următor", + "block-switching/looks_nextcostume": "costumul următor", + "block-switching/looks_say": "spune", + "block-switching/looks_sayforsecs": "spune pentru secunde", + "block-switching/looks_seteffectto": "setează efectul", + "block-switching/looks_setsizeto": "setează mărimea", + "block-switching/looks_show": "arată", + "block-switching/looks_switchbackdropto": "schimbă decorul", + "block-switching/looks_switchbackdroptoandwait": "schimbă decorul È™i aÈ™teaptă", + "block-switching/looks_think": "gândeÈ™te", + "block-switching/looks_thinkforsecs": "gândeÈ™te pentru secunde", + "block-switching/motion_changexby": "schimbă x", + "block-switching/motion_changeyby": "schimbă y", + "block-switching/motion_setx": "setează x", + "block-switching/motion_sety": "setează y", + "block-switching/motion_turnleft": "roteÈ™te-te la stânga", + "block-switching/motion_turnright": "roteÈ™te-te la dreapta", + "block-switching/motion_xposition": "poziÈ›ia x", + "block-switching/motion_yposition": "poziÈ›ia y", + "block-switching/music_changeTempo": "schimbă ritmul", + "block-switching/music_setTempo": "setează viteza", + "block-switching/operator_and": "È™i", + "block-switching/operator_or": "sau", + "block-switching/pen_changePenColorParamBy": "modifică parametru", + "block-switching/pen_changePenHueBy": "modifică nuanÈ›a", + "block-switching/pen_changePenShadeBy": "modifică transparenÈ›a", + "block-switching/pen_changePenSizeBy": " modifică mărimea", + "block-switching/pen_penDown": "stilou jos", + "block-switching/pen_penUp": "stilou sus", + "block-switching/pen_setPenColorParamTo": "setează parametru", + "block-switching/pen_setPenHueToNumber": "setează nuanÈ›a", + "block-switching/pen_setPenShadeToNumber": "setează transparenÈ›a", + "block-switching/pen_setPenSizeTo": "setează mărimea", + "block-switching/sound_changeeffectby": "modifică efectul", + "block-switching/sound_changevolumeby": "modifică volumul", + "block-switching/sound_playuntildone": "redă sunetul până la final", + "block-switching/sound_seteffectto": "setează efectul", + "block-switching/sound_setvolumeto": "setează volumul", + "blocks2image/error_blocks_not_added": "Adaugă câteva blocuri în spaÈ›iul de lucru!", + "move-to-top-bottom/bottom": "mută în partea de jos", + "move-to-top-bottom/top": "mută în vârf", + "swap-local-global/edit-list-header": "Editează lista", + "swap-local-global/edit-variable-header": "Editează Variabila" +} \ No newline at end of file diff --git a/src/addons/addons-l10n/ru.json b/src/addons/addons-l10n/ru.json new file mode 100644 index 0000000000000000000000000000000000000000..58f4e970d62c2e4beb61c4527ebd0a37a8b7090f --- /dev/null +++ b/src/addons/addons-l10n/ru.json @@ -0,0 +1,241 @@ +{ + "editor-devtools/clean-plus": "ОчиÑтить блоки +", + "editor-devtools/copy-all": "Копировать вÑе", + "editor-devtools/copy-block": "Копировать блок", + "editor-devtools/cut-block": "Вырезать блок", + "editor-devtools/lists": "ÑпиÑки", + "editor-devtools/make-space": "Сделать проÑтранÑтво", + "editor-devtools/orphaned": "{count, plural, one {ИнÑтрументы разработчика: Удалить неиÑпользуемый блок ÑенÑора?} few {ИнÑтрументы разработчика: Удалить # неиÑпользуемых блоков ÑенÑора?} many {ИнÑтрументы разработчика: Удалить # неиÑпользуемых блоков ÑенÑора?} other {ИнÑтрументы разработчика: Удалить # неиÑпользуемых блоков ÑенÑора? } }", + "editor-devtools/paste": "Ð’Ñтавить", + "editor-devtools/replace": "ИнÑтрументы разработчика: Сделать вÑе {name} у Ñтого Ñпрайта переменной названной:", + "editor-devtools/swap": "Сделать {var} Ð´Ð»Ñ Ñпрайта", + "editor-devtools/unused-list": "{count, plural, one {ИнÑтрументы разработчика: Удалить неиÑпользуемый локальный ÑпиÑок? Вот он:\n} few {ИнÑтрументы разработчика: удалить # не иÑпользуемых локальных ÑпиÑков? Вот они:\n} many {ИнÑтрументы разработчика: Удалить # неиÑпользуемых локальных лиÑтов? Вот они:\n} other {ИнÑтрументы разработчика: Удалить # неиÑпользуемых локальных ÑпиÑков? Вот они:\n} }", + "editor-devtools/unused-var": "{count, plural, one {ИнÑтрументы разработчика: Удалить неиÑпользуемую локальную переменную? Вот она:\n} few {ИнÑтрументы разработчика: Удалить # неиÑпользуемых локальных переменных? Вот они:\n} many {ИнÑтрументы разработчика: Удалить # неиÑпользуемых локальных переменных? Вот они:\n} other {ИнÑтрументы разработчика: Удалить # неиÑпользуемых локальных переменных? Вот они:\n} }", + "editor-devtools/var-not-exist": "Эта Ð¿ÐµÑ€ÐµÐ¼ÐµÐ½Ð½Ð°Ñ Ð½Ðµ ÑущеÑтвует...", + "editor-devtools/variables": "переменные", + "find-bar/complex-broadcast": "(выделение)", + "find-bar/find-placeholder": "ПоиÑк (Ctrl+F)", + "middle-click-popup/start-typing": "Ðачните печатать...", + "editor-searchable-dropdowns/createBroadcast": "Создать Ñообщение \"{name}\"", + "editor-searchable-dropdowns/createGlobalList": "Создать ÑпиÑок \"{name}\" Ð´Ð»Ñ Ð²Ñех Ñпрайтов", + "editor-searchable-dropdowns/createGlobalVariable": "Создать переменную \"{name}\" Ð´Ð»Ñ Ð²Ñех Ñпрайтов", + "editor-searchable-dropdowns/createLocalList": "Создать ÑпиÑок \"{name}\" только Ð´Ð»Ñ Ñтого Ñпрайта", + "editor-searchable-dropdowns/createLocalVariable": "Создать переменную \"{name}\" только Ð´Ð»Ñ Ñтого Ñпрайта", + "data-category-tweaks-v2/for-all-sprites": "Ð”Ð»Ñ Ð²Ñех Ñпрайтов:", + "data-category-tweaks-v2/for-this-sprite-only": "Только Ð´Ð»Ñ Ñтого Ñпрайта:", + "data-category-tweaks-v2/list-category": "СпиÑки", + "hide-flyout/lock": "Заблокировать палитру", + "hide-flyout/unlock": "Разблокировать палитру", + "mediarecorder/cancel": "Отмена", + "mediarecorder/click-flag": "Ожидание...", + "mediarecorder/click-flag-description": "Ðажмите зеленый флаг, чтобы начать запиÑÑŒ. Ðажмите Ñту кнопку, чтобы оÑтановить.", + "mediarecorder/option-title": "ÐаÑтройки запиÑи", + "mediarecorder/record-after-flag": "Ðе начинать запиÑÑŒ, пока не нажат зеленый флаг", + "mediarecorder/record-audio": "Включить звуки проекта", + "mediarecorder/record-audio-description": "Это не включает Text-to-Speech.", + "mediarecorder/record-duration": "ПродолжительноÑть запиÑи (в Ñекундах)", + "mediarecorder/record-mic": "Включить звуки из микрофона", + "mediarecorder/record-until-stop": "ОÑтановить запиÑÑŒ поÑле оÑтановки проекта", + "mediarecorder/record-until-stop-disabled": "Ð’Ñ‹ должны включить \"{afterFlagOption}\", чтобы иÑпользовать Ñту наÑтройку.", + "mediarecorder/start": "Ðачать", + "mediarecorder/start-delay": "Задержка Ñтарта (в Ñекундах)", + "mediarecorder/starting-in": "Старт через {secs}...", + "mediarecorder/stop": "ОÑтановить запиÑÑŒ", + "debugger/block-breakpoint": "приоÑтановить", + "debugger/block-error": "ошибка %s", + "debugger/block-log": "логировать %s", + "debugger/block-warn": "предупредить %s", + "debugger/cannot-pause-player": "Блок точки оÑтановки может быть иÑпользовать только в редакторе.", + "debugger/clear": "ОчиÑтить", + "debugger/clone-of": "Клон {sprite}", + "debugger/close": "Закрыть", + "debugger/console": "Логи", + "debugger/debug": "Отладка", + "debugger/empty-string": "(пуÑÑ‚Ð°Ñ Ñтрока)", + "debugger/enter-format": "Введите формат ÑкÑпорта:", + "debugger/export": "ЭкÑпорт", + "debugger/export-desc": "Щелкните, ÑƒÐ´ÐµÑ€Ð¶Ð¸Ð²Ð°Ñ Shift, чтобы наÑтроить формат ÑкÑпорта.", + "debugger/icon-error": "Ошибка", + "debugger/icon-warn": "Предупреждение", + "debugger/log-msg-broadcasted": "Передали «{broadcast}».", + "debugger/log-msg-clone-cap": "Ðе удалоÑÑŒ Ñоздать клон '{sprite}', невозможно Ñоздать более 300 клонов.", + "debugger/log-msg-clone-created": "Создан клон '{sprite}'.", + "debugger/log-msg-flag-clicked": "Зелёный флаг нажат.", + "debugger/no-logs": "Ðет логов Ð´Ð»Ñ Ð¿Ð¾ÐºÐ°Ð·Ð°.", + "debugger/no-threads-running": "Потоки не выполнÑÑŽÑ‚ÑÑ.", + "debugger/step": "Шаг", + "debugger/step-desc": "Выполнить один блок.", + "debugger/tab-logs": "Логи", + "debugger/tab-threads": "Потоки", + "debugger/thread": "Поток {id}", + "debugger/unknown-sprite": "(неизвеÑтный Ñпрайт)", + "debugger/unpause": "Продолжить", + "pause/pause": "Пауза", + "clones/clones": "клонов: {cloneCount}", + "color-picker/hex": "цвет hex", + "remove-sprite-confirm/confirm": "Ð’Ñ‹ хотите удалить Ñпрайт?", + "block-count/blocks": "{num, plural, one {1 блок} few {# блока} many {# блоков} other {# блоков}}", + "onion-skinning/behind": "Сзади", + "onion-skinning/front": "Впереди", + "onion-skinning/layering": "ÐаÑлоение", + "onion-skinning/merge": "Объединить", + "onion-skinning/mode": "Режим", + "onion-skinning/next": "Следующие коÑтюмы", + "onion-skinning/opacity": "ÐепрозрачноÑть (%)", + "onion-skinning/opacityStep": "Шаг непрозрачноÑти (%)", + "onion-skinning/previous": "Прошлые коÑтюмы", + "onion-skinning/settings": "ÐаÑтройки Ð¾Ñ‚Ð¾Ð±Ñ€Ð°Ð¶ÐµÐ½Ð¸Ñ Ð¿Ñ€ÐµÐ´Ñ‹Ð´ÑƒÑ‰Ð¸Ñ… коÑтюмов", + "onion-skinning/tint": "Оттенок", + "onion-skinning/toggle": "Включить отображение предыдущих коÑтюмов", + "paint-snap/boxCenter": "Центра выбора", + "paint-snap/boxCorners": "Углов выбора", + "paint-snap/boxEdgeMids": "Средних точек выбора", + "paint-snap/objectCenters": "Центру объектов", + "paint-snap/objectCorners": "Углам объектов", + "paint-snap/objectEdges": "Границам объектов", + "paint-snap/objectMidlines": "Ñредним линиÑм объектов", + "paint-snap/off": "Выкл", + "paint-snap/on": "Вкл", + "paint-snap/pageAxes": "ОÑÑм x и y", + "paint-snap/pageCenter": "Центру", + "paint-snap/pageCorners": "Углам", + "paint-snap/pageEdges": "Границам", + "paint-snap/settings": "ÐаÑтройки привÑзки", + "paint-snap/snapFrom": "ПривÑзка от:", + "paint-snap/snapTo": "ПривÑзать к:", + "paint-snap/threshold": "ДиÑÑ‚Ð°Ð½Ñ†Ð¸Ñ Ð¿Ñ€Ð¸Ð²Ñзки", + "paint-snap/toggle": "Включить привÑзку", + "2d-color-picker/shade": "Оттенок", + "better-img-uploads/upload": "HD загрузка", + "variable-manager/for-all-sprites": "Переменные вÑех Ñпрайтов", + "variable-manager/for-this-sprite": "Переменные Ñтого Ñпрайта", + "variable-manager/search": "ПоиÑк", + "variable-manager/variables": "Переменные", + "search-sprites/placeholder": "ИÑкать Ñпрайты...", + "sprite-properties/close-properties-panel-tooltip": "СпрÑтать панель Ñо ÑвойÑтвами", + "sprite-properties/open-properties-panel-tooltip": "Открыть панель Ñо ÑвойÑтвами", + "gamepad/axes-a-b": "ОÑи {a}и{b}", + "gamepad/axis-arrows": "Клавиши Ñтрелок", + "gamepad/axis-cursor": "КурÑор", + "gamepad/axis-custom": "ÐаÑтраиваемый", + "gamepad/axis-none": "Ðичего", + "gamepad/browser-support": "Этот браузер и Ð¾Ð¿ÐµÑ€Ð°Ñ†Ð¸Ð¾Ð½Ð½Ð°Ñ ÑиÑтема имеют извеÑтные баги, которые могут повлиÑть на иÑпользование Ñтого аддона. Попробуйте др. браузер, еÑли у Ð’Ð°Ñ Ð¿Ð¾ÑвÑÑ‚ÑÑ Ð¿Ñ€Ð¾Ð±Ð»ÐµÐ¼Ñ‹.", + "gamepad/button-n": "Кнопка{n}", + "gamepad/clear": "ОчиÑтить вÑе Ñлементы управлениÑ", + "gamepad/config-header": "Этот комментарий Ñодержит конфигурацию Ð´Ð»Ñ Ð¿Ð¾Ð´Ð´ÐµÑ€Ð¶ÐºÐ¸ геймпада в Ñторонних инÑтрументах или Ñайтах по типу https://turbowarp.org/\nÐе редактировать Ñамим", + "gamepad/key-click": "Ðажатие", + "gamepad/key-down": "Вниз", + "gamepad/key-enter": "Ввод", + "gamepad/key-left": "Ðалево", + "gamepad/key-none": "(ничего)", + "gamepad/key-right": "Ðаправо", + "gamepad/key-space": "Пробел", + "gamepad/key-up": "Вверх", + "gamepad/keyinput-title": "Кликните и нажмите клавишу или кликните Ð´Ð»Ñ Ñмены кнопки. Esc Ð´Ð»Ñ Ð¾Ñ‚Ð¼ÐµÐ½Ñ‹. Backspace или Delete Ð´Ð»Ñ Ð¾Ñ‡Ð¸Ñтки.", + "gamepad/no-controllers": "Ðе обнаружены контроллеры. Попробуйте подключить какой-нибудь контроллер и нажать на нём кнопку.", + "gamepad/reset": "Сменить управление на Ñтандартное", + "gamepad/settings": "ÐаÑтройки геймпада", + "gamepad/store-in-project": "Хранить Ñти наÑтройки в проекте Ð´Ð»Ñ Ð¾Ð±Ñ…Ð¾Ð´Ð° конфигурации по умолчанию (ЭкÑпериментальный инÑтрумент Ð´Ð»Ñ Ñоздателей проектов)", + "folders/add-to-folder": "добавить к папке: {folder}", + "folders/closed-folder": "Папка", + "folders/confirm-backpack-folder": "Сохранить вÑÑŽ папку в рюкзак?", + "folders/create-folder": "Ñоздать папку", + "folders/name-not-allowed": "Ðеверное Ð¸Ð¼Ñ Ð¿Ð°Ð¿ÐºÐ¸", + "folders/name-prompt": "Ðазвание папки:", + "folders/name-prompt-title": "Создание папки", + "folders/open-folder": "Открыто", + "folders/remove-folder": "удалить папку", + "folders/remove-from-folder": "удалить из папки", + "folders/rename-folder": "переименовать папку", + "folders/rename-folder-prompt": "Переименовать папку в:", + "folders/rename-folder-prompt-title": "Переименование папки", + "block-switching/control_forever": "вÑегда", + "block-switching/control_if": "еÑли", + "block-switching/control_if_else": "еÑли... иначе", + "block-switching/control_repeat_until": "повторÑть до", + "block-switching/control_wait_until": "ждать до", + "block-switching/data_changevariableby": "изменить переменную", + "block-switching/data_hidelist": "Ñкрыть ÑпиÑок", + "block-switching/data_hidevariable": "ÑпрÑтать переменную", + "block-switching/data_insertatlist": "вÑтавить Ñлемент", + "block-switching/data_replaceitemoflist": "заменить Ñлемент", + "block-switching/data_setvariableto": "уÑтановить переменную", + "block-switching/data_showlist": "показать ÑпиÑок", + "block-switching/data_showvariable": "показать переменную", + "block-switching/debugger_error": "ошибка", + "block-switching/debugger_log": "лог", + "block-switching/debugger_warn": "предупредить", + "block-switching/event_broadcast": "передать", + "block-switching/event_broadcastandwait": "передать и ждать до конца", + "block-switching/looks_backdropnumbername": "номер фона или Ð¸Ð¼Ñ Ñ„Ð¾Ð½Ð°", + "block-switching/looks_changeeffectby": "изменить Ñффект", + "block-switching/looks_changesizeby": "изменить размер", + "block-switching/looks_costumenumbername": "номер коÑтюма или Ð¸Ð¼Ñ ÐºÐ¾Ñтюма", + "block-switching/looks_hide": "ÑпрÑтатьÑÑ", + "block-switching/looks_nextbackdrop": "Ñледующий фон", + "block-switching/looks_nextcostume": "Ñледующий коÑтюм", + "block-switching/looks_say": "Ñказать", + "block-switching/looks_sayforsecs": "говорить Ñекунд", + "block-switching/looks_seteffectto": "уÑтановить Ñффект", + "block-switching/looks_setsizeto": "уÑтановить размер", + "block-switching/looks_show": "показатьÑÑ", + "block-switching/looks_switchbackdropto": "переключить фон на", + "block-switching/looks_switchbackdroptoandwait": "изменить фон и ждать", + "block-switching/looks_think": "думать", + "block-switching/looks_thinkforsecs": "думать Ñекунд", + "block-switching/motion_changexby": "изменить x", + "block-switching/motion_changeyby": "изменить y", + "block-switching/motion_setx": "уÑтановить x", + "block-switching/motion_sety": "уÑтановить y", + "block-switching/motion_turnleft": "повернуть налево", + "block-switching/motion_turnright": "повернуть направо", + "block-switching/motion_xposition": "Ð¿Ð¾Ð·Ð¸Ñ†Ð¸Ñ x", + "block-switching/motion_yposition": "Ð¿Ð¾Ð·Ð¸Ñ†Ð¸Ñ y", + "block-switching/music_changeTempo": "изменить темп", + "block-switching/music_setTempo": "задать темп", + "block-switching/operator_and": "и", + "block-switching/operator_mod": "мод", + "block-switching/operator_or": "или", + "block-switching/pen_changePenColorParamBy": "изменить параметр", + "block-switching/pen_changePenHueBy": "изменить цвет", + "block-switching/pen_changePenShadeBy": "изменить оттенок", + "block-switching/pen_changePenSizeBy": "изменить размер", + "block-switching/pen_penDown": "опуÑтить перо", + "block-switching/pen_penUp": "поднÑть перо", + "block-switching/pen_setPenColorParamTo": "задать параметр", + "block-switching/pen_setPenHueToNumber": "задать цвет", + "block-switching/pen_setPenShadeToNumber": "задать оттенок", + "block-switching/pen_setPenSizeTo": "задать размер", + "block-switching/sensing_mousex": "x мыши", + "block-switching/sensing_mousey": "y мыши", + "block-switching/sound_changeeffectby": "изменить Ñффект", + "block-switching/sound_changevolumeby": "изменить громкоÑть", + "block-switching/sound_play": "включить звук", + "block-switching/sound_playuntildone": "проигрывать до конца", + "block-switching/sound_seteffectto": "задать Ñффект", + "block-switching/sound_setvolumeto": "задать громкоÑть", + "blocks2image/error_blocks_not_added": "Добавить блоки на рабочую облаÑть!", + "blocks2image/export_all_to_PNG": "ЭкÑпорт вÑех блоков в формате PNG", + "blocks2image/export_all_to_SVG": "ЭкÑпорт вÑех блоков в SVG", + "blocks2image/export_selected_to_PNG": "ЭкÑпорт блока как PNG", + "blocks2image/export_selected_to_SVG": "ЭкÑпорт блока в формате SVG", + "editor-extra-keys/enter-key": "ввод", + "move-to-top-bottom/bottom": "перемеÑтить вниз", + "move-to-top-bottom/top": "перемеÑтить наверх", + "rename-broadcasts/RENAME_BROADCAST": "Переименовать Ñообщение", + "rename-broadcasts/RENAME_BROADCAST_MODAL_TITLE": "Переименовать Сообщение", + "rename-broadcasts/RENAME_BROADCAST_TITLE": "переименовать \"{name}\" Ñообщений в:", + "swap-local-global/cant-convert-cloud": "Облачные переменные Ð½ÐµÐ»ÑŒÐ·Ñ Ð¿Ñ€ÐµÐ¾Ð±Ñ€Ð°Ð·Ð¾Ð²Ð°Ñ‚ÑŒ только в Ñтот Ñпрайт.", + "swap-local-global/cant-convert-conflict": "Ðевозможно Ñконвертировать, так как будет конфликт Ñ Ð¿ÐµÑ€ÐµÐ¼ÐµÐ½Ð½Ñ‹Ð¼Ð¸ в другом Ñпрайте: {sprites}", + "swap-local-global/cant-convert-stage": "Ð’ Ñцене не может быть переменных только Ð´Ð»Ñ Ñтого Ñпрайта.", + "swap-local-global/cant-convert-to-local": "Ðевозможно преобразовать, потому что иÑпользуетÑÑ Ð½ÐµÑколькими Ñпрайтами:{sprites}", + "swap-local-global/cant-convert-used-elsewhere": "Ðевозможно Ñконвертировать, Ñ‚. к. оно уже иÑпользуетÑÑ Ð´Ñ€ÑƒÐ³Ð¸Ð¼ Ñпрайтом: {sprite}", + "swap-local-global/edit": "Изменить ÑвойÑтва:", + "swap-local-global/edit-list-header": "Изменить ÑпиÑок", + "swap-local-global/edit-list-option": "Переименовать или изменить ÑпиÑок", + "swap-local-global/edit-variable-header": "Изменить переменную", + "swap-local-global/edit-variable-option": "Переименовать или изменить переменную", + "swap-local-global/to-global": "Конвертировать в \"Ð”Ð»Ñ Ð²Ñех Ñпрайтов\"", + "swap-local-global/to-local": "Конвертировать в \"Ð”Ð»Ñ Ð²Ñех Ñпрайтов\"", + "hide-stage/hide-stage": "Скрыть Ñцену" +} \ No newline at end of file diff --git a/src/addons/addons-l10n/sl.json b/src/addons/addons-l10n/sl.json new file mode 100644 index 0000000000000000000000000000000000000000..bae357746f4b8cc47859d4f7453c20b44533724b --- /dev/null +++ b/src/addons/addons-l10n/sl.json @@ -0,0 +1,233 @@ +{ + "editor-devtools/clean-plus": "PoÄisti bloke +", + "editor-devtools/copy-all": "Kopiraj vse", + "editor-devtools/copy-block": "Kopiraj blok", + "editor-devtools/cut-block": "Izreži blok", + "editor-devtools/lists": "seznami", + "editor-devtools/make-space": "Naredi prostor", + "editor-devtools/orphaned": "{count, plural, one {Developer tools: Naj izbriÅ¡em 1 neuporabljen okrogel blok?} two {Developer tools: Naj izbriÅ¡em 2 neuporabljena okrogla bloka?} few {Developer tools: Naj izbriÅ¡em # neuporabljene okrogle bloke?} other {Orodje za razvijalce: Naj izbriÅ¡em # neuporabljenih okroglih blokov?} }", + "editor-devtools/paste": "Prilepi", + "editor-devtools/replace": "Orodje za razvijalce: Zamenjaj vse {name} v tej figuri s spremenljivko z imenom:", + "editor-devtools/swap": "Zamenjaj {var} v figuri", + "editor-devtools/unused-list": "{count, plural, one {Developer tools: Naj izbriÅ¡em 1 neuporabljen lokalni seznam? Tukaj je:\n} two {Developer tools: Naj izbriÅ¡em 2 neuporabljena lokalna seznama? Tukaj sta:\n} few {Developer tools: Naj izbriÅ¡em # neuporabljene lokalne sezname? Tukaj so:\n} other {Orodje za razvijalce: Naj izbriÅ¡em # neuporabljenih lokalnih seznamov? Tukaj so:\n} }", + "editor-devtools/unused-var": "{count, plural, one {Developer tools: Naj izbriÅ¡em 1 neuporabljeno lokalno spremenljivko? Tukaj je:\n} two {Developer tools: Naj izbriÅ¡em 2 neuporabljeni lokalni spremenljivki? Tukaj sta:\n} few {Developer tools: Naj izbriÅ¡em # neuporabljene lokalne spremenljivke? Tukaj so:\n} other {Orodje za razvijalce: Naj izbriÅ¡em # neuporabljenih lokalnih spremenljivk? Tukaj so:\n} }", + "editor-devtools/var-not-exist": "Ta spremenljivka ne obstaja...", + "editor-devtools/variables": "spremenljivke", + "find-bar/complex-broadcast": "(izraz)", + "find-bar/find-placeholder": "Iskanje (Ctrl+F)", + "middle-click-popup/start-typing": "ZaÄnite tipkati...", + "editor-searchable-dropdowns/createBroadcast": "Ustvari sporoÄilo \"{name}\"", + "editor-searchable-dropdowns/createGlobalList": "Ustvari seznam \"{name}\" za vse figure", + "editor-searchable-dropdowns/createGlobalVariable": "Ustvari spremenljivko \"{name}\" za vse figure", + "editor-searchable-dropdowns/createLocalList": "Ustvari seznam \"{name}\" samo za to figuro", + "editor-searchable-dropdowns/createLocalVariable": "Ustvari spremenljivko \"{name}\" samo za to figuro", + "data-category-tweaks-v2/for-all-sprites": "Za vse figure:", + "data-category-tweaks-v2/for-this-sprite-only": "Samo za to figuro:", + "data-category-tweaks-v2/list-category": "Seznami", + "hide-flyout/lock": "Zakleni paleto", + "hide-flyout/unlock": "Odkleni paleto", + "mediarecorder/cancel": "PrekliÄi", + "mediarecorder/click-flag": "ÄŒakanje...", + "mediarecorder/click-flag-description": "Kliknite zeleno zastavico, da zaÄnete snemanje. Kliknite ta gumb, da ga ustavite.", + "mediarecorder/option-title": "Možnosti snemanja", + "mediarecorder/record": "Snemaj", + "mediarecorder/record-after-flag": "Ne zaÄni snemanja, dokler ne kliknem zelene zastavice", + "mediarecorder/record-audio": "VkljuÄi zvoke projekta", + "mediarecorder/record-audio-description": "To ne vkljuÄuje razÅ¡iritve Besedilo v govor.", + "mediarecorder/record-description": "Posnemite oder kot datoteko WebM. Lahko jo shranite na raÄunalnik, ko je snemanje konÄano.\nSpremenljivke in seznami ne bodo vidni na posnetku.", + "mediarecorder/record-duration": "Trajanje snemanja (v sekundah)", + "mediarecorder/record-mic": "VkljuÄi zvok mikrofona", + "mediarecorder/record-until-stop": "KonÄaj snemanje, ko se projekt ustavi", + "mediarecorder/record-until-stop-disabled": "VkljuÄite \"{afterFlagOption}\", da uporabite to možnost.", + "mediarecorder/start": "ZaÄni", + "mediarecorder/start-delay": "ZaÄni Äez (v sekundah)", + "mediarecorder/starting-in": "ZaÄenjam Äez {secs}...", + "mediarecorder/stop": "Ustavi snemanje", + "debugger/block-error": "napaka %s", + "debugger/block-log": "zapiÅ¡i %s", + "debugger/block-warn": "opozorilo %s", + "debugger/cannot-pause-player": "Blok breakpoint deluje samo v urejevalniku.", + "debugger/clear": "PoÄisti", + "debugger/clone-of": "Dvojnik figure {sprite}", + "debugger/close": "Zapri", + "debugger/console": "RazhroÅ¡Äevanje", + "debugger/debug": "RazhroÅ¡Äevanje", + "debugger/empty-string": "(prazen niz)", + "debugger/enter-format": "Oblika datoteke za izvoz:", + "debugger/export": "Izvozi", + "debugger/export-desc": "Kliknite, medtem ko držite tipko Shift, da izberete obliko datoteke za izvoz.", + "debugger/icon-error": "Napaka", + "debugger/icon-warn": "Opozorilo", + "debugger/log-msg-broadcasted": "SporoÄilo '{broadcast}' objavljeno.", + "debugger/log-msg-clone-cap": "Podvajanje figure '{sprite}' ni uspelo, Å¡tevilo dvojnikov je omejeno na 300.", + "debugger/log-msg-clone-created": "Dvojnik figure '{sprite}' narejen.", + "debugger/log-msg-flag-clicked": "Zelena zastavica kliknjena.", + "debugger/no-logs": "Ni zapiskov za prikaz.", + "debugger/no-threads-running": "Nobena nit ne deluje.", + "debugger/step": "Korak", + "debugger/step-desc": "Izvede en blok.", + "debugger/tab-logs": "Zapiski", + "debugger/tab-threads": "Niti", + "debugger/thread": "Nit {id}", + "debugger/unknown-sprite": "(neznana figura)", + "debugger/unpause": "Nadaljuj", + "pause/pause": "Premor", + "clones/clones": "dvojniki: {cloneCount}", + "color-picker/hex": "barva", + "remove-sprite-confirm/confirm": "Želite izbrisati figuro?", + "block-count/blocks": "{num, plural, one {1 blok} two {2 bloka} few {# bloki} other {# blokov}}", + "onion-skinning/behind": "Zadaj", + "onion-skinning/front": "Spredaj", + "onion-skinning/layering": "Plast", + "onion-skinning/merge": "Združi", + "onion-skinning/mode": "NaÄin", + "onion-skinning/next": "Naslednji videzi", + "onion-skinning/opacity": "Neprosojnost (%)", + "onion-skinning/opacityStep": "Sprememba neprosojnosti (%)", + "onion-skinning/previous": "PrejÅ¡nji videzi", + "onion-skinning/settings": "Nastavitve za onion skinning", + "onion-skinning/tint": "Barva", + "onion-skinning/toggle": "VkljuÄi ali izkljuÄi onion skinning", + "paint-snap/boxCenter": "SrediÅ¡Äe izbire", + "paint-snap/boxCorners": "OgliÅ¡Äa izbire", + "paint-snap/boxEdgeMids": "RazpoloviÅ¡Äa robov izbire", + "paint-snap/objectCenters": "SrediÅ¡Äa predmetov", + "paint-snap/objectCorners": "OgliÅ¡Äa predmetov", + "paint-snap/objectEdges": "Robovi predmetov", + "paint-snap/objectMidlines": "Osi predmetov", + "paint-snap/pageAxes": "Osi x in y strani", + "paint-snap/pageCenter": "SrediÅ¡Äe strani", + "paint-snap/pageCorners": "OgliÅ¡Äa strani", + "paint-snap/pageEdges": "Robovi strani", + "2d-color-picker/shade": "Odtenek", + "better-img-uploads/upload": "Naloži HD", + "variable-manager/for-all-sprites": "Spremenljivke za vse figure", + "variable-manager/for-this-sprite": "Spremenljivke za to figuro", + "variable-manager/search": "Iskanje", + "variable-manager/too-big": "Kliknite za prikaz zelo velike vrednosti.", + "variable-manager/variables": "Spremenljivke", + "search-sprites/placeholder": "Iskanje figur...", + "sprite-properties/close-properties-panel-tooltip": "SkrÄi lastnosti", + "sprite-properties/open-properties-panel-tooltip": "Odpri lastnosti", + "gamepad/axes-a-b": "Osi {a} in {b}", + "gamepad/axis-arrows": "Tipke s puÅ¡Äicami", + "gamepad/axis-cursor": "Kazalec miÅ¡ke", + "gamepad/axis-custom": "Po meri", + "gamepad/axis-none": "Brez", + "gamepad/browser-support": "Ta brskalnik in operacijski sistem imata znane napake, ki lahko naredijo uporabo tega dodatka težjo. ÄŒe pride do težav, preizkusite drug brskalnik.", + "gamepad/button-n": "Gumb {n}", + "gamepad/clear": "IzbriÅ¡i vse", + "gamepad/config-header": "Ta komentar vsebuje nastavitve za podporo igralnih ploÅ¡Äkov v orodju ali spletnih straneh, kot je https://turbowarp.org/\nNe spreminjajte roÄno", + "gamepad/key-click": "Klik miÅ¡ke", + "gamepad/key-down": "Dol", + "gamepad/key-left": "Levo", + "gamepad/key-none": "(brez)", + "gamepad/key-right": "Desno", + "gamepad/key-space": "Presledek", + "gamepad/key-up": "Gor", + "gamepad/keyinput-title": "Kliknite in pritisnite tipko ali kliknite z miÅ¡ko, da izberete gumb. Pritisnite tipko Escape za preklic ali Backspace/Delete, da izbriÅ¡ete vnos.", + "gamepad/no-controllers": "Noben igralni ploÅ¡Äek ni bil zaznan. Poskusite ga prikljuÄiti in pritisniti gumb na njem.", + "gamepad/reset": "Povrni privzete nastavitve", + "gamepad/settings": "Nastavitve igralnih ploÅ¡Äkov", + "gamepad/store-in-project": "Shrani te nastavitve v projektu, da nadomestijo privzete nastavitve (Preizkusna možnost za ustvarjalce projektov)", + "folders/add-to-folder": "dodaj v mapo: {folder}", + "folders/closed-folder": "Mapa", + "folders/confirm-backpack-folder": "Naj shranim celotno mapo v shrambo?", + "folders/create-folder": "ustvari mapo", + "folders/name-not-allowed": "Neveljavno ime mape", + "folders/name-prompt": "Ime mape:", + "folders/name-prompt-title": "Ustvari mapo", + "folders/open-folder": "Odprta", + "folders/remove-folder": "odstrani mapo", + "folders/remove-from-folder": "odstrani iz mape", + "folders/rename-folder": "preimenuj mapo", + "folders/rename-folder-prompt": "Preimenuj mapo v:", + "folders/rename-folder-prompt-title": "Preimenuj mapo", + "block-switching/control_forever": "ponavljaj", + "block-switching/control_if": "Äe", + "block-switching/control_if_else": "Äe ... sicer", + "block-switching/control_repeat_until": "ponavljaj dokler ni", + "block-switching/control_wait_until": "poÄakaj dokler ni", + "block-switching/data_changevariableby": "spremeni spremenljivko", + "block-switching/data_hidelist": "skrij seznam", + "block-switching/data_hidevariable": "skrij spremenljivko", + "block-switching/data_insertatlist": "vstavi predmet", + "block-switching/data_replaceitemoflist": "zamenjaj predmet", + "block-switching/data_setvariableto": "nastavi spremenljivko", + "block-switching/data_showlist": "pokaži seznam", + "block-switching/data_showvariable": "pokaži spremenljivko", + "block-switching/debugger_error": "napaka", + "block-switching/debugger_log": "zapiÅ¡i", + "block-switching/debugger_warn": "opozorilo", + "block-switching/event_broadcast": "objavi", + "block-switching/event_broadcastandwait": "objavi in Äakaj", + "block-switching/looks_backdropnumbername": "Å¡tevilo ali ime ozadja", + "block-switching/looks_changeeffectby": "spremeni uÄinek", + "block-switching/looks_changesizeby": "spremeni velikost", + "block-switching/looks_costumenumbername": "Å¡tevilo ali ime videza", + "block-switching/looks_hide": "skrij", + "block-switching/looks_nextbackdrop": "naslednje ozadje", + "block-switching/looks_nextcostume": "naslednji videz", + "block-switching/looks_say": "reci", + "block-switching/looks_sayforsecs": "reci za ... sekund", + "block-switching/looks_seteffectto": "nastavi uÄinek", + "block-switching/looks_setsizeto": "nastavi velikost", + "block-switching/looks_show": "pokaži", + "block-switching/looks_switchbackdropto": "zamenjaj ozadje", + "block-switching/looks_switchbackdroptoandwait": "zamenjaj ozadje in poÄakaj", + "block-switching/looks_think": "pomisli", + "block-switching/looks_thinkforsecs": "pomisli za ... sekund", + "block-switching/motion_changexby": "spremeni x", + "block-switching/motion_changeyby": "spremeni y", + "block-switching/motion_setx": "nastavi x", + "block-switching/motion_sety": "nastavi y", + "block-switching/motion_turnleft": "obrni se levo", + "block-switching/motion_turnright": "obrni se desno", + "block-switching/motion_xposition": "položaj x", + "block-switching/motion_yposition": "položaj y", + "block-switching/music_changeTempo": "spremeni tempo", + "block-switching/music_setTempo": "nastavi tempo", + "block-switching/operator_and": "in", + "block-switching/operator_or": "ali", + "block-switching/pen_changePenColorParamBy": "spremeni parameter", + "block-switching/pen_changePenHueBy": "spremeni barvo", + "block-switching/pen_changePenShadeBy": "spremeni svetlost", + "block-switching/pen_changePenSizeBy": "spremeni velikost", + "block-switching/pen_penDown": "spusti pero", + "block-switching/pen_penUp": "dvigni pero", + "block-switching/pen_setPenColorParamTo": "nastavi parameter", + "block-switching/pen_setPenHueToNumber": "nastavi barvo", + "block-switching/pen_setPenShadeToNumber": "nastavi svetlost", + "block-switching/pen_setPenSizeTo": "nastavi velikost", + "block-switching/sensing_mousex": "miÅ¡kin x", + "block-switching/sensing_mousey": "miÅ¡kin y", + "block-switching/sound_changeeffectby": "spremeni uÄinek", + "block-switching/sound_changevolumeby": "spremeni glasnost", + "block-switching/sound_play": "predvajaj", + "block-switching/sound_playuntildone": "predvajaj do konca", + "block-switching/sound_seteffectto": "nastavi uÄinek", + "block-switching/sound_setvolumeto": "nastavi glasnost", + "blocks2image/error_blocks_not_added": "Dodajte bloke v delovni prostor!", + "blocks2image/export_all_to_PNG": "Izvozi vse kot PNG", + "blocks2image/export_all_to_SVG": "Izvozi vse kot SVG", + "blocks2image/export_selected_to_PNG": "Izvozi blok kot PNG", + "blocks2image/export_selected_to_SVG": "Izvozi blok kot SVG", + "move-to-top-bottom/bottom": "na dno", + "move-to-top-bottom/top": "na vrh", + "rename-broadcasts/RENAME_BROADCAST": "Preimenuj sporoÄilo", + "rename-broadcasts/RENAME_BROADCAST_MODAL_TITLE": "Preimenuj sporoÄilo", + "rename-broadcasts/RENAME_BROADCAST_TITLE": "Preimenuj vsa sporoÄila \"{name}\" v:", + "swap-local-global/cant-convert-cloud": "Spremenljivke v oblaku ne morejo biti samo za to figuro.", + "swap-local-global/cant-convert-conflict": "Spremenljivke ni mogoÄe spremeniti, ker ima enako ime kot spremenljivka v drugi figuri: {sprites}", + "swap-local-global/cant-convert-stage": "Oder ne more imeti spremenljivk samo za to figuro.", + "swap-local-global/cant-convert-to-local": "Spremenljivke ni mogoÄe spremeniti, ker jo uporablja veÄ figur: {sprites}", + "swap-local-global/cant-convert-used-elsewhere": "Spremenljivke ni mogoÄe spremeniti, ker jo uporablja Å¡e ena figura: {sprite}", + "swap-local-global/edit": "Uredi lastnosti:", + "swap-local-global/edit-list-header": "Uredi seznam", + "swap-local-global/edit-list-option": "Preimenuj ali uredi seznam", + "swap-local-global/edit-variable-header": "Uredi spremenljivko", + "swap-local-global/edit-variable-option": "Preimenuj ali uredi spremenljivko", + "swap-local-global/to-global": "Spremeni v \"Za vse figure\"", + "swap-local-global/to-local": "Spremeni v \"Samo za to figuro\"", + "hide-stage/hide-stage": "Skrij oder" +} \ No newline at end of file diff --git a/src/addons/addons-l10n/tr.json b/src/addons/addons-l10n/tr.json new file mode 100644 index 0000000000000000000000000000000000000000..8e3504a6bf16452099f51bbf8f417f3e9a7e4d40 --- /dev/null +++ b/src/addons/addons-l10n/tr.json @@ -0,0 +1,238 @@ +{ + "editor-devtools/clean-plus": "Blokları temizle +", + "editor-devtools/copy-all": "Hepsini Kopyala", + "editor-devtools/copy-block": "BloÄŸu Kopyala", + "editor-devtools/cut-block": "BloÄŸu Kes", + "editor-devtools/lists": "listeler", + "editor-devtools/make-space": "BoÅŸluk Yap", + "editor-devtools/orphaned": "{count, plural, one {GeliÅŸtirici araçları: Tanımsız 1 haberci bloÄŸu silinsin mi?} other {GeliÅŸtirici araçları: Tanımsız # haberci bloÄŸu silinsin mi?} }", + "editor-devtools/paste": "Yapıştır", + "editor-devtools/replace": "GeliÅŸtirici araçları: {name} deÄŸiÅŸkeni için bu kuklanın tümünü deÄŸiÅŸtirin:", + "editor-devtools/swap": "Kuklada {var}'i deÄŸiÅŸtir", + "editor-devtools/unused-list": "{count, plural, one {GeliÅŸtirici araçları: Kullanılmayan 1 yerel liste silinsin mi? İşte buradalar:\n} other {GeliÅŸtirici araçları: Kullanılmayan # yerel liste silinsin mi? İşte buradalar:\n} }", + "editor-devtools/unused-var": "{count, plural, one {GeliÅŸtirici araçları: Kullanılmayan 1 yerel deÄŸiÅŸken silinsin mi? İşte buradalar:\n} other {GeliÅŸtirici araçları: Kullanılmayan # yerel deÄŸiÅŸken silinsin mi? İşte buradalar:\n} }", + "editor-devtools/var-not-exist": "Bu deÄŸiÅŸken mevcut deÄŸil...", + "editor-devtools/variables": "deÄŸiÅŸkenler", + "find-bar/complex-broadcast": "(ifade)", + "find-bar/find-placeholder": "Ara (Ctrl+F)", + "middle-click-popup/start-typing": "Yazmaya BaÅŸla...", + "editor-searchable-dropdowns/createBroadcast": "\"{name}\" mesajını oluÅŸtur", + "editor-searchable-dropdowns/createGlobalList": "Tüm kuklalar için \"{name}\" listesini oluÅŸtur", + "editor-searchable-dropdowns/createGlobalVariable": "Tüm kuklalar için \"{name}\" deÄŸiÅŸkenini oluÅŸtur", + "editor-searchable-dropdowns/createLocalList": "Sadece bu kukla için \"{name}\" listesini oluÅŸtur", + "editor-searchable-dropdowns/createLocalVariable": "Sadece bu kukla için \"{name}\" deÄŸiÅŸkenini oluÅŸtur", + "data-category-tweaks-v2/for-all-sprites": "Tüm kuklalar için:", + "data-category-tweaks-v2/for-this-sprite-only": "Sadece bu kukla için:", + "data-category-tweaks-v2/list-category": "Listeler", + "hide-flyout/lock": "Paleti Kilitle", + "hide-flyout/unlock": "Paletin Kilidini Aç", + "mediarecorder/cancel": "İptal", + "mediarecorder/click-flag": "Bekleniyor...", + "mediarecorder/click-flag-description": "Kayda baÅŸlamak için yeÅŸil bayraÄŸa tıkla. Durdurmak için bu butona tıkla.", + "mediarecorder/option-title": "Kayıt Seçenekleri", + "mediarecorder/record": "Kayıt", + "mediarecorder/record-after-flag": "YeÅŸil BayraÄŸa tıklanana kadar kayda baÅŸlama", + "mediarecorder/record-audio": "Proje seslerini de kaydet", + "mediarecorder/record-audio-description": "Bu, Metinden Sese tekniÄŸini desteklemez.", + "mediarecorder/record-description": "Sahneyi bir WebM dosyası olarak kaydedin. Kayıt bittikten sonra bilgisayarınıza kaydedebilirsiniz.\nNot: deÄŸiÅŸken ve liste ekranları görünmeyecek.", + "mediarecorder/record-duration": "Kayıt Süresi (saniye ile)", + "mediarecorder/record-mic": "Mikrofondaki sesleri de kaydet", + "mediarecorder/record-until-stop": "Proje durduÄŸunda kaydı durdur", + "mediarecorder/record-until-stop-disabled": "Bunu kullanmak için \"{afterFlagOption}\" seçeneÄŸini etkinleÅŸtirmeniz gerekiyor.", + "mediarecorder/start": "BaÅŸla", + "mediarecorder/start-delay": "Gecikmeyi BaÅŸlat (saniye ile)", + "mediarecorder/starting-in": "{secs} saniyede baÅŸlıyor...", + "mediarecorder/stop": "Kaydı Durdur", + "debugger/block-breakpoint": "durdurucu", + "debugger/block-error": "hata %s", + "debugger/block-log": "günlük %s", + "debugger/block-warn": "uyarı %s", + "debugger/cannot-pause-player": "Durdurucu bloÄŸu yalnızca düzenleyicideyken kullanılabilir.", + "debugger/clear": "Temizle", + "debugger/clone-of": "{sprite} kuklasının ikizi", + "debugger/close": "Kapat", + "debugger/console": "Günlükler", + "debugger/debug": "Hata Ayıklama", + "debugger/empty-string": "(boÅŸ dize)", + "debugger/enter-format": "Dışa aktarma formatını girin:", + "debugger/export": "Dışa Aktar", + "debugger/export-desc": "Dışa aktarma formatını özelleÅŸtirmek için Shift tuÅŸunu basılı tutarken tıklayın.", + "debugger/icon-error": "Hata", + "debugger/icon-warn": "Uyarı", + "debugger/log-msg-broadcasted": "'{broadcast}' haberi salındı.", + "debugger/log-msg-clone-cap": "'{sprite}' kuklasının ikizi oluÅŸturulamadı, bir projede 300'den fazla ikiz oluÅŸturulamaz.", + "debugger/log-msg-clone-created": "'{sprite}' kuklasının ikizi oluÅŸturuldu.", + "debugger/log-msg-flag-clicked": "YeÅŸil bayraÄŸa tıklandı.", + "debugger/no-logs": "Görüntülenecek günlük yok.", + "debugger/no-threads-running": "Çalışan blok dizesi yok.", + "debugger/step": "Adım", + "debugger/step-desc": "Bir bloÄŸu çalıştırır.", + "debugger/tab-logs": "Günlükler", + "debugger/tab-threads": "Blok Dizeleri", + "debugger/thread": "{id} numaralı blok dizesi", + "debugger/unknown-sprite": "(bilinmeyen kukla)", + "debugger/unpause": "Devam Et", + "pause/pause": "Duraklat", + "clones/clones": "ikiz sayısı: {cloneCount}", + "color-picker/hex": "hex rengi", + "remove-sprite-confirm/confirm": "Kuklayı silmek istediÄŸinizden emin misiniz?", + "block-count/blocks": "{num, plural, one {1 blok} other {# blok}}", + "onion-skinning/behind": "Arka", + "onion-skinning/front": "Ön", + "onion-skinning/layering": "Katmanla", + "onion-skinning/merge": "BirleÅŸtir", + "onion-skinning/mode": "Mod", + "onion-skinning/next": "Sonraki kostümler", + "onion-skinning/opacity": "Saydamlık (%)", + "onion-skinning/opacityStep": "Saydamlık derecesi (%)", + "onion-skinning/previous": "Önceki kostümler", + "onion-skinning/settings": "Önceki Kostümün İzi Ayarları", + "onion-skinning/tint": "Ton", + "onion-skinning/toggle": "Önceki Kostümün İzini OluÅŸturmayı Aç/Kapat", + "paint-snap/boxCenter": "Seçimin merkezinden", + "paint-snap/boxCorners": "Seçimin köşelerinden", + "paint-snap/boxEdgeMids": "Seçimin orta kenar noktalarından", + "paint-snap/objectCenters": "Nesnelerin merkezlerine", + "paint-snap/objectCorners": "Nesnelerin köşelerine", + "paint-snap/objectEdges": "Nesnelerin kenarlarına", + "paint-snap/objectMidlines": "Nesnelerin orta hatlarına", + "paint-snap/off": "Kapalı", + "paint-snap/on": "Açık", + "paint-snap/pageAxes": "Sayfanın x ve y eksenlerine", + "paint-snap/pageCenter": "Sayfanın merkezine", + "paint-snap/pageCorners": "Sayfanın köşelerine", + "paint-snap/pageEdges": "Sayfanın kenarlarına", + "paint-snap/settings": "Tutturma Ayarları", + "paint-snap/snapFrom": "Åžuradan tuttur:", + "paint-snap/snapTo": "Åžuraya tuttur:", + "paint-snap/threshold": "Tutturma mesafesi", + "paint-snap/toggle": "Tutturmayı DeÄŸiÅŸtir", + "2d-color-picker/shade": "Ton", + "better-img-uploads/upload": "HD Yükle", + "variable-manager/for-all-sprites": "Tüm kuklaların deÄŸiÅŸkenleri", + "variable-manager/for-this-sprite": "Bu kuklanın deÄŸiÅŸkenleri", + "variable-manager/search": "Ara", + "variable-manager/too-big": "Çok büyük deÄŸeri görmek için tıkla.", + "variable-manager/variables": "DeÄŸiÅŸkenler", + "search-sprites/placeholder": "Kuklalarda ara...", + "sprite-properties/close-properties-panel-tooltip": "Özellikler panelini daralt", + "sprite-properties/open-properties-panel-tooltip": "Özellikler panelini aç", + "gamepad/axes-a-b": "{a} ve {b} eksenleri", + "gamepad/axis-arrows": "Ok TuÅŸları", + "gamepad/axis-cursor": "İmleç", + "gamepad/axis-custom": "Özel", + "gamepad/axis-none": "Yok", + "gamepad/browser-support": "Bu tarayıcı ve iÅŸletim sistemi, bu eklentinin kullanımını zorlaÅŸtırabilecek bilinen hatalara sahip. Herhangi bir sorunla karşılaşırsanız baÅŸka bir tarayıcı deneyin.", + "gamepad/button-n": "Buton {n}", + "gamepad/clear": "Tüm kontrolleri temizle", + "gamepad/config-header": "Bu yorum, https://turbowarp.org/ gibi üçüncü taraf araçlarda veya sitelerde oyun kumandası desteÄŸi için yapılandırma içerir\nEl ile düzenleme yapmayın", + "gamepad/key-click": "Tıkla", + "gamepad/key-down": "AÅŸağı", + "gamepad/key-left": "Sol", + "gamepad/key-none": "(yok)", + "gamepad/key-right": "SaÄŸ", + "gamepad/key-space": "BoÅŸluk", + "gamepad/key-up": "Yukarı", + "gamepad/keyinput-title": "Tıkla ve herhangi bir tuÅŸa bas veya deÄŸiÅŸtirme butonuna tıkla. İptal etmek için escape tuÅŸunu, temizlemek için backspace veya delete tuÅŸunu kullan.", + "gamepad/no-controllers": "Hiçbir denetleyici algılanmadı. Cihazı bir giriÅŸe takıp üzerindeki bir düğmeye basmayı deneyin.", + "gamepad/reset": "Tüm kontrolleri projenin varsayılan ayarlarına sıfırla", + "gamepad/settings": "Oyun Kumandası Ayarları", + "gamepad/store-in-project": "Varsayılan yapılandırmayı geçersiz kılmak için bu ayarları projede saklayın (Proje yaratıcıları için deneysel araç)", + "folders/add-to-folder": "{folder} klasörüne ekle", + "folders/closed-folder": "Klasör", + "folders/confirm-backpack-folder": "Tüm klasör sırt çantasına kaydedilsin mi?", + "folders/create-folder": "klasör oluÅŸtur", + "folders/name-not-allowed": "Geçersiz klasör adı", + "folders/name-prompt": "Klasörün adı:", + "folders/name-prompt-title": "Klasör OluÅŸtur", + "folders/open-folder": "Açıldı", + "folders/remove-folder": "klasörü sil", + "folders/remove-from-folder": "klasörden sil", + "folders/rename-folder": "klasörü yeniden adlandır", + "folders/rename-folder-prompt": "Klasörün adını ÅŸununla deÄŸiÅŸtir: ", + "folders/rename-folder-prompt-title": "Klasörü Yeniden Adlandır", + "block-switching/control_forever": "sürekli", + "block-switching/control_if": "eÄŸer ise", + "block-switching/control_if_else": "eÄŸer ise... deÄŸilse", + "block-switching/control_repeat_until": "olana kadar tekrarla", + "block-switching/control_wait_until": "olana kadar bekle", + "block-switching/data_changevariableby": "deÄŸiÅŸkeni deÄŸiÅŸtir", + "block-switching/data_hidelist": "listeyi gizle", + "block-switching/data_hidevariable": "deÄŸiÅŸkeni gizle", + "block-switching/data_insertatlist": "öge ekle", + "block-switching/data_replaceitemoflist": "ögeyi deÄŸiÅŸtir", + "block-switching/data_setvariableto": "deÄŸiÅŸkeni ayarla", + "block-switching/data_showlist": "listeyi göster", + "block-switching/data_showvariable": "deÄŸiÅŸkeni göster", + "block-switching/debugger_error": "hata", + "block-switching/debugger_log": "günlük", + "block-switching/debugger_warn": "uyarı", + "block-switching/event_broadcast": "haberi sal", + "block-switching/event_broadcastandwait": "haberi sal ve bekle", + "block-switching/looks_backdropnumbername": "zemin numarası veya adı", + "block-switching/looks_changeeffectby": "efekti deÄŸiÅŸtir", + "block-switching/looks_changesizeby": "boyutu deÄŸiÅŸtir", + "block-switching/looks_costumenumbername": "kostüm numarası veya adı", + "block-switching/looks_hide": "gizle", + "block-switching/looks_nextbackdrop": "sonraki dekor", + "block-switching/looks_nextcostume": "sonraki kostüm", + "block-switching/looks_say": "de", + "block-switching/looks_sayforsecs": "saniyeler için söyle", + "block-switching/looks_seteffectto": "efekti ayarla", + "block-switching/looks_setsizeto": "boyutu ayarla", + "block-switching/looks_show": "göster", + "block-switching/looks_switchbackdropto": "zemini deÄŸiÅŸtir", + "block-switching/looks_switchbackdroptoandwait": "zemini deÄŸiÅŸtir ve bekle", + "block-switching/looks_think": "düşün", + "block-switching/looks_thinkforsecs": "saniyeler için düşün", + "block-switching/motion_changexby": "x'i deÄŸiÅŸtir", + "block-switching/motion_changeyby": "y'yi deÄŸiÅŸtir", + "block-switching/motion_setx": "x'i yap", + "block-switching/motion_sety": "y'yi yap", + "block-switching/motion_turnleft": "sola dön", + "block-switching/motion_turnright": "saÄŸa dön", + "block-switching/motion_xposition": "x konumu", + "block-switching/motion_yposition": "y konumu", + "block-switching/music_changeTempo": "tempoyu deÄŸiÅŸtir", + "block-switching/music_setTempo": "tempoyu ayarla", + "block-switching/operator_and": "ve", + "block-switching/operator_or": "veya", + "block-switching/pen_changePenColorParamBy": "parametreyi deÄŸiÅŸtir", + "block-switching/pen_changePenHueBy": "rengi deÄŸiÅŸtir", + "block-switching/pen_changePenShadeBy": "gölgeyi deÄŸiÅŸtir", + "block-switching/pen_changePenSizeBy": "boyutu deÄŸiÅŸtir", + "block-switching/pen_penDown": "kalemi bastır", + "block-switching/pen_penUp": "kalemi kaldır", + "block-switching/pen_setPenColorParamTo": "parametreyi ayarla", + "block-switching/pen_setPenHueToNumber": "rengi ayarla", + "block-switching/pen_setPenShadeToNumber": "gölgeyi ayarla", + "block-switching/pen_setPenSizeTo": "boyutu ayarla", + "block-switching/sensing_mousex": "farenin x'i", + "block-switching/sensing_mousey": "farenin y'si", + "block-switching/sound_changeeffectby": "efekti deÄŸiÅŸtir", + "block-switching/sound_changevolumeby": "sesi deÄŸiÅŸtir", + "block-switching/sound_play": "baÅŸlat", + "block-switching/sound_playuntildone": "bitene kadar çal", + "block-switching/sound_seteffectto": "efekti ayarla", + "block-switching/sound_setvolumeto": "sesi ayarla", + "blocks2image/error_blocks_not_added": "Çalışma alanına blok ekleyin!", + "blocks2image/export_all_to_PNG": "Her ÅŸeyi PNG olarak dışa aktar", + "blocks2image/export_all_to_SVG": "Her ÅŸeyi SVG olarak dışa aktar", + "blocks2image/export_selected_to_PNG": "BloÄŸu PNG olarak dışa aktar", + "blocks2image/export_selected_to_SVG": "BloÄŸu SVG olarak dışa aktar", + "move-to-top-bottom/bottom": "en alta taşı", + "move-to-top-bottom/top": "en üste taşı", + "swap-local-global/cant-convert-cloud": "Bulut deÄŸiÅŸkenleri, yalnızca bu kukla için ayarına dönüştürülemez.", + "swap-local-global/cant-convert-conflict": "{sprites}, baÅŸka bir kukladaki deÄŸiÅŸkenlerle çakışacağı için dönüştürülemiyor.", + "swap-local-global/cant-convert-stage": "Dekor alanı, yalnızca bu kukla için deÄŸiÅŸkenine sahip olamaz.", + "swap-local-global/cant-convert-to-local": "{sprites}, birden fazla kukla tarafından kullanılmakta oldupu için dönüştürülemiyor.", + "swap-local-global/cant-convert-used-elsewhere": "BaÅŸka bir kukla tarafından kullanıldığı için dönüştürülemiyor: {sprite}", + "swap-local-global/edit": "Özellikleri düzenle:", + "swap-local-global/edit-list-header": "Listeyi düzenle", + "swap-local-global/edit-list-option": "Listeyi yeniden adlandır veya düzenle", + "swap-local-global/edit-variable-header": "DeÄŸiÅŸkeni düzenle", + "swap-local-global/edit-variable-option": "DeÄŸiÅŸkeni yeniden adlandır veya düzenle", + "swap-local-global/to-global": "\"Tüm kuklalar için\" ayarına dönüştür", + "swap-local-global/to-local": "\"Yalnızca bu kukla için†ayarına dönüştür", + "hide-stage/hide-stage": "Sahneyi gizle" +} \ No newline at end of file diff --git a/src/addons/addons-l10n/zh-tw.json b/src/addons/addons-l10n/zh-tw.json new file mode 100644 index 0000000000000000000000000000000000000000..87d1e2f9724e2e8c5f67c0b8fd353798b60a77e8 --- /dev/null +++ b/src/addons/addons-l10n/zh-tw.json @@ -0,0 +1,222 @@ +{ + "editor-devtools/clean-plus": "æ•´ç†ç©æœ¨ +", + "editor-devtools/copy-all": "複製全部", + "editor-devtools/copy-block": "è¤‡è£½ç©æœ¨", + "editor-devtools/cut-block": "å‰ªä¸‹ç©æœ¨", + "editor-devtools/lists": "清單", + "editor-devtools/make-space": "騰出空間", + "editor-devtools/orphaned": "{count, plural, other {è¦åˆªé™¤ # 個單ç¨å­˜åœ¨çš„ç©æœ¨å—Žï¼Ÿ} }", + "editor-devtools/paste": "貼上", + "editor-devtools/replace": "將這個角色上的變數 {name} å…¨éƒ¨æ›¿æ›æˆï¼š", + "editor-devtools/swap": "替æ›è§’色中的所有{var}", + "editor-devtools/unused-list": "{count, plural, other {è¦åˆªé™¤ # 個沒有用到的清單嗎?這些清單包å«ï¼š\n} }", + "editor-devtools/unused-var": "{count, plural, other {è¦åˆªé™¤ # 個沒有用到的變數嗎?這些變數包å«ï¼š\n} }", + "editor-devtools/var-not-exist": "這個變數ä¸å­˜åœ¨â€¦", + "editor-devtools/variables": "變數", + "find-bar/find-placeholder": "查找 (Ctrl+F)", + "middle-click-popup/start-typing": "開始打字...", + "editor-searchable-dropdowns/createBroadcast": "å»ºç«‹å»£æ’­è¨Šæ¯ {name}", + "editor-searchable-dropdowns/createGlobalList": "建立全域清單 {name}", + "editor-searchable-dropdowns/createGlobalVariable": "建立全域變數 {name} ", + "editor-searchable-dropdowns/createLocalList": "建立å€åŸŸæ¸…å–® {name}", + "editor-searchable-dropdowns/createLocalVariable": "建立å€åŸŸè®Šæ•¸ {name}", + "data-category-tweaks-v2/for-all-sprites": "é©ç”¨æ–¼æ‰€æœ‰è§’色:", + "data-category-tweaks-v2/for-this-sprite-only": "僅é©ç”¨æ–¼ç•¶å‰è§’色:", + "data-category-tweaks-v2/list-category": "清單", + "hide-flyout/lock": "固定工具箱", + "hide-flyout/unlock": "å–æ¶ˆå›ºå®šå·¥å…·ç®±", + "mediarecorder/cancel": "å–æ¶ˆ", + "mediarecorder/click-flag": "正在等待…", + "mediarecorder/click-flag-description": "點擊綠旗就會開始錄製,點擊這個按鈕å¯ä»¥åœæ­¢ã€‚", + "mediarecorder/option-title": "錄製設定", + "mediarecorder/record-after-flag": "在綠旗被點擊時æ‰é–‹å§‹éŒ„製", + "mediarecorder/record-audio": "包å«å°ˆæ¡ˆçš„è²éŸ³", + "mediarecorder/record-audio-description": "這ä¸åŒ…括文字轉語音的è²éŸ³ã€‚", + "mediarecorder/record-duration": "錄製時長(秒)", + "mediarecorder/record-mic": "包å«ä¾†è‡ªéº¥å…‹é¢¨çš„è²éŸ³", + "mediarecorder/record-until-stop": "åœ¨åœæ­¢å°ˆæ¡ˆé‹è¡Œæ™‚ä¹Ÿåœæ­¢éŒ„製", + "mediarecorder/record-until-stop-disabled": "你必須啟用「{afterFlagOption}ã€æ‰å¯ä»¥è¨­å®šé€™å€‹é …目。", + "mediarecorder/start": "é–‹å§‹", + "mediarecorder/start-delay": "開始時延é²ï¼ˆç§’)", + "mediarecorder/starting-in": "錄影倒數 {secs}...", + "mediarecorder/stop": "åœæ­¢éŒ„å½±", + "debugger/block-breakpoint": "中斷點", + "debugger/block-error": "錯誤 %s", + "debugger/block-log": "記錄 %s", + "debugger/block-warn": "警告 %s", + "debugger/cannot-pause-player": "ä¸­æ–·é»žç©æœ¨åªèƒ½åœ¨ç·¨è¼¯å™¨ä¸­ä½¿ç”¨ã€‚", + "debugger/clear": "清除", + "debugger/clone-of": "{sprite}的分身", + "debugger/close": "關閉", + "debugger/console": "紀錄", + "debugger/debug": "åµéŒ¯", + "debugger/empty-string": "(空字串)", + "debugger/enter-format": "輸入匯出格å¼ï¼š", + "debugger/export": "匯出", + "debugger/export-desc": "æŒ‰ä½ Shift éµä¸¦é»žæ“Šä»¥è‡ªè¨‚匯出格å¼", + "debugger/icon-error": "錯誤", + "debugger/icon-warn": "警告", + "debugger/log-msg-broadcasted": "廣播了訊æ¯{broadcast}", + "debugger/log-msg-clone-cap": "創建{sprite}的分身時失敗,分身的創建ä¸èƒ½è¶…éŽ 300 個。", + "debugger/log-msg-clone-created": "建立了{sprite}的分身。", + "debugger/log-msg-flag-clicked": "綠旗被點擊。", + "debugger/no-logs": "沒有å¯é¡¯ç¤ºçš„紀錄。", + "debugger/no-threads-running": "沒有é‹è¡Œä¸­çš„執行緒。", + "debugger/step": "步進", + "debugger/step-desc": "åŸ·è¡Œä¸€å€‹ç©æœ¨", + "debugger/tab-logs": "紀錄", + "debugger/tab-threads": "執行緒", + "debugger/thread": "執行緒 {id}", + "debugger/unknown-sprite": "(未知角色)", + "debugger/unpause": "繼續", + "pause/pause": "æš«åœ", + "clones/clones": "分身數:{cloneCount}", + "color-picker/hex": "hex 色碼", + "remove-sprite-confirm/confirm": "確定è¦åˆªé™¤é€™å€‹è§’色?", + "block-count/blocks": "{num, plural, other {# 個程å¼ç©æœ¨}}", + "onion-skinning/behind": "在後é¢", + "onion-skinning/front": "在å‰é¢", + "onion-skinning/layering": "圖層排列", + "onion-skinning/merge": "åˆä½µ", + "onion-skinning/mode": "顯示模å¼", + "onion-skinning/next": "下一個造型", + "onion-skinning/opacity": "逿˜Žåº¦ï¼ˆ%)", + "onion-skinning/opacityStep": "逿˜Žæ¼¸é€²ï¼ˆ%)", + "onion-skinning/previous": "上一個造型", + "onion-skinning/settings": "æåœ–紙設定", + "onion-skinning/tint": "染色", + "onion-skinning/toggle": "æåœ–紙顯示切æ›", + "paint-snap/off": "é—œ", + "paint-snap/on": "é–‹", + "2d-color-picker/shade": "é™°å½±", + "better-img-uploads/upload": "高清圖片上傳", + "variable-manager/for-all-sprites": "所有角色使用的變數", + "variable-manager/for-this-sprite": "僅這個角色使用的變數", + "variable-manager/search": "æœå°‹", + "variable-manager/variables": "變數", + "search-sprites/placeholder": "æœå°‹è§’色…", + "gamepad/axes-a-b": "軸 {a} 與 {b}", + "gamepad/axis-arrows": "æ–¹å‘éµ", + "gamepad/axis-cursor": "滑鼠游標", + "gamepad/axis-custom": "自訂", + "gamepad/axis-none": "ç„¡", + "gamepad/browser-support": "這個ç€è¦½å™¨å’Œæ“作系統有些已知錯誤,å¯èƒ½ä½¿é€™å€‹æ’件難以使用,如果你碰到了一些å•題,請試試其它的ç€è¦½å™¨ã€‚", + "gamepad/button-n": "按鈕 {n}", + "gamepad/clear": "清空所有控制設置", + "gamepad/config-header": "這個註解包å«ç¬¬ä¸‰æ–¹å·¥å…·æˆ–網站(如 https://turbowarp.org/ï¼‰ä¸­çš„éŠæˆ²æ‰‹æŸ„é…置。\n請勿手動修改", + "gamepad/key-click": "點擊", + "gamepad/key-down": "å‘下éµ", + "gamepad/key-enter": "Enter éµ", + "gamepad/key-left": "å‘å·¦éµ", + "gamepad/key-none": "(無)", + "gamepad/key-right": "å‘å³éµ", + "gamepad/key-space": "空白éµ", + "gamepad/key-up": "å‘上éµ", + "gamepad/keyinput-title": "é»žæ“Šä¸¦æŒ‰ä¸‹ä¸€å€‹éµæˆ–單擊更改按鈕。ESC éµå¯å–æ¶ˆã€‚è¿”å›žéµæˆ– Delete éµå¯åˆªé™¤ã€‚", + "gamepad/no-controllers": "æœªæª¢æ¸¬åˆ°éŠæˆ²æ‰‹æŸ„ï¼Œè«‹åœ¨é€£æŽ¥å¾Œå†æŒ‰ä¸€æ¬¡æŒ‰éˆ•。", + "gamepad/reset": "é‡è¨­æ‰€æœ‰æŽ§åˆ¶è¨­ç½®åˆ°å°ˆæ¡ˆé è¨­å€¼", + "gamepad/settings": "éŠæˆ²æ‰‹æŸ„設置", + "gamepad/store-in-project": "將這些設置儲存在專案裡以覆寫原來的設定(項目創建者的實驗工具)", + "folders/add-to-folder": "放進資料夾:{folder}", + "folders/closed-folder": "資料夾", + "folders/confirm-backpack-folder": "將整個資料夾放進背包?", + "folders/create-folder": "創建資料夾", + "folders/name-not-allowed": "無效的資料夾å稱", + "folders/name-prompt": "資料夾å稱:", + "folders/name-prompt-title": "創建資料夾", + "folders/open-folder": "已開啟", + "folders/remove-folder": "移除資料夾", + "folders/remove-from-folder": "移出資料夾", + "folders/rename-folder": "æ›´å資料夾", + "folders/rename-folder-prompt": "å°‡è³‡æ–™å¤¾é‡æ–°å‘½å為:", + "folders/rename-folder-prompt-title": "釿–°å‘½å資料夾", + "block-switching/control_forever": "é‡è¤‡ç„¡é™æ¬¡", + "block-switching/control_if": "如果", + "block-switching/control_if_else": "如果…å¦å‰‡", + "block-switching/control_repeat_until": "等待直到", + "block-switching/control_wait_until": "等待直到", + "block-switching/data_changevariableby": "變數改變", + "block-switching/data_hidelist": "清單隱è—", + "block-switching/data_hidevariable": "變數隱è—", + "block-switching/data_insertatlist": "æ’入項目", + "block-switching/data_replaceitemoflist": "替æ›é …ç›®", + "block-switching/data_setvariableto": "變數設為", + "block-switching/data_showlist": "清單顯示", + "block-switching/data_showvariable": "變數顯示", + "block-switching/debugger_error": "錯誤", + "block-switching/debugger_log": "紀錄", + "block-switching/debugger_warn": "警告", + "block-switching/event_broadcast": "廣播訊æ¯", + "block-switching/event_broadcastandwait": "廣播訊æ¯ä¸¦ç­‰å¾…", + "block-switching/looks_backdropnumbername": "背景編號或å稱", + "block-switching/looks_changeeffectby": "åœ–åƒæ•ˆæžœæ”¹è®Š", + "block-switching/looks_changesizeby": "尺寸改變", + "block-switching/looks_costumenumbername": "造型編號或å稱", + "block-switching/looks_hide": "éš±è—", + "block-switching/looks_nextbackdrop": "èƒŒæ™¯æ›æˆä¸‹ä¸€å€‹", + "block-switching/looks_nextcostume": "é€ åž‹æ›æˆä¸‹ä¸€å€‹", + "block-switching/looks_say": "說出", + "block-switching/looks_sayforsecs": "說出æŒçºŒ", + "block-switching/looks_seteffectto": "åœ–åƒæ•ˆæžœè¨­ç‚º", + "block-switching/looks_setsizeto": "尺寸設為", + "block-switching/looks_show": "顯示", + "block-switching/looks_switchbackdropto": "èƒŒæ™¯æ›æˆ", + "block-switching/looks_switchbackdroptoandwait": "èƒŒæ™¯æ›æˆä¸¦ç­‰å¾…", + "block-switching/looks_think": "想著", + "block-switching/looks_thinkforsecs": "想著æŒçºŒ", + "block-switching/motion_changexby": "x 改變", + "block-switching/motion_changeyby": "y 改變", + "block-switching/motion_setx": "x 設為", + "block-switching/motion_sety": "y 設為", + "block-switching/motion_turnleft": "左轉", + "block-switching/motion_turnright": "å³è½‰", + "block-switching/motion_xposition": "x 座標", + "block-switching/motion_yposition": "y 座標", + "block-switching/music_changeTempo": "æ¼”å¥é€Ÿåº¦æ”¹è®Š", + "block-switching/music_setTempo": "æ¼”å¥é€Ÿåº¦è¨­ç‚º", + "block-switching/operator_and": "且", + "block-switching/operator_mod": "å–餘數", + "block-switching/operator_or": "或", + "block-switching/pen_changePenColorParamBy": "åƒæ•¸æ”¹è®Š", + "block-switching/pen_changePenHueBy": "é¡è‰²æ”¹è®Š", + "block-switching/pen_changePenShadeBy": "陰影改變", + "block-switching/pen_changePenSizeBy": "筆跡寬度改變", + "block-switching/pen_penDown": "下筆", + "block-switching/pen_penUp": "åœç­†", + "block-switching/pen_setPenColorParamTo": "åƒæ•¸è¨­ç‚º", + "block-switching/pen_setPenHueToNumber": "é¡è‰²è¨­ç‚º", + "block-switching/pen_setPenShadeToNumber": "陰影設為", + "block-switching/pen_setPenSizeTo": "筆跡寬度設為", + "block-switching/sensing_mousex": "鼠標的 x", + "block-switching/sensing_mousey": "鼠標的 y", + "block-switching/sound_changeeffectby": "è²éŸ³æ•ˆæžœæ”¹è®Š", + "block-switching/sound_changevolumeby": "éŸ³é‡æ”¹è®Š", + "block-switching/sound_play": "播放音效", + "block-switching/sound_playuntildone": "æ’­æ”¾éŸ³æ•ˆç›´åˆ°çµæŸ", + "block-switching/sound_seteffectto": "è²éŸ³æ•ˆæžœè¨­ç‚º", + "block-switching/sound_setvolumeto": "音é‡è¨­ç‚º", + "blocks2image/error_blocks_not_added": "æ·»åŠ ç©æœ¨åˆ°ç·¨è¼¯å€ï¼", + "blocks2image/export_all_to_PNG": "åŒ¯å‡ºå…¨éƒ¨ç©æœ¨æˆ PNG 圖åƒ", + "blocks2image/export_all_to_SVG": "åŒ¯å‡ºå…¨éƒ¨ç©æœ¨æˆ SVG 圖åƒ", + "blocks2image/export_selected_to_PNG": "åŒ¯å‡ºç©æœ¨æˆ PNG 圖åƒ", + "blocks2image/export_selected_to_SVG": "åŒ¯å‡ºç©æœ¨æˆ SVG 圖åƒ", + "editor-extra-keys/enter-key": "Enter", + "move-to-top-bottom/bottom": "移至最下é¢", + "move-to-top-bottom/top": "移至最上é¢", + "rename-broadcasts/RENAME_BROADCAST": "釿–°å‘½å訊æ¯", + "rename-broadcasts/RENAME_BROADCAST_MODAL_TITLE": "釿–°å‘½å訊æ¯", + "rename-broadcasts/RENAME_BROADCAST_TITLE": "將所有“{name}â€æ¶ˆæ¯é‡å‘½å為:", + "swap-local-global/cant-convert-cloud": "無法轉æ›ï¼Œé›²ç«¯è®Šæ•¸ä¸èƒ½è¢«è½‰æ›æˆã€Œåƒ…é©ç”¨ç•¶å‰è§’色ã€ã€‚", + "swap-local-global/cant-convert-conflict": "無法轉æ›ï¼Œå› ç‚ºæœƒå’Œå…¶å®ƒè§’色中相åŒå稱的變數è¡çªï¼š{sprites}", + "swap-local-global/cant-convert-stage": "舞å°ä¸èƒ½æœ‰ã€Œåƒ…é©ç”¨ç•¶å‰è§’色ã€çš„變數。", + "swap-local-global/cant-convert-to-local": "無法轉æ›ï¼Œå› ç‚ºæœ‰å…¶å®ƒè§’色也在使用這個變數:{sprites}", + "swap-local-global/cant-convert-used-elsewhere": "無法轉æ›ï¼Œå› ç‚ºæœ‰å¦ä¸€å€‹è§’色也在使用這個變數:{sprite}", + "swap-local-global/edit": "編輯屬性:", + "swap-local-global/edit-list-header": "編輯清單", + "swap-local-global/edit-list-option": "編輯清單", + "swap-local-global/edit-variable-header": "編輯變數", + "swap-local-global/edit-variable-option": "編輯變數", + "swap-local-global/to-global": "è½‰æ›æˆã€Œé©ç”¨æ–¼æ‰€æœ‰è§’色ã€", + "swap-local-global/to-local": "è½‰æ›æˆã€Œåƒ…é©ç”¨ç•¶å‰è§’色ã€", + "hide-stage/hide-stage": "éš±è—舞å°" +} \ No newline at end of file diff --git a/src/addons/addons.js b/src/addons/addons.js new file mode 100644 index 0000000000000000000000000000000000000000..41578c729817c6037d94324579df57d0f1f70d7b --- /dev/null +++ b/src/addons/addons.js @@ -0,0 +1,86 @@ +// This file is only used by pull.js to generate files. It is not used at runtime. + +const addons = [ + 'cat-blocks', + 'editor-devtools', + 'find-bar', + 'middle-click-popup', + 'jump-to-def', + 'editor-searchable-dropdowns', + 'block-palette-icons', + 'hide-flyout', + 'mediarecorder', + 'drag-drop', + 'debugger', + 'pause', + 'mute-project', + 'vol-slider', + 'clones', + 'mouse-pos', + 'color-picker', + 'remove-sprite-confirm', + 'block-count', + 'onion-skinning', + 'paint-snap', + 'default-costume-editor-color', + 'bitmap-copy', + '2d-color-picker', + 'better-img-uploads', + 'pick-colors-from-stage', + 'custom-block-shape', + 'zebra-striping', + 'editor-theme3', + 'custom-block-text', + 'editor-colored-context-menus', + 'editor-stage-left', + 'editor-buttons-reverse-order', + 'variable-manager', + 'search-sprites', + 'sprite-properties', + 'gamepad', + 'editor-sounds', + 'folders', + 'block-switching', + 'load-extensions', + 'custom-zoom', + 'initialise-sprite-position', + 'blocks2image', + 'remove-curved-stage-border', + 'transparent-orphans', + 'paint-by-default', + 'block-cherry-picking', + 'hide-new-variables', + 'editor-extra-keys', + 'hide-delete-button', + 'no-script-bumping', + 'disable-stage-drag-select', + 'move-to-top-bottom', + 'disable-paste-offset', + 'block-duplicate', + 'swap-local-global', + 'editor-comment-previews', + 'columns', + 'number-pad', + 'script-snap', + 'fullscreen', + 'hide-stage', + 'tw-straighten-comments', + 'tw-remove-backpack', + 'tw-remove-feedback', + 'tw-disable-cloud-variables' +]; + +const newAddons = [ + 'vol-slider', + 'number-pad', + 'rename-broadcasts', + 'sprite-properties', + 'paint-snap', + "editor-block-chomping", +]; + +// eslint-disable-next-line import/no-commonjs +module.exports = { + addons, + newAddons +}; diff --git a/src/addons/addons/2d-color-picker/_manifest_entry.js b/src/addons/addons/2d-color-picker/_manifest_entry.js new file mode 100644 index 0000000000000000000000000000000000000000..28041bcea631bfe64fe68cbe72299dcca5129052 --- /dev/null +++ b/src/addons/addons/2d-color-picker/_manifest_entry.js @@ -0,0 +1,24 @@ +/* generated by pull.js */ +const manifest = { + "editorOnly": true, + "name": "2D color picker", + "description": "Replaces saturation and brightness sliders in the costume editor with a 2D color picker. Hold Shift while dragging the cursor to change the values on a single axis.", + "tags": [], + "credits": [ + { + "name": "Ucrash" + } + ], + "userscripts": [ + { + "url": "userscript.js" + } + ], + "userstyles": [ + { + "url": "style.css" + } + ], + "enabledByDefault": false +}; +export default manifest; diff --git a/src/addons/addons/2d-color-picker/_runtime_entry.js b/src/addons/addons/2d-color-picker/_runtime_entry.js new file mode 100644 index 0000000000000000000000000000000000000000..1639fc18008f76f7f051c35a526d60cfd983598a --- /dev/null +++ b/src/addons/addons/2d-color-picker/_runtime_entry.js @@ -0,0 +1,9 @@ +/* generated by pull.js */ +import _js from "./userscript.js"; +import _css from "!css-loader!./style.css"; +import _asset from "!url-loader!./assets/sv-gr.png"; +export const resources = { + "userscript.js": _js, + "style.css": _css, + "assets/sv-gr.png": _asset, +}; diff --git a/src/addons/addons/2d-color-picker/assets/sv-gr.png b/src/addons/addons/2d-color-picker/assets/sv-gr.png new file mode 100644 index 0000000000000000000000000000000000000000..595c60b80ed860a0eb63970bf6a222787159f361 Binary files /dev/null and b/src/addons/addons/2d-color-picker/assets/sv-gr.png differ diff --git a/src/addons/addons/2d-color-picker/paint-editor.js b/src/addons/addons/2d-color-picker/paint-editor.js new file mode 100644 index 0000000000000000000000000000000000000000..2c638467c9e59bc477b44e3fecd7faf1e98e2283 --- /dev/null +++ b/src/addons/addons/2d-color-picker/paint-editor.js @@ -0,0 +1,254 @@ +// this script was happily stolen from the color-picker addon, developed by Richie Bendall and apple502j + +// import required libraries +import { normalizeHex } from "../../libraries/common/cs/normalize-color.js"; +import RateLimiter from "../../libraries/common/cs/rate-limiter.js"; +import tinycolor from "../../libraries/thirdparty/cs/tinycolor-min.js"; + +export default async ({ addon, console, msg }) => { + let prevEventHandler; + // 250-ms rate limit + const rateLimiter = new RateLimiter(250); + + // get the color from scratch + const getColor = (element) => { + let fillOrStroke; + const state = addon.tab.redux.state; + if (state.scratchPaint.modals.fillColor) { + fillOrStroke = "fill"; + } else if (state.scratchPaint.modals.strokeColor) { + fillOrStroke = "stroke"; + } else { + return; + } + const colorType = state.scratchPaint.fillMode.colorIndex; + const primaryOrSecondary = ["primary", "secondary"][colorType]; + const color = state.scratchPaint.color[`${fillOrStroke}Color`][primaryOrSecondary]; + if (color === null || color === "scratch-paint/style-path/mixed") return; + // This value can be arbitrary - it can be HEX, RGB, etc. + // Use tinycolor to convert them. + return tinycolor(color).toHex8(); + }; + + // load the new color to scratch + const setColor = (hex, element) => { + hex = normalizeHex(hex); + if (!addon.tab.redux.state || !addon.tab.redux.state.scratchPaint) return; + // The only way to reliably set color is to invoke eye dropper via click() + // then faking that the eye dropper reported the value. + const onEyeDropperOpened = ({ detail }) => { + if (detail.action.type !== "scratch-paint/eye-dropper/ACTIVATE_COLOR_PICKER") return; + addon.tab.redux.removeEventListener("statechanged", onEyeDropperOpened); + setTimeout(() => { + const previousTool = addon.tab.redux.state.scratchPaint.color.eyeDropper.previousTool; + if (previousTool) previousTool.activate(); + addon.tab.redux.state.scratchPaint.color.eyeDropper.callback(hex); + addon.tab.redux.dispatch({ + type: "scratch-paint/eye-dropper/DEACTIVATE_COLOR_PICKER", + }); + }, 50); + }; + addon.tab.redux.addEventListener("statechanged", onEyeDropperOpened); + element.children[1].children[0].click(); + }; + + // for the color picker's background color + const convertToGeneralColor = (hex) => { + let h = tinycolor(hex).toHsv(); + h.s = 1; + h.v = 1; + return tinycolor(h).toHex(); + }; + + // le loop + while (true) { + // wait for color dialog box appearance + const element = await addon.tab.waitForElement('div[class*="color-picker_swatch-row"]', { + markAsSeen: true, + reduxCondition: (state) => state.scratchGui.editorTab.activeTabIndex === 1 && !state.scratchGui.mode.isPlayerOnly, + }); + rateLimiter.abort(false); + if (!("colorIndex" in addon.tab.redux.state.scratchPaint.fillMode)) { + console.error("Detected new paint editor; this will be supported in future versions."); + return; + } + + // update the bg color of the picker + function updateColor() { + rateLimiter.limit(() => { + let c = getColor(element); + let chsv = tinycolor(c).toHsv(); + updateHandleFinal(chsv.s, chsv.v); + saColorPicker.style.background = "#" + convertToGeneralColor(getColor(element)); + }); + } + + // redux stuff + addon.tab.redux.initialize(); + addon.tab.redux.addEventListener("statechanged", (e) => + e.detail.action.type === "scratch-paint/fill-style/CHANGE_FILL_COLOR" || + e.detail.action.type === "scratch-paint/fill-style/CHANGE_FILL_COLOR_2" || + e.detail.action.type === "scratch-paint/stroke-style/CHANGE_STROKE_COLOR" || + e.detail.action.type === "scratch-paint/stroke-style/CHANGE_STROKE_COLOR_2" + ? updateColor() + : 0 + ); + if (addon.tab.redux && typeof prevEventHandler === "function") { + addon.tab.redux.removeEventListener("statechanged", prevEventHandler); + prevEventHandler = null; + } + + // get the color + if (addon.tab.editorMode !== "editor") continue; + let defaultColor = getColor(element); + + // create the color picker element and all it's child elements + const saColorPicker = document.createElement("div"); + saColorPicker.className = "sa-2dcolor-picker"; + saColorPicker.style.background = "#" + convertToGeneralColor(defaultColor || "ff0000"); + + const saColorPickerImage = Object.assign(document.createElement("img"), { + className: "sa-2dcolor-picker-image", + src: addon.self.getResource("/assets/sv-gr.png") /* rewritten by pull.js */, + draggable: false, + }); + const saColorPickerHandle = Object.assign(document.createElement("div"), { + className: addon.tab.scratchClass("slider_handle"), + }); + saColorPickerHandle.style.pointerEvents = "none"; + + // create the label + const saColorLabel = document.createElement("div"); + saColorLabel.className = addon.tab.scratchClass("color-picker_row-header", { others: "sa-2dcolor-label" }); + const saColorLabelName = document.createElement("span"); + saColorLabelName.className = addon.tab.scratchClass("color-picker_label-name", { others: "sa-2dcolor-label-name" }); + saColorLabelName.innerText = msg("shade"); + const saColorLabelVal = document.createElement("span"); + saColorLabelVal.className = addon.tab.scratchClass("color-picker_label-readout", { + others: "sa-2dcolor-label-val", + }); + saColorLabel.appendChild(saColorLabelName); + saColorLabel.appendChild(saColorLabelVal); + + let keyPressed = -1; + let originalPos = { x: 0, y: 0 }; + window.addEventListener("keydown", (e) => (keyPressed = e.keyCode)); + window.addEventListener("keyup", () => (keyPressed = -1)); + + let origHue = 0; + let el = null; + + let mousemovefunc = function (e) { + updateHandle(e, keyPressed, originalPos); + return false; + }; + + let mouseupfunc = function (e) { + updateFinal(e, keyPressed, originalPos); + }; + + function updateHandle(e, keyPressed, originalPos) { + let cx = Math.min(Math.max(e.clientX - saColorPicker.getBoundingClientRect().x, 0), 150); + let cy = Math.min(Math.max(e.clientY - saColorPicker.getBoundingClientRect().y, 0), 150); + if (keyPressed === 16) { + if (Math.abs(cx - originalPos.x) > Math.abs(cy - originalPos.y)) cy = originalPos.y; + else cx = originalPos.x; + } + saColorPickerHandle.style.left = cx - 8 + "px"; + saColorPickerHandle.style.top = cy - 8 + "px"; + saColorLabelVal.innerText = `${Math.round((cx / 150) * 100)}, ${100 - Math.round((cy / 150) * 100)}`; + + //update color in real-time (i only bothered to do that for solid colors) + if ( + (!addon.tab.redux.state.scratchPaint.fillMode.gradientType || + addon.tab.redux.state.scratchPaint.fillMode.gradientType === "SOLID") && + el + ) { + let c = tinycolor({ h: origHue, s: cx / 150, v: 1 - cy / 150 }).toHex(); + if (c.startsWith("#")) el.style.background = c; + else el.style.background = "#" + c; + } + } + + function updateHandleFinal(s, v) { + saColorPickerHandle.style.left = s * 150 - 8 + "px"; + saColorPickerHandle.style.top = (1 - v) * 150 - 8 + "px"; + saColorLabelVal.innerText = `${Math.round(s * 100)}, ${Math.round(v * 100)}`; + } + + function updateFinal(e, keyPressed, originalPos) { + rateLimiter.limit(() => { + let ox = Math.min(Math.max(e.clientX - saColorPicker.getBoundingClientRect().x, 0), 150); + let oy = Math.min(Math.max(e.clientY - saColorPicker.getBoundingClientRect().y, 0), 150); + if (keyPressed === 16) { + if (Math.abs(ox - originalPos.x) > Math.abs(oy - originalPos.y)) oy = originalPos.y; + else ox = originalPos.x; + } + + let color = tinycolor(getColor(element)).toHsv(); + let s = ox / 150; + let v = 1 - oy / 150; + let newColor = tinycolor({ h: color.h, s: s, v: v, a: color.a }).toHex8(); + setColor(newColor, element); + updateHandleFinal(s, v); + }); + + window.removeEventListener("pointermove", mousemovefunc); + window.removeEventListener("pointerup", mouseupfunc); + } + + if (defaultColor) { + let defaultHexColor = tinycolor(defaultColor).toHsv(); + updateHandleFinal(defaultHexColor.s, defaultHexColor.v); + } else updateHandleFinal(1, 1); + + saColorPicker.addEventListener("pointerdown", (e) => { + e.preventDefault(); + + originalPos = { + x: parseFloat(saColorPickerHandle.style.left) + 8, + y: parseFloat(saColorPickerHandle.style.top) + 8, + }; + + let fillOrStroke; + const state = addon.tab.redux.state; + if (state.scratchPaint.modals.fillColor) { + fillOrStroke = "fill"; + } else if (state.scratchPaint.modals.strokeColor) { + fillOrStroke = "stroke"; + } else { + fillOrStroke = "wh"; + } + + el = null; + if (fillOrStroke === "fill") + el = document.getElementsByClassName(addon.tab.scratchClass("color-button_color-button-swatch"))[0]; + else if (fillOrStroke === "stroke") + el = document.getElementsByClassName(addon.tab.scratchClass("color-button_color-button-swatch"))[1]; + if (el) origHue = tinycolor(el.style.background).toHsv().h; + + updateHandle(e); + + window.addEventListener("pointermove", mousemovefunc); + window.addEventListener("pointerup", mouseupfunc); + }); + prevEventHandler = ({ detail }) => { + if (detail.action.type === "scratch-paint/color-index/CHANGE_COLOR_INDEX") { + setTimeout(() => { + updateColor(); + }, 100); + } + }; + addon.tab.redux.addEventListener("statechanged", prevEventHandler); + saColorPicker.appendChild(saColorPickerImage); + saColorPicker.appendChild(saColorPickerHandle); + + const [colorSlider, saturationSlider, brightnessSlider] = [ + ...element.parentElement.querySelectorAll('[class^="color-picker_row-header"]'), + ].map((i) => i.parentElement); + saturationSlider.style.display = "none"; + brightnessSlider.style.display = "none"; + colorSlider.insertAdjacentElement("afterend", saColorPicker); + colorSlider.insertAdjacentElement("afterend", saColorLabel); + } +}; diff --git a/src/addons/addons/2d-color-picker/style.css b/src/addons/addons/2d-color-picker/style.css new file mode 100644 index 0000000000000000000000000000000000000000..fc7374dcb9b6947ffe2e10636a53adc1d965e44b --- /dev/null +++ b/src/addons/addons/2d-color-picker/style.css @@ -0,0 +1,15 @@ +.sa-2dcolor-picker { + width: 150px; + height: 150px; + border-radius: 8px; + margin: 8px; + position: relative; + user-select: none; +} + +.sa-2dcolor-picker-image { + border-radius: 8px; + width: 150px; + height: 150px; + user-select: none; +} diff --git a/src/addons/addons/2d-color-picker/userscript.js b/src/addons/addons/2d-color-picker/userscript.js new file mode 100644 index 0000000000000000000000000000000000000000..6a2410c9d8d6606e30a0a8928ab87091217f05d4 --- /dev/null +++ b/src/addons/addons/2d-color-picker/userscript.js @@ -0,0 +1,5 @@ +import paintEditorHandler from "./paint-editor.js"; + +export default async (api) => { + paintEditorHandler(api); +}; diff --git a/src/addons/addons/better-img-uploads/_manifest_entry.js b/src/addons/addons/better-img-uploads/_manifest_entry.js new file mode 100644 index 0000000000000000000000000000000000000000..757da3147f4cd271bbbffa77f492225588e34d30 --- /dev/null +++ b/src/addons/addons/better-img-uploads/_manifest_entry.js @@ -0,0 +1,67 @@ +/* generated by pull.js */ +const manifest = { + "editorOnly": true, + "name": "HD image uploads", + "description": "Adds a new button above the \"upload costume\" button that automatically converts uploaded bitmap images into SVG (vector) images to avoid losing quality.", + "tags": [ + "beta" + ], + "info": [ + { + "type": "notice", + "text": "Avoid using the HD upload button if you plan to edit the image after uploading.", + "id": "notSuitableEdit" + } + ], + "credits": [ + { + "name": "ErrorGamer2000", + "link": "https://scratch.mit.edu/users/ErrorGamer2000/" + }, + { + "name": "GarboMuffin" + }, + { + "name": "World_Languages" + }, + { + "name": "SheepTester", + "link": "https://scratch.mit.edu/users/Sheep_maker/" + } + ], + "dynamicDisable": true, + "userscripts": [ + { + "url": "userscript.js" + } + ], + "userstyles": [ + { + "url": "style.css" + } + ], + "settings": [ + { + "dynamic": true, + "name": "Image sizing", + "id": "fitting", + "type": "select", + "potentialValues": [ + { + "id": "full", + "name": "Original size" + }, + { + "id": "fill", + "name": "Stretch to fill stage" + }, + { + "id": "fit", + "name": "Shrink to fit stage" + } + ], + "default": "fit" + } + ] +}; +export default manifest; diff --git a/src/addons/addons/better-img-uploads/_runtime_entry.js b/src/addons/addons/better-img-uploads/_runtime_entry.js new file mode 100644 index 0000000000000000000000000000000000000000..0642301b6200608a2da678f162f27daece570555 --- /dev/null +++ b/src/addons/addons/better-img-uploads/_runtime_entry.js @@ -0,0 +1,9 @@ +/* generated by pull.js */ +import _js from "./userscript.js"; +import _css from "!css-loader!./style.css"; +import _asset from "!url-loader!./icon.svg"; +export const resources = { + "userscript.js": _js, + "style.css": _css, + "icon.svg": _asset, +}; diff --git a/src/addons/addons/better-img-uploads/icon.svg b/src/addons/addons/better-img-uploads/icon.svg new file mode 100644 index 0000000000000000000000000000000000000000..93b85f2c433f08ae24305aeefc78b40bb68574ae Binary files /dev/null and b/src/addons/addons/better-img-uploads/icon.svg differ diff --git a/src/addons/addons/better-img-uploads/style.css b/src/addons/addons/better-img-uploads/style.css new file mode 100644 index 0000000000000000000000000000000000000000..1f4bfb5b2057296ead9844e2fc5672ffb8595ad1 --- /dev/null +++ b/src/addons/addons/better-img-uploads/style.css @@ -0,0 +1,12 @@ +[data-for*="HD Upload"]:hover + .__react_component_tooltip { + visibility: visible; +} + +.sa-better-img-uploads-btn:not([id*="_right"]) + .__react_component_tooltip { + left: auto; +} + +.sa-better-img-uploads-btn[id*="_right"] + .__react_component_tooltip, +[data-for="sa-Choose_a_Backdrop-HD Upload"] + .__react_component_tooltip { + right: auto; +} diff --git a/src/addons/addons/better-img-uploads/userscript.js b/src/addons/addons/better-img-uploads/userscript.js new file mode 100644 index 0000000000000000000000000000000000000000..b91cc1704577b15eedd94b63173d5a1b425450d0 --- /dev/null +++ b/src/addons/addons/better-img-uploads/userscript.js @@ -0,0 +1,243 @@ +export default async function ({ addon, console, msg }) { + let mode = addon.settings.get("fitting"); + + addon.settings.addEventListener("change", () => { + mode = addon.settings.get("fitting"); + }); + + const createItem = (id, right) => { + const uploadMsg = msg("upload"); + const wrapper = Object.assign(document.createElement("div"), { id }); + const button = Object.assign(document.createElement("button"), { + className: `${addon.tab.scratchClass("action-menu_button")} ${addon.tab.scratchClass( + "action-menu_more-button" + )} sa-better-img-uploads-btn`, + currentitem: "false", + }); + button.dataset.for = `sa-${id}-HD Upload`; + button.dataset.tip = uploadMsg; + const img = Object.assign(document.createElement("img"), { + className: `${addon.tab.scratchClass("action-menu_more-icon")} sa-better-img-uploader`, + draggable: "false", + src: addon.self.getResource("/icon.svg") /* rewritten by pull.js */, + height: "10", + width: "10", + }); + button.append(img); + const input = Object.assign(document.createElement("input"), { + accept: ".svg, .png, .bmp, .jpg, .jpeg", + className: `${addon.tab.scratchClass( + "action-menu_file-input" /* TODO: when adding dynamicDisable, ensure compat with drag-drop */ + )} sa-better-img-uploads-input`, + multiple: "true", + type: "file", + }); + button.append(input); + wrapper.append(button); + const tooltip = Object.assign(document.createElement("div"), { + className: `__react_component_tooltip place-${right ? "left" : "right"} type-dark ${addon.tab.scratchClass( + "action-menu_tooltip" + )} sa-better-img-uploads-tooltip`, + id: `sa-${id}-HD Upload`, + textContent: uploadMsg, + }); + tooltip.dataset.id = "tooltip"; + wrapper.append(tooltip); + addon.tab.displayNoneWhileDisabled(wrapper); + return [wrapper, button, input, tooltip]; + }; + + while (true) { + //Catch all upload menus as they are created + const spriteSelector = '[class*="sprite-selector_sprite-selector_"] [class*="action-menu_more-buttons_"]'; + const stageSelector = '[class*="stage-selector_stage-selector_"] [class*="action-menu_more-buttons_"]'; + const costumeSelector = '[data-tabs] > :nth-child(3) [class*="action-menu_more-buttons_"]'; + let menu = await addon.tab.waitForElement(`${spriteSelector}, ${stageSelector}, ${costumeSelector}`, { + markAsSeen: true, + reduxCondition: (state) => !state.scratchGui.mode.isPlayerOnly, + reduxEvents: [ + "scratch-gui/mode/SET_PLAYER", + "fontsLoaded/SET_FONTS_LOADED", + "scratch-gui/locales/SELECT_LOCALE", + "scratch-gui/navigation/ACTIVATE_TAB", + ], + }); + let button = menu.parentElement.previousElementSibling.previousElementSibling; //The base button that the popup menu is from + + let id = button.getAttribute("aria-label").replace(/\s+/g, "_"); + + let isRight = //Is it on the right side of the screen? + button.parentElement.classList.contains(addon.tab.scratchClass("sprite-selector_add-button")) || + button.parentElement.classList.contains(addon.tab.scratchClass("stage-selector_add-button")); + + if (isRight) { + id += "_right"; + } + + const [menuItem, hdButton, input, tooltip] = createItem(id, isRight); + menu.prepend(menuItem); + + hdButton.addEventListener("click", (e) => { + // When clicking on the button in the "add backdrop menu", don't switch to the stage before + // a file was selected. + e.stopPropagation(); + + input.files = new FileList(); //Empty the input to make sure the change event fires even if the same file was uploaded. + input.click(); + }); + + input.addEventListener("change", (e) => { + onchange(e, id); + }); + + let observer = new MutationObserver(() => doresize(id, menu, menuItem, isRight)); + + observer.observe(menu, { attributes: true, subtree: true }); + + function doresize(id, menu, menuItem, isRight) { + let rect = menuItem.getBoundingClientRect(); + tooltip.style.top = rect.top + 2 + "px"; + tooltip.style[isRight ? "right" : "left"] = isRight + ? window.innerWidth - rect.right + rect.width + 10 + "px" + : rect.left + rect.width + "px"; + } + } + + async function onchange(e, id) { + let iD = id; //Save the id, not sure if this is really necessary? + let el = e.target; + let files = Array.from(el.files); + let processed = new Array(); + + for (let file of files) { + if (file.type.includes("svg")) { + //The file is already a svg, we should not change it... + processed.push(file); + continue; + } + + let blob = await new Promise((resolve) => { + //Get the Blob data url for the image so that we can add it to the svg + let reader = new FileReader(); + reader.addEventListener("load", () => resolve(reader.result)); + reader.readAsDataURL(file); + }); + + let i = new Image(); //New image to get the image's size + i.src = blob; + await new Promise((resolve) => { + i.onload = resolve; + }); + + let dim = { width: i.width, height: i.height }; + const originalDim = JSON.parse(JSON.stringify(dim)); + + if (mode === "fit") { + //Make sure the image fits completely in the stage + dim = getResizedWidthHeight(dim.width, dim.height); + } else if (mode === "fill") { + //Fill the stage with the image + dim.height = (dim.height / dim.width) * 480; + dim.width = 480; + if (dim.height < 360) { + dim.width = (dim.width / dim.height) * 360; + dim.height = 360; + } + if (dim.width < 480) { + dim.height = (dim.height / dim.width) * 480; + dim.width = 480; + } + } //Otherwise just leave the image the same size + + function getResizedWidthHeight(oldWidth, oldHeight) { + const STAGE_WIDTH = 479; + const STAGE_HEIGHT = 360; + const STAGE_RATIO = STAGE_WIDTH / STAGE_HEIGHT; + + // If both dimensions are smaller than or equal to corresponding stage dimension, + // double both dimensions + if (oldWidth <= STAGE_WIDTH && oldHeight <= STAGE_HEIGHT) { + return { width: oldWidth, height: oldHeight }; + } + + // If neither dimension is larger than 2x corresponding stage dimension, + // this is an in-between image, return it as is + if (oldWidth <= STAGE_WIDTH && oldHeight <= STAGE_HEIGHT) { + return { width: oldWidth, height: oldHeight }; + } + + const imageRatio = oldWidth / oldHeight; + // Otherwise, figure out how to resize + if (imageRatio >= STAGE_RATIO) { + // Wide Image + return { + width: STAGE_WIDTH, + height: Math.floor(STAGE_WIDTH / imageRatio), + }; + } + // In this case we have either: + // - A wide image, but not with as big a ratio between width and height, + // making it so that fitting the width to double stage size would leave + // the height too big to fit in double the stage height + // - A square image that's still larger than the double at least + // one of the stage dimensions, so pick the smaller of the two dimensions (to fit) + // - A tall image + // In any of these cases, resize the image to fit the height to double the stage height + return { + width: Math.floor(STAGE_HEIGHT * imageRatio), + height: STAGE_HEIGHT, + }; + } + + processed.push( + new File( //Create the svg file + [ + ` + + + + + + `, + ], + `${file.name.replace(/(.*)\..*/, "$1")}.svg`, + { + type: "image/svg+xml", + } + ) + ); + } + + (el = document.getElementById(iD).nextElementSibling.querySelector("input")).files = new FileList(processed); //Convert processed image array to a FileList, which is not normally constructible. + + el.dispatchEvent(new e.constructor(e.type, e)); //Start a new, duplicate, event, but allow scratch to receive it this time. + } + + function FileList(arr = []) { + //File list constructor. Does not need the `new` keyword, but it is easier to read + let filelist = new DataTransfer(); //This "creates" a FileList that we can add files to + for (let file of arr) { + filelist.items.add(file); + } + return filelist.files; //Completed FileList + } +} diff --git a/src/addons/addons/bitmap-copy/_manifest_entry.js b/src/addons/addons/bitmap-copy/_manifest_entry.js new file mode 100644 index 0000000000000000000000000000000000000000..7e2b13da30a9978bc5d7ce1dc8df569f8a8b6e1d --- /dev/null +++ b/src/addons/addons/bitmap-copy/_manifest_entry.js @@ -0,0 +1,25 @@ +/* generated by pull.js */ +const manifest = { + "editorOnly": true, + "noTranslations": true, + "name": "Bitmap images copying", + "description": "Allows you to copy a bitmap image from the costume editor into the system clipboard, so that you can paste it in other websites or software.", + "info": [ + { + "type": "notice", + "text": "\"Right click → copy\" is not supported. You must press Ctrl+C while a bitmap image is selected.", + "id": "norightclick" + } + ], + "userscripts": [ + { + "url": "userscript.js" + } + ], + "dynamicDisable": true, + "tags": [], + "enabledByDefault": true +}; +import {clipboardSupported} from "../../environment"; +if (!clipboardSupported) manifest.unsupported = true; +export default manifest; diff --git a/src/addons/addons/bitmap-copy/_runtime_entry.js b/src/addons/addons/bitmap-copy/_runtime_entry.js new file mode 100644 index 0000000000000000000000000000000000000000..bc67131957e52185c142f348760610cfaa4f774d --- /dev/null +++ b/src/addons/addons/bitmap-copy/_runtime_entry.js @@ -0,0 +1,5 @@ +/* generated by pull.js */ +import _js from "./userscript.js"; +export const resources = { + "userscript.js": _js, +}; diff --git a/src/addons/addons/bitmap-copy/userscript.js b/src/addons/addons/bitmap-copy/userscript.js new file mode 100644 index 0000000000000000000000000000000000000000..e68c597bdc48f3e98f94c84e8a46dc0c83411990 --- /dev/null +++ b/src/addons/addons/bitmap-copy/userscript.js @@ -0,0 +1,19 @@ +export default async ({ addon, console }) => { + if (!addon.tab.redux.state) return console.warn("Redux is not available!"); + addon.tab.redux.initialize(); + addon.tab.redux.addEventListener("statechanged", ({ detail }) => { + if (addon.self.disabled) return; + const e = detail; + if (!e.action || e.action.type !== "scratch-paint/clipboard/SET") return; + const items = e.next.scratchPaint.clipboard.items; + if (items.length !== 1) return; + const firstItem = items[0]; + // TODO vector support + if (!Array.isArray(firstItem) || firstItem[0] !== "Raster") return console.log("copied element is vector"); + const dataURL = firstItem[1].source; + addon.tab + .copyImage(dataURL) + .then(() => console.log("Image successfully copied")) + .catch((e) => console.error(`Image could not be copied: ${e}`)); + }); +}; diff --git a/src/addons/addons/block-cherry-picking/_manifest_entry.js b/src/addons/addons/block-cherry-picking/_manifest_entry.js new file mode 100644 index 0000000000000000000000000000000000000000..12c050c6fb01ae036d39de676b133ecff6850d29 --- /dev/null +++ b/src/addons/addons/block-cherry-picking/_manifest_entry.js @@ -0,0 +1,44 @@ +/* generated by pull.js */ +const manifest = { + "editorOnly": true, + "noTranslations": true, + "name": "Grab single block with Ctrl key", + "description": "Adds the ability to drag a single block out of the middle of a script (instead of the entire stack attached below it) while holding the Ctrl key.", + "info": [ + { + "text": "On macOS, use the Cmd key instead of the Ctrl key.", + "id": "macContextDisabled" + }, + { + "text": "If \"flip controls\" is enabled, grabbing blocks individually will be the default behavior. Hold Ctrl to drag the entire stack.", + "id": "flipControls" + } + ], + "credits": [ + { + "name": "lisa_wolfgang", + "link": "https://scratch.mit.edu/users/lisa_wolfgang/" + }, + { + "name": "GarboMuffin" + } + ], + "userscripts": [ + { + "url": "userscript.js" + } + ], + "settings": [ + { + "dynamic": true, + "name": "Flip controls", + "id": "invertDrag", + "type": "boolean", + "default": false + } + ], + "tags": [], + "dynamicDisable": true, + "enabledByDefault": true +}; +export default manifest; diff --git a/src/addons/addons/block-cherry-picking/_runtime_entry.js b/src/addons/addons/block-cherry-picking/_runtime_entry.js new file mode 100644 index 0000000000000000000000000000000000000000..bc67131957e52185c142f348760610cfaa4f774d --- /dev/null +++ b/src/addons/addons/block-cherry-picking/_runtime_entry.js @@ -0,0 +1,5 @@ +/* generated by pull.js */ +import _js from "./userscript.js"; +export const resources = { + "userscript.js": _js, +}; diff --git a/src/addons/addons/block-cherry-picking/userscript.js b/src/addons/addons/block-cherry-picking/userscript.js new file mode 100644 index 0000000000000000000000000000000000000000..cafdc2c83c3176a9ec45d886adf400383d6c49ea --- /dev/null +++ b/src/addons/addons/block-cherry-picking/userscript.js @@ -0,0 +1,12 @@ +import * as sharedModule from "../block-duplicate/module.js"; + +export default async function ({ addon, console }) { + const update = () => { + sharedModule.setCherryPicking(!addon.self.disabled, addon.settings.get("invertDrag")); + }; + addon.self.addEventListener("disabled", update); + addon.self.addEventListener("reenabled", update); + addon.settings.addEventListener("change", update); + update(); + sharedModule.load(addon); +} diff --git a/src/addons/addons/block-count/_manifest_entry.js b/src/addons/addons/block-count/_manifest_entry.js new file mode 100644 index 0000000000000000000000000000000000000000..4913b32208c64ba95752b0c7c3b01abad04a4880 --- /dev/null +++ b/src/addons/addons/block-count/_manifest_entry.js @@ -0,0 +1,20 @@ +/* generated by pull.js */ +const manifest = { + "editorOnly": true, + "name": "Block count", + "description": "Shows the total number of blocks in a project in the editor menu bar. Previously part of \"sprite and script count\".", + "tags": [], + "credits": [ + { + "name": "TheColaber", + "link": "https://scratch.mit.edu/users/TheColaber/" + } + ], + "dynamicDisable": true, + "userscripts": [ + { + "url": "blockcount.js" + } + ] +}; +export default manifest; diff --git a/src/addons/addons/block-count/_runtime_entry.js b/src/addons/addons/block-count/_runtime_entry.js new file mode 100644 index 0000000000000000000000000000000000000000..6734a73bacba079da429b839d12fdddb7b347aa3 --- /dev/null +++ b/src/addons/addons/block-count/_runtime_entry.js @@ -0,0 +1,5 @@ +/* generated by pull.js */ +import _js from "./blockcount.js"; +export const resources = { + "blockcount.js": _js, +}; diff --git a/src/addons/addons/block-count/blockcount.js b/src/addons/addons/block-count/blockcount.js new file mode 100644 index 0000000000000000000000000000000000000000..774cb396f587db9b81bdbd16fb217b580f1e4ed5 --- /dev/null +++ b/src/addons/addons/block-count/blockcount.js @@ -0,0 +1,60 @@ +export default async function ({ addon, console, msg }) { + const vm = addon.tab.traps.vm; + + const getBlockCount = () => { + let blockCount = 0; + let scriptCount = 0; + let sprites = new Set(vm.runtime.targets.map((i) => i.sprite.blocks._blocks)); + sprites.forEach((sprite, i) => { + scriptCount += Object.values(sprite).filter((o) => !o.parent).length; // Filter blocks that don't have a parent (meaning it's the top of a stack) + blockCount += Object.values(sprite).filter((o) => !o.shadow).length; // shadow blocks should be filtered out + }); + return { + blockCount, + scriptCount, + spriteCount: sprites.size - 1, // Backdrop counts as a target so we can subtract it + }; + }; + + const addLiveBlockCount = async () => { + if (vm.editingTarget) { + let handler = null; + while (true) { + const topBar = await addon.tab.waitForElement("[class^='menu-bar_main-menu']", { + markAsSeen: true, + reduxEvents: [ + "scratch-gui/mode/SET_PLAYER", + "fontsLoaded/SET_FONTS_LOADED", + "scratch-gui/locales/SELECT_LOCALE", + ], + reduxCondition: (state) => !state.scratchGui.mode.isPlayerOnly, + }); + let display = topBar.appendChild(document.createElement("span")); + addon.tab.displayNoneWhileDisabled(display); + display.style.order = 1; + display.style.padding = "9px"; + display.innerText = msg("blocks", { num: getBlockCount().blockCount }); + let debounce; // debouncing values because of the way 'PROJECT_CHANGED' works + if (handler) { + vm.off("PROJECT_CHANGED", handler); + vm.runtime.off("PROJECT_LOADED", handler); + } + handler = async () => { + clearTimeout(debounce); + debounce = setTimeout(async () => { + display.innerText = msg("blocks", { num: getBlockCount().blockCount }); + }, 1000); + }; + vm.on("PROJECT_CHANGED", handler); + vm.runtime.on("PROJECT_LOADED", handler); + } + } else { + let timeout = setTimeout(function () { + addLiveBlockCount(); + clearTimeout(timeout); + }, 1000); + } + }; + + addLiveBlockCount(); +} diff --git a/src/addons/addons/block-duplicate/_manifest_entry.js b/src/addons/addons/block-duplicate/_manifest_entry.js new file mode 100644 index 0000000000000000000000000000000000000000..76b8aa2063c10759206a27957db33a1bd1d176be --- /dev/null +++ b/src/addons/addons/block-duplicate/_manifest_entry.js @@ -0,0 +1,27 @@ +/* generated by pull.js */ +const manifest = { + "editorOnly": true, + "noTranslations": true, + "name": "Duplicate script with Alt key", + "description": "Quickly duplicate a script by dragging it while holding the Alt key. Hold Ctrl as well to only duplicate a single block instead of the entire stack attached below it.", + "credits": [ + { + "name": "GarboMuffin" + } + ], + "info": [ + { + "text": "On macOS, use the Option key instead of the Alt key and Command key instead of the Control key.", + "id": "mac" + } + ], + "userscripts": [ + { + "url": "userscript.js" + } + ], + "dynamicDisable": true, + "tags": [], + "enabledByDefault": true +}; +export default manifest; diff --git a/src/addons/addons/block-duplicate/_runtime_entry.js b/src/addons/addons/block-duplicate/_runtime_entry.js new file mode 100644 index 0000000000000000000000000000000000000000..bc67131957e52185c142f348760610cfaa4f774d --- /dev/null +++ b/src/addons/addons/block-duplicate/_runtime_entry.js @@ -0,0 +1,5 @@ +/* generated by pull.js */ +import _js from "./userscript.js"; +export const resources = { + "userscript.js": _js, +}; diff --git a/src/addons/addons/block-duplicate/module.js b/src/addons/addons/block-duplicate/module.js new file mode 100644 index 0000000000000000000000000000000000000000..811ded253ecd5f13b59cc057ccf0a5c744a8e0f9 --- /dev/null +++ b/src/addons/addons/block-duplicate/module.js @@ -0,0 +1,105 @@ +let enableCherryPicking = false; +let invertCherryPicking = false; +export function setCherryPicking(newEnabled, newInverted) { + enableCherryPicking = newEnabled; + // If cherry picking is disabled, also disable invert. Duplicating blocks can still cause + // this setting to be used. + invertCherryPicking = newEnabled && newInverted; +} + +let enableDuplication = false; +export function setDuplication(newEnabled) { + enableDuplication = newEnabled; +} + +// mostRecentEvent_ is sometimes a fake event, so we can't rely on reading its properties. +let ctrlOrMetaPressed = false; +let altPressed = false; +document.addEventListener( + "mousedown", + function (e) { + ctrlOrMetaPressed = e.ctrlKey || e.metaKey; + altPressed = e.altKey; + }, + { + capture: true, + } +); + +let loaded = false; + +export async function load(addon) { + if (loaded) { + return; + } + loaded = true; + + const ScratchBlocks = await addon.tab.traps.getBlockly(); + + // https://github.com/LLK/scratch-blocks/blob/912b8cc728bea8fd91af85078c64fcdbfe21c87a/core/gesture.js#L454 + const originalStartDraggingBlock = ScratchBlocks.Gesture.prototype.startDraggingBlock_; + ScratchBlocks.Gesture.prototype.startDraggingBlock_ = function (...args) { + let block = this.targetBlock_; + + // Scratch uses fake mouse events to implement right click > duplicate + const isRightClickDuplicate = !(this.mostRecentEvent_ instanceof MouseEvent); + + const isDuplicating = + enableDuplication && + altPressed && + !isRightClickDuplicate && + !this.flyout_ && + !this.shouldDuplicateOnDrag_ && + (this.targetBlock_.type !== "procedures_definition" || + this.targetBlock_.type !== "procedures_definition_return"); + + const isCherryPickingInverted = invertCherryPicking && !isRightClickDuplicate && block.getParent(); + const canCherryPick = enableCherryPicking || isDuplicating; + const isCherryPicking = canCherryPick && ctrlOrMetaPressed === !isCherryPickingInverted && !block.isShadow(); + + if (isDuplicating || isCherryPicking) { + if (!ScratchBlocks.Events.getGroup()) { + // Scratch will disable grouping on its own later. + ScratchBlocks.Events.setGroup(true); + } + } + + if (isDuplicating) { + // Based on https://github.com/LLK/scratch-blocks/blob/feda366947432b9d82a4f212f43ff6d4ab6f252f/core/scratch_blocks_utils.js#L171 + // Setting this.shouldDuplicateOnDrag_ = true does NOT work because it doesn't call changeObscuredShadowIds + this.startWorkspace_.setResizesEnabled(false); + ScratchBlocks.Events.disable(); + let newBlock; + try { + const xmlBlock = ScratchBlocks.Xml.blockToDom(block); + newBlock = ScratchBlocks.Xml.domToBlock(xmlBlock, this.startWorkspace_); + ScratchBlocks.scratchBlocksUtils.changeObscuredShadowIds(newBlock); + const xy = block.getRelativeToSurfaceXY(); + newBlock.moveBy(xy.x, xy.y); + } catch (e) { + console.error(e); + } + ScratchBlocks.Events.enable(); + + if (newBlock) { + block = newBlock; + this.targetBlock_ = newBlock; + if (ScratchBlocks.Events.isEnabled()) { + ScratchBlocks.Events.fire(new ScratchBlocks.Events.BlockCreate(newBlock)); + } + } + } + + if (isCherryPicking) { + if (isRightClickDuplicate || isDuplicating) { + const nextBlock = block.getNextBlock(); + if (nextBlock) { + nextBlock.dispose(); + } + } + block.unplug(true); + } + + return originalStartDraggingBlock.call(this, ...args); + }; +} diff --git a/src/addons/addons/block-duplicate/userscript.js b/src/addons/addons/block-duplicate/userscript.js new file mode 100644 index 0000000000000000000000000000000000000000..7659baddc79dd7b13c9a8c38fa05ca2b6235f5af --- /dev/null +++ b/src/addons/addons/block-duplicate/userscript.js @@ -0,0 +1,11 @@ +import * as sharedModule from "./module.js"; + +export default async function ({ addon, console }) { + const update = () => { + sharedModule.setDuplication(!addon.self.disabled); + }; + addon.self.addEventListener("disabled", update); + addon.self.addEventListener("reenabled", update); + update(); + sharedModule.load(addon); +} diff --git a/src/addons/addons/block-palette-icons/_manifest_entry.js b/src/addons/addons/block-palette-icons/_manifest_entry.js new file mode 100644 index 0000000000000000000000000000000000000000..da597d3fe560fae3c63881eb73871e5c37a08b00 --- /dev/null +++ b/src/addons/addons/block-palette-icons/_manifest_entry.js @@ -0,0 +1,27 @@ +/* generated by pull.js */ +const manifest = { + "editorOnly": true, + "name": "Block palette category icons", + "description": "Adds icons inside the colored circles that identify block categories.", + "tags": [ + "theme" + ], + "enabledByDefault": false, + "dynamicDisable": true, + "userstyles": [ + { + "url": "userstyle.css" + } + ], + "credits": [ + { + "name": "--Explosion--", + "link": "https://scratch.mit.edu/users/--Explosion--/" + }, + { + "name": "RedGuy7", + "link": "https://scratch.mit.edu/users/RedGuy7/" + } + ] +}; +export default manifest; diff --git a/src/addons/addons/block-palette-icons/_runtime_entry.js b/src/addons/addons/block-palette-icons/_runtime_entry.js new file mode 100644 index 0000000000000000000000000000000000000000..329537fa1da65c1984aa2cf40e769122615b86f1 --- /dev/null +++ b/src/addons/addons/block-palette-icons/_runtime_entry.js @@ -0,0 +1,25 @@ +/* generated by pull.js */ +import _css from "!css-loader!./userstyle.css"; +import _asset from "!url-loader!./icons/block_icon.svg"; +import _asset2 from "!url-loader!./icons/control_icon.svg"; +import _asset3 from "!url-loader!./icons/events_icon.svg"; +import _asset4 from "!url-loader!./icons/list_icon.svg"; +import _asset5 from "!url-loader!./icons/looks_icon.svg"; +import _asset6 from "!url-loader!./icons/motion_icon.svg"; +import _asset7 from "!url-loader!./icons/operators_icon.svg"; +import _asset8 from "!url-loader!./icons/sensing_icon.svg"; +import _asset9 from "!url-loader!./icons/sound_icon.svg"; +import _asset10 from "!url-loader!./icons/variables_icon.svg"; +export const resources = { + "userstyle.css": _css, + "icons/block_icon.svg": _asset, + "icons/control_icon.svg": _asset2, + "icons/events_icon.svg": _asset3, + "icons/list_icon.svg": _asset4, + "icons/looks_icon.svg": _asset5, + "icons/motion_icon.svg": _asset6, + "icons/operators_icon.svg": _asset7, + "icons/sensing_icon.svg": _asset8, + "icons/sound_icon.svg": _asset9, + "icons/variables_icon.svg": _asset10, +}; diff --git a/src/addons/addons/block-palette-icons/icons/block_icon.svg b/src/addons/addons/block-palette-icons/icons/block_icon.svg new file mode 100644 index 0000000000000000000000000000000000000000..9be550cfa8c938d32b8fc35a179eb35b03350476 Binary files /dev/null and b/src/addons/addons/block-palette-icons/icons/block_icon.svg differ diff --git a/src/addons/addons/block-palette-icons/icons/control_icon.svg b/src/addons/addons/block-palette-icons/icons/control_icon.svg new file mode 100644 index 0000000000000000000000000000000000000000..4fb2fa1876a977c0df285e7fc8f656097592f9a1 Binary files /dev/null and b/src/addons/addons/block-palette-icons/icons/control_icon.svg differ diff --git a/src/addons/addons/block-palette-icons/icons/events_icon.svg b/src/addons/addons/block-palette-icons/icons/events_icon.svg new file mode 100644 index 0000000000000000000000000000000000000000..b148a7cfebde18de7005fa48903c75d8013daa46 Binary files /dev/null and b/src/addons/addons/block-palette-icons/icons/events_icon.svg differ diff --git a/src/addons/addons/block-palette-icons/icons/list_icon.svg b/src/addons/addons/block-palette-icons/icons/list_icon.svg new file mode 100644 index 0000000000000000000000000000000000000000..5285be47e645fb7be15819ad68f200bae6a94dd6 Binary files /dev/null and b/src/addons/addons/block-palette-icons/icons/list_icon.svg differ diff --git a/src/addons/addons/block-palette-icons/icons/looks_icon.svg b/src/addons/addons/block-palette-icons/icons/looks_icon.svg new file mode 100644 index 0000000000000000000000000000000000000000..91a3241fcaf7effc84fcd439184a8e2bdb42455d Binary files /dev/null and b/src/addons/addons/block-palette-icons/icons/looks_icon.svg differ diff --git a/src/addons/addons/block-palette-icons/icons/motion_icon.svg b/src/addons/addons/block-palette-icons/icons/motion_icon.svg new file mode 100644 index 0000000000000000000000000000000000000000..97fb2c6362510904afe3a1dd9fecc0b73bc6760f Binary files /dev/null and b/src/addons/addons/block-palette-icons/icons/motion_icon.svg differ diff --git a/src/addons/addons/block-palette-icons/icons/operators_icon.svg b/src/addons/addons/block-palette-icons/icons/operators_icon.svg new file mode 100644 index 0000000000000000000000000000000000000000..d8316cdc4bf63b3b5c4f8fe2a062356cea5c14e5 Binary files /dev/null and b/src/addons/addons/block-palette-icons/icons/operators_icon.svg differ diff --git a/src/addons/addons/block-palette-icons/icons/sensing_icon.svg b/src/addons/addons/block-palette-icons/icons/sensing_icon.svg new file mode 100644 index 0000000000000000000000000000000000000000..de698463dd9b69668377a681438e3d49443e33d3 Binary files /dev/null and b/src/addons/addons/block-palette-icons/icons/sensing_icon.svg differ diff --git a/src/addons/addons/block-palette-icons/icons/sound_icon.svg b/src/addons/addons/block-palette-icons/icons/sound_icon.svg new file mode 100644 index 0000000000000000000000000000000000000000..68ff3ae2a4282f796a7fbeabfbaec219a73609cd Binary files /dev/null and b/src/addons/addons/block-palette-icons/icons/sound_icon.svg differ diff --git a/src/addons/addons/block-palette-icons/icons/variables_icon.svg b/src/addons/addons/block-palette-icons/icons/variables_icon.svg new file mode 100644 index 0000000000000000000000000000000000000000..025a3de0a5f63555a590a320b1ba139ce76990aa Binary files /dev/null and b/src/addons/addons/block-palette-icons/icons/variables_icon.svg differ diff --git a/src/addons/addons/block-palette-icons/userstyle.css b/src/addons/addons/block-palette-icons/userstyle.css new file mode 100644 index 0000000000000000000000000000000000000000..a1f3f45519aab7251a2cf94f3a2c81c7b9f383cc --- /dev/null +++ b/src/addons/addons/block-palette-icons/userstyle.css @@ -0,0 +1,55 @@ +.scratchCategoryItemBubble { + position: relative; +} + +.scratchCategoryItemBubble::after { + content: ""; + position: absolute; + top: 0; + left: 0; + bottom: 0; + right: 0; + background-position: center; + background-repeat: no-repeat; + background-size: cover; +} + +.scratchCategoryId-motion .scratchCategoryItemBubble::after { + background-image: url(icons/motion_icon.svg); +} + +.scratchCategoryId-looks .scratchCategoryItemBubble::after { + background-image: url(icons/looks_icon.svg); +} + +.scratchCategoryId-sound .scratchCategoryItemBubble::after { + background-image: url(icons/sound_icon.svg); +} + +.scratchCategoryId-events .scratchCategoryItemBubble::after { + background-image: url(icons/events_icon.svg); +} + +.scratchCategoryId-control .scratchCategoryItemBubble::after { + background-image: url(icons/control_icon.svg); +} + +.scratchCategoryId-sensing .scratchCategoryItemBubble::after { + background-image: url(icons/sensing_icon.svg); +} + +.scratchCategoryId-operators .scratchCategoryItemBubble::after { + background-image: url(icons/operators_icon.svg); +} + +.scratchCategoryId-variables .scratchCategoryItemBubble::after { + background-image: url(icons/variables_icon.svg); +} + +.scratchCategoryId-lists .scratchCategoryItemBubble::after { + background-image: url(icons/list_icon.svg); +} + +.scratchCategoryId-myBlocks .scratchCategoryItemBubble::after { + background-image: url(icons/block_icon.svg); +} diff --git a/src/addons/addons/block-switching/_manifest_entry.js b/src/addons/addons/block-switching/_manifest_entry.js new file mode 100644 index 0000000000000000000000000000000000000000..a9c4dbd8cf206055f2388d93adda4ac2ff8e6def --- /dev/null +++ b/src/addons/addons/block-switching/_manifest_entry.js @@ -0,0 +1,143 @@ +/* generated by pull.js */ +const manifest = { + "editorOnly": true, + "name": "Block switching", + "description": "Right click on a block to switch it to a related block.", + "credits": [ + { + "name": "GarboMuffin" + }, + { + "name": "pufferfish101007", + "link": "https://scratch.mit.edu/users/pufferfish101007/" + }, + { + "name": "JeremyGamer13", + "link": "https://penguinmod.com/profile?user=JGamerTesting" + } + ], + "dynamicDisable": true, + "userscripts": [ + { + "url": "userscript.js" + } + ], + "tags": [ + "recommended" + ], + "settings": [ + { + "dynamic": true, + "name": "Motion blocks", + "id": "motion", + "type": "boolean", + "default": true + }, + { + "dynamic": true, + "name": "Looks blocks", + "id": "looks", + "type": "boolean", + "default": true + }, + { + "dynamic": true, + "name": "Sound blocks", + "id": "sound", + "type": "boolean", + "default": true + }, + { + "dynamic": true, + "name": "Event blocks", + "id": "event", + "type": "boolean", + "default": true + }, + { + "dynamic": true, + "name": "Control blocks", + "id": "control", + "type": "boolean", + "default": true + }, + { + "dynamic": true, + "name": "Operator blocks", + "id": "operator", + "type": "boolean", + "default": true + }, + { + "dynamic": true, + "name": "Sensing blocks", + "id": "sensing", + "type": "boolean", + "default": true + }, + { + "dynamic": true, + "name": "Data blocks", + "id": "data", + "type": "boolean", + "default": true + }, + { + "dynamic": true, + "name": "Extension blocks", + "id": "extension", + "type": "boolean", + "default": true + }, + { + "dynamic": true, + "name": "Addon blocks", + "id": "sa", + "type": "boolean", + "default": true, + "if": { + "addonEnabled": [ + "debugger" + ] + } + }, + { + "dynamic": true, + "name": "Custom block arguments", + "id": "customargs", + "type": "boolean", + "default": true + }, + { + "dynamic": true, + "name": "Shown custom block arguments options", + "id": "customargsmode", + "type": "select", + "default": "defOnly", + "potentialValues": [ + { + "id": "defOnly", + "name": "Arguments in own custom block" + }, + { + "id": "all", + "name": "Arguments in all custom blocks in sprite" + } + ], + "if": { + "settings": { + "customargs": true + } + } + }, + { + "dynamic": true, + "name": "Show option to change block to self", + "id": "noop", + "type": "boolean", + "default": true + } + ], + "enabledByDefault": true +}; +export default manifest; diff --git a/src/addons/addons/block-switching/_runtime_entry.js b/src/addons/addons/block-switching/_runtime_entry.js new file mode 100644 index 0000000000000000000000000000000000000000..bc67131957e52185c142f348760610cfaa4f774d --- /dev/null +++ b/src/addons/addons/block-switching/_runtime_entry.js @@ -0,0 +1,5 @@ +/* generated by pull.js */ +import _js from "./userscript.js"; +export const resources = { + "userscript.js": _js, +}; diff --git a/src/addons/addons/block-switching/userscript.js b/src/addons/addons/block-switching/userscript.js new file mode 100644 index 0000000000000000000000000000000000000000..7d579a5a460627f07b0c7e0389a939f6cf212519 --- /dev/null +++ b/src/addons/addons/block-switching/userscript.js @@ -0,0 +1,1253 @@ +/* eslint-disable */ + +export default async function ({ addon, console, msg }) { + const ScratchBlocks = await addon.tab.traps.getBlockly(); + const vm = addon.tab.traps.vm; + + let blockSwitches = {}; + let procedureSwitches = {}; + const noopSwitch = { + isNoop: true, + }; + + const randomColor = () => { + const num = Math.floor(Math.random() * 256 * 256 * 256); + return `#${num.toString(16).padStart(6, "0")}`; + }; + + const buildSwitches = () => { + blockSwitches = {}; + procedureSwitches = {}; + + if (addon.settings.get("motion")) { + blockSwitches["motion_turnright"] = [ + noopSwitch, + { + opcode: "motion_turnleft", + }, + ]; + blockSwitches["motion_turnleft"] = [ + { + opcode: "motion_turnright", + }, + noopSwitch, + ]; + blockSwitches["motion_gotoxy"] = [ + noopSwitch, + { + opcode: "motion_changebyxy", + remapInputName: { X: "DX", Y: "DY" }, + } + ]; + blockSwitches["motion_changebyxy"] = [ + { + opcode: "motion_gotoxy", + remapInputName: { DX: "X", DY: "Y" }, + }, + noopSwitch, + ]; + blockSwitches["motion_setx"] = [ + noopSwitch, + { + opcode: "motion_changexby", + remapInputName: { X: "DX" }, + }, + { + opcode: "motion_sety", + remapInputName: { X: "Y" }, + }, + { + opcode: "motion_changeyby", + remapInputName: { X: "DY" }, + }, + ]; + blockSwitches["motion_changexby"] = [ + { + opcode: "motion_setx", + remapInputName: { DX: "X" }, + }, + noopSwitch, + { + opcode: "motion_sety", + remapInputName: { DX: "Y" }, + }, + { + opcode: "motion_changeyby", + remapInputName: { DX: "DY" }, + }, + ]; + blockSwitches["motion_sety"] = [ + { + opcode: "motion_setx", + remapInputName: { Y: "X" }, + }, + { + opcode: "motion_changexby", + remapInputName: { Y: "DX" }, + }, + noopSwitch, + { + opcode: "motion_changeyby", + remapInputName: { Y: "DY" }, + }, + ]; + blockSwitches["motion_changeyby"] = [ + { + opcode: "motion_setx", + remapInputName: { DY: "X" }, + }, + { + opcode: "motion_changexby", + remapInputName: { DY: "DX" }, + }, + { + opcode: "motion_sety", + remapInputName: { DY: "Y" }, + }, + noopSwitch, + ]; + blockSwitches["motion_xposition"] = [ + noopSwitch, + { + opcode: "motion_yposition", + }, + ]; + blockSwitches["motion_yposition"] = [ + { + opcode: "motion_xposition", + }, + noopSwitch, + ]; + } + + if (addon.settings.get("looks")) { + blockSwitches["looks_seteffectto"] = [ + noopSwitch, + { + opcode: "looks_changeeffectby", + remapInputName: { VALUE: "CHANGE" }, + }, + ]; + blockSwitches["looks_changeeffectby"] = [ + { + opcode: "looks_seteffectto", + remapInputName: { CHANGE: "VALUE" }, + }, + noopSwitch, + ]; + blockSwitches["looks_setsizeto"] = [ + noopSwitch, + { + opcode: "looks_changesizeby", + remapInputName: { SIZE: "CHANGE" }, + }, + ]; + blockSwitches["looks_changesizeby"] = [ + { + opcode: "looks_setsizeto", + remapInputName: { CHANGE: "SIZE" }, + }, + noopSwitch, + ]; + blockSwitches["looks_costumenumbername"] = [ + noopSwitch, + { + opcode: "looks_backdropnumbername", + }, + ]; + blockSwitches["looks_backdropnumbername"] = [ + { + opcode: "looks_costumenumbername", + }, + noopSwitch, + ]; + blockSwitches["looks_show"] = [ + noopSwitch, + { + opcode: "looks_hide", + }, + ]; + blockSwitches["looks_hide"] = [ + { + opcode: "looks_show", + }, + noopSwitch, + ]; + blockSwitches["looks_setShape"] = [ + { + opcode: "looks_setShape", + }, + noopSwitch, + ]; + blockSwitches["looks_setColor"] = [ + { + opcode: "looks_setColor", + }, + noopSwitch, + ]; + blockSwitches["looks_setFont"] = [ + { + opcode: "looks_setFont", + }, + noopSwitch, + ]; + blockSwitches["looks_nextcostume"] = [ + noopSwitch, + { + opcode: "looks_nextbackdrop", + }, + ]; + blockSwitches["looks_nextbackdrop"] = [ + { + opcode: "looks_nextcostume", + }, + noopSwitch, + ]; + blockSwitches["looks_say"] = [ + noopSwitch, + { + opcode: "looks_sayforsecs", + createInputs: { + SECS: { + shadowType: "math_number", + value: "2", + }, + }, + }, + { + opcode: "looks_think", + }, + { + opcode: "looks_thinkforsecs", + createInputs: { + SECS: { + shadowType: "math_number", + value: "2", + }, + }, + }, + ]; + blockSwitches["looks_think"] = [ + { + opcode: "looks_say", + }, + { + opcode: "looks_sayforsecs", + createInputs: { + SECS: { + shadowType: "math_number", + value: "2", + }, + }, + }, + noopSwitch, + { + opcode: "looks_thinkforsecs", + createInputs: { + SECS: { + shadowType: "math_number", + value: "2", + }, + }, + }, + ]; + blockSwitches["looks_sayforsecs"] = [ + { + opcode: "looks_say", + splitInputs: ["SECS"], + }, + { + opcode: "looks_think", + splitInputs: ["SECS"], + }, + noopSwitch, + { + opcode: "looks_thinkforsecs", + }, + ]; + blockSwitches["looks_thinkforsecs"] = [ + { + opcode: "looks_say", + splitInputs: ["SECS"], + }, + { + opcode: "looks_think", + splitInputs: ["SECS"], + }, + { + opcode: "looks_sayforsecs", + }, + noopSwitch, + ]; + blockSwitches["looks_switchbackdropto"] = [ + noopSwitch, + { + opcode: "looks_switchbackdroptoandwait", + }, + ]; + blockSwitches["looks_switchbackdroptoandwait"] = [ + { + opcode: "looks_switchbackdropto", + }, + noopSwitch, + ]; + blockSwitches["looks_gotofrontback"] = [ + noopSwitch, + { + opcode: "looks_goforwardbackwardlayers", + remapInputName: { + FRONT_BACK: "FORWARD_BACKWARD", + }, + mapFieldValues: { + FRONT_BACK: { + front: "forward", + back: "backward", + }, + }, + createInputs: { + NUM: { + shadowType: "math_integer", + value: "1", + }, + }, + }, + ]; + blockSwitches["looks_goforwardbackwardlayers"] = [ + { + opcode: "looks_gotofrontback", + splitInputs: ["NUM"], + remapInputName: { + FORWARD_BACKWARD: "FRONT_BACK", + }, + mapFieldValues: { + FORWARD_BACKWARD: { + forward: "front", + backward: "back", + }, + }, + }, + noopSwitch, + ]; + } + + if (addon.settings.get("sound")) { + blockSwitches["sound_play"] = [ + noopSwitch, + { + opcode: "sound_playuntildone", + }, + ]; + blockSwitches["sound_playuntildone"] = [ + { + opcode: "sound_play", + }, + noopSwitch, + ]; + blockSwitches["sound_seteffectto"] = [ + noopSwitch, + { + opcode: "sound_changeeffectby", + }, + ]; + blockSwitches["sound_changeeffectby"] = [ + { + opcode: "sound_seteffectto", + }, + noopSwitch, + ]; + blockSwitches["sound_setvolumeto"] = [ + noopSwitch, + { + opcode: "sound_changevolumeby", + }, + ]; + blockSwitches["sound_changevolumeby"] = [ + { + opcode: "sound_setvolumeto", + }, + noopSwitch, + ]; + } + + if (addon.settings.get("event")) { + blockSwitches["event_broadcast"] = [ + noopSwitch, + { + opcode: "event_broadcastandwait", + }, + ]; + blockSwitches["event_broadcastandwait"] = [ + { + opcode: "event_broadcast", + }, + noopSwitch, + ]; + } + + if (addon.settings.get("control")) { + blockSwitches["control_if"] = [ + noopSwitch, + { + opcode: "control_if_else", + }, + ]; + blockSwitches["control_if_else"] = [ + { + opcode: "control_if", + splitInputs: ["SUBSTACK2"], + }, + noopSwitch, + ]; + blockSwitches["control_repeat_until"] = [ + noopSwitch, + { + opcode: "control_while", + }, + { + opcode: "control_wait_until", + splitInputs: ["SUBSTACK"], + }, + { + opcode: "control_forever", + splitInputs: ["CONDITION"], + }, + ]; + blockSwitches["control_forever"] = [ + { + opcode: "control_repeat_until", + }, + { + opcode: "control_while", + }, + noopSwitch, + ]; + blockSwitches["control_wait_until"] = [ + { + opcode: "control_repeat_until", + }, + noopSwitch, + ]; + + blockSwitches["control_while"] = [ + { + opcode: "control_repeat_until", + }, + noopSwitch, + { + opcode: "control_forever", + splitInputs: ["CONDITION"], + }, + ]; + } + + if (addon.settings.get("operator")) { + blockSwitches["operator_equals"] = [ + { + opcode: "operator_gt", + }, + { + opcode: "operator_gtorequal", + }, + { + opcode: "operator_lt", + }, + { + opcode: "operator_ltorequal", + }, + noopSwitch, + { + opcode: "operator_notequal", + }, + ]; + blockSwitches["operator_gt"] = [ + noopSwitch, + { + opcode: "operator_gtorequal", + }, + { + opcode: "operator_lt", + }, + { + opcode: "operator_ltorequal", + }, + { + opcode: "operator_equals", + }, + { + opcode: "operator_notequal", + }, + ]; + blockSwitches["operator_lt"] = [ + { + opcode: "operator_gt", + }, + { + opcode: "operator_gtorequal", + }, + noopSwitch, + { + opcode: "operator_ltorequal", + }, + { + opcode: "operator_equals", + }, + { + opcode: "operator_notequal", + }, + ]; + blockSwitches["operator_notequal"] = [ + { + opcode: "operator_gt", + }, + { + opcode: "operator_gtorequal", + }, + { + opcode: "operator_lt", + }, + { + opcode: "operator_ltorequal", + }, + { + opcode: "operator_equals", + }, + noopSwitch, + ]; + blockSwitches["operator_gtorequal"] = [ + { + opcode: "operator_gt", + }, + noopSwitch, + { + opcode: "operator_lt", + }, + { + opcode: "operator_ltorequal", + }, + { + opcode: "operator_equals", + }, + { + opcode: "operator_notequal", + }, + ]; + blockSwitches["operator_ltorequal"] = [ + { + opcode: "operator_gt", + }, + { + opcode: "operator_gtorequal", + }, + { + opcode: "operator_lt", + }, + noopSwitch, + { + opcode: "operator_equals", + }, + { + opcode: "operator_notequal", + }, + ]; + blockSwitches["operator_add"] = [ + noopSwitch, + { + opcode: "operator_subtract", + }, + { + opcode: "operator_multiply", + }, + { + opcode: "operator_divide", + }, + { + opcode: "operator_power", + }, + { + opcode: "operator_mod", + }, + ]; + blockSwitches["operator_subtract"] = [ + { + opcode: "operator_add", + }, + noopSwitch, + { + opcode: "operator_multiply", + }, + { + opcode: "operator_divide", + }, + { + opcode: "operator_power", + }, + { + opcode: "operator_mod", + }, + ]; + blockSwitches["operator_multiply"] = [ + { + opcode: "operator_add", + }, + { + opcode: "operator_subtract", + }, + noopSwitch, + { + opcode: "operator_divide", + }, + { + opcode: "operator_power", + }, + { + opcode: "operator_mod", + }, + ]; + blockSwitches["operator_divide"] = [ + { + opcode: "operator_add", + }, + { + opcode: "operator_subtract", + }, + { + opcode: "operator_multiply", + }, + noopSwitch, + { + opcode: "operator_power", + }, + { + opcode: "operator_mod", + }, + ]; + blockSwitches["operator_power"] = [ + { + opcode: "operator_add", + }, + { + opcode: "operator_subtract", + }, + { + opcode: "operator_multiply", + }, + { + opcode: "operator_divide", + }, + noopSwitch, + { + opcode: "operator_mod", + }, + ]; + blockSwitches["operator_mod"] = [ + { + opcode: "operator_add", + }, + { + opcode: "operator_subtract", + }, + { + opcode: "operator_multiply", + }, + { + opcode: "operator_divide", + }, + { + opcode: "operator_power", + }, + noopSwitch, + ]; + blockSwitches["operator_and"] = [ + noopSwitch, + { + opcode: "operator_or", + }, + ]; + blockSwitches["operator_or"] = [ + { + opcode: "operator_and", + }, + noopSwitch, + ]; + blockSwitches["operator_trueBoolean"] = [ + noopSwitch, + { + opcode: "operator_falseBoolean", + }, + ]; + blockSwitches["operator_falseBoolean"] = [ + { + opcode: "operator_trueBoolean", + }, + noopSwitch, + ]; + } + + if (addon.settings.get("sensing")) { + blockSwitches["sensing_mousex"] = [ + noopSwitch, + { + opcode: "sensing_mousey", + }, + ]; + blockSwitches["sensing_mousey"] = [ + { + opcode: "sensing_mousex", + }, + noopSwitch, + ]; + blockSwitches["sensing_touchingcolor"] = [ + noopSwitch, + { + opcode: "sensing_coloristouchingcolor", + createInputs: { + COLOR2: { + shadowType: "colour_picker", + value: randomColor, + }, + }, + }, + ]; + blockSwitches["sensing_coloristouchingcolor"] = [ + { + opcode: "sensing_touchingcolor", + splitInputs: ["COLOR2"], + }, + noopSwitch, + ]; + } + + if (addon.settings.get("data")) { + blockSwitches["data_setvariableto"] = [ + noopSwitch, + { + opcode: "data_changevariableby", + remapShadowType: { VALUE: "math_number" }, + }, + ]; + blockSwitches["data_changevariableby"] = [ + { + opcode: "data_setvariableto", + remapShadowType: { VALUE: "text" }, + }, + noopSwitch, + ]; + blockSwitches["data_showvariable"] = [ + noopSwitch, + { + opcode: "data_hidevariable", + }, + ]; + blockSwitches["data_hidevariable"] = [ + { + opcode: "data_showvariable", + }, + noopSwitch, + ]; + blockSwitches["data_showlist"] = [ + noopSwitch, + { + opcode: "data_hidelist", + }, + ]; + blockSwitches["data_hidelist"] = [ + { + opcode: "data_showlist", + }, + noopSwitch, + ]; + blockSwitches["data_replaceitemoflist"] = [ + noopSwitch, + { + opcode: "data_insertatlist", + }, + ]; + blockSwitches["data_insertatlist"] = [ + { + opcode: "data_replaceitemoflist", + }, + noopSwitch, + ]; + blockSwitches["data_deleteoflist"] = [ + noopSwitch, + { + opcode: "data_deletealloflist", + splitInputs: ["INDEX"], + }, + ]; + blockSwitches["data_deletealloflist"] = [ + { + opcode: "data_deleteoflist", + createInputs: { + INDEX: { + shadowType: "math_integer", + value: "1", + }, + }, + }, + noopSwitch, + ]; + } + + if (addon.settings.get("extension")) { + blockSwitches["pen_penDown"] = [ + noopSwitch, + { + opcode: "pen_penUp", + }, + ]; + blockSwitches["pen_penUp"] = [ + { + opcode: "pen_penDown", + }, + noopSwitch, + ]; + blockSwitches["pen_setPenColorParamTo"] = [ + noopSwitch, + { + opcode: "pen_changePenColorParamBy", + }, + ]; + blockSwitches["pen_changePenColorParamBy"] = [ + { + opcode: "pen_setPenColorParamTo", + }, + noopSwitch, + ]; + blockSwitches["pen_setPenHueToNumber"] = [ + noopSwitch, + { + opcode: "pen_changePenHueBy", + }, + ]; + blockSwitches["pen_changePenHueBy"] = [ + { + opcode: "pen_setPenHueToNumber", + }, + noopSwitch, + ]; + blockSwitches["pen_setPenShadeToNumber"] = [ + noopSwitch, + { + opcode: "pen_changePenShadeBy", + }, + ]; + blockSwitches["pen_changePenShadeBy"] = [ + { + opcode: "pen_setPenShadeToNumber", + }, + noopSwitch, + ]; + blockSwitches["pen_setPenSizeTo"] = [ + noopSwitch, + { + opcode: "pen_changePenSizeBy", + }, + ]; + blockSwitches["pen_changePenSizeBy"] = [ + { + opcode: "pen_setPenSizeTo", + }, + noopSwitch, + ]; + blockSwitches["music_setTempo"] = [ + noopSwitch, + { + opcode: "music_changeTempo", + }, + ]; + blockSwitches["music_changeTempo"] = [ + { + opcode: "music_setTempo", + }, + noopSwitch, + ]; + + if (vm.extensionManager) { + const switches = vm.extensionManager.getAddonBlockSwitches(); + Object.getOwnPropertyNames(switches).forEach(extID => { + Object.getOwnPropertyNames(switches[extID]).forEach(block => { + blockSwitches[`${extID}_${block}`] = switches[extID][block]; + }) + }) + } + } + + if (addon.settings.get("sa")) { + const logProc = "\u200B\u200Blog\u200B\u200B %s"; + const warnProc = "\u200B\u200Bwarn\u200B\u200B %s"; + const errorProc = "\u200B\u200Berror\u200B\u200B %s"; + const logMessage = msg("debugger_log"); + const warnMessage = msg("debugger_warn"); + const errorMessage = msg("debugger_error"); + const logSwitch = { + mutate: { + proccode: logProc, + }, + msg: logMessage, + }; + const warnSwitch = { + mutate: { + proccode: warnProc, + }, + msg: warnMessage, + }; + const errorSwitch = { + mutate: { + proccode: errorProc, + }, + msg: errorMessage, + }; + procedureSwitches[logProc] = [ + { + msg: logMessage, + isNoop: true, + }, + warnSwitch, + errorSwitch, + ]; + procedureSwitches[warnProc] = [ + logSwitch, + { + msg: warnMessage, + isNoop: true, + }, + errorSwitch, + ]; + procedureSwitches[errorProc] = [ + logSwitch, + warnSwitch, + { + msg: errorMessage, + isNoop: true, + }, + ]; + } + + // Switching for these is implemented by Scratch. We only define them here to optionally add a border. + // Because we don't implement the switching ourselves, this is not controlled by the data category option. + blockSwitches["data_variable"] = []; + blockSwitches["data_listcontents"] = []; + }; + buildSwitches(); + addon.settings.addEventListener("change", buildSwitches); + + /** + * @param {*} workspace + * @param {Element} xmlBlock + */ + const pasteBlockXML = (workspace, xmlBlock) => { + // Similar to https://github.com/LLK/scratch-blocks/blob/7575c9a0f2c267676569c4b102b76d77f35d9fd6/core/workspace_svg.js#L1020 + // but without the collision checking. + const block = ScratchBlocks.Xml.domToBlock(xmlBlock, workspace); + const x = +xmlBlock.getAttribute("x"); + const y = +xmlBlock.getAttribute("y"); + // Don't need to handle RTL here + block.moveBy(x, y); + return block; + }; + + /** + * @param {string} shadowType The type of shadow eg. "math_number" + * @returns {string} The name of the shadow's inner field that contains the user-visible value + */ + const getShadowFieldName = (shadowType) => { + // This is non-comprehensive. + if (shadowType === "text") { + return "TEXT"; + } + if (shadowType === "colour_picker") { + return "COLOUR"; + } + return "NUM"; + }; + + /** + * @template T + * @param {T|()=>T} value + * @returns {T} + */ + const callIfFunction = (value) => { + if (typeof value === "function") { + return value(); + } + return value; + }; + + const menuCallbackFactory = (block, opcodeData) => () => { + if (opcodeData.isNoop) { + return; + } + + if (opcodeData.fieldValue) { + block.setFieldValue(opcodeData.fieldValue, "VALUE"); + return; + } + + try { + ScratchBlocks.Events.setGroup(true); + + const workspace = block.workspace; + + const blocksToBringToForeground = []; + // Split inputs before we clone the block. + if (opcodeData.splitInputs) { + for (const inputName of opcodeData.splitInputs) { + const input = block.getInput(inputName); + if (!input) { + continue; + } + const connection = input.connection; + if (!connection) { + continue; + } + if (connection.isConnected()) { + const targetBlock = connection.targetBlock(); + if (targetBlock.isShadow()) { + // Deleting shadows is handled later. + } else { + connection.disconnect(); + blocksToBringToForeground.push(targetBlock); + } + } + } + } + + // Make a copy of the block with the proper type set. + // It doesn't seem to be possible to change a Block's type after it's created, so we'll just make a new block instead. + const xml = ScratchBlocks.Xml.blockToDom(block); + // blockToDomWithXY's handling of RTL is strange, so we encode the position ourselves. + const position = block.getRelativeToSurfaceXY(); + xml.setAttribute("x", position.x); + xml.setAttribute("y", position.y); + if (opcodeData.opcode) { + xml.setAttribute("type", opcodeData.opcode); + } + + const parentBlock = block.getParent(); + let parentConnection; + let blockConnectionType; + if (parentBlock) { + // If the block has a parent, find the parent -> child connection that will be reattached later. + const parentConnections = parentBlock.getConnections_(); + parentConnection = parentConnections.find( + (c) => c.targetConnection && c.targetConnection.sourceBlock_ === block + ); + // There's two types of connections from child -> parent. We need to figure out which one is used. + const blockConnections = block.getConnections_(); + const blockToParentConnection = blockConnections.find( + (c) => c.targetConnection && c.targetConnection.sourceBlock_ === parentBlock + ); + blockConnectionType = blockToParentConnection.type; + } + + // Array.from creates a clone of the children list. This is important as we may remove + // children as we iterate. + for (const child of Array.from(xml.children)) { + const oldName = child.getAttribute("name"); + + // Any inputs that were supposed to be split that were not should be removed. + // (eg. shadow inputs) + if (opcodeData.splitInputs && opcodeData.splitInputs.includes(oldName)) { + xml.removeChild(child); + continue; + } + + const newName = opcodeData.remapInputName && opcodeData.remapInputName[oldName]; + if (newName) { + child.setAttribute("name", newName); + } + + const newShadowType = opcodeData.remapShadowType && opcodeData.remapShadowType[oldName]; + if (newShadowType) { + const valueNode = child.firstChild; + const fieldNode = valueNode.firstChild; + valueNode.setAttribute("type", newShadowType); + fieldNode.setAttribute("name", getShadowFieldName(newShadowType)); + } + + const fieldValueMap = opcodeData.mapFieldValues && opcodeData.mapFieldValues[oldName]; + if (fieldValueMap && child.tagName === "FIELD") { + const oldValue = child.innerText; + const newValue = fieldValueMap[oldValue]; + if (typeof newValue === "string") { + child.innerText = newValue; + } + } + } + + if (opcodeData.mutate) { + const mutation = xml.querySelector("mutation"); + for (const [key, value] of Object.entries(opcodeData.mutate)) { + mutation.setAttribute(key, value); + } + } + + if (opcodeData.createInputs) { + for (const [inputName, inputData] of Object.entries(opcodeData.createInputs)) { + const valueElement = document.createElement("value"); + valueElement.setAttribute("name", inputName); + + const shadowElement = document.createElement("shadow"); + shadowElement.setAttribute("type", inputData.shadowType); + + const shadowFieldElement = document.createElement("field"); + shadowFieldElement.setAttribute("name", getShadowFieldName(inputData.shadowType)); + shadowFieldElement.innerText = callIfFunction(inputData.value); + + shadowElement.appendChild(shadowFieldElement); + valueElement.appendChild(shadowElement); + xml.appendChild(valueElement); + } + } + + // Remove the old block and insert the new one. + block.dispose(); + const newBlock = pasteBlockXML(workspace, xml); + + if (parentConnection) { + // Search for the same type of connection on the new block as on the old block. + const newBlockConnections = newBlock.getConnections_(); + const newBlockConnection = newBlockConnections.find((c) => c.type === blockConnectionType); + newBlockConnection.connect(parentConnection); + } + + for (const otherBlock of blocksToBringToForeground) { + // By re-appending the element, we move it to the end, which will make it display + // on top. + const svgRoot = otherBlock.getSvgRoot(); + svgRoot.parentNode.appendChild(svgRoot); + } + } finally { + ScratchBlocks.Events.setGroup(false); + } + }; + + const uniques = (array) => [...new Set(array)]; + + addon.tab.createBlockContextMenu( + (items, block) => { + if (!addon.self.disabled) { + const type = block.type; + let switches = blockSwitches[block.type] || []; + + const customArgsMode = addon.settings.get("customargs") ? addon.settings.get("customargsmode") : "off"; + if ( + customArgsMode !== "off" && + ["argument_reporter_boolean", "argument_reporter_string_number"].includes(type) && + // if the arg is a shadow, it's in a procedures_prototype so we don't want it to be switchable + !block.isShadow() + ) { + const customBlocks = getCustomBlocks(); + if (customArgsMode === "all") { + switch (type) { + case "argument_reporter_string_number": + switches = Object.values(customBlocks) + .map((cb) => cb.stringArgs) + .flat(1); + break; + case "argument_reporter_boolean": + switches = Object.values(customBlocks) + .map((cb) => cb.boolArgs) + .flat(1); + break; + } + } else if (customArgsMode === "defOnly") { + const root = block.getRootBlock(); + if (root.type !== "procedures_definition" || root.type !== "procedures_definition_return") return items; + const customBlockObj = customBlocks[root.getChildren(true)[0].getProcCode()]; + switch (type) { + case "argument_reporter_string_number": + switches = customBlockObj.stringArgs; + break; + case "argument_reporter_boolean": + switches = customBlockObj.boolArgs; + break; + } + } + const currentValue = block.getFieldValue("VALUE"); + switches = uniques(switches).map((i) => ({ + isNoop: i === currentValue, + fieldValue: i, + msg: i, + })); + } + + if (block.type === "procedures_call") { + const proccode = block.getProcCode(); + if (procedureSwitches[proccode]) { + switches = procedureSwitches[proccode]; + } + } + + if (!addon.settings.get("noop")) { + switches = switches.filter((i) => !i.isNoop); + } + + switches.forEach((opcodeData, i) => { + const makeSpaceItemIndex = items.findIndex((obj) => obj._isDevtoolsFirstItem); + const insertBeforeIndex = + makeSpaceItemIndex !== -1 + ? // If "make space" button exists, add own items before it + makeSpaceItemIndex + : // If there's no such button, insert at end + items.length; + const text = opcodeData.msg ? opcodeData.msg : opcodeData.opcode ? msg(opcodeData.opcode) : msg(block.type); + items.splice(insertBeforeIndex, 0, { + enabled: true, + text, + callback: menuCallbackFactory(block, opcodeData), + separator: i === 0, + }); + }); + + if (block.type === "data_variable" || block.type === "data_listcontents") { + // Add top border to first variable (if it exists) + const delBlockIndex = items.findIndex((item) => item.text === ScratchBlocks.Msg.DELETE_BLOCK); + // firstVariableItem might be undefined, a variable to switch to, + // or an item added by editor-devtools (or any addon before this one) + const firstVariableItem = items[delBlockIndex + 1]; + if (firstVariableItem) firstVariableItem.separator = true; + } + } + return items; + }, + { blocks: true } + ); + + // https://github.com/LLK/scratch-blocks/blob/abbfe93136fef57fdfb9a077198b0bc64726f012/blocks_vertical/procedures.js#L207-L215 + // Returns a list like ["%s", "%d"] + const parseArguments = (code) => + code + .split(/(?=[^\\]%[nbs])/g) + .map((i) => i.trim()) + .filter((i) => i.charAt(0) === "%") + .map((i) => i.substring(0, 2)); + + const getCustomBlocks = () => { + const customBlocks = {}; + const target = vm.editingTarget; + Object.values(target.blocks._blocks) + .filter((block) => block.opcode === "procedures_prototype") + .forEach((block) => { + const procCode = block.mutation.proccode; + const argumentNames = JSON.parse(block.mutation.argumentnames); + // argumentdefaults is unreliable, so we have to parse the procedure code to determine argument types + const parsedArguments = parseArguments(procCode); + const stringArgs = []; + const boolArgs = []; + for (let i = 0; i < argumentNames.length; i++) { + if (parsedArguments[i] === "%b") { + boolArgs.push(argumentNames[i]); + } else { + stringArgs.push(argumentNames[i]); + } + } + customBlocks[procCode] = { + stringArgs, + boolArgs, + }; + }); + return customBlocks; + }; +} diff --git a/src/addons/addons/blocks2image/_manifest_entry.js b/src/addons/addons/blocks2image/_manifest_entry.js new file mode 100644 index 0000000000000000000000000000000000000000..b45f93ac89c82cb3b1d748907fc4361c530cf4f5 --- /dev/null +++ b/src/addons/addons/blocks2image/_manifest_entry.js @@ -0,0 +1,20 @@ +/* generated by pull.js */ +const manifest = { + "editorOnly": true, + "name": "Save blocks as image", + "description": "Right click the code area to export blocks as SVG/PNG images.", + "tags": [], + "credits": [ + { + "name": "summerscar" + } + ], + "dynamicDisable": true, + "userscripts": [ + { + "url": "userscript.js" + } + ], + "enabledByDefault": false +}; +export default manifest; diff --git a/src/addons/addons/blocks2image/_runtime_entry.js b/src/addons/addons/blocks2image/_runtime_entry.js new file mode 100644 index 0000000000000000000000000000000000000000..bc67131957e52185c142f348760610cfaa4f774d --- /dev/null +++ b/src/addons/addons/blocks2image/_runtime_entry.js @@ -0,0 +1,5 @@ +/* generated by pull.js */ +import _js from "./userscript.js"; +export const resources = { + "userscript.js": _js, +}; diff --git a/src/addons/addons/blocks2image/userscript.js b/src/addons/addons/blocks2image/userscript.js new file mode 100644 index 0000000000000000000000000000000000000000..6f7f650406e5d0b889f9378aedd62e62521ad772 --- /dev/null +++ b/src/addons/addons/blocks2image/userscript.js @@ -0,0 +1,279 @@ +export default async function ({ addon, console, msg }) { + function makeStyle() { + let style = document.createElement("style"); + style.textContent = ` + .blocklyText { + fill: #fff; + font-family: "Helvetica Neue", Helvetica, sans-serif; + font-size: 12pt; + font-weight: 500; + } + .blocklyNonEditableText>text, .blocklyEditableText>text { + fill: #575E75; + } + .blocklyDropdownText { + fill: #fff !important; + } + `; + for (let userstyle of document.querySelectorAll(".scratch-addons-style[data-addons*='editor-theme3']")) { + if (userstyle.disabled) continue; + style.textContent += userstyle.textContent; + } + return style; + } + + function setCSSVars(element) { + for (let property of document.documentElement.style) { + if (property.startsWith("--editorTheme3-")) + element.style.setProperty(property, document.documentElement.style.getPropertyValue(property)); + } + } + + let exSVG = document.createElementNS("http://www.w3.org/2000/svg", "svg"); + exSVG.setAttribute("xmlns:html", "http://www.w3.org/1999/xhtml"); + exSVG.setAttribute("xmlns:xlink", "http://www.w3.org/1999/xlink"); + exSVG.setAttribute("version", "1.1"); + + // blocks-media as base64 for svg inline image + let blocksMedia = new Map(); + blocksMedia.set( + "repeat.svg", + "data:image/svg+xml;base64,PD94bWwgdmVyc2lvbj0iMS4wIiBlbmNvZGluZz0idXRmLTgiPz4KPCEtLSBHZW5lcmF0b3I6IEFkb2JlIElsbHVzdHJhdG9yIDIxLjAuMCwgU1ZHIEV4cG9ydCBQbHVnLUluIC4gU1ZHIFZlcnNpb246IDYuMDAgQnVpbGQgMCkgIC0tPgo8c3ZnIHZlcnNpb249IjEuMSIgaWQ9InJlcGVhdCIgeG1sbnM9Imh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnIiB4bWxuczp4bGluaz0iaHR0cDovL3d3dy53My5vcmcvMTk5OS94bGluayIgeD0iMHB4IiB5PSIwcHgiCgkgdmlld0JveD0iMCAwIDI0IDI0IiBzdHlsZT0iZW5hYmxlLWJhY2tncm91bmQ6bmV3IDAgMCAyNCAyNDsiIHhtbDpzcGFjZT0icHJlc2VydmUiPgo8c3R5bGUgdHlwZT0idGV4dC9jc3MiPgoJLnN0MHtmaWxsOiNDRjhCMTc7fQoJLnN0MXtmaWxsOiNGRkZGRkY7fQo8L3N0eWxlPgo8dGl0bGU+cmVwZWF0PC90aXRsZT4KPHBhdGggY2xhc3M9InN0MCIgZD0iTTIzLjMsMTFjLTAuMywwLjYtMC45LDEtMS41LDFoLTEuNmMtMC4xLDEuMy0wLjUsMi41LTEuMSwzLjZjLTAuOSwxLjctMi4zLDMuMi00LjEsNC4xCgljLTEuNywwLjktMy42LDEuMi01LjUsMC45Yy0xLjgtMC4zLTMuNS0xLjEtNC45LTIuM2MtMC43LTAuNy0wLjctMS45LDAtMi42YzAuNi0wLjYsMS42LTAuNywyLjMtMC4ySDdjMC45LDAuNiwxLjksMC45LDIuOSwwLjkKCXMxLjktMC4zLDIuNy0wLjljMS4xLTAuOCwxLjgtMi4xLDEuOC0zLjVoLTEuNWMtMC45LDAtMS43LTAuNy0xLjctMS43YzAtMC40LDAuMi0wLjksMC41LTEuMmw0LjQtNC40YzAuNy0wLjYsMS43LTAuNiwyLjQsMEwyMyw5LjIKCUMyMy41LDkuNywyMy42LDEwLjQsMjMuMywxMXoiLz4KPHBhdGggY2xhc3M9InN0MSIgZD0iTTIxLjgsMTFoLTIuNmMwLDEuNS0wLjMsMi45LTEsNC4yYy0wLjgsMS42LTIuMSwyLjgtMy43LDMuNmMtMS41LDAuOC0zLjMsMS4xLTQuOSwwLjhjLTEuNi0wLjItMy4yLTEtNC40LTIuMQoJYy0wLjQtMC4zLTAuNC0wLjktMC4xLTEuMmMwLjMtMC40LDAuOS0wLjQsMS4yLTAuMWwwLDBjMSwwLjcsMi4yLDEuMSwzLjQsMS4xczIuMy0wLjMsMy4zLTFjMC45LTAuNiwxLjYtMS41LDItMi42CgljMC4zLTAuOSwwLjQtMS44LDAuMi0yLjhoLTIuNGMtMC40LDAtMC43LTAuMy0wLjctMC43YzAtMC4yLDAuMS0wLjMsMC4yLTAuNGw0LjQtNC40YzAuMy0wLjMsMC43LTAuMywwLjksMEwyMiw5LjgKCWMwLjMsMC4zLDAuNCwwLjYsMC4zLDAuOVMyMiwxMSwyMS44LDExeiIvPgo8L3N2Zz4K" + ); + blocksMedia.set( + "green-flag.svg", + "data:image/svg+xml;base64,PHN2ZyB2aWV3Qm94PSIwLDAsNjkuNDM1MTQsODEuODUzNjEiIGhlaWdodD0iODEuODUzNjEiIHdpZHRoPSI2OS40MzUxNCIgeG1sbnM6eGxpbms9Imh0dHA6Ly93d3cudzMub3JnLzE5OTkveGxpbmsiIHhtbG5zPSJodHRwOi8vd3d3LnczLm9yZy8yMDAwL3N2ZyIgdmVyc2lvbj0iMS4xIj48ZGVmcz48bGluZWFyR3JhZGllbnQgaWQ9ImNvbG9yLTEiIGdyYWRpZW50VW5pdHM9InVzZXJTcGFjZU9uVXNlIiB5Mj0iMTkxLjg0MTM3IiB4Mj0iMjQwLjA3NDA0IiB5MT0iMTQxLjE1MDkyIiB4MT0iMjQwLjA3NDA0Ij48c3RvcCBzdG9wLWNvbG9yPSIjMDBhNWZmIiBvZmZzZXQ9IjAiPjwvc3RvcD48c3RvcCBzdG9wLWNvbG9yPSIjMDA2NWZmIiBvZmZzZXQ9IjEiPjwvc3RvcD48L2xpbmVhckdyYWRpZW50PjwvZGVmcz48ZyB0cmFuc2Zvcm09InRyYW5zbGF0ZSgtMjA0Ljc4MjQzLC0xMzkuNDk1NDcpIj48ZyBzdHlsZT0ibWl4LWJsZW5kLW1vZGU6IG5vcm1hbCIgc3Ryb2tlLWRhc2hvZmZzZXQ9IjAiIHN0cm9rZS1kYXNoYXJyYXk9IiIgc3Ryb2tlLW1pdGVybGltaXQ9IjEwIiBzdHJva2UtbGluZWpvaW49Im1pdGVyIiBzdHJva2U9IiMwMDMxNmIiIGZpbGwtcnVsZT0ibm9uemVybyIgZGF0YS1wYXBlci1kYXRhPSJ7JnF1b3Q7aXNQYWludGluZ0xheWVyJnF1b3Q7OnRydWV9Ij48cGF0aCBzdHJva2UtbGluZWNhcD0iYnV0dCIgc3Ryb2tlLXdpZHRoPSIzIiBmaWxsPSJ1cmwoI2NvbG9yLTEpIiBkPSJNMjA3LjQzMDUyLDE4Ny4yNjY0MnYtNDIuNDU1NTRjMCwwIDcuNDUwMDgsLTMuNjU5OTYgMTUuODExNzEsLTMuNjU5OTZjOC45ODk3MywwIDI1LjQ3NjM1LDguMjM0OTEgMzMuODMzNjYsOC4yMzQ5MWM4LjI5MjM0LDAgMTUuNjQxNjksLTQuNTc0OTUgMTUuNjQxNjksLTQuNTc0OTV2NDIuNDU1NTRjMCwwIC03LjM3NzI1LDQuNTc0OTUgLTE1LjY0MTY5LDQuNTc0OTVjLTcuNTEwNzcsMCAtMjQuNTc4NzMsLTguMjM0OTEgLTMyLjk4MzU3LC04LjIzNDkxYy04LjczMDY1LDAgLTE2LjY2MTgsMy42NTk5NiAtMTYuNjYxOCwzLjY1OTk2eiI+PC9wYXRoPjxwYXRoIHN0cm9rZS1saW5lY2FwPSJyb3VuZCIgc3Ryb2tlLXdpZHRoPSI1IiBmaWxsPSJub25lIiBkPSJNMjA3LjI4MjQ0LDIxOC44NDkwOHYtNzYuODUzNjEiPjwvcGF0aD48L2c+PC9nPjwvc3ZnPjwhLS1yb3RhdGlvbkNlbnRlcjozNS4yMTc1NjUwMDAwMDAwMTo0MC41MDQ1Mjk5OTk5OTk5OS0tPg==" + ); + blocksMedia.set( + "blue-flag.svg", + "data:image/svg+xml;base64,PHN2ZyB2aWV3Qm94PSIwLDAsNjkuNDM1MTQsODEuODUzNjEiIGhlaWdodD0iODEuODUzNjEiIHdpZHRoPSI2OS40MzUxNCIgeG1sbnM6eGxpbms9Imh0dHA6Ly93d3cudzMub3JnLzE5OTkveGxpbmsiIHhtbG5zPSJodHRwOi8vd3d3LnczLm9yZy8yMDAwL3N2ZyIgdmVyc2lvbj0iMS4xIj48ZGVmcz48bGluZWFyR3JhZGllbnQgaWQ9ImNvbG9yLTEiIGdyYWRpZW50VW5pdHM9InVzZXJTcGFjZU9uVXNlIiB5Mj0iMTkxLjg0MTM3IiB4Mj0iMjQwLjA3NDA0IiB5MT0iMTQxLjE1MDkyIiB4MT0iMjQwLjA3NDA0Ij48c3RvcCBzdG9wLWNvbG9yPSIjMDBhNWZmIiBvZmZzZXQ9IjAiPjwvc3RvcD48c3RvcCBzdG9wLWNvbG9yPSIjMDA2NWZmIiBvZmZzZXQ9IjEiPjwvc3RvcD48L2xpbmVhckdyYWRpZW50PjwvZGVmcz48ZyB0cmFuc2Zvcm09InRyYW5zbGF0ZSgtMjA0Ljc4MjQzLC0xMzkuNDk1NDcpIj48ZyBzdHlsZT0ibWl4LWJsZW5kLW1vZGU6IG5vcm1hbCIgc3Ryb2tlLWRhc2hvZmZzZXQ9IjAiIHN0cm9rZS1kYXNoYXJyYXk9IiIgc3Ryb2tlLW1pdGVybGltaXQ9IjEwIiBzdHJva2UtbGluZWpvaW49Im1pdGVyIiBzdHJva2U9IiMwMDMxNmIiIGZpbGwtcnVsZT0ibm9uemVybyIgZGF0YS1wYXBlci1kYXRhPSJ7JnF1b3Q7aXNQYWludGluZ0xheWVyJnF1b3Q7OnRydWV9Ij48cGF0aCBzdHJva2UtbGluZWNhcD0iYnV0dCIgc3Ryb2tlLXdpZHRoPSIzIiBmaWxsPSJ1cmwoI2NvbG9yLTEpIiBkPSJNMjA3LjQzMDUyLDE4Ny4yNjY0MnYtNDIuNDU1NTRjMCwwIDcuNDUwMDgsLTMuNjU5OTYgMTUuODExNzEsLTMuNjU5OTZjOC45ODk3MywwIDI1LjQ3NjM1LDguMjM0OTEgMzMuODMzNjYsOC4yMzQ5MWM4LjI5MjM0LDAgMTUuNjQxNjksLTQuNTc0OTUgMTUuNjQxNjksLTQuNTc0OTV2NDIuNDU1NTRjMCwwIC03LjM3NzI1LDQuNTc0OTUgLTE1LjY0MTY5LDQuNTc0OTVjLTcuNTEwNzcsMCAtMjQuNTc4NzMsLTguMjM0OTEgLTMyLjk4MzU3LC04LjIzNDkxYy04LjczMDY1LDAgLTE2LjY2MTgsMy42NTk5NiAtMTYuNjYxOCwzLjY1OTk2eiI+PC9wYXRoPjxwYXRoIHN0cm9rZS1saW5lY2FwPSJyb3VuZCIgc3Ryb2tlLXdpZHRoPSI1IiBmaWxsPSJub25lIiBkPSJNMjA3LjI4MjQ0LDIxOC44NDkwOHYtNzYuODUzNjEiPjwvcGF0aD48L2c+PC9nPjwvc3ZnPjwhLS1yb3RhdGlvbkNlbnRlcjozNS4yMTc1NjUwMDAwMDAwMTo0MC41MDQ1Mjk5OTk5OTk5OS0tPg==" + ); + blocksMedia.set( + "control_stop.svg", + "data:image/svg+xml;base64,PHN2ZyB2ZXJzaW9uPSIxLjEiIHhtbG5zPSJodHRwOi8vd3d3LnczLm9yZy8yMDAwL3N2ZyIgeG1sbnM6eGxpbms9Imh0dHA6Ly93d3cudzMub3JnLzE5OTkveGxpbmsiIHdpZHRoPSI4MC40ODE0NSIgaGVpZ2h0PSI4MC40ODE0NSIgdmlld0JveD0iMCwwLDgwLjQ4MTQ1LDgwLjQ4MTQ1Ij48ZGVmcz48bGluZWFyR3JhZGllbnQgeDE9IjI0MC4wMDAwMSIgeTE9IjE0MS4yNTkyOCIgeDI9IjI0MC4wMDAwMSIgeTI9IjIxOC43NDA3MyIgZ3JhZGllbnRVbml0cz0idXNlclNwYWNlT25Vc2UiIGlkPSJjb2xvci0xIj48c3RvcCBvZmZzZXQ9IjAiIHN0b3AtY29sb3I9IiNmZjI0ODQiLz48c3RvcCBvZmZzZXQ9IjEiIHN0b3AtY29sb3I9IiNjNDAwNTYiLz48L2xpbmVhckdyYWRpZW50PjwvZGVmcz48ZyB0cmFuc2Zvcm09InRyYW5zbGF0ZSgtMTk5Ljc1OTI4LC0xMzkuNzU5MjgpIj48ZyBkYXRhLXBhcGVyLWRhdGE9InsmcXVvdDtpc1BhaW50aW5nTGF5ZXImcXVvdDs6dHJ1ZX0iIGZpbGw9InVybCgjY29sb3ItMSkiIGZpbGwtcnVsZT0ibm9uemVybyIgc3Ryb2tlPSIjNzgwMDM0IiBzdHJva2Utd2lkdGg9IjMiIHN0cm9rZS1saW5lY2FwPSJidXR0IiBzdHJva2UtbGluZWpvaW49Im1pdGVyIiBzdHJva2UtbWl0ZXJsaW1pdD0iMTAiIHN0cm9rZS1kYXNoYXJyYXk9IiIgc3Ryb2tlLWRhc2hvZmZzZXQ9IjAiIHN0eWxlPSJtaXgtYmxlbmQtbW9kZTogbm9ybWFsIj48cGF0aCBkPSJNMjIzLjk1MzA3LDIxOC43NDA3M2wtMjIuNjkzNzksLTIyLjY5Mzc5di0zMi4wOTM4N2wyMi42OTM3OSwtMjIuNjkzNzloMzIuMDkzODdsMjIuNjkzNzksMjIuNjkzNzl2MzIuMDkzODdsLTIyLjY5Mzc5LDIyLjY5Mzc5eiIvPjwvZz48L2c+PC9zdmc+PCEtLXJvdGF0aW9uQ2VudGVyOjQwLjI0MDcxNzE0NTE0OTM1OjQwLjI0MDcxNzE0NTE0OTI5LS0+" + ); + blocksMedia.set( + "rotate-left.svg", + "data:image/svg+xml;base64,PD94bWwgdmVyc2lvbj0iMS4wIiBlbmNvZGluZz0idXRmLTgiPz48c3ZnIGlkPSJyb3RhdGUtY2xvY2t3aXNlIiB4bWxucz0iaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmciIHZpZXdCb3g9IjAgMCAyNCAyNCI+PHN0eWxlPi5jbHMtMXtmaWxsOiMzZDc5Y2M7fS5jbHMtMntmaWxsOiNmZmY7fTwvc3R5bGU+PHRpdGxlPnJvdGF0ZS1jbG9ja3dpc2U8L3RpdGxlPjxwYXRoIGNsYXNzPSJjbHMtMSIgZD0iTTIwLjM0LDE4LjIxYTEwLjI0LDEwLjI0LDAsMCwxLTguMSw0LjIyLDIuMjYsMi4yNiwwLDAsMS0uMTYtNC41MmgwYTUuNTgsNS41OCwwLDAsMCw0LjI1LTIuNTMsNS4wNiw1LjA2LDAsMCwwLC41NC00LjYyQTQuMjUsNC4yNSwwLDAsMCwxNS41NSw5YTQuMzEsNC4zMSwwLDAsMC0yLS44QTQuODIsNC44MiwwLDAsMCwxMC40LDlsMS4xMiwxLjQxQTEuNTksMS41OSwwLDAsMSwxMC4zNiwxM0gyLjY3YTEuNTYsMS41NiwwLDAsMS0xLjI2LS42M0ExLjU0LDEuNTQsMCwwLDEsMS4xMywxMUwyLjg1LDMuNTdBMS41OSwxLjU5LDAsMCwxLDQuMzgsMi40LDEuNTcsMS41NywwLDAsMSw1LjYyLDNMNi43LDQuMzVhMTAuNjYsMTAuNjYsMCwwLDEsNy43Mi0xLjY4QTkuODgsOS44OCwwLDAsMSwxOSw0LjgxLDkuNjEsOS42MSwwLDAsMSwyMS44Myw5LDEwLjA4LDEwLjA4LDAsMCwxLDIwLjM0LDE4LjIxWiIvPjxwYXRoIGNsYXNzPSJjbHMtMiIgZD0iTTE5LjU2LDE3LjY1YTkuMjksOS4yOSwwLDAsMS03LjM1LDMuODMsMS4zMSwxLjMxLDAsMCwxLS4wOC0yLjYyLDYuNTMsNi41MywwLDAsMCw1LTIuOTIsNi4wNSw2LjA1LDAsMCwwLC42Ny01LjUxLDUuMzIsNS4zMiwwLDAsMC0xLjY0LTIuMTYsNS4yMSw1LjIxLDAsMCwwLTIuNDgtMUE1Ljg2LDUuODYsMCwwLDAsOSw4Ljg0TDEwLjc0LDExYS41OS41OSwwLDAsMS0uNDMsMUgyLjdhLjYuNiwwLDAsMS0uNi0uNzVMMy44MSwzLjgzYS41OS41OSwwLDAsMSwxLS4yMWwxLjY3LDIuMWE5LjcxLDkuNzEsMCwwLDEsNy43NS0yLjA3LDguODQsOC44NCwwLDAsMSw0LjEyLDEuOTIsOC42OCw4LjY4LDAsMCwxLDIuNTQsMy43MkE5LjE0LDkuMTQsMCwwLDEsMTkuNTYsMTcuNjVaIi8+PC9zdmc+" + ); + blocksMedia.set( + "rotate-right.svg", + "data:image/svg+xml;base64,PD94bWwgdmVyc2lvbj0iMS4wIiBlbmNvZGluZz0idXRmLTgiPz48c3ZnIGlkPSJyb3RhdGUtY291bnRlci1jbG9ja3dpc2UiIHhtbG5zPSJodHRwOi8vd3d3LnczLm9yZy8yMDAwL3N2ZyIgdmlld0JveD0iMCAwIDI0IDI0Ij48ZGVmcz48c3R5bGU+LmNscy0xe2ZpbGw6IzNkNzljYzt9LmNscy0ye2ZpbGw6I2ZmZjt9PC9zdHlsZT48L2RlZnM+PHRpdGxlPnJvdGF0ZS1jb3VudGVyLWNsb2Nrd2lzZTwvdGl0bGU+PHBhdGggY2xhc3M9ImNscy0xIiBkPSJNMjIuNjgsMTIuMmExLjYsMS42LDAsMCwxLTEuMjcuNjNIMTMuNzJhMS41OSwxLjU5LDAsMCwxLTEuMTYtMi41OGwxLjEyLTEuNDFhNC44Miw0LjgyLDAsMCwwLTMuMTQtLjc3LDQuMzEsNC4zMSwwLDAsMC0yLC44LDQuMjUsNC4yNSwwLDAsMC0xLjM0LDEuNzMsNS4wNiw1LjA2LDAsMCwwLC41NCw0LjYyQTUuNTgsNS41OCwwLDAsMCwxMiwxNy43NGgwYTIuMjYsMi4yNiwwLDAsMS0uMTYsNC41MkExMC4yNSwxMC4yNSwwLDAsMSwzLjc0LDE4LDEwLjE0LDEwLjE0LDAsMCwxLDIuMjUsOC43OCw5LjcsOS43LDAsMCwxLDUuMDgsNC42NCw5LjkyLDkuOTIsMCwwLDEsOS42NiwyLjVhMTAuNjYsMTAuNjYsMCwwLDEsNy43MiwxLjY4bDEuMDgtMS4zNWExLjU3LDEuNTcsMCwwLDEsMS4yNC0uNiwxLjYsMS42LDAsMCwxLDEuNTQsMS4yMWwxLjcsNy4zN0ExLjU3LDEuNTcsMCwwLDEsMjIuNjgsMTIuMloiLz48cGF0aCBjbGFzcz0iY2xzLTIiIGQ9Ik0yMS4zOCwxMS44M0gxMy43N2EuNTkuNTksMCwwLDEtLjQzLTFsMS43NS0yLjE5YTUuOSw1LjksMCwwLDAtNC43LTEuNTgsNS4wNyw1LjA3LDAsMCwwLTQuMTEsMy4xN0E2LDYsMCwwLDAsNywxNS43N2E2LjUxLDYuNTEsMCwwLDAsNSwyLjkyLDEuMzEsMS4zMSwwLDAsMS0uMDgsMi42Miw5LjMsOS4zLDAsMCwxLTcuMzUtMy44MkE5LjE2LDkuMTYsMCwwLDEsMy4xNyw5LjEyLDguNTEsOC41MSwwLDAsMSw1LjcxLDUuNCw4Ljc2LDguNzYsMCwwLDEsOS44MiwzLjQ4YTkuNzEsOS43MSwwLDAsMSw3Ljc1LDIuMDdsMS42Ny0yLjFhLjU5LjU5LDAsMCwxLDEsLjIxTDIyLDExLjA4QS41OS41OSwwLDAsMSwyMS4zOCwxMS44M1oiLz48L3N2Zz4=" + ); + blocksMedia.set( + "dropdown-arrow.svg", + "data:image/svg+xml;base64,PHN2ZyBpZD0iTGF5ZXJfMSIgZGF0YS1uYW1lPSJMYXllciAxIiB4bWxucz0iaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmciIHdpZHRoPSIxMi43MSIgaGVpZ2h0PSI4Ljc5IiB2aWV3Qm94PSIwIDAgMTIuNzEgOC43OSI+PHRpdGxlPmRyb3Bkb3duLWFycm93PC90aXRsZT48ZyBvcGFjaXR5PSIwLjEiPjxwYXRoIGQ9Ik0xMi43MSwyLjQ0QTIuNDEsMi40MSwwLDAsMSwxMiw0LjE2TDguMDgsOC4wOGEyLjQ1LDIuNDUsMCwwLDEtMy40NSwwTDAuNzIsNC4xNkEyLjQyLDIuNDIsMCwwLDEsMCwyLjQ0LDIuNDgsMi40OCwwLDAsMSwuNzEuNzFDMSwwLjQ3LDEuNDMsMCw2LjM2LDBTMTEuNzUsMC40NiwxMiwuNzFBMi40NCwyLjQ0LDAsMCwxLDEyLjcxLDIuNDRaIiBmaWxsPSIjMjMxZjIwIi8+PC9nPjxwYXRoIGQ9Ik02LjM2LDcuNzlhMS40MywxLjQzLDAsMCwxLTEtLjQyTDEuNDIsMy40NWExLjQ0LDEuNDQsMCwwLDEsMC0yYzAuNTYtLjU2LDkuMzEtMC41Niw5Ljg3LDBhMS40NCwxLjQ0LDAsMCwxLDAsMkw3LjM3LDcuMzdBMS40MywxLjQzLDAsMCwxLDYuMzYsNy43OVoiIGZpbGw9IiNmZmYiLz48L3N2Zz4=" + ); + + addon.tab.createBlockContextMenu( + (items) => { + if (addon.self.disabled) return items; + let svgchild = document.querySelector("svg.blocklySvg g.blocklyBlockCanvas"); + + const pasteItemIndex = items.findIndex((obj) => obj._isDevtoolsFirstItem); + const insertBeforeIndex = + pasteItemIndex !== -1 + ? // If "paste" button exists, add own items before it + pasteItemIndex + : // If there's no such button, insert at end + items.length; + + items.splice( + insertBeforeIndex, + 0, + { + enabled: !!svgchild?.childNodes?.length, + text: msg("export_all_to_SVG"), + callback: () => { + exportBlock(false); + }, + separator: true, + }, + { + enabled: !!svgchild?.childNodes?.length, + text: msg("export_all_to_PNG"), + callback: () => { + exportBlock(true); + }, + separator: false, + } + ); + + return items; + }, + { workspace: true } + ); + addon.tab.createBlockContextMenu( + (items, block) => { + if (addon.self.disabled) return items; + const makeSpaceItemIndex = items.findIndex((obj) => obj._isDevtoolsFirstItem); + const insertBeforeIndex = + makeSpaceItemIndex !== -1 + ? // If "make space" button exists, add own items before it + makeSpaceItemIndex + : // If there's no such button, insert at end + items.length; + + items.splice( + insertBeforeIndex, + 0, + { + enabled: true, + text: msg("export_selected_to_SVG"), + callback: () => { + exportBlock(false, block); + }, + separator: true, + }, + { + enabled: true, + text: msg("export_selected_to_PNG"), + callback: () => { + exportBlock(true, block); + }, + separator: false, + } + ); + + return items; + }, + { blocks: true } + ); + + function exportBlock(isExportPNG, block) { + let svg; + if (block) { + svg = selectedBlocks(isExportPNG, block); + } else { + svg = allBlocks(isExportPNG); + } + // resolve nbsp whitespace + svg.querySelectorAll("text").forEach((text) => { + text.innerHTML = text.innerHTML.replace(/ /g, " "); + }); + // resolve image path + let scratchURL = window.location.origin; + + svg.querySelectorAll("image").forEach((item) => { + let builtinSvgData = blocksMedia.get( + item.getAttribute("xlink:href").substring(item.getAttribute("xlink:href").lastIndexOf("/") + 1) + ); + if (builtinSvgData) { + // replace svg file path (official) to inline svg + item.setAttribute("xlink:href", builtinSvgData); + } else if (item.getAttribute("xlink:href").indexOf("/static/") === 0) { + // replace link path for third party website + item.setAttribute("xlink:href", scratchURL + item.getAttribute("xlink:href").slice(0)); + } else if (item.getAttribute("xlink:href").indexOf("./static/") === 0) { + item.setAttribute("xlink:href", scratchURL + item.getAttribute("xlink:href").slice(1)); + } else if (item.getAttribute("xlink:href").indexOf("static/") === 0) { + item.setAttribute("xlink:href", scratchURL + "/" + item.getAttribute("xlink:href")); + } + }); + if (!isExportPNG) { + exportData(new XMLSerializer().serializeToString(svg)); + } else { + exportPNG(svg); + } + } + + function selectedBlocks(isExportPNG, block) { + let svg = exSVG.cloneNode(); + + let svgchild = block.svgGroup_; + svgchild = svgchild.cloneNode(true); + let dataShapes = svgchild.getAttribute("data-shapes"); + svgchild.setAttribute( + "transform", + `translate(0,${dataShapes === "hat" ? "18" : "0"}) ${isExportPNG ? "scale(2)" : ""}` + ); + setCSSVars(svg); + svg.append(makeStyle()); + svg.append(svgchild); + return svg; + } + + function allBlocks(isExportPNG) { + let svg = exSVG.cloneNode(); + + let svgchild = document.querySelector("svg.blocklySvg g.blocklyBlockCanvas"); + svgchild = svgchild.cloneNode(true); + + let xArr = []; + let yArr = []; + + svgchild.childNodes.forEach((g) => { + let x = g.getAttribute("transform").match(/translate\((.*?),(.*?)\)/)[1] || 0; + let y = g.getAttribute("transform").match(/translate\((.*?),(.*?)\)/)[2] || 0; + xArr.push(x * (isExportPNG ? 2 : 1)); + yArr.push(y * (isExportPNG ? 2 : 1)); + g.style.display = ""; // because of TW scratch-blocks changes + }); + + svgchild.setAttribute( + "transform", + `translate(${-Math.min(...xArr)},${-Math.min(...yArr) + 18 * (isExportPNG ? 2 : 1)}) ${ + isExportPNG ? "scale(2)" : "" + }` + ); + setCSSVars(svg); + svg.append(makeStyle()); + svg.append(svgchild); + return svg; + } + + function exportData(text) { + const saveLink = document.createElement("a"); + document.body.appendChild(saveLink); + + const data = new Blob([text], { type: "text" }); + const url = window.URL.createObjectURL(data); + saveLink.href = url; + + // File name: project-DATE-TIME + const date = new Date(); + const timestamp = `${date.toLocaleDateString()}-${date.toLocaleTimeString()}`; + saveLink.download = `block_${timestamp}.svg`; + saveLink.click(); + window.URL.revokeObjectURL(url); + document.body.removeChild(saveLink); + } + + function exportPNG(svg) { + const serializer = new XMLSerializer(); + + const iframe = document.createElement("iframe"); + // iframe.style.display = "none" + document.body.append(iframe); + iframe.contentDocument.write(serializer.serializeToString(svg)); + let { width, height } = iframe.contentDocument.body.querySelector("svg g").getBoundingClientRect(); + height = height + 20 * 2; // hat block height restore + svg.setAttribute("width", width + "px"); + svg.setAttribute("height", height + "px"); + + let canvas = document.createElement("canvas"); + let ctx = canvas.getContext("2d"); + + let img = document.createElement("img"); + + img.setAttribute( + "src", + "data:image/svg+xml;base64," + btoa(unescape(encodeURIComponent(serializer.serializeToString(svg)))) + ); + img.onload = function () { + canvas.height = img.height; + canvas.width = img.width; + ctx.drawImage(img, 0, 0, img.width, img.height); + // Now is done + let dataURL = canvas.toDataURL("image/png"); + let link = document.createElement("a"); + const date = new Date(); + const timestamp = `${date.toLocaleDateString()}-${date.toLocaleTimeString()}`; + + link.download = `block_${timestamp}.png`; + link.href = dataURL; + link.click(); + iframe.remove(); + }; + } +} diff --git a/src/addons/addons/cat-blocks/_manifest_entry.js b/src/addons/addons/cat-blocks/_manifest_entry.js new file mode 100644 index 0000000000000000000000000000000000000000..81812d29096ab4a807f8193709833bce85b027ec --- /dev/null +++ b/src/addons/addons/cat-blocks/_manifest_entry.js @@ -0,0 +1,41 @@ +/* generated by pull.js */ +const manifest = { + "editorOnly": true, + "noTranslations": true, + "name": "Cat blocks", + "description": "Brings back editor cat hat blocks from April Fools 2020.", + "credits": [ + { + "name": "TheColaber", + "link": "https://scratch.mit.edu/users/TheColaber/" + }, + { + "name": "GarboMuffin" + } + ], + "userscripts": [ + { + "url": "userscript.js" + } + ], + "info": [ + { + "type": "notice", + "text": "The \"watch mouse cursor\" setting may impact performance when the editor is open.", + "id": "watch" + } + ], + "settings": [ + { + "id": "watch", + "name": "Watch mouse cursor", + "default": false, + "type": "boolean" + } + ], + "tags": [ + "theme" + ], + "enabledByDefault": false +}; +export default manifest; diff --git a/src/addons/addons/cat-blocks/_runtime_entry.js b/src/addons/addons/cat-blocks/_runtime_entry.js new file mode 100644 index 0000000000000000000000000000000000000000..bc67131957e52185c142f348760610cfaa4f774d --- /dev/null +++ b/src/addons/addons/cat-blocks/_runtime_entry.js @@ -0,0 +1,5 @@ +/* generated by pull.js */ +import _js from "./userscript.js"; +export const resources = { + "userscript.js": _js, +}; diff --git a/src/addons/addons/cat-blocks/userscript.js b/src/addons/addons/cat-blocks/userscript.js new file mode 100644 index 0000000000000000000000000000000000000000..e7a182bc23bbf1adf753823d03c64a0764d61684 --- /dev/null +++ b/src/addons/addons/cat-blocks/userscript.js @@ -0,0 +1,344 @@ +/** + * Based on https://github.com/LLK/scratch-blocks/compare/hotfix/totally-normal-2021 (Apache 2.0) + * It has been modified to work properly in our environment and fix some bugs. + */ + +export default async function ({ addon, console }) { + const Blockly = await addon.tab.traps.getBlockly(); + + const shouldWatchMouseCursor = addon.settings.get("watch"); + + Blockly.BlockSvg.START_HAT_HEIGHT = 31; + + Blockly.BlockSvg.START_HAT_PATH = + "c2.6,-2.3 5.5,-4.3 8.5,-6.2" + + "c-1,-12.5 5.3,-23.3 8.4,-24.8c3.7,-1.8 16.5,13.1 18.4,15.4" + + "c8.4,-1.3 17,-1.3 25.4,0c1.9,-2.3 14.7,-17.2 18.4,-15.4" + + "c3.1,1.5 9.4,12.3 8.4,24.8c3,1.8 5.9,3.9 8.5,6.1"; + + Blockly.BlockSvg.TOP_LEFT_CORNER_DEFINE_HAT = + "c0,-7.1 3.7,-13.3 9.3,-16.9c1.7,-7.5 5.4,-13.2 7.6,-14.2" + + "c2.6,-1.3 10,6 14.6,11.1h33c4.6,-5.1 11.9,-12.4 14.6,-11.1" + + "c1.9,0.9 4.9,5.2 6.8,11.1c2.6,0,5.2,0,7.8,0"; + + Blockly.BlockSvg.prototype.renderCatFace_ = function () { + this.catPath_.svgFace.setAttribute("fill", "#000000"); + + var closedEye = Blockly.utils.createSvgElement("path", {}, this.svgFace_); + closedEye.setAttribute( + "d", + "M25.2-1.1c0.1,0,0.2,0,0.2,0l8.3-2.1l-7-4.8" + + "c-0.5-0.3-1.1-0.2-1.4,0.3s-0.2,1.1,0.3,1.4L29-4.1l-4,1" + + "c-0.5,0.1-0.9,0.7-0.7,1.2C24.3-1.4,24.7-1.1,25.2-1.1z" + ); + closedEye.setAttribute("fill-opacity", "0"); + this.catPath_.svgFace.closedEye = closedEye; + + var closedEye2 = Blockly.utils.createSvgElement("path", {}, this.svgFace_); + closedEye2.setAttribute( + "d", + "M62.4-1.1c-0.1,0-0.2,0-0.2,0l-8.3-2.1l7-4.8" + + "c0.5-0.3,1.1-0.2,1.4,0.3s0.2,1.1-0.3,1.4l-3.4,2.3l4,1" + + "c0.5,0.1,0.9,0.7,0.7,1.2C63.2-1.4,62.8-1.1,62.4-1.1z" + ); + closedEye2.setAttribute("fill-opacity", "0"); + this.catPath_.svgFace.closedEye2 = closedEye2; + + var eye = Blockly.utils.createSvgElement("circle", {}, this.svgFace_); + eye.setAttribute("cx", "59.2"); + eye.setAttribute("cy", "-3.3"); + eye.setAttribute("r", "3.4"); + eye.setAttribute("fill-opacity", "0.6"); + this.catPath_.svgFace.eye = eye; + + var eye2 = Blockly.utils.createSvgElement("circle", {}, this.svgFace_); + eye2.setAttribute("cx", "29.1"); + eye2.setAttribute("cy", "-3.3"); + eye2.setAttribute("r", "3.4"); + eye2.setAttribute("fill-opacity", "0.6"); + this.catPath_.svgFace.eye2 = eye2; + + var mouth = Blockly.utils.createSvgElement("path", {}, this.svgFace_); + mouth.setAttribute( + "d", + "M45.6,0.1c-0.9,0-1.7-0.3-2.3-0.9" + + "c-0.6,0.6-1.3,0.9-2.2,0.9c-0.9,0-1.8-0.3-2.3-0.9c-1-1.1-1.1-2.6-1.1-2.8" + + "c0-0.5,0.5-1,1-1l0,0c0.6,0,1,0.5,1,1c0,0.4,0.1,1.7,1.4,1.7" + + "c0.5,0,0.7-0.2,0.8-0.3c0.3-0.3,0.4-1,0.4-1.3c0-0.1,0-0.1,0-0.2" + + "c0-0.5,0.5-1,1-1l0,0c0.5,0,1,0.4,1,1c0,0,0,0.1,0,0.2" + + "c0,0.3,0.1,0.9,0.4,1.2C44.8-2.2,45-2,45.5-2s0.7-0.2,0.8-0.3" + + "c0.3-0.4,0.4-1.1,0.3-1.3c0-0.5,0.4-1,0.9-1.1c0.5,0,1,0.4,1.1,0.9" + + "c0,0.2,0.1,1.8-0.8,2.8C47.5-0.4,46.8,0.1,45.6,0.1z" + ); + mouth.setAttribute("fill-opacity", "0.6"); + + this.catPath_.ear.setAttribute( + "d", + "M73.1-15.6c1.7-4.2,4.5-9.1,5.8-8.5" + + "c1.6,0.8,5.4,7.9,5,15.4c0,0.6-0.7,0.7-1.1,0.5c-3-1.6-6.4-2.8-8.6-3.6" + + "C72.8-12.3,72.4-13.7,73.1-15.6z" + ); + this.catPath_.ear.setAttribute("fill", "#FFD5E6"); + + this.catPath_.ear2.setAttribute( + "d", + "M22.4-15.6c-1.7-4.2-4.5-9.1-5.8-8.5" + + "c-1.6,0.8-5.4,7.9-5,15.4c0,0.6,0.7,0.7,1.1,0.5c3-1.6,6.4-2.8,8.6-3.6" + + "C22.8-12.3,23.2-13.7,22.4-15.6z" + ); + this.catPath_.ear2.setAttribute("fill", "#FFD5E6"); + }; + + Blockly.BlockSvg.prototype.initCatStuff = function () { + if (this.hasInitCatStuff) return; + this.hasInitCatStuff = true; + + // Ear part of the SVG path for hat blocks + var LEFT_EAR_UP = "c-1,-12.5 5.3,-23.3 8.4,-24.8c3.7,-1.8 16.5,13.1 18.4,15.4"; + var LEFT_EAR_DOWN = "c-5.8,-4.8 -8,-18 -4.9,-19.5c3.7,-1.8 24.5,11.1 31.7,10.1"; + var RIGHT_EAR_UP = "c1.9,-2.3 14.7,-17.2 18.4,-15.4c3.1,1.5 9.4,12.3 8.4,24.8"; + var RIGHT_EAR_DOWN = "c7.2,1 28,-11.9 31.7,-10.1c3.1,1.5 0.9,14.7 -4.9,19.5"; + // Ears look slightly different for define hat blocks + var DEFINE_HAT_LEFT_EAR_UP = "c0,-7.1 3.7,-13.3 9.3,-16.9c1.7,-7.5 5.4,-13.2 7.6,-14.2c2.6,-1.3 10,6 14.6,11.1"; + var DEFINE_HAT_RIGHT_EAR_UP = "h33c4.6,-5.1 11.9,-12.4 14.6,-11.1c1.9,0.9 4.9,5.2 6.8,11.1c2.6,0,5.2,0,7.8,0"; + var DEFINE_HAT_LEFT_EAR_DOWN = + "c0,-4.6 1.6,-8.9 4.3,-12.3c-2.4,-5.6 -2.9,-12.4 -0.7,-13.4c2.1,-1 9.6,2.6 17,5.8" + "c2.6,0 6.2,0 10.9,0"; + var DEFINE_HAT_RIGHT_EAR_DOWN = "c0,0 25.6,0 44,0c7.4,-3.2 14.8,-6.8 16.9,-5.8c1.2,0.6 1.6,2.9 1.3,5.8"; + + var that = this; + this.catPath_.ear = Blockly.utils.createSvgElement("path", {}, this.catPath_); + this.catPath_.ear2 = Blockly.utils.createSvgElement("path", {}, this.catPath_); + if (this.RTL) { + // Mirror the ears. + this.catPath_.ear.setAttribute("transform", "scale(-1 1)"); + this.catPath_.ear2.setAttribute("transform", "scale(-1 1)"); + } + this.catPath_.addEventListener("mouseenter", function (event) { + clearTimeout(that.blinkFn); + // blink + if (event.target.svgFace.eye) { + event.target.svgFace.eye.setAttribute("fill-opacity", "0"); + event.target.svgFace.eye2.setAttribute("fill-opacity", "0"); + event.target.svgFace.closedEye.setAttribute("fill-opacity", "0.6"); + event.target.svgFace.closedEye2.setAttribute("fill-opacity", "0.6"); + } + + // reset after a short delay + that.blinkFn = setTimeout(function () { + if (event.target.svgFace.eye) { + event.target.svgFace.eye.setAttribute("fill-opacity", "0.6"); + event.target.svgFace.eye2.setAttribute("fill-opacity", "0.6"); + event.target.svgFace.closedEye.setAttribute("fill-opacity", "0"); + event.target.svgFace.closedEye2.setAttribute("fill-opacity", "0"); + } + }, 100); + }); + + this.catPath_.ear.addEventListener("mouseenter", function () { + clearTimeout(that.earFn); + clearTimeout(that.ear2Fn); + // ear flick + that.catPath_.ear.setAttribute("fill-opacity", "0"); + that.catPath_.ear2.setAttribute("fill-opacity", ""); + var bodyPath = that.catPath_.svgBody.getAttribute("d"); + bodyPath = bodyPath.replace(RIGHT_EAR_UP, RIGHT_EAR_DOWN); + bodyPath = bodyPath.replace(DEFINE_HAT_RIGHT_EAR_UP, DEFINE_HAT_RIGHT_EAR_DOWN); + bodyPath = bodyPath.replace(LEFT_EAR_DOWN, LEFT_EAR_UP); + bodyPath = bodyPath.replace(DEFINE_HAT_LEFT_EAR_DOWN, DEFINE_HAT_LEFT_EAR_UP); + that.catPath_.svgBody.setAttribute("d", bodyPath); + + // reset after a short delay + that.earFn = setTimeout(function () { + that.catPath_.ear.setAttribute("fill-opacity", ""); + var bodyPath = that.catPath_.svgBody.getAttribute("d"); + bodyPath = bodyPath.replace(RIGHT_EAR_DOWN, RIGHT_EAR_UP); + bodyPath = bodyPath.replace(DEFINE_HAT_RIGHT_EAR_DOWN, DEFINE_HAT_RIGHT_EAR_UP); + that.catPath_.svgBody.setAttribute("d", bodyPath); + }, 50); + }); + this.catPath_.ear2.addEventListener("mouseenter", function () { + clearTimeout(that.earFn); + clearTimeout(that.ear2Fn); + // ear flick + that.catPath_.ear2.setAttribute("fill-opacity", "0"); + that.catPath_.ear.setAttribute("fill-opacity", ""); + var bodyPath = that.catPath_.svgBody.getAttribute("d"); + bodyPath = bodyPath.replace(LEFT_EAR_UP, LEFT_EAR_DOWN); + bodyPath = bodyPath.replace(DEFINE_HAT_LEFT_EAR_UP, DEFINE_HAT_LEFT_EAR_DOWN); + bodyPath = bodyPath.replace(RIGHT_EAR_DOWN, RIGHT_EAR_UP); + bodyPath = bodyPath.replace(DEFINE_HAT_RIGHT_EAR_DOWN, DEFINE_HAT_RIGHT_EAR_UP); + that.catPath_.svgBody.setAttribute("d", bodyPath); + + // reset after a short delay + that.ear2Fn = setTimeout(function () { + that.catPath_.ear2.setAttribute("fill-opacity", ""); + var bodyPath = that.catPath_.svgBody.getAttribute("d"); + bodyPath = bodyPath.replace(LEFT_EAR_DOWN, LEFT_EAR_UP); + bodyPath = bodyPath.replace(DEFINE_HAT_LEFT_EAR_DOWN, DEFINE_HAT_LEFT_EAR_UP); + that.catPath_.svgBody.setAttribute("d", bodyPath); + }, 50); + }); + if (this.RTL) { + // Set to the correct initial position + this.svgFace_.style.transform = "translate(-87px, 0px)"; + } + if (this.shouldWatchMouse()) { + this.windowListener = function (event) { + var time = Date.now(); + if (time < that.lastCallTime + that.CALL_FREQUENCY_MS) return; + that.lastCallTime = time; + if (!that.shouldWatchMouse()) return; + + // mouse watching + if (that.workspace) { + // not disposed + var xy = that.getCatFacePosition(); + var mouseLocation = { + x: event.x / that.workspace.scale, + y: event.y / that.workspace.scale, + }; + + var dx = mouseLocation.x - xy.x; + var dy = mouseLocation.y - xy.y; + var theta = Math.atan2(dx, dy); + + // Map the vector from the cat face to the mouse location to a much shorter + // vector in the same direction, which will be the translation vector for + // the cat face + var delta = Math.sqrt(dx * dx + dy * dy); + var scaleFactor = delta / (delta + 1); + + // Equation for radius of ellipse at theta for axes with length a and b + var a = 2; + var b = 5; + var r = (a * b) / Math.sqrt(Math.pow(b * Math.cos(theta), 2) + Math.pow(a * Math.sin(theta), 2)); + + // Convert polar coordinate back to x, y coordinate + dx = r * scaleFactor * Math.sin(theta); + dy = r * scaleFactor * Math.cos(theta); + + if (that.RTL) dx -= 87; // Translate face over + that.svgFace_.style.transform = "translate(" + dx + "px, " + dy + "px)"; + } + }; + document.addEventListener("mousemove", this.windowListener); + } + }; + + let workspacePositionRect = null; + Blockly.BlockSvg.prototype.getCatFacePosition = function () { + // getBoundingClientRect is not performant + //var offset = that.workspace.getParentSvg().getBoundingClientRect(); + if (!workspacePositionRect) { + workspacePositionRect = this.workspace.getParentSvg().getBoundingClientRect(); + } + var offset = { x: workspacePositionRect.x, y: workspacePositionRect.y }; + + if (!this.isInFlyout && this.workspace.getFlyout()) { + offset.x += this.workspace.getFlyout().getWidth(); + } + + offset.x += this.workspace.scrollX; + offset.y += this.workspace.scrollY; + + var xy = this.getRelativeToSurfaceXY(this.svgGroup_); + if (this.RTL) { + xy.x = this.workspace.getWidth() - xy.x - this.width; + } + // convert to workspace units + xy.x += offset.x / this.workspace.scale; + xy.y += offset.y / this.workspace.scale; + // distance to center of face + xy.x -= 43.5; + xy.y -= 4; + // flyout category offset + xy.x += 60; + if (this.RTL) { + // We've been calculating from the right edge. Convert x to from left edge. + xy.x = screen.width - xy.x; + } + return xy; + }; + + Blockly.BlockSvg.prototype.shouldWatchMouse = function () { + if (!shouldWatchMouseCursor) return false; + // if (window.vmLoadHigh || !window.CAT_CHASE_MOUSE) return false; + var xy = this.getCatFacePosition(); + const MARGIN = 50; + var blockXOnScreen = xy.x > -MARGIN && xy.x - MARGIN < screen.width / this.workspace.scale; + var blockYOnScreen = xy.y > -MARGIN && xy.y - MARGIN < screen.height / this.workspace.scale; + return this.startHat_ && !this.isGlowingStack_ && blockXOnScreen && blockYOnScreen; + }; + + const originalRenderDraw = Blockly.BlockSvg.prototype.renderDraw_; + Blockly.BlockSvg.prototype.renderDraw_ = function (...args) { + if (!this.svgFace_) { + this.sa_catBlockConstructor(); + } + const r = originalRenderDraw.call(this, ...args); + if (!this.outputConnection && !this.previousConnection) { + this.initCatStuff(); + } + if (this.startHat_ && !this.svgFace_.firstChild) { + this.renderCatFace_(); + } + return r; + }; + + const originalDispose = Blockly.BlockSvg.prototype.dispose; + Blockly.BlockSvg.prototype.dispose = function (...args) { + clearTimeout(this.blinkFn); + clearTimeout(this.earFn); + clearTimeout(this.ear2Fn); + if (this.windowListener) { + document.removeEventListener("mousemove", this.windowListener); + } + return originalDispose.call(this, ...args); + }; + + const originalSetGlowStack = Blockly.BlockSvg.prototype.setGlowStack; + Blockly.BlockSvg.prototype.setGlowStack = function (isGlowingStack) { + if (this.windowListener) { + if (isGlowingStack) { + // For performance, don't follow the mouse when the stack is glowing + document.removeEventListener("mousemove", this.windowListener); + if (this.workspace && this.svgFace_.style) { + // reset face direction + if (this.RTL) { + this.svgFace_.style.transform = "translate(-87px, 0px)"; + } else { + this.svgFace_.style.transform = ""; + } + } + } else { + document.addEventListener("mousemove", this.windowListener); + } + } + return originalSetGlowStack.call(this, isGlowingStack); + }; + + Blockly.BlockSvg.prototype.sa_catBlockConstructor = function () { + this.catPath_ = Blockly.utils.createSvgElement("g", {}, this.svgGroup_); + + this.svgFace_ = Blockly.utils.createSvgElement("g", {}, this.catPath_); + this.catPath_.svgFace = this.svgFace_; + this.catPath_.svgBody = this.svgPath_; + this.lastCallTime = 0; + this.CALL_FREQUENCY_MS = 60; + }; + + const workspace = Blockly.getMainWorkspace(); + if (workspace) { + const vm = addon.tab.traps.vm; + if (vm.editingTarget) { + vm.emitWorkspaceUpdate(); + } + const flyout = workspace.getFlyout(); + if (flyout) { + const flyoutWorkspace = flyout.getWorkspace(); + Blockly.Xml.clearWorkspaceAndLoadFromXml(Blockly.Xml.workspaceToDom(flyoutWorkspace), flyoutWorkspace); + workspace.getToolbox().refreshSelection(); + workspace.toolboxRefreshEnabled_ = true; + } + } +} diff --git a/src/addons/addons/clones/300cats.svg b/src/addons/addons/clones/300cats.svg new file mode 100644 index 0000000000000000000000000000000000000000..a056692a3b3973973258b043d5d403aca0704bfe Binary files /dev/null and b/src/addons/addons/clones/300cats.svg differ diff --git a/src/addons/addons/clones/_manifest_entry.js b/src/addons/addons/clones/_manifest_entry.js new file mode 100644 index 0000000000000000000000000000000000000000..697b465351cee036a53c5922a39582da96d6f4a2 --- /dev/null +++ b/src/addons/addons/clones/_manifest_entry.js @@ -0,0 +1,40 @@ +/* generated by pull.js */ +const manifest = { + "editorOnly": true, + "name": "Clone counter", + "description": "Adds a counter above the stage in the editor which shows the total amount of clones.", + "credits": [ + { + "name": "Jeffalo" + }, + { + "name": "OregSam", + "link": "https://scratch.mit.edu/users/simiagain/" + } + ], + "dynamicDisable": true, + "userscripts": [ + { + "url": "userscript.js" + } + ], + "userstyles": [ + { + "url": "style.css" + } + ], + "settings": [ + { + "dynamic": true, + "id": "showicononly", + "name": "Show icon only", + "default": false, + "type": "boolean" + } + ], + "tags": [ + "recommended" + ], + "enabledByDefault": false +}; +export default manifest; diff --git a/src/addons/addons/clones/_runtime_entry.js b/src/addons/addons/clones/_runtime_entry.js new file mode 100644 index 0000000000000000000000000000000000000000..417353837ccd9bf5600107a6b87f49fcefe4de3d --- /dev/null +++ b/src/addons/addons/clones/_runtime_entry.js @@ -0,0 +1,11 @@ +/* generated by pull.js */ +import _js from "./userscript.js"; +import _css from "!css-loader!./style.css"; +import _asset from "!url-loader!./300cats.svg"; +import _asset2 from "!url-loader!./cat.svg"; +export const resources = { + "userscript.js": _js, + "style.css": _css, + "300cats.svg": _asset, + "cat.svg": _asset2, +}; diff --git a/src/addons/addons/clones/cat.svg b/src/addons/addons/clones/cat.svg new file mode 100644 index 0000000000000000000000000000000000000000..6f3340943e29a662e95f645c8a94b4d3cf206247 Binary files /dev/null and b/src/addons/addons/clones/cat.svg differ diff --git a/src/addons/addons/clones/style.css b/src/addons/addons/clones/style.css new file mode 100644 index 0000000000000000000000000000000000000000..234ef4594bdcf0bd80818b0a4055957ee4609366 --- /dev/null +++ b/src/addons/addons/clones/style.css @@ -0,0 +1,42 @@ +.clone-container-container { + display: none; + align-items: center; + padding: 0.25rem; + user-select: none; + color: #a065ff; +} + +.clone-container { + font-size: 0.625rem; + font-weight: bold; + font-family: "Helvetica Neue", Helvetica, Arial, sans-serif; + white-space: nowrap; +} + +.clone-icon { + margin: 0.25rem; + display: inline-block; + background-image: url("./cat.svg"); + height: 16px; + width: 16px; +} + +.clone-container-container[data-count="none"] { + display: none; +} + +.clone-container-container[data-count="full"] { + color: #ff6680; +} + +.clone-container-container[data-count="full"] .clone-icon { + background-image: url("./300cats.svg"); +} + +.clone-count::after { + content: attr(data-str); +} + +.sa-clones-small .clone-container-container { + display: none !important; +} diff --git a/src/addons/addons/clones/userscript.js b/src/addons/addons/clones/userscript.js new file mode 100644 index 0000000000000000000000000000000000000000..0aa349558d5cdf40b4a93d09d716d9ca07af0e42 --- /dev/null +++ b/src/addons/addons/clones/userscript.js @@ -0,0 +1,99 @@ +export default async function ({ addon, console, msg }) { + const vm = addon.tab.traps.vm; + + let showIconOnly = addon.settings.get("showicononly"); + + if (addon.tab.redux.state && addon.tab.redux.state.scratchGui.stageSize.stageSize === "small") { + document.body.classList.add("sa-clones-small"); + } + document.addEventListener( + "click", + (e) => { + if (e.target.closest("[class*='stage-header_stage-button-first']")) { + document.body.classList.add("sa-clones-small"); + } else if (e.target.closest("[class*='stage-header_stage-button-last']")) { + document.body.classList.remove("sa-clones-small"); + } + }, + { capture: true } + ); + + let countContainerContainer = document.createElement("div"); + addon.tab.displayNoneWhileDisabled(countContainerContainer); + + let countContainer = document.createElement("div"); + let count = document.createElement("span"); + let icon = document.createElement("span"); + + countContainerContainer.className = "clone-container-container"; + countContainer.className = "clone-container"; + count.className = "clone-count"; + icon.className = "clone-icon"; + + countContainerContainer.appendChild(icon); + countContainerContainer.appendChild(countContainer); + countContainer.appendChild(count); + + let lastChecked = 0; + + const cache = Array(301) + .fill() + .map((_, i) => msg("clones", { cloneCount: i })); + + function doCloneChecks(force) { + const v = vm.runtime._cloneCounter; + // performance + if (v === lastChecked && !force) return; + lastChecked = v; + if (v === 0) { + countContainerContainer.dataset.count = "none"; + } else if (v >= vm.runtime.runtimeOptions.maxClones) { + countContainerContainer.dataset.count = "full"; + } else { + countContainerContainer.dataset.count = ""; + } + if (showIconOnly) { + count.dataset.str = v; + } else { + count.dataset.str = cache[v] || msg("clones", { cloneCount: v }); + } + + if (v === 0) countContainerContainer.style.display = "none"; + else countContainerContainer.style.display = "flex"; + } + + addon.settings.addEventListener("change", () => { + showIconOnly = addon.settings.get("showicononly"); + doCloneChecks(true); + }); + + const oldStep = vm.runtime._step; + vm.runtime._step = function (...args) { + const ret = oldStep.call(this, ...args); + doCloneChecks(); + return ret; + }; + + /* + if (addon.self.enabledLate) { + // Clone count might be inaccurate if the user deleted sprites + // before enabling the addon + let count = 0; + for (let target of vm.runtime.targets) { + if (!target.isOriginal) ++count; + } + vm.runtime._cloneCounter = count; + } + */ + + while (true) { + await addon.tab.waitForElement('[class*="controls_controls-container"]', { + markAsSeen: true, + reduxEvents: ["scratch-gui/mode/SET_PLAYER", "fontsLoaded/SET_FONTS_LOADED", "scratch-gui/locales/SELECT_LOCALE"], + }); + + if (addon.tab.editorMode === "editor" || addon.tab.redux.state.scratchGui.mode.isEmbedded) { + addon.tab.appendToSharedSpace({ space: "afterStopButton", element: countContainerContainer, order: 2 }); + } + } +} \ No newline at end of file diff --git a/src/addons/addons/color-picker/_manifest_entry.js b/src/addons/addons/color-picker/_manifest_entry.js new file mode 100644 index 0000000000000000000000000000000000000000..f7d0daf06d7edb246cda159eb47901ad99e53472 --- /dev/null +++ b/src/addons/addons/color-picker/_manifest_entry.js @@ -0,0 +1,30 @@ +/* generated by pull.js */ +const manifest = { + "editorOnly": true, + "name": "Hex color picker", + "description": "Adds hex code inputs to color pickers.", + "tags": [ + "recommended" + ], + "credits": [ + { + "name": "Richie Bendall" + }, + { + "name": "apple502j" + } + ], + "userscripts": [ + { + "url": "userscript.js" + } + ], + "userstyles": [ + { + "url": "style.css" + } + ], + "dynamicDisable": true, + "enabledByDefault": true +}; +export default manifest; diff --git a/src/addons/addons/color-picker/_runtime_entry.js b/src/addons/addons/color-picker/_runtime_entry.js new file mode 100644 index 0000000000000000000000000000000000000000..76c9ca1f43154011942db097b82ae033d913de82 --- /dev/null +++ b/src/addons/addons/color-picker/_runtime_entry.js @@ -0,0 +1,7 @@ +/* generated by pull.js */ +import _js from "./userscript.js"; +import _css from "!css-loader!./style.css"; +export const resources = { + "userscript.js": _js, + "style.css": _css, +}; diff --git a/src/addons/addons/color-picker/code-editor.js b/src/addons/addons/color-picker/code-editor.js new file mode 100644 index 0000000000000000000000000000000000000000..9bbc01f9c1db95f4bf5355894a7b4c911dca04fc --- /dev/null +++ b/src/addons/addons/color-picker/code-editor.js @@ -0,0 +1,88 @@ +import { normalizeHex, getHexRegex } from "../../libraries/common/cs/normalize-color.js"; +import RateLimiter from "../../libraries/common/cs/rate-limiter.js"; +import tinycolor from "../../libraries/thirdparty/cs/tinycolor-min.js"; + +export default async ({ addon, console, msg }) => { + // 250-ms rate limit + const rateLimiter = new RateLimiter(250); + const getColor = (element) => { + const { children } = element.parentElement; + // h: 0 - 360 + const h = children[1].getAttribute("aria-valuenow"); + // s: 0 - 1 + const s = children[3].getAttribute("aria-valuenow"); + // v: 0 - 255, divide by 255 + const vMultipliedBy255 = children[5].getAttribute("aria-valuenow"); + const v = Number(vMultipliedBy255) / 255; + return tinycolor(`hsv(${h}, ${s}, ${v || 0})`).toHexString(); + }; + const setColor = (hex, element) => { + hex = normalizeHex(hex); + if (!addon.tab.redux.state || !addon.tab.redux.state.scratchGui) return; + // The only way to reliably set color is to invoke eye dropper via click() + // then faking that the eye dropper reported the value. + const onEyeDropperClosed = ({ detail }) => { + if (detail.action.type !== "scratch-gui/color-picker/DEACTIVATE_COLOR_PICKER") return; + addon.tab.redux.removeEventListener("statechanged", onEyeDropperClosed); + setTimeout(() => { + document.body.classList.remove("sa-hide-eye-dropper-background"); + }, 50); + }; + const onEyeDropperOpened = ({ detail }) => { + if (detail.action.type !== "scratch-gui/color-picker/ACTIVATE_COLOR_PICKER") return; + addon.tab.redux.removeEventListener("statechanged", onEyeDropperOpened); + addon.tab.redux.addEventListener("statechanged", onEyeDropperClosed); + setTimeout(() => { + addon.tab.redux.dispatch({ + type: "scratch-gui/color-picker/DEACTIVATE_COLOR_PICKER", + color: hex, + }); + }, 50); + }; + addon.tab.redux.addEventListener("statechanged", onEyeDropperOpened); + document.body.classList.add("sa-hide-eye-dropper-background"); + element.click(); + }; + const addColorPicker = () => { + const element = document.querySelector("button.scratchEyedropper"); + rateLimiter.abort(false); + addon.tab.redux.initialize(); + const defaultColor = getColor(element); + const saColorPicker = Object.assign(document.createElement("div"), { + className: "sa-color-picker sa-color-picker-code", + }); + addon.tab.displayNoneWhileDisabled(saColorPicker, { display: "flex" }); + const saColorPickerColor = Object.assign(document.createElement("input"), { + className: "sa-color-picker-color sa-color-picker-code-color", + type: "color", + value: defaultColor || "#000000", + }); + const saColorPickerText = Object.assign(document.createElement("input"), { + className: addon.tab.scratchClass("input_input-form", { + others: "sa-color-picker-text sa-color-picker-code-text", + }), + type: "text", + pattern: "^#?([0-9a-fA-F]{3}){1,2}$", + placeholder: msg("hex"), + value: defaultColor || "", + }); + saColorPickerColor.addEventListener("input", () => + rateLimiter.limit(() => setColor((saColorPickerText.value = saColorPickerColor.value), element)) + ); + saColorPickerText.addEventListener("change", () => { + const { value } = saColorPickerText; + if (!getHexRegex().test(value)) return; + setColor((saColorPickerColor.value = normalizeHex(value)), element); + }); + saColorPicker.appendChild(saColorPickerColor); + saColorPicker.appendChild(saColorPickerText); + element.parentElement.insertBefore(saColorPicker, element); + }; + const ScratchBlocks = await addon.tab.traps.getBlockly(); + const originalShowEditor = ScratchBlocks.FieldColourSlider.prototype.showEditor_; + ScratchBlocks.FieldColourSlider.prototype.showEditor_ = function (...args) { + const r = originalShowEditor.call(this, ...args); + addColorPicker(); + return r; + }; +}; diff --git a/src/addons/addons/color-picker/paint-editor.js b/src/addons/addons/color-picker/paint-editor.js new file mode 100644 index 0000000000000000000000000000000000000000..123128173c7461925a2c9edb48085cb1b3772773 --- /dev/null +++ b/src/addons/addons/color-picker/paint-editor.js @@ -0,0 +1,109 @@ +/** + * !!! TW: This file is unused. + */ + +import { normalizeHex, getHexRegex } from "../../libraries/common/cs/normalize-color.js"; +import RateLimiter from "../../libraries/common/cs/rate-limiter.js"; + +export default async ({ addon, console, msg }) => { + let prevEventHandler; + // 250-ms rate limit + const rateLimiter = new RateLimiter(250); + const getColor = (element) => { + let fillOrStroke; + const state = addon.tab.redux.state; + if (state.scratchPaint.modals.fillColor) { + fillOrStroke = "fill"; + } else if (state.scratchPaint.modals.strokeColor) { + fillOrStroke = "stroke"; + } else { + // fillOrStroke = "ihadastroke"; + return; + } + const colorType = state.scratchPaint.fillMode.colorIndex; + const primaryOrSecondary = ["primary", "secondary"][colorType]; + const color = state.scratchPaint.color[`${fillOrStroke}Color`][primaryOrSecondary]; + if (color === null || color === "scratch-paint/style-path/mixed") return; + // This value can be arbitrary - it can be HEX, RGB, etc. + // Use tinycolor to convert them. + return tinycolor(color).toHexString(); + }; + const setColor = (hex, element) => { + hex = normalizeHex(hex); + if (!addon.tab.redux.state || !addon.tab.redux.state.scratchPaint) return; + // The only way to reliably set color is to invoke eye dropper via click() + // then faking that the eye dropper reported the value. + const onEyeDropperOpened = ({ detail }) => { + if (detail.action.type !== "scratch-paint/eye-dropper/ACTIVATE_COLOR_PICKER") return; + addon.tab.redux.removeEventListener("statechanged", onEyeDropperOpened); + setTimeout(() => { + const previousTool = addon.tab.redux.state.scratchPaint.color.eyeDropper.previousTool; + if (previousTool) previousTool.activate(); + addon.tab.redux.state.scratchPaint.color.eyeDropper.callback( + tinycolor(hex).setAlpha(scratchAddons.opacitySliderAlpha).toRgbString() + ); + addon.tab.redux.dispatch({ + type: "scratch-paint/eye-dropper/DEACTIVATE_COLOR_PICKER", + }); + }, 50); + }; + addon.tab.redux.addEventListener("statechanged", onEyeDropperOpened); + element.children[1].children[0].click(); + }; + while (true) { + const element = await addon.tab.waitForElement('div[class*="color-picker_swatch-row"]', { + markAsSeen: true, + reduxCondition: (state) => state.scratchGui.editorTab.activeTabIndex === 1 && !state.scratchGui.mode.isPlayerOnly, + }); + rateLimiter.abort(false); + addon.tab.redux.initialize(); + if (!("colorIndex" in addon.tab.redux.state.scratchPaint.fillMode)) { + console.error("Detected new paint editor; this will be supported in future versions."); + return; + } + if (addon.tab.redux && typeof prevEventHandler === "function") { + addon.tab.redux.removeEventListener("statechanged", prevEventHandler); + prevEventHandler = null; + } + if (addon.tab.editorMode !== "editor") continue; + const defaultColor = getColor(element); + const saColorPicker = Object.assign(document.createElement("div"), { + className: "sa-color-picker sa-color-picker-paint", + }); + addon.tab.displayNoneWhileDisabled(saColorPicker, { display: "flex" }); + const saColorPickerColor = Object.assign(document.createElement("input"), { + className: "sa-color-picker-color sa-color-picker-paint-color", + type: "color", + value: defaultColor || "#000000", + }); + const inputClass = document.querySelector('[class*="fixed-tools_costume-input"]').className.split(" ")[0]; + const saColorPickerText = Object.assign(document.createElement("input"), { + className: `sa-color-picker-text sa-color-picker-paint-text ${inputClass}`, + type: "text", + pattern: "^#?([0-9a-fA-F]{3}){1,2}$", + placeholder: msg("hex"), + value: defaultColor || "", + }); + saColorPickerColor.addEventListener("input", () => + rateLimiter.limit(() => setColor((saColorPickerText.value = saColorPickerColor.value), element)) + ); + saColorPickerText.addEventListener("change", () => { + const { value } = saColorPickerText; + if (!getHexRegex().test(value)) return; + setColor((saColorPickerColor.value = normalizeHex(value)), element); + }); + prevEventHandler = ({ detail }) => { + if (detail.action.type === "scratch-paint/color-index/CHANGE_COLOR_INDEX") { + setTimeout(() => { + const color = getColor(element); + saColorPickerColor.value = color || "#000000"; + saColorPickerText.value = color || ""; + }, 100); + } + }; + addon.tab.redux.addEventListener("statechanged", prevEventHandler); + saColorPicker.appendChild(saColorPickerColor); + saColorPicker.appendChild(saColorPickerText); + element.parentElement.insertBefore(saColorPicker, element); + } +}; diff --git a/src/addons/addons/color-picker/style.css b/src/addons/addons/color-picker/style.css new file mode 100644 index 0000000000000000000000000000000000000000..47f02c55636cfa627c3bdbe5619d642475e0db0d --- /dev/null +++ b/src/addons/addons/color-picker/style.css @@ -0,0 +1,57 @@ +.sa-color-picker { + display: flex; +} + +.sa-color-picker-code { + margin: 8px 0; +} + +.sa-color-picker-paint { + margin-top: 16px; + margin-bottom: 4px; +} + +.sa-color-picker > .sa-color-picker-color { + border: none; + border-top-left-radius: 1rem; + border-bottom-left-radius: 1rem; + padding: 0; + padding-left: 0.6rem; + padding-right: 0.4rem; + margin-left: 0.5rem; + outline: none; + box-sizing: border-box; + width: 3rem; + height: 2rem; +} +[theme="dark"] .sa-color-picker > .sa-color-picker-color { + background: var(--ui-secondary); +} + +.sa-color-picker > .sa-color-picker-text { + box-sizing: border-box; + width: calc(150px - 3rem); + border-top-left-radius: 0; + border-bottom-left-radius: 0; +} + +[dir="rtl"] .sa-color-picker > .sa-color-picker-color { + border-top-left-radius: 0; + border-bottom-left-radius: 0; + border-top-right-radius: 1rem; + border-bottom-right-radius: 1rem; + margin-left: 0; + margin-right: 0.5rem; +} + +[dir="rtl"] .sa-color-picker > .sa-color-picker-text { + border-top-left-radius: 1rem; + border-bottom-left-radius: 1rem; + border-top-right-radius: 0; + border-bottom-right-radius: 0; +} + +body.sa-hide-eye-dropper-background div[class*="stage_color-picker-background"] { + /* Do not show eye dropper background if the color picker is "fake" */ + display: none; +} diff --git a/src/addons/addons/color-picker/userscript.js b/src/addons/addons/color-picker/userscript.js new file mode 100644 index 0000000000000000000000000000000000000000..9850cb33940245e6ec5dabfe3abfea271fa5c6e4 --- /dev/null +++ b/src/addons/addons/color-picker/userscript.js @@ -0,0 +1,5 @@ +import codeEditorHandler from "./code-editor.js"; + +export default async (api) => { + codeEditorHandler(api); +}; diff --git a/src/addons/addons/columns/_manifest_entry.js b/src/addons/addons/columns/_manifest_entry.js new file mode 100644 index 0000000000000000000000000000000000000000..717a2cfe0acd97515fe433c48cf92b60db4ca7f6 --- /dev/null +++ b/src/addons/addons/columns/_manifest_entry.js @@ -0,0 +1,26 @@ +/* generated by pull.js */ +const manifest = { + "editorOnly": true, + "noTranslations": true, + "name": "Two-column category menu", + "description": "Splits the block category menu into two columns and moves it to the top of the block palette, like in Scratch 2.0.", + "credits": [ + { + "name": "TheColaber", + "link": "https://scratch.mit.edu/TheColaber" + } + ], + "tags": [], + "dynamicDisable": true, + "userscripts": [ + { + "url": "userscript.js" + } + ], + "userstyles": [ + { + "url": "style.css" + } + ] +}; +export default manifest; diff --git a/src/addons/addons/columns/_runtime_entry.js b/src/addons/addons/columns/_runtime_entry.js new file mode 100644 index 0000000000000000000000000000000000000000..76c9ca1f43154011942db097b82ae033d913de82 --- /dev/null +++ b/src/addons/addons/columns/_runtime_entry.js @@ -0,0 +1,7 @@ +/* generated by pull.js */ +import _js from "./userscript.js"; +import _css from "!css-loader!./style.css"; +export const resources = { + "userscript.js": _js, + "style.css": _css, +}; diff --git a/src/addons/addons/columns/style.css b/src/addons/addons/columns/style.css new file mode 100644 index 0000000000000000000000000000000000000000..5e3b1ed6bbf9a098e8818cfe92d08d3808f3c906 --- /dev/null +++ b/src/addons/addons/columns/style.css @@ -0,0 +1,103 @@ +[class*="blocks_blocks_"] .blocklyToolboxDiv { + width: 310px; + height: auto !important; +} + +.scratchCategoryMenu { + width: 100%; + columns: 2; + column-gap: 0.5rem; + padding: 0.25rem; +} + +.scratchCategorySecondMenu { + columns: 1; + display: grid; + grid-template-columns: repeat(2, 1fr); + padding-bottom: 2.25rem; +} + +.scratchCategorySecondMenu:empty { + padding-top: 0; + padding-bottom: 2rem; +} + +.scratchCategoryMenuItem { + display: inline-flex; /* inline so that it isn't split between both columns */ + width: 100%; + padding: 0.25rem; + border-radius: 0.875rem; +} + +.scratchCategoryItemBubble, +.scratchCategoryItemIcon { + margin: 0; + margin-inline-end: 0.5rem; +} + +.scratchCategoryMenuItemLabel { + flex: 1; + display: flex; + align-items: center; +} + +[class*="gui_extension-button-container_"] { + top: var(--sa-add-extension-button-y); + bottom: auto; + margin-inline-start: 0.5rem; + width: calc(308px - 1rem); + height: calc(1.75rem - 2px); + background-color: transparent; + border-color: var(--ui-black-transparent, rgba(0, 0, 0, 0.15)); +} + +/* [dir] is for specificity to override editor-stage-left */ +[dir] [class*="gui_extension-button-container_"] { + border-radius: 0.25rem; +} + +[class*="gui_extension-button-container_"]:hover { + background-color: var(--ui-tertiary, white); +} + +[class*="gui_extension-button-container_"]::before { + display: none; +} + +[class*="gui_extension-button_"] { + display: flex; + align-items: center; + padding-inline: 0; +} + +[class*="gui_extension-button-icon_"] { + filter: var(--editorDarkMode-categoryMenu-invertedFilter, brightness(0.4)); +} + +[class*="gui_extension-button-container_"]:hover [class*="gui_extension-button-icon_"] { + filter: var(--editorDarkMode-accent-invertedFilter, brightness(0.4)); +} +[theme="dark"] [class*="gui_extension-button-icon_"] { + filter: none !important; +} + +.sa-add-extension-label { + color: var(--text-primary, #575e75); + font-size: 0.65rem; +} + +[class*="gui_extension-button-container_"]:hover .sa-add-extension-label { + color: var(--text-primary, #575e75); + font-size: 0.65rem; +} + +/* hide-flyout compatibility */ + +[class*="gui_tabs_"] { + --sa-flyout-width: 310px; + --sa-category-width: 0; +} + +.sa-flyout-placeHolder { + top: calc(var(--sa-flyout-y)); +} diff --git a/src/addons/addons/columns/userscript.js b/src/addons/addons/columns/userscript.js new file mode 100644 index 0000000000000000000000000000000000000000..de81172f475bec2fbeba275a30397b940bae9cd3 --- /dev/null +++ b/src/addons/addons/columns/userscript.js @@ -0,0 +1,171 @@ +export default async function ({ addon, msg, console }) { + const Blockly = await addon.tab.traps.getBlockly(); + + // https://github.com/LLK/scratch-blocks/blob/893c7e7ad5bfb416eaed75d9a1c93bdce84e36ab/core/toolbox.js#L235 + const _ToolboxPosition = Blockly.Toolbox.prototype.position; + Blockly.Toolbox.prototype.position = function () { + _ToolboxPosition.call(this); + + // Update flyout position when category menu height changes. + if (this.HtmlDiv && !this.HtmlDiv._observer) { + this.HtmlDiv._observer = new ResizeObserver(() => { + this.flyout_.position(); + }); + this.HtmlDiv._observer.observe(this.HtmlDiv); + } + }; + + // https://github.com/LLK/scratch-blocks/blob/893c7e7ad5bfb416eaed75d9a1c93bdce84e36ab/core/flyout_vertical.js#L314 + const _VerticalFlyoutPosition = Blockly.VerticalFlyout.prototype.position; + Blockly.VerticalFlyout.prototype.position = function () { + _VerticalFlyoutPosition.call(this); + if (addon.self.disabled || !this.isVisible()) { + return; + } + var targetWorkspaceMetrics = this.targetWorkspace_.getMetrics(); + if (!targetWorkspaceMetrics) { + // Hidden components will return null. + return; + } + + // In RTL, subtract the total width of left and right workspace borders and the category menu border + // from the workspace width. + var x = this.toolboxPosition_ === Blockly.TOOLBOX_AT_RIGHT ? targetWorkspaceMetrics.viewWidth - 3 : 0; + var y = this.parentToolbox_.HtmlDiv.offsetHeight; + + // Addon sets the width of the flyout to the width of the toolbox. + this.width_ = this.parentToolbox_.getWidth(); + this.height_ = Math.max(0, targetWorkspaceMetrics.viewHeight - y); + + this.setBackgroundPath_(this.width_, this.height_); + + this.svgGroup_.setAttribute("width", this.width_); + this.svgGroup_.setAttribute("height", this.height_); + var transform = "translate(" + x + "px," + y + "px)"; + Blockly.utils.setCssTransform(this.svgGroup_, transform); + + // Update the scrollbar (if one exists). + if (this.scrollbar_) { + // Set the scrollbars origin to be the top left of the flyout. + this.scrollbar_.setOrigin( + x + (this.toolboxPosition_ === Blockly.TOOLBOX_AT_RIGHT ? 0 : this.width_ - this.getWidth()), + y + ); + this.scrollbar_.resize(); + } + + // Set CSS variables for the userstyle. + const container = this.svgGroup_.closest("[class*='gui_tab-panel_']"); + container.style.setProperty("--sa-add-extension-button-y", `${y - 33}px`); + container.parentElement.style.setProperty("--sa-flyout-y", `${y}px`); + }; + + // https://github.com/LLK/scratch-blocks/blob/893c7e7ad5bfb416eaed75d9a1c93bdce84e36ab/core/flyout_base.js#L370 + const _VerticalFlyoutGetWidth = Blockly.VerticalFlyout.prototype.getWidth; + Blockly.VerticalFlyout.prototype.getWidth = function () { + // In RTL, this will be called by Blockly to position blocks inside the flyout. + let width = _VerticalFlyoutGetWidth.call(this); + if (!addon.self.disabled) width += 60; + return width; + }; + + // https://github.com/LLK/scratch-blocks/blob/893c7e7ad5bfb416eaed75d9a1c93bdce84e36ab/core/toolbox.js#L595 + const _CategoryMenuCreateDom = Blockly.Toolbox.CategoryMenu.prototype.createDom; + Blockly.Toolbox.CategoryMenu.prototype.createDom = function () { + _CategoryMenuCreateDom.call(this); + if (addon.self.disabled) return; + this.secondTable = document.createElement("div"); + this.secondTable.className = + "scratchCategorySecondMenu " + + (this.parent_.horizontalLayout_ ? "scratchCategoryMenuHorizontal" : "scratchCategoryMenu"); + this.parentHtml_.appendChild(this.secondTable); + }; + + // https://github.com/LLK/scratch-blocks/blob/893c7e7ad5bfb416eaed75d9a1c93bdce84e36ab/core/toolbox.js#L606 + const _CategoryMenuPopulate = Blockly.Toolbox.CategoryMenu.prototype.populate; + Blockly.Toolbox.CategoryMenu.prototype.populate = function (domTree) { + if (!domTree) return; + + const Categories = [ + "motion", + "looks", + "sound", + "events", + "control", + "sensing", + "operators", + "variables", + "lists", + "myBlocks", + ]; + const extensionsNodes = []; + const extensionTree = domTree.cloneNode(true); + if (!addon.self.disabled) { + extensionTree.childNodes.forEach((child) => { + if (child.tagName === "category" && !Categories.includes(child.id)) { + extensionsNodes.push(child.cloneNode(true)); + child.remove(); + } + }); + } + _CategoryMenuPopulate.call(this, extensionTree); + for (const child of extensionsNodes) { + const row = document.createElement("div"); + row.className = "scratchCategoryMenuRow"; + this.secondTable.appendChild(row); + if (child) { + this.categories_.push(new Blockly.Toolbox.Category(this, row, child)); + } + } + if (!addon.self.disabled) { + this.height_ = this.table.offsetHeight + this.secondTable.offsetHeight; + } + }; + + // https://github.com/LLK/scratch-blocks/blob/893c7e7ad5bfb416eaed75d9a1c93bdce84e36ab/core/toolbox.js#L639 + const _CategoryMenuDispose = Blockly.Toolbox.CategoryMenu.prototype.dispose; + Blockly.Toolbox.CategoryMenu.prototype.dispose = function () { + _CategoryMenuDispose.call(this); + if (this.secondTable) { + this.secondTable.remove(); + this.secondTable = null; + } + }; + + function updateToolbox() { + const workspace = Blockly.getMainWorkspace(); + const toolbox = workspace.getToolbox(); + if (!toolbox) return; + const categoryMenu = toolbox.categoryMenu_; + if (!categoryMenu) return; + + // Scratch may have already updated the toolbox for us, so no need to update it again. + if (categoryMenu.secondTable && !addon.self.disabled) return; + // Must dispose and createDom the category menu so we can run our polluted commands. + categoryMenu.dispose(); + categoryMenu.createDom(); + // Repopulate the category menu since we've just disposed it. + toolbox.populate_(workspace.options.languageTree); + // Reposition the toolbox, since it's likely our addon moved it. + toolbox.position(); + } + + updateToolbox(); + addon.self.addEventListener("disabled", updateToolbox); + addon.self.addEventListener("reenabled", updateToolbox); + + while (true) { + const addExtensionButton = await addon.tab.waitForElement("[class*='gui_extension-button_']", { + markAsSeen: true, + reduxEvents: ["scratch-gui/mode/SET_PLAYER", "fontsLoaded/SET_FONTS_LOADED", "scratch-gui/locales/SELECT_LOCALE"], + condition: () => !addon.tab.redux.state.scratchGui.mode.isPlayerOnly, + }); + const addExtensionLabel = Object.assign(document.createElement("span"), { + className: "sa-add-extension-label", + innerText: addon.tab.scratchMessage("gui.gui.addExtension"), + }); + addon.tab.displayNoneWhileDisabled(addExtensionLabel); + addExtensionButton.appendChild(addExtensionLabel); + addExtensionButton.removeAttribute("title"); + } +} diff --git a/src/addons/addons/custom-block-shape/_manifest_entry.js b/src/addons/addons/custom-block-shape/_manifest_entry.js new file mode 100644 index 0000000000000000000000000000000000000000..325dbc2e529629fcf85a941a376ae6fbd2daa143 --- /dev/null +++ b/src/addons/addons/custom-block-shape/_manifest_entry.js @@ -0,0 +1,110 @@ +/* generated by pull.js */ +const manifest = { + "editorOnly": true, + "noTranslations": true, + "name": "Customizable block shape", + "description": "Adjust the padding, corner radius, and notch height of blocks.", + "tags": [ + "theme" + ], + "credits": [ + { + "name": "SheepTester", + "link": "https://scratch.mit.edu/users/Sheep_maker/" + }, + { + "name": "lisa_wolfgang", + "link": "https://scratch.mit.edu/users/lisa_wolfgang/" + }, + { + "name": "GarboMuffin", + "link": "https://scratch.mit.edu/users/GarboMuffin/" + } + ], + "enabledByDefault": false, + "dynamicDisable": true, + "userscripts": [ + { + "url": "userscript.js" + } + ], + "info": [ + { + "type": "notice", + "text": "Decreasing the padding size is only visible to you, so when your projects are viewed by other users, your scripts may overlap.", + "id": "paddingWarning" + } + ], + "settings": [ + { + "dynamic": true, + "name": "Padding size (50-200%)", + "id": "paddingSize", + "type": "integer", + "min": 50, + "default": 100, + "max": 200 + }, + { + "dynamic": true, + "name": "Corner size (0-300%)", + "id": "cornerSize", + "type": "integer", + "min": 0, + "default": 100, + "max": 300 + }, + { + "dynamic": true, + "name": "Notch height (0-150%)", + "id": "notchSize", + "type": "integer", + "min": 0, + "default": 100, + "max": 150 + } + ], + "presets": [ + { + "name": "3.0 Blocks", + "id": "default3", + "description": "The regular appearance of Scratch 3.0 blocks", + "values": { + "paddingSize": 100, + "cornerSize": 100, + "notchSize": 100 + } + }, + { + "name": "2.0 Blocks", + "id": "default2", + "description": "An appearance similar to Scratch 2.0 blocks", + "values": { + "paddingSize": 70, + "cornerSize": 150, + "notchSize": 75 + } + }, + { + "name": "3.0 Flat", + "id": "flat3", + "description": "Scratch 3.0 blocks with notches and corners removed", + "values": { + "paddingSize": 100, + "cornerSize": 0, + "notchSize": 0 + } + }, + { + "name": "2.0 Flat", + "id": "flat2", + "description": "Scratch 2.0 blocks with notches and corners removed", + "values": { + "paddingSize": 70, + "cornerSize": 0, + "notchSize": 0 + } + } + ] +}; +export default manifest; diff --git a/src/addons/addons/custom-block-shape/_runtime_entry.js b/src/addons/addons/custom-block-shape/_runtime_entry.js new file mode 100644 index 0000000000000000000000000000000000000000..bc67131957e52185c142f348760610cfaa4f774d --- /dev/null +++ b/src/addons/addons/custom-block-shape/_runtime_entry.js @@ -0,0 +1,5 @@ +/* generated by pull.js */ +import _js from "./userscript.js"; +export const resources = { + "userscript.js": _js, +}; diff --git a/src/addons/addons/custom-block-shape/userscript.js b/src/addons/addons/custom-block-shape/userscript.js new file mode 100644 index 0000000000000000000000000000000000000000..e9069336b673e6eda6942cd45792d266f49726c7 --- /dev/null +++ b/src/addons/addons/custom-block-shape/userscript.js @@ -0,0 +1,244 @@ +export default async function ({ addon, console }) { + var BlocklyInstance = await addon.tab.traps.getBlockly(); + + (function (Blockly) { + const BlockSvg = BlocklyInstance.BlockSvg; + var vm = addon.tab.traps.vm; + + const { GRID_UNIT } = BlockSvg; + + function updateAllBlocks() { + const workspace = Blockly.getMainWorkspace(); + if (workspace) { + if (vm.editingTarget) { + vm.emitWorkspaceUpdate(); + } + const flyout = workspace.getFlyout(); + if (flyout) { + const flyoutWorkspace = flyout.getWorkspace(); + Blockly.Xml.clearWorkspaceAndLoadFromXml(Blockly.Xml.workspaceToDom(flyoutWorkspace), flyoutWorkspace); + workspace.getToolbox().refreshSelection(); + workspace.toolboxRefreshEnabled_ = true; + } + } + } + + function applyChanges( + paddingSize = addon.settings.get("paddingSize"), + cornerSize = addon.settings.get("cornerSize"), + notchSize = addon.settings.get("notchSize") + ) { + let multiplier = paddingSize / 100; + cornerSize = cornerSize / 100; + notchSize = notchSize / 100; + BlockSvg.SEP_SPACE_Y = 2 * GRID_UNIT * multiplier; + BlockSvg.MIN_BLOCK_X = 16 * GRID_UNIT * multiplier; + BlockSvg.MIN_BLOCK_X_OUTPUT = 12 * GRID_UNIT * multiplier; + BlockSvg.MIN_BLOCK_X_SHADOW_OUTPUT = 10 * GRID_UNIT * multiplier; + BlockSvg.MIN_BLOCK_Y = 12 * GRID_UNIT * multiplier; + BlockSvg.EXTRA_STATEMENT_ROW_Y = 8 * GRID_UNIT * multiplier; + BlockSvg.MIN_BLOCK_X_WITH_STATEMENT = 40 * GRID_UNIT * multiplier; + BlockSvg.MIN_BLOCK_Y_SINGLE_FIELD_OUTPUT = 8 * GRID_UNIT * multiplier; + BlockSvg.MIN_BLOCK_Y_REPORTER = 10 * GRID_UNIT * multiplier; + BlockSvg.MIN_STATEMENT_INPUT_HEIGHT = 6 * GRID_UNIT * multiplier; + BlockSvg.NOTCH_WIDTH = 8 * GRID_UNIT * multiplier; + BlockSvg.NOTCH_HEIGHT = 2 * GRID_UNIT * multiplier * notchSize; + BlockSvg.NOTCH_START_PADDING = 3 * GRID_UNIT; //* multiplier + BlockSvg.ICON_SEPARATOR_HEIGHT = 10 * GRID_UNIT * multiplier; + + BlockSvg.NOTCH_PATH_LEFT = + `c 2 0 3 ${1 * notchSize} 4 ${2 * notchSize} ` + + `l ${4 * multiplier * notchSize} ${4 * multiplier * notchSize} ` + + `c 1 ${1 * notchSize} 2 ${2 * notchSize} 4 ${2 * notchSize} ` + + `h ${24 * (multiplier - 0.5)} ` + + `c 2 0 3 ${-1 * notchSize} 4 ${-2 * notchSize} ` + + `l ${4 * multiplier * notchSize} ${-4 * multiplier * notchSize} ` + + `c 1 ${-1 * notchSize} 2 ${-2 * notchSize} 4 ${-2 * notchSize} ` + BlockSvg.NOTCH_PATH_RIGHT = + `h ${(-4 * (cornerSize - 1) - 5 * (1 - notchSize))} ` + + `c -2 0 -3 ${1 * notchSize} -4 ${2 * notchSize} ` + + `l ${-4 * multiplier * notchSize} ${4 * multiplier * notchSize} ` + + `c -1 ${1 * notchSize} -2 ${2 * notchSize} -4 ${2 * notchSize} ` + + `h ${-24 * (multiplier - 0.5)} ` + + `c -2 0 -3 ${-1 * notchSize} -4 ${-2 * notchSize} ` + + `l ${-4 * multiplier * notchSize} ${-4 * multiplier * notchSize} ` + + `c -1 ${-1 * notchSize} -2 ${-2 * notchSize} -4 ${-2 * notchSize} ` + + BlockSvg.NOTCH_SWITCH_PATH_LEFT = + `c 2 0 3 ${1 * notchSize} 4 ${2 * notchSize} ` + + `l ${4 * multiplier * notchSize} ${4 * multiplier * notchSize} ` + + `c 1 ${1 * notchSize} 2 ${2 * notchSize} 4 ${2 * notchSize} ` + + `c ${4 * (multiplier - 0.5)} 0 ${8 * (multiplier - 0.5)} ${-8 * (multiplier - 0.5) * notchSize} ${12 * (multiplier - 0.5)} ${-8 * (multiplier - 0.5) * notchSize} ` + + `c ${4 * (multiplier - 0.5)} 0 ${8 * (multiplier - 0.5)} ${8 * (multiplier - 0.5) * notchSize} ${12 * (multiplier - 0.5)} ${8 * (multiplier - 0.5) * notchSize} ` + + `c 2 0 3 ${-1 * notchSize} 4 ${-2 * notchSize} ` + + `l ${4 * multiplier * notchSize} ${-4 * multiplier * notchSize} ` + + `c 1 ${-1 * notchSize} 2 ${-2 * notchSize} 4 ${-2 * notchSize} ` + BlockSvg.NOTCH_SWITCH_PATH_RIGHT = + `h ${(-4 * (cornerSize - 1) - 5 * (1 - notchSize))} ` + + `c -2 0 -3 ${1 * notchSize} -4 ${2 * notchSize} ` + + `l ${-4 * multiplier * notchSize} ${4 * multiplier * notchSize} ` + + `c -1 ${1 * notchSize} -2 ${2 * notchSize} -4 ${2 * notchSize} ` + + `c ${-4 * (multiplier - 0.5)} 0 ${-8 * (multiplier - 0.5)} ${-8 * (multiplier - 0.5) * notchSize} ${-12 * (multiplier - 0.5)} ${-8 * (multiplier - 0.5) * notchSize} ` + + `c ${-4 * (multiplier - 0.5)} 0 ${-8 * (multiplier - 0.5)} ${8 * (multiplier - 0.5) * notchSize} ${-12 * (multiplier - 0.5)} ${8 * (multiplier - 0.5) * notchSize} ` + + `c -2 0 -3 ${-1 * notchSize} -4 ${-2 * notchSize} ` + + `l ${-4 * multiplier * notchSize} ${-4 * multiplier * notchSize} ` + + `c -1 ${-1 * notchSize} -2 ${-2 * notchSize} -4 ${-2 * notchSize} ` + + BlockSvg.INPUT_SHAPE_HEXAGONAL = + "M " + + 4 * GRID_UNIT * multiplier + + ",0 " + + " h " + + 4 * GRID_UNIT + + " l " + + 4 * GRID_UNIT * multiplier + + "," + + 4 * GRID_UNIT * multiplier + + " l " + + -4 * GRID_UNIT * multiplier + + "," + + 4 * GRID_UNIT * multiplier + + " h " + + -4 * GRID_UNIT + + " l " + + -4 * GRID_UNIT * multiplier + + "," + + -4 * GRID_UNIT * multiplier + + " l " + + 4 * GRID_UNIT * multiplier + + "," + + -4 * GRID_UNIT * multiplier + + " z"; + BlockSvg.INPUT_SHAPE_HEXAGONAL_WIDTH = 12 * GRID_UNIT * multiplier; + BlockSvg.INPUT_SHAPE_ROUND = + "M " + + 4 * GRID_UNIT + + ",0" + + " h " + + 4 * GRID_UNIT + + " a " + + 4 * GRID_UNIT + + " " + + 4 * GRID_UNIT + + " 0 0 1 0 " + + 8 * GRID_UNIT + + " h " + + -4 * GRID_UNIT + + " a " + + 4 * GRID_UNIT + + " " + + 4 * GRID_UNIT + + " 0 0 1 0 -" + + 8 * GRID_UNIT + + " z"; + BlockSvg.INPUT_SHAPE_ROUND_WIDTH = 12 * GRID_UNIT * multiplier; + BlockSvg.INPUT_SHAPE_HEIGHT = 8 * GRID_UNIT * multiplier; + BlockSvg.FIELD_HEIGHT = 8 * GRID_UNIT * multiplier; // NOTE: Determines string input heights + BlockSvg.FIELD_WIDTH = 6 * GRID_UNIT * Math.min(multiplier, 1) + 10 * GRID_UNIT * Math.max(multiplier - 1, 0); + BlockSvg.FIELD_DEFAULT_CORNER_RADIUS = 4 * GRID_UNIT * multiplier; + BlockSvg.EDITABLE_FIELD_PADDING = 1.5 * GRID_UNIT * multiplier; + BlockSvg.BOX_FIELD_PADDING = 2 * GRID_UNIT * multiplier; + BlockSvg.DROPDOWN_ARROW_PADDING = 2 * GRID_UNIT * multiplier; + BlockSvg.FIELD_WIDTH_MIN_EDIT = 8 * GRID_UNIT * multiplier; + BlockSvg.INPUT_AND_FIELD_MIN_X = 12 * GRID_UNIT * multiplier; + BlockSvg.INLINE_PADDING_Y = 1 * GRID_UNIT * multiplier; // For when reporters are inside reporters + BlockSvg.SHAPE_IN_SHAPE_PADDING[1][0] = 5 * GRID_UNIT * multiplier; + BlockSvg.SHAPE_IN_SHAPE_PADDING[1][2] = 5 * GRID_UNIT * multiplier; + BlockSvg.SHAPE_IN_SHAPE_PADDING[1][3] = 5 * GRID_UNIT * multiplier; + + var originalDropdownObject = BlocklyInstance.FieldDropdown.prototype.positionArrow; + BlocklyInstance.FieldDropdown.prototype.positionArrow = function (x) { + this.arrowY_ = 11 * multiplier; + return originalDropdownObject.call(this, x); + }; + + // Corner setting + BlockSvg.CORNER_RADIUS = (1 * GRID_UNIT * cornerSize * 100) / 100; + + BlockSvg.TOP_LEFT_CORNER_START = "m 0," + BlockSvg.CORNER_RADIUS; + + BlockSvg.TOP_LEFT_CORNER = + "A " + BlockSvg.CORNER_RADIUS + "," + BlockSvg.CORNER_RADIUS + " 0 0,1 " + BlockSvg.CORNER_RADIUS + ",0"; + + BlockSvg.TOP_RIGHT_CORNER = + "a " + + BlockSvg.CORNER_RADIUS + + "," + + BlockSvg.CORNER_RADIUS + + " 0 0,1 " + + BlockSvg.CORNER_RADIUS + + "," + + BlockSvg.CORNER_RADIUS; + + BlockSvg.BOTTOM_RIGHT_CORNER = + " a " + + BlockSvg.CORNER_RADIUS + + "," + + BlockSvg.CORNER_RADIUS + + " 0 0,1 -" + + BlockSvg.CORNER_RADIUS + + "," + + BlockSvg.CORNER_RADIUS; + + BlockSvg.BOTTOM_LEFT_CORNER = + "a " + + BlockSvg.CORNER_RADIUS + + "," + + BlockSvg.CORNER_RADIUS + + " 0 0,1 -" + + BlockSvg.CORNER_RADIUS + + ",-" + + BlockSvg.CORNER_RADIUS; + + BlockSvg.INNER_TOP_LEFT_CORNER = + " a " + + BlockSvg.CORNER_RADIUS + + "," + + BlockSvg.CORNER_RADIUS + + " 0 0,0 -" + + BlockSvg.CORNER_RADIUS + + "," + + BlockSvg.CORNER_RADIUS; + + BlockSvg.INNER_BOTTOM_LEFT_CORNER = + "a " + + BlockSvg.CORNER_RADIUS + + "," + + BlockSvg.CORNER_RADIUS + + " 0 0,0 " + + BlockSvg.CORNER_RADIUS + + "," + + BlockSvg.CORNER_RADIUS; + + BlockSvg.TOP_RIGHT_CORNER_DEFINE_HAT = + "a " + + BlockSvg.DEFINE_HAT_CORNER_RADIUS + + "," + + BlockSvg.DEFINE_HAT_CORNER_RADIUS + + " 0 0,1 " + + BlockSvg.DEFINE_HAT_CORNER_RADIUS + + "," + + BlockSvg.DEFINE_HAT_CORNER_RADIUS + + " v " + + (1 * GRID_UNIT - BlockSvg.CORNER_RADIUS); + + BlockSvg.STATEMENT_INPUT_INNER_SPACE = 2.8 * GRID_UNIT - 0.9 * GRID_UNIT * cornerSize; + } + + function applyAndUpdate(...args) { + applyChanges(...args); + updateAllBlocks(); + } + + addon.settings.addEventListener("change", () => applyAndUpdate()); + + addon.self.addEventListener("disabled", () => { + // Scratch 3.0 blocks + applyAndUpdate(100, 100, 100); + }); + + addon.self.addEventListener("reenabled", () => applyAndUpdate()); + + applyAndUpdate(); + })(window.Blockly); +} diff --git a/src/addons/addons/custom-block-text/_manifest_entry.js b/src/addons/addons/custom-block-text/_manifest_entry.js new file mode 100644 index 0000000000000000000000000000000000000000..1de5f9d8d89270cba2b4b206be7110710fd45682 --- /dev/null +++ b/src/addons/addons/custom-block-text/_manifest_entry.js @@ -0,0 +1,52 @@ +/* generated by pull.js */ +const manifest = { + "name": "Customizable block text style", + "description": "Changes the thickness of the text on blocks and optionally adds a text shadow.", + "tags": [], + "credits": [ + { + "name": "Secret-chest" + }, + { + "name": "_nix", + "link": "https://scratch.mit.edu/users/_nix" + } + ], + "userstyles": [ + { + "url": "text-bold.css", + "if": { + "settings": { + "bold": true + } + } + }, + { + "url": "text-shadow.css", + "if": { + "settings": { + "shadow": true + } + } + } + ], + "settings": [ + { + "dynamic": true, + "name": "Bold text", + "id": "bold", + "type": "boolean", + "default": false + }, + { + "dynamic": true, + "name": "Shadow under text", + "id": "shadow", + "type": "boolean", + "default": false + } + ], + "dynamicDisable": true, + "enabledByDefault": false +}; +export default manifest; diff --git a/src/addons/addons/custom-block-text/_runtime_entry.js b/src/addons/addons/custom-block-text/_runtime_entry.js new file mode 100644 index 0000000000000000000000000000000000000000..d2f33437d176980fd7ec746abb0c2b56133f02e8 --- /dev/null +++ b/src/addons/addons/custom-block-text/_runtime_entry.js @@ -0,0 +1,7 @@ +/* generated by pull.js */ +import _css from "!css-loader!./text-bold.css"; +import _css2 from "!css-loader!./text-shadow.css"; +export const resources = { + "text-bold.css": _css, + "text-shadow.css": _css2, +}; diff --git a/src/addons/addons/custom-block-text/text-bold.css b/src/addons/addons/custom-block-text/text-bold.css new file mode 100644 index 0000000000000000000000000000000000000000..1dd8abbc51af8fff30ff9c025866e909bdd46cd3 --- /dev/null +++ b/src/addons/addons/custom-block-text/text-bold.css @@ -0,0 +1,4 @@ +.blocklyText, +.blocklyHtmlInput { + font-weight: bold; +} diff --git a/src/addons/addons/custom-block-text/text-shadow.css b/src/addons/addons/custom-block-text/text-shadow.css new file mode 100644 index 0000000000000000000000000000000000000000..5b1999c0d01c1d678437296f2b11a7d7e9063974 --- /dev/null +++ b/src/addons/addons/custom-block-text/text-shadow.css @@ -0,0 +1,5 @@ +/** Makes block text a little easier to read. **/ +.blocklyDraggable > .blocklyText, +.blocklyDraggable > g > text { + text-shadow: 1px 1px 0 rgba(0, 0, 0, 0.4); +} diff --git a/src/addons/addons/custom-zoom/_manifest_entry.js b/src/addons/addons/custom-zoom/_manifest_entry.js new file mode 100644 index 0000000000000000000000000000000000000000..86d0a0a77cdf1fadea464542e6b6d48264b08b95 --- /dev/null +++ b/src/addons/addons/custom-zoom/_manifest_entry.js @@ -0,0 +1,100 @@ +/* generated by pull.js */ +const manifest = { + "editorOnly": true, + "noTranslations": true, + "name": "Customizable code area zoom", + "description": "Choose custom settings for the minimum, maximum, speed, and start size of the zoom of scripts in the code area, and autohide the controls.", + "tags": [], + "credits": [ + { + "name": "ErrorGamer2000", + "link": "https://scratch.mit.edu/users/ErrorGamer2000/" + } + ], + "enabledByDefault": false, + "userscripts": [ + { + "url": "userscript.js" + } + ], + "userstyles": [ + { + "url": "style.css" + } + ], + "settings": [ + { + "dynamic": true, + "name": "Maximum Zoom (100-500%)", + "id": "maxZoom", + "type": "integer", + "min": 100, + "default": 300, + "max": 500 + }, + { + "dynamic": true, + "name": "Minimum Zoom (1-100%)", + "id": "minZoom", + "type": "integer", + "min": 1, + "default": 30, + "max": 100 + }, + { + "dynamic": true, + "name": "Start Zoom (50-500%)", + "id": "startZoom", + "type": "integer", + "min": 50, + "default": 68, + "max": 500 + }, + { + "dynamic": true, + "name": "Zoom Speed (50-200%)", + "id": "zoomSpeed", + "type": "integer", + "min": 50, + "default": 100, + "max": 200 + }, + { + "name": "Autohide Zoom Controls", + "id": "autohide", + "type": "boolean", + "default": false + }, + { + "dynamic": true, + "name": "Autohide Animation Speed", + "id": "speed", + "type": "select", + "potentialValues": [ + { + "id": "none", + "name": "Instant" + }, + { + "id": "short", + "name": "Quick" + }, + { + "id": "default", + "name": "Default" + }, + { + "id": "long", + "name": "Slow" + } + ], + "default": "default", + "if": { + "settings": { + "autohide": true + } + } + } + ] +}; +export default manifest; diff --git a/src/addons/addons/custom-zoom/_runtime_entry.js b/src/addons/addons/custom-zoom/_runtime_entry.js new file mode 100644 index 0000000000000000000000000000000000000000..76c9ca1f43154011942db097b82ae033d913de82 --- /dev/null +++ b/src/addons/addons/custom-zoom/_runtime_entry.js @@ -0,0 +1,7 @@ +/* generated by pull.js */ +import _js from "./userscript.js"; +import _css from "!css-loader!./style.css"; +export const resources = { + "userscript.js": _js, + "style.css": _css, +}; diff --git a/src/addons/addons/custom-zoom/style.css b/src/addons/addons/custom-zoom/style.css new file mode 100644 index 0000000000000000000000000000000000000000..c85fb2d3927a519a5cbdb0d805392ba0cb619ef4 --- /dev/null +++ b/src/addons/addons/custom-zoom/style.css @@ -0,0 +1,14 @@ +.sa-custom-zoom-area { + position: absolute; + bottom: 0; + right: 0; + width: 60px; + height: 148px; + pointer-events: none; +} +.blocklyZoom > * { + transition: transform var(--sa-custom-zoom-speed, 0) ease-in-out; +} +.sa-custom-zoom-hidden > * { + transform: translateX(80px); +} diff --git a/src/addons/addons/custom-zoom/userscript.js b/src/addons/addons/custom-zoom/userscript.js new file mode 100644 index 0000000000000000000000000000000000000000..0afa2ece0e6f2f7c5450246c63d1c8f9b8b99d61 --- /dev/null +++ b/src/addons/addons/custom-zoom/userscript.js @@ -0,0 +1,71 @@ +export default async function ({ addon, console }) { + await addon.tab.traps.getBlockly(); + + let controlsRect; + let previousIsHovered = false; + const speeds = { + none: "0s", + short: "0.2s", + default: "0.3s", + long: "0.5s", + }; + + const customZoomAreaElement = document.createElement("div"); + customZoomAreaElement.className = "sa-custom-zoom-area"; + + function update() { + document.removeEventListener("mousemove", onMouseMove); + + if (addon.tab.editorMode !== "editor") return; + + Blockly.getMainWorkspace().options.zoomOptions.maxScale = addon.settings.get("maxZoom") / 100; + Blockly.getMainWorkspace().options.zoomOptions.minScale = addon.settings.get("minZoom") / 100; + Blockly.getMainWorkspace().options.zoomOptions.startScale = addon.settings.get("startZoom") / 100; + Blockly.getMainWorkspace().options.zoomOptions.scaleSpeed = 1 + 0.2 * (addon.settings.get("zoomSpeed") / 100); + + const svgGroup = getZoomControls(); + const autohide = addon.settings.get("autohide"); + if (svgGroup) svgGroup.classList.toggle("sa-custom-zoom-hidden", autohide); + if (autohide) { + const injectionDiv = document.querySelector(".injectionDiv"); + injectionDiv.appendChild(customZoomAreaElement); + updateRect(); + document.addEventListener("mousemove", onMouseMove); + } + } + + function getZoomControls() { + const zoomControls = Blockly.getMainWorkspace().zoomControls_; + if (zoomControls) return zoomControls.svgGroup_; + return null; + } + + function onMouseMove(e) { + const isHovered = + e.x > controlsRect.left && e.x < controlsRect.right && e.y > controlsRect.top && e.y < controlsRect.bottom; + if (isHovered !== previousIsHovered) { + previousIsHovered = isHovered; + const svgGroup = getZoomControls(); + if (svgGroup) { + svgGroup.style.setProperty("--sa-custom-zoom-speed", speeds[addon.settings.get("speed")]); + svgGroup.classList.toggle("sa-custom-zoom-hidden", !isHovered); + } + } + } + + function updateRect() { + controlsRect = customZoomAreaElement.getBoundingClientRect(); + } + + function onResize() { + if (addon.tab.editorMode === "editor" && addon.settings.get("autohide")) { + updateRect(); + } + } + + await addon.tab.waitForElement(".blocklyZoom"); + update(); + addon.tab.addEventListener("urlChange", update); + addon.settings.addEventListener("change", update); + window.addEventListener("resize", onResize); +} diff --git a/src/addons/addons/debugger/_manifest_entry.js b/src/addons/addons/debugger/_manifest_entry.js new file mode 100644 index 0000000000000000000000000000000000000000..c8ef9a4e87e0c24ec4d079a0332e36e25478d0f2 --- /dev/null +++ b/src/addons/addons/debugger/_manifest_entry.js @@ -0,0 +1,76 @@ +/* generated by pull.js */ +const manifest = { + "editorOnly": true, + "name": "Debugger", + "description": "Adds a new \"debugger\" window to the editor. Allows for logging into the \"Logs\" tab of the debugger window using the \"log\", \"warn\" and \"error\" blocks.", + "credits": [ + { + "name": "Tacodiva", + "link": "https://scratch.mit.edu/users/Tacodiva7729/" + }, + { + "name": "GarboMuffin" + }, + { + "name": "GrahamSH" + }, + { + "name": "TheColaber" + }, + { + "name": "retronbv" + } + ], + "userscripts": [ + { + "url": "userscript.js" + } + ], + "userstyles": [ + { + "url": "style.css" + } + ], + "settings": [ + { + "dynamic": true, + "name": "Clear logs on green flag", + "id": "log_clear_greenflag", + "type": "boolean", + "default": false + }, + { + "dynamic": true, + "name": "Log green flag clicks", + "id": "log_greenflag", + "type": "boolean", + "default": false + }, + { + "dynamic": true, + "name": "Log clone creation", + "id": "log_clone_create", + "type": "boolean", + "default": false + }, + { + "dynamic": true, + "name": "Log when max clones exceeded", + "id": "log_failed_clone_creation", + "type": "boolean", + "default": true + }, + { + "dynamic": true, + "name": "Log broadcasts", + "id": "log_broadcasts", + "type": "boolean", + "default": false + } + ], + "tags": [ + "beta" + ], + "enabledByDefault": false +}; +export default manifest; diff --git a/src/addons/addons/debugger/_runtime_entry.js b/src/addons/addons/debugger/_runtime_entry.js new file mode 100644 index 0000000000000000000000000000000000000000..303ef4785d0455e8fac10c88b1eb760db239a06b --- /dev/null +++ b/src/addons/addons/debugger/_runtime_entry.js @@ -0,0 +1,31 @@ +/* generated by pull.js */ +import _js from "./userscript.js"; +import _css from "!css-loader!./style.css"; +import _asset from "!url-loader!./icons/close.svg"; +import _asset2 from "!url-loader!./icons/debug.svg"; +import _asset3 from "!url-loader!./icons/delete.svg"; +import _asset4 from "!url-loader!./icons/download-white.svg"; +import _asset5 from "!url-loader!./icons/error.svg"; +import _asset6 from "!url-loader!./icons/logs.svg"; +import _asset7 from "!url-loader!./icons/performance.svg"; +import _asset8 from "!url-loader!./icons/play.svg"; +import _asset9 from "!url-loader!./icons/step.svg"; +import _asset10 from "!url-loader!./icons/subthread.svg"; +import _asset11 from "!url-loader!./icons/threads.svg"; +import _asset12 from "!url-loader!./icons/warning.svg"; +export const resources = { + "userscript.js": _js, + "style.css": _css, + "icons/close.svg": _asset, + "icons/debug.svg": _asset2, + "icons/delete.svg": _asset3, + "icons/download-white.svg": _asset4, + "icons/error.svg": _asset5, + "icons/logs.svg": _asset6, + "icons/performance.svg": _asset7, + "icons/play.svg": _asset8, + "icons/step.svg": _asset9, + "icons/subthread.svg": _asset10, + "icons/threads.svg": _asset11, + "icons/warning.svg": _asset12, +}; diff --git a/src/addons/addons/debugger/icons/close.svg b/src/addons/addons/debugger/icons/close.svg new file mode 100644 index 0000000000000000000000000000000000000000..af929487975597dc5c21f51e77b6326bb1df7ca1 Binary files /dev/null and b/src/addons/addons/debugger/icons/close.svg differ diff --git a/src/addons/addons/debugger/icons/debug.svg b/src/addons/addons/debugger/icons/debug.svg new file mode 100644 index 0000000000000000000000000000000000000000..c18edd262b5efae51455560da2e01c3e164d0aff Binary files /dev/null and b/src/addons/addons/debugger/icons/debug.svg differ diff --git a/src/addons/addons/debugger/icons/delete.svg b/src/addons/addons/debugger/icons/delete.svg new file mode 100644 index 0000000000000000000000000000000000000000..d91a801d876b555cd1b1e52287bea82cad28ef05 Binary files /dev/null and b/src/addons/addons/debugger/icons/delete.svg differ diff --git a/src/addons/addons/debugger/icons/download-white.svg b/src/addons/addons/debugger/icons/download-white.svg new file mode 100644 index 0000000000000000000000000000000000000000..64938b5ab1c7cba25c53dabba092ceeb64648e6f Binary files /dev/null and b/src/addons/addons/debugger/icons/download-white.svg differ diff --git a/src/addons/addons/debugger/icons/error.svg b/src/addons/addons/debugger/icons/error.svg new file mode 100644 index 0000000000000000000000000000000000000000..dee8193aad53bc63d7a377e4f3002dd936b024b0 Binary files /dev/null and b/src/addons/addons/debugger/icons/error.svg differ diff --git a/src/addons/addons/debugger/icons/logs.svg b/src/addons/addons/debugger/icons/logs.svg new file mode 100644 index 0000000000000000000000000000000000000000..600241db608fdb078d96097b669e90c504a81b78 Binary files /dev/null and b/src/addons/addons/debugger/icons/logs.svg differ diff --git a/src/addons/addons/debugger/icons/performance.svg b/src/addons/addons/debugger/icons/performance.svg new file mode 100644 index 0000000000000000000000000000000000000000..d139613d0afe9aadbeeed3615b3b67cf65ae1ae4 Binary files /dev/null and b/src/addons/addons/debugger/icons/performance.svg differ diff --git a/src/addons/addons/debugger/icons/play.svg b/src/addons/addons/debugger/icons/play.svg new file mode 100644 index 0000000000000000000000000000000000000000..d03e747d3c7f45714f3d7ed082e72522e04a5b5a Binary files /dev/null and b/src/addons/addons/debugger/icons/play.svg differ diff --git a/src/addons/addons/debugger/icons/step.svg b/src/addons/addons/debugger/icons/step.svg new file mode 100644 index 0000000000000000000000000000000000000000..0ace738530ac5b881edca11b8ca35a8d94723050 Binary files /dev/null and b/src/addons/addons/debugger/icons/step.svg differ diff --git a/src/addons/addons/debugger/icons/subthread.svg b/src/addons/addons/debugger/icons/subthread.svg new file mode 100644 index 0000000000000000000000000000000000000000..784e1d1cf71da6b178a62bc37e50ab8cb6341cf2 Binary files /dev/null and b/src/addons/addons/debugger/icons/subthread.svg differ diff --git a/src/addons/addons/debugger/icons/threads.svg b/src/addons/addons/debugger/icons/threads.svg new file mode 100644 index 0000000000000000000000000000000000000000..938dd32482ab60dcb1045e8f57bea936c0c4a2b5 Binary files /dev/null and b/src/addons/addons/debugger/icons/threads.svg differ diff --git a/src/addons/addons/debugger/icons/warning.svg b/src/addons/addons/debugger/icons/warning.svg new file mode 100644 index 0000000000000000000000000000000000000000..eeaba83fdfbf1c553c1ecd4fc3081582fa8deb92 Binary files /dev/null and b/src/addons/addons/debugger/icons/warning.svg differ diff --git a/src/addons/addons/debugger/log-view.js b/src/addons/addons/debugger/log-view.js new file mode 100644 index 0000000000000000000000000000000000000000..2bbc1f93630a85aae6c4269517bb824273384187 --- /dev/null +++ b/src/addons/addons/debugger/log-view.js @@ -0,0 +1,231 @@ +const clamp = (i, min, max) => Math.max(min, Math.min(max, i)); + +const appendSortedElement = (parent, newChild) => { + const newChildIndex = +newChild.dataset.index; + let foundSpot = false; + for (const existingChild of parent.children) { + const existingChildIndex = +existingChild.dataset.index; + if (existingChildIndex > newChildIndex) { + foundSpot = true; + parent.insertBefore(newChild, existingChild); + break; + } + } + if (!foundSpot) { + parent.appendChild(newChild); + } +}; + +/** + * LogView: A virtualized row viewer. + * It efficiently manages row rendering and scrolling. + * + * 1. .logs is the place where all the rows live. This is an array of any arbitrary object. + * 2. Implement generateRow(row). This takes a row from .logs as an argument. This should return + * an object with a bunch of DOM elements on it. The "root" property must be set, nothing else + * is required. This is called when a row becomes visible. It can be called any number of times. + * This is where you should setup elements that are immutable for a given row. LogView will + * move the root element to the right spot for you. + * 3. Implement renderRow(elements, row). This will be called with the result returned by + * generateRow() and the row in .logs any time a row is changed, including the first render. + * It can be called any number of times. This is where you should update any dynamic elements. + * 4. Whenever you update .logs without using the helper methods such as append(), call + * queueUpdateContent(). + */ +class LogView { + constructor() { + this.rows = []; + this.canAutoScrollToEnd = true; + this.rowHeight = 20; + + this.outerElement = document.createElement("div"); + this.outerElement.className = "sa-debugger-log-outer"; + + this.innerElement = document.createElement("div"); + this.innerElement.className = "sa-debugger-log-inner"; + this.outerElement.appendChild(this.innerElement); + this.innerElement.addEventListener("scroll", this._handleScroll.bind(this), { passive: true }); + this.innerElement.addEventListener("wheel", this._handleWheel.bind(this), { passive: true }); + + this.endElement = document.createElement("div"); + this.endElement.className = "sa-debugger-log-end"; + this.endElement.dataset.index = "-1"; + this.innerElement.appendChild(this.endElement); + + this.placeholderElement = document.createElement("div"); + this.placeholderElement.className = "sa-debugger-log-empty"; + + this.visible = false; + this.isScrolledToEnd = true; + this.scrollTopWhenHidden = "end"; + this.scrollTop = 0; + this.updateContentQueued = false; + this.scrollToEndQueued = false; + this.oldLength = -1; + this.rowToMetadata = new Map(); + } + + append(log) { + this.queueUpdateContent(); + this._queueScrollToEnd(); + + this.rows.push(log); + + const MAX_LOGS = 200000; + while (this.rows.length > MAX_LOGS) { + this.rows.shift(); + } + } + + clear() { + this.rows.length = 0; + this.scrollTop = 0; + this.isScrolledToEnd = true; + this.queueUpdateContent(); + } + + show() { + this.visible = true; + this.height = this.innerElement.offsetHeight; + this.queueUpdateContent(); + if (this.scrollTopWhenHidden === "end") { + this._queueScrollToEnd(); + } else { + this.innerElement.scrollTop = this.scrollTopWhenHidden; + } + } + + hide() { + this.visible = false; + this.scrollTopWhenHidden = this.isScrolledToEnd ? "end" : this.scrollTop; + } + + _handleScroll(e) { + this.scrollTop = e.target.scrollTop; + this.isScrolledToEnd = e.target.scrollTop + 5 >= e.target.scrollHeight - e.target.clientHeight; + this.queueUpdateContent(); + } + + _handleWheel(e) { + if (e.deltaY < 0) { + this.isScrolledToEnd = false; + } + } + + scrollIntoView(index) { + const distanceFromTop = index * this.rowHeight; + const viewportStart = this.scrollTop; + const viewportEnd = this.scrollTop + this.height; + const isInView = distanceFromTop > viewportStart && distanceFromTop < viewportEnd; + if (!isInView) { + this.scrollTop = distanceFromTop; + this.innerElement.scrollTop = distanceFromTop; + } + } + + _queueScrollToEnd() { + if (this.visible && this.canAutoScrollToEnd && this.isScrolledToEnd && !this.scrollToEndQueued) { + this.scrollToEndQueued = true; + queueMicrotask(() => { + this.scrollToEndQueued = false; + if (this.isScrolledToEnd) { + const scrollEnd = this.innerElement.scrollHeight - this.innerElement.offsetHeight; + this.innerElement.scrollTop = scrollEnd; + this.scrollTop = scrollEnd; + } + }); + } + } + + queueUpdateContent() { + if (this.visible && !this.updateContentQueued) { + this.updateContentQueued = true; + queueMicrotask(() => { + this.updateContentQueued = false; + this.updateContent(); + }); + } + } + + generateRow(row) { + // to be implemented by users + } + + renderRow(elements, row) { + // to be implemented by users + } + + updateContent() { + if (this.rows.length !== this.oldLength) { + this.oldLength = this.rows.length; + + const totalHeight = this.rows.length * this.rowHeight; + this.endElement.style.transform = `translateY(${totalHeight}px)`; + + if (this.rows.length) { + this.placeholderElement.remove(); + } else { + this.innerElement.appendChild(this.placeholderElement); + + for (const metadata of this.rowToMetadata.values()) { + metadata.elements.root.remove(); + } + this.rowToMetadata.clear(); + } + } + + if (this.rows.length === 0) { + return; + } + + // For better compatibility with asynchronous scrolling, we'll render a few extra rows in either direction. + const EXTRA_ROWS_ABOVE = 5; + const EXTRA_ROWS_BELOW = 5; + + const scrollStartIndex = Math.floor(this.scrollTop / this.rowHeight); + const rowsVisible = Math.ceil(this.height / this.rowHeight); + const startIndex = clamp(scrollStartIndex - EXTRA_ROWS_BELOW, 0, this.rows.length); + const endIndex = clamp(scrollStartIndex + rowsVisible + EXTRA_ROWS_ABOVE, 0, this.rows.length); + + const allVisibleRows = new Set(); + const newElements = []; + for (let i = startIndex; i < endIndex; i++) { + const row = this.rows[i]; + allVisibleRows.add(row); + + let metadata = this.rowToMetadata.get(row); + if (!metadata) { + const elements = this.generateRow(row); + newElements.push(elements.root); + metadata = { + stringify: null, + elements, + }; + this.rowToMetadata.set(row, metadata); + } + + const currentStringify = JSON.stringify(row); + if (currentStringify !== metadata.stringify) { + metadata.stringify = currentStringify; + this.renderRow(metadata.elements, row); + } + + const root = metadata.elements.root; + root.style.transform = `translateY(${i * this.rowHeight}px)`; + root.dataset.index = i; + } + + for (const [row, metadata] of this.rowToMetadata.entries()) { + if (!allVisibleRows.has(row)) { + metadata.elements.root.remove(); + this.rowToMetadata.delete(row); + } + } + + for (const root of newElements) { + appendSortedElement(this.innerElement, root); + } + } +} + +export default LogView; diff --git a/src/addons/addons/debugger/logs.js b/src/addons/addons/debugger/logs.js new file mode 100644 index 0000000000000000000000000000000000000000..4f14382331d4e9453ab647f743f5fa977988b49b --- /dev/null +++ b/src/addons/addons/debugger/logs.js @@ -0,0 +1,191 @@ +import downloadBlob from "../../libraries/common/cs/download-blob.js"; +import LogView from "./log-view.js"; + +export default async function createLogsTab({ debug, addon, console, msg }) { + const vm = addon.tab.traps.vm; + + const tab = debug.createHeaderTab({ + text: msg("tab-logs"), + icon: addon.self.getResource("/icons/logs.svg") /* rewritten by pull.js */, + }); + + const logView = new LogView(); + logView.placeholderElement.textContent = msg("no-logs"); + + const getInputOfBlock = (targetId, blockId) => { + const target = vm.runtime.getTargetById(targetId); + if (!target) { + return null; + } + const block = debug.getBlock(target, blockId); + if (!block) { + return null; + } + return Object.values(block.inputs)[0]?.block; + }; + + logView.generateRow = (row) => { + const root = document.createElement("div"); + root.className = "sa-debugger-log"; + if (row.internal) { + root.classList.add("sa-debugger-log-internal"); + } + root.dataset.type = row.type; + + const icon = document.createElement("div"); + icon.className = "sa-debugger-log-icon"; + if (row.type === "warn" || row.type === "error") { + icon.title = msg("icon-" + row.type); + } + root.appendChild(icon); + + const repeats = document.createElement("div"); + repeats.className = "sa-debugger-log-repeats"; + repeats.style.display = "none"; + root.appendChild(repeats); + + if (row.preview && row.blockId && row.targetInfo) { + const originalId = row.targetInfo.originalId; + const inputBlock = getInputOfBlock(originalId, row.blockId); + if (inputBlock) { + const preview = debug.createBlockPreview(originalId, inputBlock); + if (preview) { + root.appendChild(preview); + } + } + } + + const text = document.createElement("div"); + text.className = "sa-debugger-log-text"; + if (row.text.length === 0) { + text.classList.add("sa-debugger-log-text-empty"); + text.textContent = msg("empty-string"); + } else { + text.textContent = row.text; + text.title = row.text; + } + root.appendChild(text); + + if (row.targetInfo && row.blockId) { + root.appendChild(debug.createBlockLink(row.targetInfo, row.blockId)); + } + + return { + root, + repeats, + }; + }; + + logView.renderRow = (elements, row) => { + const { repeats } = elements; + if (row.count > 1) { + repeats.style.display = ""; + repeats.textContent = row.count; + } + }; + + const exportButton = debug.createHeaderButton({ + text: msg("export"), + icon: addon.self.getResource("/icons/download-white.svg") /* rewritten by pull.js */, + description: msg("export-desc"), + }); + const downloadText = (filename, text) => { + downloadBlob(filename, new Blob([text], { type: "text/plain" })); + }; + exportButton.element.addEventListener("click", async (e) => { + const defaultFormat = "{sprite}: {content} ({type})"; + const exportFormat = e.shiftKey + ? await addon.tab.prompt(msg("export"), msg("enter-format"), defaultFormat, { useEditorClasses: true }) + : defaultFormat; + if (!exportFormat) return; + const file = logView.rows + .map(({ text, targetInfo, type, count }) => + ( + exportFormat.replace( + /\{(sprite|type|content)\}/g, + (_, match) => + ({ + sprite: targetInfo ? targetInfo.name : msg("unknown-sprite"), + type, + content: text, + }[match]) + ) + "\n" + ).repeat(count) + ) + .join(""); + downloadText("logs.txt", file); + }); + + const trashButton = debug.createHeaderButton({ + text: msg("clear"), + icon: addon.self.getResource("/icons/delete.svg") /* rewritten by pull.js */, + }); + trashButton.element.addEventListener("click", () => { + clearLogs(); + }); + + const areLogsEqual = (a, b) => + a.text === b.text && + a.type === b.type && + a.internal === b.internal && + a.blockId === b.blockId && + a.targetId === b.targetId; + + const addLog = (text, thread, type) => { + const log = { + text, + type, + count: 1, + preview: true, + }; + if (thread) { + log.blockId = thread.peekStack ? thread.peekStack() : thread.thread.peekStack(); + const targetId = thread.target.id; + log.targetId = targetId; + log.targetInfo = debug.getTargetInfoById(targetId); + } + if (type === "internal") { + log.internal = true; + log.preview = false; + log.type = "log"; + } + if (type === "internal-warn") { + log.internal = true; + log.type = "warn"; + } + + const previousLog = logView.rows[logView.rows.length - 1]; + if (previousLog && areLogsEqual(log, previousLog)) { + previousLog.count++; + logView.queueUpdateContent(); + } else { + logView.append(log); + } + + if (!logView.visible && !log.internal) { + debug.setHasUnreadMessage(true); + } + }; + + const clearLogs = () => { + logView.clear(); + }; + + const show = () => { + logView.show(); + debug.setHasUnreadMessage(false); + }; + const hide = () => { + logView.hide(); + }; + + return { + tab, + content: logView.outerElement, + buttons: [exportButton, trashButton], + show, + hide, + addLog, + clearLogs, + }; +} diff --git a/src/addons/addons/debugger/module.js b/src/addons/addons/debugger/module.js new file mode 100644 index 0000000000000000000000000000000000000000..94df147878bb5cf35b02090c8d068eb3eda1181b --- /dev/null +++ b/src/addons/addons/debugger/module.js @@ -0,0 +1,424 @@ +import EventTarget from "../../event-target.js"; /* inserted by pull.js */ + +// https://github.com/LLK/scratch-vm/blob/bb352913b57991713a5ccf0b611fda91056e14ec/src/engine/thread.js#L198 +const STATUS_RUNNING = 0; +const STATUS_PROMISE_WAIT = 1; +const STATUS_YIELD = 2; +const STATUS_YIELD_TICK = 3; +const STATUS_DONE = 4; + +let vm; + +let paused = false; +let pausedThreadState = new WeakMap(); +let pauseNewThreads = false; + +let steppingThread = null; + +const eventTarget = new EventTarget(); + +let audioContextStateChange = Promise.resolve(); + +export const isPaused = () => paused; + +const pauseThread = (thread) => { + if (thread.updateMonitor || pausedThreadState.has(thread)) { + // Thread is already paused or shouldn't be paused. + return; + } + + const pauseState = { + time: vm.runtime.currentMSecs, + status: thread.status, + }; + pausedThreadState.set(thread, pauseState); + + // Pausing a thread now works by just setting its status to STATUS_PROMISE_WAIT. + // At the start of each frame, we make sure each paused thread is still paused. + // This is really the best way to implement this. + // Converting thread.status into a getter/setter causes Scratch's sequencer to permanently + // perform significantly slower in some projects. I think this is because it causes some + // very hot functions to be deoptimized. + // Trapping sequencer.stepThread to no-op for a paused thread causes Scratch's sequencer + // to waste 24ms of CPU time every frame because it thinks a thread is running. + thread.status = STATUS_PROMISE_WAIT; +}; + +const ensurePausedThreadIsStillPaused = (thread) => { + if (thread.status === STATUS_DONE) { + // If a paused thread is finished by single stepping, let it keep being done. + return; + } + const pauseState = pausedThreadState.get(thread); + if (pauseState) { + if (thread.status !== STATUS_PROMISE_WAIT) { + // We'll record the change so we can properly resume the thread, but the thread must still be paused for now. + pauseState.status = thread.status; + thread.status = STATUS_PROMISE_WAIT; + } + } +}; + +const setSteppingThread = (thread) => { + steppingThread = thread; +}; + +const compensateForTimePassedWhilePaused = (thread, pauseState) => { + // TW: Compiled threads store their timer in a different place. + if (thread.timer) { + thread.timer.startTime += vm.runtime.currentMSecs - pauseState.time; + } + const stackFrame = thread.peekStackFrame(); + if (stackFrame && stackFrame.executionContext && stackFrame.executionContext.timer) { + stackFrame.executionContext.timer.startTime += vm.runtime.currentMSecs - pauseState.time; + } +}; + +const stepUnsteppedThreads = (lastSteppedThread) => { + // If we paused in the middle of a tick, we need to make sure to step the scripts that didn't get + // stepped in that tick to avoid affecting project behavior. + const threads = vm.runtime.threads; + const startingIndex = getThreadIndex(lastSteppedThread); + if (startingIndex !== -1) { + for (let i = startingIndex; i < threads.length; i++) { + const thread = threads[i]; + const status = thread.status; + if (status === STATUS_RUNNING || status === STATUS_YIELD || status === STATUS_YIELD_TICK) { + vm.runtime.sequencer.activeThread = thread; + vm.runtime.sequencer.stepThread(thread); + } + } + } +}; + +export const setPaused = (_paused) => { + const didChange = paused !== _paused; + if (didChange) { + paused = _paused; + eventTarget.dispatchEvent(new CustomEvent("change")); + } + + // Don't check didChange as new threads could've started that we need to pause. + if (paused) { + audioContextStateChange = audioContextStateChange.then(() => { + return vm.runtime.audioEngine.audioContext.suspend(); + }); + if (!vm.runtime.ioDevices.clock._paused) { + vm.runtime.ioDevices.clock.pause(); + } + vm.runtime.threads.forEach(pauseThread); + + const activeThread = vm.runtime.sequencer.activeThread; + if (activeThread) { + setSteppingThread(activeThread); + eventTarget.dispatchEvent(new CustomEvent("step")); + } + } + + // Only run unpausing logic when pause state changed to avoid unnecessary work + if (!paused && didChange) { + audioContextStateChange = audioContextStateChange.then(() => { + return vm.runtime.audioEngine.audioContext.resume(); + }); + vm.runtime.ioDevices.clock.resume(); + for (const thread of vm.runtime.threads) { + const pauseState = pausedThreadState.get(thread); + if (pauseState) { + compensateForTimePassedWhilePaused(thread, pauseState); + thread.status = pauseState.status; + } + } + pausedThreadState = new WeakMap(); + + const lastSteppedThread = steppingThread; + // This must happen after the "change" event is fired to fix https://github.com/ScratchAddons/ScratchAddons/issues/4281 + stepUnsteppedThreads(lastSteppedThread); + steppingThread = null; + } +}; + +export const onPauseChanged = (listener) => { + eventTarget.addEventListener("change", () => listener(paused)); +}; + +export const onSingleStep = (listener) => { + eventTarget.addEventListener("step", listener); +}; + +export const getRunningThread = () => steppingThread; + +// A modified version of this function +// https://github.com/LLK/scratch-vm/blob/0e86a78a00db41af114df64255e2cd7dd881329f/src/engine/sequencer.js#L179 +// Returns if we should continue executing this thread. +const singleStepThread = (thread) => { + if (thread.status === STATUS_DONE) { + return false; + } + // TW: Can't single-step compiled threads + if (thread.isCompiled) { + return false; + } + + const currentBlockId = thread.peekStack(); + if (!currentBlockId) { + thread.popStack(); + + if (thread.stack.length === 0) { + thread.status = STATUS_DONE; + return false; + } + } + + pauseNewThreads = true; + vm.runtime.sequencer.activeThread = thread; + + /* + We need to call execute(this, thread) like the original sequencer. We don't + have access to that method, so we need to force the original stepThread to run + execute for us then exit before it tries to run more blocks. + So, we make `thread.blockGlowInFrame = ...` throw an exception, so this line: + https://github.com/LLK/scratch-vm/blob/bb352913b57991713a5ccf0b611fda91056e14ec/src/engine/sequencer.js#L214 + will end the function early. We then have to set it back to normal afterward. + + Why are we here just to suffer? + */ + const specialError = ["special error used by Scratch Addons for implementing single-stepping"]; + Object.defineProperty(thread, "blockGlowInFrame", { + set(_block) { + throw specialError; + }, + }); + + try { + thread.status = STATUS_RUNNING; + + // Restart the warp timer on each step. + // If we don't do this, Scratch will think a lot of time has passed and may yield this thread. + if (thread.warpTimer) { + thread.warpTimer.start(); + } + + try { + vm.runtime.sequencer.stepThread(thread); + } catch (err) { + if (err !== specialError) throw err; + } + + if (thread.status !== STATUS_RUNNING) { + return false; + } + + if (thread.peekStack() === currentBlockId) { + thread.goToNextBlock(); + } + + while (!thread.peekStack()) { + thread.popStack(); + + if (thread.stack.length === 0) { + thread.status = STATUS_DONE; + return false; + } + + const stackFrame = thread.peekStackFrame(); + + if (stackFrame.isLoop) { + if (thread.peekStackFrame().warpMode) { + continue; + } else { + return false; + } + } else if (stackFrame.waitingReporter) { + return false; + } + + thread.goToNextBlock(); + } + + return true; + } finally { + pauseNewThreads = false; + vm.runtime.sequencer.activeThread = null; + Object.defineProperty(thread, "blockGlowInFrame", { + value: currentBlockId, + configurable: true, + enumerable: true, + writable: true, + }); + + // Strictly this doesn't seem to be necessary, but let's make sure the thread is still paused after we step it. + if (thread.status !== STATUS_DONE) { + thread.status = STATUS_PROMISE_WAIT; + } + } +}; + +const getRealStatus = (thread) => { + const pauseState = pausedThreadState.get(thread); + if (pauseState) { + return pauseState.status; + } + return thread.status; +}; + +const getThreadIndex = (thread) => { + // We can't use vm.runtime.threads.indexOf(thread) because threads can be restarted. + // This can happens when, for example, a "when I receive message1" script broadcasts message1. + // The object in runtime.threads is replaced when this happens. + if (!thread) return -1; + return vm.runtime.threads.findIndex( + (otherThread) => + otherThread.target === thread.target && + otherThread.topBlock === thread.topBlock && + otherThread.stackClick === thread.stackClick && + otherThread.updateMonitor === thread.updateMonitor + ); +}; + +const findNewSteppingThread = (startingIndex) => { + const threads = vm.runtime.threads; + for (let i = startingIndex; i < threads.length; i++) { + const possibleNewThread = threads[i]; + if (possibleNewThread.updateMonitor) { + // Never single-step monitor update threads. + continue; + } + // TW: Can't single-step compiled threads + if (possibleNewThread.isCompiled) { + continue; + } + const status = getRealStatus(possibleNewThread); + if (status === STATUS_RUNNING || status === STATUS_YIELD || status === STATUS_YIELD_TICK) { + // Thread must not be running for single stepping to work. + pauseThread(possibleNewThread); + return possibleNewThread; + } + } + return null; +}; + +export const singleStep = () => { + if (steppingThread) { + const pauseState = pausedThreadState.get(steppingThread); + // We can assume pauseState is defined as any single stepping threads must already be paused. + + // Make it look like no time has passed + compensateForTimePassedWhilePaused(steppingThread, pauseState); + pauseState.time = vm.runtime.currentMSecs; + + // Execute the block + const continueExecuting = singleStepThread(steppingThread); + + if (!continueExecuting) { + // Try to move onto the next thread + steppingThread = findNewSteppingThread(getThreadIndex(steppingThread) + 1); + } + } + + // If we don't have a thread, than we are between VM steps and should search for a new thread + if (!steppingThread) { + setSteppingThread(findNewSteppingThread(0)); + + // End of VM step, emulate one frame of time passing. + vm.runtime.ioDevices.clock._pausedTime += vm.runtime.currentStepTime; + // Skip all sounds forward by vm.runtime.currentStepTime milliseconds so it's as + // if they where playing for one frame. + const audioContext = vm.runtime.audioEngine.audioContext; + for (const target of vm.runtime.targets) { + for (const soundId of Object.keys(target.sprite.soundBank.soundPlayers)) { + const soundPlayer = target.sprite.soundBank.soundPlayers[soundId]; + if (soundPlayer.outputNode) { + soundPlayer.outputNode.stop(audioContext.currentTime); + soundPlayer._createSource(); + soundPlayer.outputNode.start( + audioContext.currentTime, + audioContext.currentTime - soundPlayer.startingUntil + vm.runtime.currentStepTime / 1000 + ); + soundPlayer.startingUntil -= vm.runtime.currentStepTime / 1000; + } + } + } + // Move all threads forward one frame in time. For blocks like `wait () seconds` + for (const thread of vm.runtime.threads) { + if (pausedThreadState.has(thread)) { + pausedThreadState.get(thread).time += vm.runtime.currentStepTime; + } + } + + // Try to run edge activated hats + pauseNewThreads = true; + + const hats = vm.runtime._hats; + for (const hatType in hats) { + if (!Object.prototype.hasOwnProperty.call(hats, hatType)) continue; + const hat = hats[hatType]; + if (hat.edgeActivated) { + vm.runtime.startHats(hatType); + } + } + + pauseNewThreads = false; + } + + eventTarget.dispatchEvent(new CustomEvent("step")); +}; + +export const setup = (_vm) => { + if (vm) { + return; + } + + vm = _vm; + + const originalStepThreads = vm.runtime.sequencer.stepThreads; + vm.runtime.sequencer.stepThreads = function () { + if (isPaused()) { + for (const thread of this.runtime.threads) { + ensurePausedThreadIsStillPaused(thread); + } + } + return originalStepThreads.call(this); + }; + + // Unpause when green flag + const originalGreenFlag = vm.runtime.greenFlag; + vm.runtime.greenFlag = function () { + setPaused(false); + return originalGreenFlag.call(this); + }; + + // Disable edge-activated hats and hats like "when key pressed" while paused. + const originalStartHats = vm.runtime.startHats; + vm.runtime.startHats = function (...args) { + const hat = args[0]; + // These hats can be manually started by the user when paused or while single stepping. + const isUserInitiated = hat === "event_whenbroadcastreceived" || hat === "control_start_as_clone"; + if (pauseNewThreads) { + if (!isUserInitiated && !this.getIsEdgeActivatedHat(hat)) { + return []; + } + const newThreads = originalStartHats.apply(this, args); + for (const thread of newThreads) { + pauseThread(thread); + } + return newThreads; + } else if (paused && !isUserInitiated) { + return []; + } + return originalStartHats.apply(this, args); + }; + + // Paused threads should not be counted as running when updating GUI state. + const originalGetMonitorThreadCount = vm.runtime._getMonitorThreadCount; + vm.runtime._getMonitorThreadCount = function (threads) { + let count = originalGetMonitorThreadCount.call(this, threads); + if (paused) { + for (const thread of threads) { + if (pausedThreadState.has(thread)) { + count++; + } + } + } + return count; + }; +}; diff --git a/src/addons/addons/debugger/performance.js b/src/addons/addons/debugger/performance.js new file mode 100644 index 0000000000000000000000000000000000000000..40a074f8c0c8fa45f4ed9542f30fdb76b1af9d42 --- /dev/null +++ b/src/addons/addons/debugger/performance.js @@ -0,0 +1,181 @@ +import { onPauseChanged, isPaused } from "./module.js"; + +export default async function createPerformanceTab({ debug, addon, console, msg }) { + const vm = addon.tab.traps.vm; + + await addon.tab.loadScript(addon.self.getResource("/thirdparty/cs/chart.min.js")) /* rewritten by pull.js */; + + const tab = debug.createHeaderTab({ + text: msg("tab-performance"), + icon: addon.self.getResource("/icons/performance.svg") /* rewritten by pull.js */, + }); + + const content = Object.assign(document.createElement("div"), { + className: "sa-performance-tab-content", + }); + + const createChart = ({ title }) => { + const titleElement = Object.assign(document.createElement("h2"), { + textContent: title, + }); + const canvas = Object.assign(document.createElement("canvas"), { + className: "sa-debugger-chart", + }); + return { + title: titleElement, + canvas, + }; + }; + + const now = () => performance.now(); + + const getMaxFps = () => Math.round(1000 / vm.runtime.currentStepTime); + + const NUMBER_OF_POINTS = 20; + // An array like [9, 8, 7, 6, 5, 4, 3, 2, 1, 0] + const labels = Array.from(Array(NUMBER_OF_POINTS).keys()).reverse(); + + const fpsElements = createChart({ + title: msg("performance-framerate-title"), + }); + const fpsChart = new Chart(fpsElements.canvas.getContext("2d"), { + type: "line", + data: { + labels, + datasets: [ + { + data: Array(NUMBER_OF_POINTS).fill(-1), + borderWidth: 1, + fill: true, + backgroundColor: "#29beb8", + }, + ], + }, + options: { + scales: { + y: { + max: getMaxFps(), + min: 0, + }, + }, + plugins: { + legend: { + display: false, + }, + tooltip: { + callbacks: { + label: (context) => msg("performance-framerate-graph-tooltip", { fps: context.parsed.y }), + }, + }, + }, + }, + }); + + const clonesElements = createChart({ + title: msg("performance-clonecount-title"), + }); + const performanceClonesChart = new Chart(clonesElements.canvas.getContext("2d"), { + type: "line", + data: { + labels, + datasets: [ + { + data: Array(NUMBER_OF_POINTS).fill(-1), + borderWidth: 1, + fill: true, + backgroundColor: "#29beb8", + }, + ], + }, + options: { + scales: { + y: { + max: 300, + min: 0, + }, + }, + plugins: { + legend: { + display: false, + }, + tooltip: { + callbacks: { + label: (context) => msg("performance-clonecount-graph-tooltip", { clones: context.parsed.y }), + }, + }, + }, + }, + }); + + // Holds the times of each frame drawn in the last second. + // The length of this list is effectively the FPS. + const renderTimes = []; + + // The last time we pushed a new datapoint to the graph + let lastFpsTime = now() + 3000; + + debug.addAfterStepCallback(() => { + if (isPaused()) { + return; + } + const time = now(); + + // Remove all frame times older than 1 second in renderTimes + while (renderTimes.length > 0 && renderTimes[0] <= time - 1000) renderTimes.shift(); + renderTimes.push(time); + + if (time - lastFpsTime > 1000) { + lastFpsTime = time; + + const maxFps = getMaxFps(); + const fpsData = fpsChart.data.datasets[0].data; + fpsData.shift(); + fpsData.push(Math.min(renderTimes.length, maxFps)); + // Incase we switch between 30FPS and 60FPS, update the max height of the chart. + fpsChart.options.scales.y.max = maxFps; + + const clonesData = performanceClonesChart.data.datasets[0].data; + clonesData.shift(); + clonesData.push(vm.runtime._cloneCounter); + + if (isVisible) { + fpsChart.update(); + performanceClonesChart.update(); + } + } + }); + + content.appendChild(fpsElements.title); + content.appendChild(fpsElements.canvas); + content.appendChild(clonesElements.title); + content.appendChild(clonesElements.canvas); + + let pauseTime = 0; + onPauseChanged((paused) => { + if (paused) { + pauseTime = now(); + } else { + const dt = now() - pauseTime; + lastFpsTime += dt; + for (var i = 0; i < renderTimes.length; i++) { + renderTimes[i] += dt; + } + } + }); + + let isVisible = false; + const show = () => { + isVisible = true; + }; + const hide = () => { + isVisible = false; + }; + + return { + tab, + content, + buttons: [], + show, + hide, + }; +} diff --git a/src/addons/addons/debugger/style.css b/src/addons/addons/debugger/style.css new file mode 100644 index 0000000000000000000000000000000000000000..1cd396f6d07bd446510673ce6e3f932945f43d2f --- /dev/null +++ b/src/addons/addons/debugger/style.css @@ -0,0 +1,306 @@ +@import url("../editor-theme3/compatibility.css"); + +[dir="ltr"] .sa-debugger-container { + margin-right: 0.2rem; +} + +[dir="rtl"] .sa-debugger-container { + margin-left: 0.2rem; +} + +.sa-debugger-small .sa-debugger-container { + display: none !important; +} + +.sa-debugger-container [class*="button_content_"] { + position: relative; +} + +.sa-debugger-unread::after { + content: ""; + position: absolute; + top: 1px; + right: 0; + display: block; + width: 6px; + height: 6px; + background-color: var(--editorDarkMode-highlightText, #4d97ff); + border-radius: 50%; +} + +.sa-debugger-interface { + display: none; + position: absolute; + z-index: 492; + background-color: white; + width: 565px; + height: 25rem; +} +[theme="dark"] .sa-debugger-interface { + background: var(--ui-primary); +} + +.sa-debugger-interface [class*="card_header-buttons_"] { + background-color: #29beb8; + border-color: #3aa8a4; +} + +.sa-debugger-interface h1 { + padding: 10px; + z-index: 10; + width: calc(100% - 20px); + font-size: 20px; +} + +.sa-debugger-tabs { + margin: 0; + display: flex; + align-items: center; + padding: 0 15px; + font-size: 0.75rem; +} +.sa-debugger-tabs li { + margin: 0; + display: flex; + align-items: center; + padding: 0.5em 1em; + background-color: rgba(0, 0, 0, 0.1); + border: 1px solid rgba(0, 0, 0, 0.15); + border-radius: 1rem; + color: white; + cursor: pointer; +} +.sa-debugger-tabs li + li { + margin-inline-start: 10px; +} +.sa-debugger-tabs li:hover { + background-color: rgba(0, 0, 0, 0.15); +} +.sa-debugger-tabs li.sa-debugger-tab-selected { + background-color: white; + background-clip: padding-box; + border-color: rgba(0, 0, 0, 0.25); + color: #4d97ff; +} +.sa-debugger-tabs li img { + margin: 0; + margin-right: 0.25rem; + width: 1rem; + filter: brightness(0) invert(1); +} +.sa-debugger-tabs li.sa-debugger-tab-selected img { + filter: none; +} + +.sa-debugger-header-buttons img { + width: 20px; + height: 20px; +} + +.sa-debugger-unpause { + animation: saDebuggerUnpause 2s infinite alternate; +} + +@keyframes saDebuggerUnpause { + 0% { + background-color: rgba(0, 0, 0, 0.15); + } + 100% { + background-color: rgba(0, 0, 0, 0); + } +} + +.sa-debugger-tab-content { + width: 100%; + height: 100%; + overflow: auto; + cursor: auto; +} + +.sa-debugger-chart { + width: 100%; + height: 100%; +} + +.sa-performance-tab-content { + padding: 15px; +} + +.sa-debugger-log-outer { + height: 100%; +} + +.sa-debugger-log-inner { + position: relative; + overflow-y: auto; + font-size: 12px; + line-height: 1.2; + height: 100%; + contain: strict; +} + +.sa-debugger-log-empty { + display: flex; + align-items: center; + justify-content: center; + width: 100%; + height: 100%; + font-size: 20px; + font-style: italic; +} + +.sa-debugger-log-end { + position: absolute; + top: 0; + left: 0; + width: 1px; + height: 1px; +} + +.sa-debugger-log { + position: absolute; + top: 0; + left: 0; + width: 100%; + height: 20px; + box-sizing: border-box; + display: flex; + align-items: center; + border-bottom: 1px solid rgba(0, 0, 0, 0.15); + padding-left: 4px; + font-family: monospace; + color: #000; +} +[theme="dark"] .sa-debugger-log { + color: var(--text-primary); + border-color: rgba(255, 255, 255, 0.15); +} +.sa-debugger-log[data-type="warn"] { + border-color: hsl(50deg, 100%, 75%); + color: hsl(39deg 100% 18%); + background-color: hsl(50deg 100% 95%); +} +.sa-debugger-log[data-type="error"] { + border-color: hsl(0deg 100% 92%); + color: red; + background-color: hsl(0deg 100% 95%); +} +[theme="dark"] .sa-debugger-log[data-type="warn"] { + border-color: hsl(50deg, 100%, 15%); + color: hsl(39deg 100% 90%); + background-color: hsl(50deg 100% 10%); +} +[theme="dark"] .sa-debugger-log[data-type="error"] { + border-color: hsl(0deg 100% 15%); + color: hsl(0deg 100% 77%); + background-color: hsl(0deg 100% 10%); +} + +.sa-debugger-log-repeats { + background-color: hsla(163, 85%, 40%, 1); + color: white; + border-radius: 100px; + padding: 1px 6px; + margin-right: 4px; +} +[theme="dark"] .sa-debugger-log-repeats { + color: var(--ui-primary); +} + +.sa-debugger-log-icon { + width: 16px; + height: 16px; + margin-right: 4px; +} +[data-type="warn"] .sa-debugger-log-icon { + background-image: url(./icons/warning.svg); +} +[data-type="error"] .sa-debugger-log-icon { + background-image: url(./icons/error.svg); +} +.sa-debugger-threads .sa-debugger-log-icon { + background-image: url(./icons/subthread.svg); +} + +.sa-debugger-log-link { + color: inherit; + cursor: pointer; + opacity: 0.5; + text-decoration: underline; + float: right; + text-align: right; + max-width: 100%; + padding-left: 4px; + margin-right: 4px; + margin-left: auto; +} +[theme="dark"] .sa-debugger-log-link { + color: inherit; +} +.sa-debugger-log-link:hover { + text-decoration: underline; + color: #4d97ff; + opacity: 1; +} +.sa-debugger-log-link-unknown { + pointer-events: none; +} + +.sa-debugger-log-text { + overflow: hidden; + text-overflow: ellipsis; + white-space: pre; +} +.sa-debugger-log-text-empty { + font-style: italic; +} +.sa-debugger-log-internal .sa-debugger-log-text { + font-style: italic; +} + +.sa-debugger-thread-indent { + width: calc(16px * var(--level)); + margin-right: 4px; +} +.sa-debugger-thread-title .sa-debugger-thread-indent { + margin: 0; +} +.sa-debugger-thread-target-name { + font-weight: bold; + margin-right: 8px; +} +.sa-debugger-thread-running { + background-color: rgba(255, 187, 0, 0.233); + font-weight: bold; +} + +.sa-debugger-block-preview { + padding: 1px 6px; + margin-right: 4px; + background-color: var(--sa-block-colored-background); + color: var(--sa-block-text); +} +.sa-debugger-block-preview[data-shape="round"] { + border-radius: 100px; +} +.sa-debugger-block-preview[data-shape="stacked"] { + border-radius: 3px; +} + +.sa-debugger-thread-compiled { + font-style: italic; +} + +.sa-debugger-compiler-warning { + position: relative; + display: block; + text-align: center; + height: 24px; + color: #2121bf; +} +.sa-debugger-compiler-warning[hidden] { + display: none; +} +[theme="dark"] .sa-debugger-compiler-warning { + color: #bdbdf9; +} diff --git a/src/addons/addons/debugger/threads.js b/src/addons/addons/debugger/threads.js new file mode 100644 index 0000000000000000000000000000000000000000..416de1e9f8290474ffcd0ee393bd4fe49debd67b --- /dev/null +++ b/src/addons/addons/debugger/threads.js @@ -0,0 +1,252 @@ +import { onPauseChanged, isPaused, singleStep, onSingleStep, getRunningThread } from "./module.js"; +import LogView from "./log-view.js"; +import Highlighter from "../editor-stepping/highlighter.js"; + +const concatInPlace = (copyInto, copyFrom) => { + for (const i of copyFrom) { + copyInto.push(i); + } +}; + +export default async function createThreadsTab({ debug, addon, console, msg }) { + const vm = addon.tab.traps.vm; + + const tab = debug.createHeaderTab({ + text: msg("tab-threads"), + icon: addon.self.getResource("/icons/threads.svg") /* rewritten by pull.js */, + }); + + const logView = new LogView(); + logView.canAutoScrollToEnd = false; + logView.outerElement.classList.add("sa-debugger-threads"); + logView.placeholderElement.textContent = msg("no-threads-running"); + + const highlighter = new Highlighter(10, "#ff0000"); + + logView.generateRow = (row) => { + const root = document.createElement("div"); + root.className = "sa-debugger-log"; + + const isHeader = row.type === "thread-header"; + const indenter = document.createElement("div"); + indenter.className = "sa-debugger-thread-indent"; + indenter.style.setProperty("--level", isHeader ? row.depth : row.depth + 1); + root.appendChild(indenter); + + if (isHeader) { + root.classList.add("sa-debugger-thread-title"); + + if (row.depth > 0) { + const icon = document.createElement("div"); + icon.className = "sa-debugger-log-icon"; + root.appendChild(icon); + } + + const name = document.createElement("div"); + name.textContent = row.targetName; + name.className = "sa-debugger-thread-target-name"; + root.appendChild(name); + + const id = document.createElement("div"); + id.className = "sa-debugger-thread-id"; + id.textContent = msg("thread", { + id: row.id, + }); + root.appendChild(id); + } + + if (row.type === "thread-stack") { + const preview = debug.createBlockPreview(row.targetId, row.blockId); + if (preview) { + root.appendChild(preview); + } + } + + // pm: this isnt very useful if every thread will be compiled + // if (row.type === "compiled") { + // const el = document.createElement('div'); + // el.className = "sa-debugger-thread-compiled"; + // el.textContent = "Compiled threads can't be stepped and have no stack information."; + // root.appendChild(el); + // } + + if (row.targetId && row.blockId) { + root.appendChild(debug.createBlockLink(debug.getTargetInfoById(row.targetId), row.blockId)); + } + + return { + root, + }; + }; + + logView.renderRow = (elements, row) => { + const { root } = elements; + root.classList.toggle("sa-debugger-thread-running", !!row.running); + }; + + let threadInfoCache = new WeakMap(); + + const allThreadIds = new WeakMap(); + let nextThreadId = 1; + const getThreadId = (thread) => { + if (!allThreadIds.has(thread)) { + allThreadIds.set(thread, nextThreadId++); + } + return allThreadIds.get(thread); + }; + + const updateContent = () => { + if (!logView.visible) { + return; + } + + const newRows = []; + const threads = vm.runtime.threads; + const visitedThreads = new Set(); + + const createThreadInfo = (thread, depth) => { + if (visitedThreads.has(thread)) { + return []; + } + visitedThreads.add(thread); + + const id = getThreadId(thread); + const target = thread.target; + + if (!threadInfoCache.has(thread)) { + threadInfoCache.set(thread, { + headerItem: { + type: "thread-header", + depth, + targetName: target.getName(), + id, + }, + compiledItem: thread.isCompiled ? { + type: "compiled", + depth: 1, + } : null, + blockCache: new WeakMap(), + }); + } + const cacheInfo = threadInfoCache.get(thread); + + const runningThread = getRunningThread(); + const createBlockInfo = (block, stackFrameIdx) => { + const blockId = block.id; + if (!block) return; + + const stackFrame = thread.stackFrames[stackFrameIdx]; + + if (!cacheInfo.blockCache.has(block)) { + cacheInfo.blockCache.set(block, {}); + } + + const blockInfoMap = cacheInfo.blockCache.get(block); + let blockInfo = blockInfoMap[stackFrameIdx]; + + if (!blockInfo) { + blockInfo = blockInfoMap[stackFrameIdx] = { + type: "thread-stack", + depth, + targetId: target.id, + blockId, + }; + } + + blockInfo.running = + thread === runningThread && ( + thread.isCompiled || ( + blockId === runningThread.peekStack() && + stackFrameIdx === runningThread.stackFrames.length - 1 + ) + ); + + const result = [blockInfo]; + if (stackFrame && stackFrame.executionContext && stackFrame.executionContext.startedThreads) { + for (const thread of stackFrame.executionContext.startedThreads) { + concatInPlace(result, createThreadInfo(thread, depth + 1)); + } + } + + return result; + }; + + const topBlock = debug.getBlock(thread.target, thread.topBlock); + const result = [cacheInfo.headerItem]; + if (topBlock) { + concatInPlace(result, createBlockInfo(topBlock, 0)); + for (let i = 0; i < thread.stack.length; i++) { + const blockId = thread.stack[i]; + if (blockId === topBlock.id) continue; + const block = debug.getBlock(thread.target, blockId); + if (block) { + concatInPlace(result, createBlockInfo(block, i)); + } + } + } + + if (cacheInfo.compiledItem) { + result.push(cacheInfo.compiledItem); + } + + return result; + }; + + for (let i = 0; i < threads.length; i++) { + const thread = threads[i]; + // Do not display threads used to update variable and list monitors. + if (thread.updateMonitor) { + continue; + } + concatInPlace(newRows, createThreadInfo(thread, 0)); + } + + logView.rows = newRows; + logView.queueUpdateContent(); + }; + + debug.addAfterStepCallback(() => { + updateContent(); + + const runningThread = getRunningThread(); + if (runningThread) { + highlighter.setGlowingThreads([runningThread]); + } else { + highlighter.setGlowingThreads([]); + } + }); + + const stepButton = debug.createHeaderButton({ + text: msg("step"), + icon: addon.self.getResource("/icons/step.svg") /* rewritten by pull.js */, + description: msg("step-desc"), + }); + stepButton.element.addEventListener("click", () => { + singleStep(); + }); + + const handlePauseChanged = (paused) => { + stepButton.element.style.display = paused ? "" : "none"; + updateContent(); + }; + handlePauseChanged(isPaused()); + onPauseChanged(handlePauseChanged); + + onSingleStep(updateContent); + + const show = () => { + logView.show(); + updateContent(); + }; + const hide = () => { + logView.hide(); + }; + + return { + tab, + content: logView.outerElement, + buttons: [stepButton], + show, + hide, + }; +} diff --git a/src/addons/addons/debugger/userscript.js b/src/addons/addons/debugger/userscript.js new file mode 100644 index 0000000000000000000000000000000000000000..20efaf4f20d8d00bd48506baaa1add3a75fe13ab --- /dev/null +++ b/src/addons/addons/debugger/userscript.js @@ -0,0 +1,616 @@ +import { isPaused, setPaused, onPauseChanged, setup } from "./module.js"; +import createLogsTab from "./logs.js"; +import createThreadsTab from "./threads.js"; +import createPerformanceTab from "./performance.js"; +import Utils from "../find-bar/blockly/Utils.js"; + +const removeAllChildren = (element) => { + while (element.firstChild) { + element.removeChild(element.firstChild); + } +}; + +export default async function ({ addon, console, msg }) { + setup(addon.tab.traps.vm); + + let logsTab; + const messagesLoggedBeforeLogsTabLoaded = []; + const logMessage = (...args) => { + if (logsTab) { + logsTab.addLog(...args); + } else { + messagesLoggedBeforeLogsTabLoaded.push(args); + } + }; + + let hasLoggedPauseError = false; + const pause = (_, thread) => { + if (addon.tab.redux.state.scratchGui.mode.isPlayerOnly) { + if (!hasLoggedPauseError) { + logMessage(msg("cannot-pause-player"), thread, "error"); + hasLoggedPauseError = true; + } + return; + } + setPaused(true); + setInterfaceVisible(true); + }; + addon.tab.addBlock("\u200B\u200Bbreakpoint\u200B\u200B", { + args: [], + displayName: msg("block-breakpoint"), + callback: pause, + }); + addon.tab.addBlock("\u200B\u200Blog\u200B\u200B %s", { + args: ["content"], + displayName: msg("block-log"), + callback: ({ content }, thread) => { + logMessage(content, thread, "log"); + }, + }); + addon.tab.addBlock("\u200B\u200Bwarn\u200B\u200B %s", { + args: ["content"], + displayName: msg("block-warn"), + callback: ({ content }, thread) => { + logMessage(content, thread, "warn"); + }, + }); + addon.tab.addBlock("\u200B\u200Berror\u200B\u200B %s", { + args: ["content"], + displayName: msg("block-error"), + callback: ({ content }, thread) => { + logMessage(content, thread, "error"); + }, + }); + + const vm = addon.tab.traps.vm; + await new Promise((resolve, reject) => { + if (vm.editingTarget) return resolve(); + vm.runtime.once("PROJECT_LOADED", resolve); + }); + const ScratchBlocks = await addon.tab.traps.getBlockly(); + + const debuggerButtonOuter = document.createElement("div"); + debuggerButtonOuter.className = "sa-debugger-container"; + const debuggerButton = document.createElement("div"); + debuggerButton.className = addon.tab.scratchClass("button_outlined-button", "stage-header_stage-button"); + const debuggerButtonContent = document.createElement("div"); + debuggerButtonContent.className = addon.tab.scratchClass("button_content"); + const debuggerButtonImage = document.createElement("img"); + debuggerButtonImage.className = addon.tab.scratchClass("stage-header_stage-button-icon"); + debuggerButtonImage.draggable = false; + debuggerButtonImage.src = addon.self.getResource("/icons/debug.svg") /* rewritten by pull.js */; + debuggerButtonContent.appendChild(debuggerButtonImage); + debuggerButton.appendChild(debuggerButtonContent); + debuggerButtonOuter.appendChild(debuggerButton); + debuggerButton.addEventListener("click", () => setInterfaceVisible(true)); + + const setHasUnreadMessage = (unreadMessage) => { + debuggerButtonContent.classList.toggle("sa-debugger-unread", unreadMessage); + }; + + const interfaceContainer = Object.assign(document.createElement("div"), { + className: addon.tab.scratchClass("card_card", { others: "sa-debugger-interface" }), + }); + const interfaceHeader = Object.assign(document.createElement("div"), { + className: addon.tab.scratchClass("card_header-buttons"), + }); + const tabListElement = Object.assign(document.createElement("ul"), { + className: "sa-debugger-tabs", + }); + const buttonContainerElement = Object.assign(document.createElement("div"), { + className: addon.tab.scratchClass("card_header-buttons-right", { others: "sa-debugger-header-buttons" }), + }); + const tabContentContainer = Object.assign(document.createElement("div"), { + className: "sa-debugger-tab-content", + }); + + const compilerWarning = document.createElement("a"); + compilerWarning.addEventListener("click", () => { + addon.tab.redux.dispatch({ + type: "scratch-gui/modals/OPEN_MODAL", + modal: "settingsModal" + }); + }); + compilerWarning.className = "sa-debugger-log sa-debugger-compiler-warning"; + compilerWarning.textContent = "The debugger works best when the compiler is disabled."; + const updateCompilerWarningVisibility = () => { + // compilerWarning.hidden = !vm.runtime.compilerOptions.enabled; + compilerWarning.hidden = true; + }; + vm.on("COMPILER_OPTIONS_CHANGED", updateCompilerWarningVisibility); + updateCompilerWarningVisibility(); + + let isInterfaceVisible = false; + const setInterfaceVisible = (_isVisible) => { + isInterfaceVisible = _isVisible; + interfaceContainer.style.display = isInterfaceVisible ? "flex" : ""; + if (isInterfaceVisible) { + activeTab.show(); + } else { + activeTab.hide(); + } + }; + + let mouseOffsetX = 0; + let mouseOffsetY = 0; + let lastX = 0; + let lastY = 0; + const handleStartDrag = (e) => { + e.preventDefault(); + mouseOffsetX = e.clientX - interfaceContainer.offsetLeft; + mouseOffsetY = e.clientY - interfaceContainer.offsetTop; + lastX = e.clientX; + lastY = e.clientY; + document.addEventListener("mouseup", handleStopDrag); + document.addEventListener("mousemove", handleDragInterface); + }; + const handleStopDrag = () => { + document.removeEventListener("mouseup", handleStopDrag); + document.removeEventListener("mousemove", handleDragInterface); + }; + const moveInterface = (x, y) => { + lastX = x; + lastY = y; + const width = (document.documentElement.clientWidth || document.body.clientWidth) - 1; + const height = (document.documentElement.clientHeight || document.body.clientHeight) - 1; + const clampedX = Math.max(0, Math.min(x - mouseOffsetX, width - interfaceContainer.offsetWidth)); + const clampedY = Math.max(0, Math.min(y - mouseOffsetY, height - interfaceContainer.offsetHeight)); + interfaceContainer.style.left = clampedX + "px"; + interfaceContainer.style.top = clampedY + "px"; + }; + const handleDragInterface = (e) => { + e.preventDefault(); + moveInterface(e.clientX, e.clientY); + }; + window.addEventListener("resize", () => { + moveInterface(lastX, lastY); + }); + interfaceHeader.addEventListener("mousedown", handleStartDrag); + + interfaceHeader.append(tabListElement, buttonContainerElement); + interfaceContainer.append(interfaceHeader, compilerWarning, tabContentContainer); + document.body.append(interfaceContainer); + + const createHeaderButton = ({ text, icon, description }) => { + const button = Object.assign(document.createElement("div"), { + className: addon.tab.scratchClass("card_shrink-expand-button"), + draggable: false, + }); + if (description) { + button.title = description; + } + const imageElement = Object.assign(document.createElement("img"), { + src: icon, + draggable: false, + }); + const textElement = Object.assign(document.createElement("span"), { + textContent: text, + }); + button.appendChild(imageElement); + button.appendChild(textElement); + return { + element: button, + image: imageElement, + text: textElement, + }; + }; + + const createHeaderTab = ({ text, icon }) => { + const tab = document.createElement("li"); + const imageElement = Object.assign(document.createElement("img"), { + src: icon, + draggable: false, + }); + const textElement = Object.assign(document.createElement("span"), { + textContent: text, + }); + tab.appendChild(imageElement); + tab.appendChild(textElement); + return { + element: tab, + image: imageElement, + text: textElement, + }; + }; + + const unpauseButton = createHeaderButton({ + text: msg("unpause"), + icon: addon.self.getResource("/icons/play.svg") /* rewritten by pull.js */, + }); + unpauseButton.element.classList.add("sa-debugger-unpause"); + unpauseButton.element.addEventListener("click", () => setPaused(false)); + const updateUnpauseVisibility = (paused) => { + unpauseButton.element.style.display = paused ? "" : "none"; + }; + updateUnpauseVisibility(isPaused()); + onPauseChanged(updateUnpauseVisibility); + + const closeButton = createHeaderButton({ + text: msg("close"), + icon: addon.self.getResource("/icons/close.svg") /* rewritten by pull.js */, + }); + closeButton.element.addEventListener("click", () => setInterfaceVisible(false)); + + const originalStep = vm.runtime._step; + const afterStepCallbacks = []; + vm.runtime._step = function (...args) { + const ret = originalStep.call(this, ...args); + for (const cb of afterStepCallbacks) { + cb(); + } + return ret; + }; + const addAfterStepCallback = (cb) => { + afterStepCallbacks.push(cb); + }; + + const getBlock = (target, id) => target.blocks.getBlock(id) || vm.runtime.flyoutBlocks.getBlock(id); + + const getTargetInfoById = (id) => { + const target = vm.runtime.getTargetById(id); + if (target) { + let name = target.getName(); + let original = target; + if (!target.isOriginal) { + name = msg("clone-of", { + sprite: name, + }); + original = target.sprite.clones[0]; + } + return { + exists: true, + originalId: original.id, + name, + }; + } + return { + exists: false, + original: null, + name: msg("unknown-sprite"), + }; + }; + + const createBlockLink = (targetInfo, blockId) => { + const link = document.createElement("a"); + link.className = "sa-debugger-log-link"; + + const { exists, name, originalId } = targetInfo; + link.textContent = name; + if (exists) { + // We use mousedown instead of click so that you can still go to blocks when logs are rapidly scrolling + link.addEventListener("mousedown", () => { + switchToSprite(originalId); + activateCodeTab(); + goToBlock(blockId); + }); + } else { + link.classList.add("sa-debugger-log-link-unknown"); + } + + return link; + }; + + const switchToSprite = (targetId) => { + if (targetId !== vm.editingTarget.id) { + if (vm.runtime.getTargetById(targetId)) { + vm.setEditingTarget(targetId); + } + } + }; + + const activateCodeTab = () => { + const redux = addon.tab.redux; + if (redux.state.scratchGui.editorTab.activeTabIndex !== 0) { + redux.dispatch({ + type: "scratch-gui/navigation/ACTIVATE_TAB", + activeTabIndex: 0, + }); + } + }; + + const goToBlock = (blockId) => { + const workspace = Blockly.getMainWorkspace(); + const block = workspace.getBlockById(blockId); + if (!block) return; + + // Don't scroll to blocks in the flyout + if (block.workspace.isFlyout) return; + + new Utils(addon).scrollBlockIntoView(blockId); + }; + + /** + * @param {string} procedureCode + * @returns {string} + */ + const formatProcedureCode = (procedureCode) => { + const customBlock = addon.tab.getCustomBlock(procedureCode); + if (customBlock) { + procedureCode = customBlock.displayName; + } + // May be slightly incorrect in some edge cases. + return procedureCode.replace(/%[nbs]/g, "()"); + }; + + // May be slightly incorrect in some edge cases. + const formatBlocklyBlockData = (jsonData) => { + // For sample jsonData, see: + // https://github.com/LLK/scratch-blocks/blob/0bd1a17e66a779ec5d11f4a00c43784e3ac7a7b8/blocks_vertical/motion.js + // https://github.com/LLK/scratch-blocks/blob/0bd1a17e66a779ec5d11f4a00c43784e3ac7a7b8/blocks_vertical/control.js + + const processSegment = (index) => { + const message = jsonData[`message${index}`]; + const args = jsonData[`args${index}`]; + if (!message) { + return null; + } + const parts = message.split(/%\d+/g); + let formattedMessage = ""; + for (let i = 0; i < parts.length; i++) { + formattedMessage += parts[i]; + const argInfo = args && args[i]; + if (argInfo) { + const type = argInfo.type; + if (type === "field_vertical_separator") { + // no-op + } else if (type === "field_image") { + const src = argInfo.src; + if (src.endsWith("rotate-left.svg")) { + formattedMessage += "↩"; + } else if (src.endsWith("rotate-right.svg")) { + formattedMessage += "↪"; + } + } else { + formattedMessage += "()"; + } + } + } + return formattedMessage; + }; + + const parts = []; + let i = 0; + // The jsonData doesn't directly tell us how many segments it has, so we have to + // just keep looping until one doesn't exist. + while (true) { + const nextSegment = processSegment(i); + if (nextSegment) { + parts.push(nextSegment); + } else { + break; + } + i++; + } + return parts.join(" "); + }; + + const createBlockPreview = (targetId, blockId) => { + const target = vm.runtime.getTargetById(targetId); + if (!target) { + return null; + } + + const block = getBlock(target, blockId); + if (!block || block.opcode === "text") { + return null; + } + + let text; + let category; + let shape; + if ( + block.opcode === "data_variable" || + block.opcode === "data_listcontents" || + block.opcode === "argument_reporter_string_number" || + block.opcode === "argument_reporter_boolean" + ) { + text = Object.values(block.fields)[0].value; + if (block.opcode === "data_variable") { + category = "data"; + } else if (block.opcode === "data_listcontents") { + category = "list"; + } else { + category = "more"; + } + shape = "round"; + } else if (block.opcode === "procedures_call") { + const proccode = block.mutation.proccode; + text = formatProcedureCode(proccode); + const customBlock = addon.tab.getCustomBlock(proccode); + if (customBlock) { + category = "addon-custom-block"; + } else { + category = "more"; + } + } else if (block.opcode === "procedures_definition" || block.opcode === "procedures_definition_return") { + const prototypeBlockId = block.inputs.custom_block.block; + const prototypeBlock = getBlock(target, prototypeBlockId); + const proccode = prototypeBlock.mutation.proccode; + text = ScratchBlocks.ScratchMsgs.translate("PROCEDURES_DEFINITION", "define %1").replace( + "%1", + formatProcedureCode(proccode) + ); + category = "more"; + } else { + // Try to call things like https://github.com/LLK/scratch-blocks/blob/0bd1a17e66a779ec5d11f4a00c43784e3ac7a7b8/blocks_vertical/operators.js#L36 + var jsonData; + const fakeBlock = { + jsonInit(data) { + jsonData = data; + }, + }; + const blockConstructor = ScratchBlocks.Blocks[block.opcode]; + if (blockConstructor) { + try { + blockConstructor.init.call(fakeBlock); + } catch (e) { + // ignore + } + } + if (!jsonData) { + return null; + } + text = formatBlocklyBlockData(jsonData); + if (!text) { + return null; + } + // jsonData.extensions is not guaranteed to exist + category = jsonData.extensions?.includes("scratch_extension") ? "pen" : jsonData.category; + const isStatement = + (jsonData.extensions && + (jsonData.extensions.includes("shape_statement") || + jsonData.extensions.includes("shape_hat") || + jsonData.extensions.includes("shape_end"))) || + "previousStatement" in jsonData || + "nextStatement" in jsonData; + shape = isStatement ? "stacked" : "round"; + } + if (!text || !category) { + return null; + } + + const element = document.createElement("span"); + element.className = "sa-debugger-block-preview sa-block-color"; + element.textContent = text; + element.dataset.shape = shape; + + element.classList.add(`sa-block-color-${category}`); + + return element; + }; + + const api = { + debug: { + createHeaderButton, + createHeaderTab, + setHasUnreadMessage, + addAfterStepCallback, + getBlock, + getTargetInfoById, + createBlockLink, + createBlockPreview, + }, + addon, + msg, + console, + }; + logsTab = await createLogsTab(api); + const threadsTab = await createThreadsTab(api); + const allTabs = [logsTab, threadsTab]; + + for (const message of messagesLoggedBeforeLogsTabLoaded) { + logsTab.addLog(...message); + } + messagesLoggedBeforeLogsTabLoaded.length = 0; + + let activeTab; + const setActiveTab = (tab) => { + if (tab === activeTab) return; + const selectedClass = "sa-debugger-tab-selected"; + if (activeTab) { + activeTab.hide(); + activeTab.tab.element.classList.remove(selectedClass); + } + tab.tab.element.classList.add(selectedClass); + activeTab = tab; + + removeAllChildren(tabContentContainer); + tabContentContainer.appendChild(tab.content); + + removeAllChildren(buttonContainerElement); + buttonContainerElement.appendChild(unpauseButton.element); + for (const button of tab.buttons) { + buttonContainerElement.appendChild(button.element); + } + buttonContainerElement.appendChild(closeButton.element); + + if (isInterfaceVisible) { + activeTab.show(); + } + }; + for (const tab of allTabs) { + tab.tab.element.addEventListener("click", () => { + setActiveTab(tab); + }); + tabListElement.appendChild(tab.tab.element); + } + setActiveTab(allTabs[0]); + + if (addon.tab.redux.state && addon.tab.redux.state.scratchGui.stageSize.stageSize === "small") { + document.body.classList.add("sa-debugger-small"); + } + document.addEventListener( + "click", + (e) => { + if (e.target.closest("[class*='stage-header_stage-button-first']:not(.sa-hide-stage-button)")) { + document.body.classList.add("sa-debugger-small"); + } else if ( + e.target.closest("[class*='stage-header_stage-button-last']") || + e.target.closest(".sa-hide-stage-button") + ) { + document.body.classList.remove("sa-debugger-small"); + } + }, + { capture: true } + ); + + const ogGreenFlag = vm.runtime.greenFlag; + vm.runtime.greenFlag = function (...args) { + if (addon.settings.get("log_clear_greenflag")) { + logsTab.clearLogs(); + } + if (addon.settings.get("log_greenflag")) { + logsTab.addLog(msg("log-msg-flag-clicked"), null, "internal"); + } + return ogGreenFlag.call(this, ...args); + }; + + const ogMakeClone = vm.runtime.targets[0].constructor.prototype.makeClone; + vm.runtime.targets[0].constructor.prototype.makeClone = function (...args) { + if (addon.settings.get("log_failed_clone_creation") && !vm.runtime.clonesAvailable()) { + logsTab.addLog( + msg("log-msg-clone-cap", { sprite: this.getName() }), + vm.runtime.sequencer.activeThread, + "internal-warn" + ); + } + var clone = ogMakeClone.call(this, ...args); + if (addon.settings.get("log_clone_create") && clone) { + logsTab.addLog( + msg("log-msg-clone-created", { sprite: this.getName() }), + vm.runtime.sequencer.activeThread, + "internal" + ); + } + return clone; + }; + + const ogStartHats = vm.runtime.startHats; + vm.runtime.startHats = function (hat, optMatchFields, ...args) { + if (addon.settings.get("log_broadcasts") && hat === "event_whenbroadcastreceived") { + logsTab.addLog( + msg("log-msg-broadcasted", { broadcast: optMatchFields.BROADCAST_OPTION }), + vm.runtime.sequencer.activeThread, + "internal" + ); + } + return ogStartHats.call(this, hat, optMatchFields, ...args); + }; + + while (true) { + await addon.tab.waitForElement('[class*="stage-header_stage-size-row"]', { + markAsSeen: true, + reduxEvents: [ + "scratch-gui/mode/SET_PLAYER", + "scratch-gui/mode/SET_FULL_SCREEN", + "fontsLoaded/SET_FONTS_LOADED", + "scratch-gui/locales/SELECT_LOCALE", + ], + }); + if (addon.tab.editorMode === "editor") { + addon.tab.appendToSharedSpace({ space: "stageHeader", element: debuggerButtonOuter, order: 0 }); + } else { + setInterfaceVisible(false); + } + } +} diff --git a/src/addons/addons/default-costume-editor-color/_manifest_entry.js b/src/addons/addons/default-costume-editor-color/_manifest_entry.js new file mode 100644 index 0000000000000000000000000000000000000000..8c9dcfd967dffe9fcc82b83b21846e698920a184 --- /dev/null +++ b/src/addons/addons/default-costume-editor-color/_manifest_entry.js @@ -0,0 +1,53 @@ +/* generated by pull.js */ +const manifest = { + "editorOnly": true, + "noTranslations": true, + "name": "Customizable default costume editor colors", + "description": "Changes the default colors and outline size used by the costume editor.", + "credits": [ + { + "name": "GarboMuffin" + } + ], + "userscripts": [ + { + "url": "userscript.js" + } + ], + "settings": [ + { + "dynamic": true, + "name": "Default fill color", + "id": "fill", + "type": "color", + "default": "#9966FF" + }, + { + "dynamic": true, + "name": "Default outline color", + "id": "stroke", + "type": "color", + "default": "#000000" + }, + { + "dynamic": true, + "name": "Default outline size", + "id": "strokeSize", + "type": "integer", + "min": 0, + "max": 100, + "default": 4 + }, + { + "dynamic": true, + "name": "Use previous color instead of resetting after switching tools", + "id": "persistence", + "type": "boolean", + "default": true + } + ], + "tags": [], + "dynamicDisable": true, + "enabledByDefault": false +}; +export default manifest; diff --git a/src/addons/addons/default-costume-editor-color/_runtime_entry.js b/src/addons/addons/default-costume-editor-color/_runtime_entry.js new file mode 100644 index 0000000000000000000000000000000000000000..bc67131957e52185c142f348760610cfaa4f774d --- /dev/null +++ b/src/addons/addons/default-costume-editor-color/_runtime_entry.js @@ -0,0 +1,5 @@ +/* generated by pull.js */ +import _js from "./userscript.js"; +export const resources = { + "userscript.js": _js, +}; diff --git a/src/addons/addons/default-costume-editor-color/userscript.js b/src/addons/addons/default-costume-editor-color/userscript.js new file mode 100644 index 0000000000000000000000000000000000000000..ad5b272fb6234596159589454380ccc303e5d49e --- /dev/null +++ b/src/addons/addons/default-costume-editor-color/userscript.js @@ -0,0 +1,286 @@ +export default async function ({ addon, console, msg }) { + // We don"t *need* to wait for the costume editor to be opened, but redux updates take a non-zero + // amount of CPU time so let's delay that for as long as possible. + await addon.tab.traps.getPaper(); + + const hexComponent = (str) => Math.round(+str).toString(16).toUpperCase().padStart(2, "0"); + + const parseColor = (color) => { + if (color === null) { + return null; + } + if (typeof color === "string") { + // TW natively supports hex color codes with or without transparency + if (color.startsWith("#")) { + return color.substring(0, 9).toUpperCase(); + } + // Sometimes paper gives us rgb() colors which have to be converted to hex + const rgbMatch = color.match(/^rgb\((\d+)\s*,(\d+)\s*,(\d+)\)$/); + if (rgbMatch) { + const [_, r, g, b] = rgbMatch; + return `#${hexComponent(r)}${hexComponent(g)}${hexComponent(b)}`; + } + // It can also give us rgba() colors + const rgbaMatch = color.match(/^rgba\((\d+)\s*,(\d+)\s*,(\d+),([\d.]+)\)$/); + if (rgbaMatch) { + const [_, r, g, b, a] = rgbaMatch; + return `#${hexComponent(r)}${hexComponent(g)}${hexComponent(b)}${hexComponent(a * 255)}`; + } + } + console.log("Could not normalize color", color); + return null; + }; + + const parseColorStyleColor = (color) => { + if (color === MIXED) return MIXED; + return parseColor(color); + }; + + // Special value Scratch uses as color when objects with different colors are selected + // https://github.com/LLK/scratch-paint/blob/6733e20b56f52d139f9885952a57c7da012a542f/src/helper/style-path.js#L10 + const MIXED = "scratch-paint/style-path/mixed"; + + const SCRATCH_DEFAULT_FILL = parseColor("#9966FF"); + const SCRATCH_DEFAULT_STROKE = parseColor("#000000"); + + const TOOL_INFO = Object.assign(Object.create(null), { + // Tool names and gradient info defined in https://github.com/LLK/scratch-paint/blob/develop/src/lib/modes.js + // Search for activateTool() in matching file in https://github.com/LLK/scratch-paint/tree/develop/src/containers + BRUSH: { + resetsFill: true, + }, + ERASER: {}, + LINE: { + resetsStroke: true, + requiresNonZeroStrokeWidth: true, + supportsGradient: true, + }, + FILL: { + resetsFill: true, + supportsGradient: true, + }, + SELECT: { + supportsGradient: true, + }, + RESHAPE: { + supportsGradient: true, + }, + OVAL: { + resetsFill: true, + resetsStroke: true, + supportsGradient: true, + }, + RECT: { + resetsFill: true, + resetsStroke: true, + supportsGradient: true, + }, + TEXT: { + resetsFill: true, + resetsStroke: true, + }, + BIT_BRUSH: { + resetsFill: true, + }, + BIT_LINE: { + resetsFill: true, + requiresNonZeroStrokeWidth: true, + }, + BIT_OVAL: { + resetsFill: true, + resetsStroke: true, + supportsGradient: true, + }, + BIT_RECT: { + resetsFill: true, + resetsStroke: true, + supportsGradient: true, + }, + BIT_TEXT: { + resetsFill: true, + resetsStroke: true, + }, + BIT_FILL: { + resetsFill: true, + supportsGradient: true, + }, + BIT_ERASER: {}, + BIT_SELECT: { + supportsGradient: true, + }, + }); + + const getToolInfo = () => TOOL_INFO[addon.tab.redux.state.scratchPaint.mode]; + + class ColorStyleReducerWrapper { + constructor(reduxPropertyName, primaryAction, secondaryAction, gradientTypeAction) { + this.reduxPropertyName = reduxPropertyName; + this.primaryAction = primaryAction; + this.secondaryAction = secondaryAction; + this.gradientTypeAction = gradientTypeAction; + } + + get(state = addon.tab.redux.state) { + return state.scratchPaint.color[this.reduxPropertyName]; + } + + set(newColor) { + const state = this.get(); + const newPrimary = parseColorStyleColor(newColor.primary); + if (state.primary !== newPrimary) { + addon.tab.redux.dispatch({ + type: this.primaryAction, + color: newPrimary, + }); + } + const toolInfo = getToolInfo(); + const toolSupportsGradient = toolInfo && toolInfo.supportsGradient; + if (toolSupportsGradient) { + const newSecondary = parseColorStyleColor(newColor.secondary); + if (state.secondary !== newSecondary) { + addon.tab.redux.dispatch({ + type: this.secondaryAction, + color: newSecondary, + }); + } + if (state.gradientType !== newColor.gradientType) { + addon.tab.redux.dispatch({ + type: this.gradientTypeAction, + gradientType: newColor.gradientType, + }); + } + } + } + } + + const fillStyle = new ColorStyleReducerWrapper( + "fillColor", + "scratch-paint/fill-style/CHANGE_FILL_COLOR", + "scratch-paint/fill-style/CHANGE_FILL_COLOR_2", + "scratch-paint/fill-style/CHANGE_FILL_GRADIENT_TYPE" + ); + const strokeStyle = new ColorStyleReducerWrapper( + "strokeColor", + "scratch-paint/stroke-style/CHANGE_STROKE_COLOR", + "scratch-paint/stroke-style/CHANGE_STROKE_COLOR_2", + "scratch-paint/stroke-style/CHANGE_STROKE_GRADIENT_TYPE" + ); + + const simpleHexColor = (hex) => ({ + primary: hex, + secondary: null, + gradientType: "SOLID", + }); + + let defaultFillColor; + let defaultStrokeColor; + let defaultStrokeWidth; + const setDefaultColorsToSettings = () => { + defaultFillColor = simpleHexColor(parseColor(addon.settings.get("fill"))); + defaultStrokeColor = simpleHexColor(parseColor(addon.settings.get("stroke"))); + defaultStrokeWidth = addon.settings.get("strokeSize"); + }; + setDefaultColorsToSettings(); + + const applyFillColor = () => { + fillStyle.set(defaultFillColor); + }; + const applyStrokeColor = () => { + strokeStyle.set(defaultStrokeColor); + }; + const applyStrokeWidth = (mustBeNonZero) => { + let width = defaultStrokeWidth; + if (width === 0 && mustBeNonZero) { + width = 1; + } + if (addon.tab.redux.state.scratchPaint.color.strokeWidth !== width) { + addon.tab.redux.dispatch({ + type: "scratch-paint/stroke-width/CHANGE_STROKE_WIDTH", + strokeWidth: width, + }); + } + }; + + if (!addon.self.disabled) { + applyFillColor(); + applyStrokeColor(); + applyStrokeWidth(false); + } + + addon.settings.addEventListener("change", () => { + if (!addon.settings.get("persistence")) { + setDefaultColorsToSettings(); + } + }); + + const isValidColorToPersist = (color) => color.primary !== null && color.primary !== MIXED; + + let activatingTool = false; + addon.tab.redux.initialize(); + addon.tab.redux.addEventListener("statechanged", ({ detail }) => { + if (addon.self.disabled) { + return; + } + const action = detail.action; + + if (!activatingTool && addon.settings.get("persistence")) { + // We always want to check for changes instead of filtering to just certain actions because quite a few + // actions can change these. + const newFill = fillStyle.get(); + if (fillStyle.get(detail.prev) !== newFill && isValidColorToPersist(newFill)) { + defaultFillColor = newFill; + } + const newStroke = strokeStyle.get(); + if (strokeStyle.get(detail.prev) !== newStroke && isValidColorToPersist(newStroke)) { + defaultStrokeColor = newStroke; + } + + const newStrokeWidth = detail.next.scratchPaint.color.strokeWidth; + if (typeof newStrokeWidth === "number") { + defaultStrokeWidth = newStrokeWidth; + } + } + + if (action.type === "scratch-paint/modes/CHANGE_MODE") { + activatingTool = true; + queueMicrotask(() => { + activatingTool = false; + if (addon.settings.get("persistence")) { + // In persistence, we always want to re-apply the previous stroke and fill. + const toolInfo = getToolInfo(); + if (!toolInfo) { + console.warn("unknown tool", addon.tab.redux.state.scratchPaint.mode); + return; + } + if (toolInfo.resetsFill) { + applyFillColor(); + } + if (toolInfo.resetsStroke) { + applyStrokeWidth(!!toolInfo.requiresNonZeroStrokeWidth); + applyStrokeColor(); + } + } else { + // In non-persistence, we'll only apply the default colors when Scratch resets them to maintain the same behavior. + // We have to do this weird redux trick because we can't modify these constants: + // https://github.com/LLK/scratch-paint/blob/6733e20b56f52d139f9885952a57c7da012a542f/src/reducers/fill-style.js#L7 + // https://github.com/LLK/scratch-paint/blob/6733e20b56f52d139f9885952a57c7da012a542f/src/reducers/stroke-style.js#L7 + const oldFillColor = fillStyle.get(detail.prev); + if (oldFillColor.primary === null || oldFillColor.primary === MIXED) { + const newFillColor = fillStyle.get(); + if (newFillColor.primary === SCRATCH_DEFAULT_FILL) { + applyFillColor(); + } + } + const oldStrokeColor = strokeStyle.get(detail.prev); + if (oldStrokeColor.primary === null || oldStrokeColor.primary === MIXED) { + const newStrokeColor = strokeStyle.get(); + if (newStrokeColor.primary === SCRATCH_DEFAULT_STROKE) { + applyStrokeWidth(true); + applyStrokeColor(); + } + } + } + }); + } + }); +} diff --git a/src/addons/addons/disable-paste-offset/_manifest_entry.js b/src/addons/addons/disable-paste-offset/_manifest_entry.js new file mode 100644 index 0000000000000000000000000000000000000000..29313e9d7c0127c663a64213cf2ed0a11d3aa8e1 --- /dev/null +++ b/src/addons/addons/disable-paste-offset/_manifest_entry.js @@ -0,0 +1,27 @@ +/* generated by pull.js */ +const manifest = { + "editorOnly": true, + "noTranslations": true, + "name": "Do not shift pasted items", + "description": "Paste copied items at their original position instead of shifted slightly in the costume editor.", + "info": [ + { + "text": "This behavior can also be achieved without this addon by Alt+Clicking the item.", + "id": "vanilla" + } + ], + "credits": [ + { + "name": "GarboMuffin" + } + ], + "dynamicDisable": true, + "userscripts": [ + { + "url": "userscript.js" + } + ], + "tags": [], + "enabledByDefault": false +}; +export default manifest; diff --git a/src/addons/addons/disable-paste-offset/_runtime_entry.js b/src/addons/addons/disable-paste-offset/_runtime_entry.js new file mode 100644 index 0000000000000000000000000000000000000000..bc67131957e52185c142f348760610cfaa4f774d --- /dev/null +++ b/src/addons/addons/disable-paste-offset/_runtime_entry.js @@ -0,0 +1,5 @@ +/* generated by pull.js */ +import _js from "./userscript.js"; +export const resources = { + "userscript.js": _js, +}; diff --git a/src/addons/addons/disable-paste-offset/userscript.js b/src/addons/addons/disable-paste-offset/userscript.js new file mode 100644 index 0000000000000000000000000000000000000000..add5225a9cf157305e6c026fbbd72cec432bea30 --- /dev/null +++ b/src/addons/addons/disable-paste-offset/userscript.js @@ -0,0 +1,22 @@ +export default async function ({ addon, console }) { + addon.tab.redux.initialize(); + addon.tab.redux.addEventListener("statechanged", ({ detail }) => { + if (addon.self.disabled) return; + if ( + detail.action.type === "scratch-paint/clipboard/SET" || + detail.action.type === "scratch-paint/clipboard/INCREMENT_PASTE_OFFSET" + ) { + addon.tab.redux.dispatch({ type: "scratch-paint/clipboard/CLEAR_PASTE_OFFSET" }); + } + }); + addon.self.addEventListener("disabled", () => { + addon.tab.redux.dispatch({ type: "scratch-paint/clipboard/CLEAR_PASTE_OFFSET" }); + addon.tab.redux.dispatch({ type: "scratch-paint/clipboard/INCREMENT_PASTE_OFFSET" }); + }); + addon.self.addEventListener("reenabled", () => { + addon.tab.redux.dispatch({ type: "scratch-paint/clipboard/CLEAR_PASTE_OFFSET" }); + }); + if (addon.self.enabledLate) { + addon.tab.redux.dispatch({ type: "scratch-paint/clipboard/CLEAR_PASTE_OFFSET" }); + } +} diff --git a/src/addons/addons/disable-stage-drag-select/_manifest_entry.js b/src/addons/addons/disable-stage-drag-select/_manifest_entry.js new file mode 100644 index 0000000000000000000000000000000000000000..47868d5c652216deb6717edf31ff318bf87020d3 --- /dev/null +++ b/src/addons/addons/disable-stage-drag-select/_manifest_entry.js @@ -0,0 +1,25 @@ +/* generated by pull.js */ +const manifest = { + "editorOnly": true, + "noTranslations": true, + "name": "Non-draggable sprites in editor", + "description": "Removes the ability to drag sprites around on the stage in the editor, except those explicitly set as draggable. Hold Shift while dragging a sprite to move it normally.", + "credits": [ + { + "name": "Chrome_Cat", + "link": "https://scratch.mit.edu/users/Chrome_Cat/" + }, + { + "name": "GarboMuffin" + } + ], + "userscripts": [ + { + "url": "userscript.js" + } + ], + "tags": [], + "enabledByDefault": false, + "dynamicDisable": true +}; +export default manifest; diff --git a/src/addons/addons/disable-stage-drag-select/_runtime_entry.js b/src/addons/addons/disable-stage-drag-select/_runtime_entry.js new file mode 100644 index 0000000000000000000000000000000000000000..bc67131957e52185c142f348760610cfaa4f774d --- /dev/null +++ b/src/addons/addons/disable-stage-drag-select/_runtime_entry.js @@ -0,0 +1,5 @@ +/* generated by pull.js */ +import _js from "./userscript.js"; +export const resources = { + "userscript.js": _js, +}; diff --git a/src/addons/addons/disable-stage-drag-select/userscript.js b/src/addons/addons/disable-stage-drag-select/userscript.js new file mode 100644 index 0000000000000000000000000000000000000000..d679a26a142d18539fe7572f4605135dee897063 --- /dev/null +++ b/src/addons/addons/disable-stage-drag-select/userscript.js @@ -0,0 +1,39 @@ +export default async ({ addon, console }) => { + const vm = addon.tab.traps.vm; + + let shiftKeyPressed = false; + document.addEventListener( + "mousedown", + function (e) { + shiftKeyPressed = e.shiftKey; + }, + { + capture: true, + } + ); + + // Do not focus sprite after dragging it + const oldStopDrag = vm.stopDrag; + vm.stopDrag = function (...args) { + if (shiftKeyPressed || addon.self.disabled) return oldStopDrag.call(this, ...args); + const setEditingTarget = this.setEditingTarget; + this.setEditingTarget = () => {}; + const r = oldStopDrag.call(this, ...args); + this.setEditingTarget = setEditingTarget; + return r; + }; + + // Don't let the editor drag sprites that aren't marked as draggable + const oldGetTargetIdForDrawableId = vm.getTargetIdForDrawableId; + vm.getTargetIdForDrawableId = function (...args) { + const targetId = oldGetTargetIdForDrawableId.call(this, ...args); + if (shiftKeyPressed || addon.self.disabled) return targetId; + if (targetId !== null) { + const target = this.runtime.getTargetById(targetId); + if (target && !target.draggable) { + return null; + } + } + return targetId; + }; +}; diff --git a/src/addons/addons/drag-drop/_manifest_entry.js b/src/addons/addons/drag-drop/_manifest_entry.js new file mode 100644 index 0000000000000000000000000000000000000000..db515339a1b54beca4f0c38068868c0227c0da01 --- /dev/null +++ b/src/addons/addons/drag-drop/_manifest_entry.js @@ -0,0 +1,34 @@ +/* generated by pull.js */ +const manifest = { + "noTranslations": true, + "name": "File drag and drop", + "description": "Lets you drag images and sounds from your file manager into the sprite pane or costume/sound list. You can also drag text files into lists or \"ask and wait\" question inputs.", + "credits": [ + { + "name": "Sheep_maker" + } + ], + "userscripts": [ + { + "url": "userscript.js" + } + ], + "settings": [ + { + "dynamic": true, + "id": "use-hd-upload", + "name": "Use HD uploads", + "type": "boolean", + "default": false, + "if": { + "addonEnabled": "better-img-uploads" + } + } + ], + "dynamicDisable": true, + "tags": [ + "recommended" + ], + "enabledByDefault": true +}; +export default manifest; diff --git a/src/addons/addons/drag-drop/_runtime_entry.js b/src/addons/addons/drag-drop/_runtime_entry.js new file mode 100644 index 0000000000000000000000000000000000000000..bc67131957e52185c142f348760610cfaa4f774d --- /dev/null +++ b/src/addons/addons/drag-drop/_runtime_entry.js @@ -0,0 +1,5 @@ +/* generated by pull.js */ +import _js from "./userscript.js"; +export const resources = { + "userscript.js": _js, +}; diff --git a/src/addons/addons/drag-drop/userscript.js b/src/addons/addons/drag-drop/userscript.js new file mode 100644 index 0000000000000000000000000000000000000000..7f2ec09535724ccee64b33cc06d8b608ee3c3c18 --- /dev/null +++ b/src/addons/addons/drag-drop/userscript.js @@ -0,0 +1,187 @@ +export default async function ({ addon, console }) { + /** @type {HTMLElement|null} */ + let currentDraggingElement = null; + + /** @type {WeakMap} */ + const allAnimations = new WeakMap(); + + const FORWARD = 1; + const REVERSE = -1; + + /** + * @param {HTMLElement} element + * @param {number} direction + * @returns {Animation} + */ + const animateElement = (element, direction) => { + /** @type {Animation} */ + let animation; + if (allAnimations.has(element)) { + animation = allAnimations.get(element); + } else { + animation = element.animate( + [ + { + // this object intentionally empty so the element animates from whatever its default value + // is in CSS. + }, + { + backgroundColor: "#60E1FF", + }, + ], + { + duration: 250, + fill: "forwards", + easing: "ease", + } + ); + allAnimations.set(element, animation); + } + + animation.playbackRate = direction; + }; + + const nativeInputValueSetter = Object.getOwnPropertyDescriptor(window.HTMLInputElement.prototype, "value").set; + const reactAwareSetValue = (el, value) => { + nativeInputValueSetter.call(el, value); + el.dispatchEvent(new Event("change", { bubbles: true })); + }; + + const globalHandleDragOver = (e) => { + if (addon.self.disabled) return; + + if (!e.dataTransfer.types.includes("Files")) { + return; + } + + let el; + let callback; + if ( + (el = e.target.closest('div[class*="sprite-selector_sprite-selector"]')) || + (el = e.target.closest('div[class*="stage-selector_stage-selector"]')) || + (el = e.target.closest('div[class*="selector_wrapper"]')) + ) { + callback = (files) => { + const hdFilter = addon.settings.get("use-hd-upload") ? "" : ":not(.sa-better-img-uploads-input)"; + const fileInput = el.querySelector('input[class*="action-menu_file-input"]' + hdFilter); + fileInput.files = files; + fileInput.dispatchEvent(new Event("change", { bubbles: true })); + }; + } else if ((el = e.target.closest('div[class*="monitor_list-monitor"]'))) { + callback = (files) => { + const contextMenuBefore = document.querySelector("body > .react-contextmenu.react-contextmenu--visible"); + // Simulate a right click on the list monitor + el.dispatchEvent(new MouseEvent("contextmenu", { bubbles: true })); + // Get the right click menu that opened (monitor context menus are + // children of ) + const contextMenuAfter = document.querySelector("body > .react-contextmenu.react-contextmenu--visible"); + // `contextMenuAfter` is only null if the context menu was already open + // for the list monitor, in which case we can use the context menu from + // before the simulated right click + const contextMenu = contextMenuAfter === null ? contextMenuBefore : contextMenuAfter; + // Sometimes the menu flashes open, so force hide it. + contextMenu.style.display = "none"; + // Override DOM methods to import the text file directly + // See: https://github.com/LLK/scratch-gui/blob/develop/src/lib/import-csv.js#L21-L22 + const appendChild = document.body.appendChild; + document.body.appendChild = (fileInput) => { + // Restore appendChild to + document.body.appendChild = appendChild; + if (fileInput instanceof HTMLInputElement) { + document.body.appendChild(fileInput); + // Prevent Scratch from opening the file input dialog + fileInput.click = () => {}; + // Insert files from the drop event into the file input + fileInput.files = files; + fileInput.dispatchEvent(new Event("change")); + window.requestAnimationFrame(() => { + window.requestAnimationFrame(() => { + contextMenu.style.display = null; + contextMenu.style.opacity = 0; + contextMenu.style.pointerEvents = "none"; + }); + }); + } else { + // The next call for `appendChild` SHOULD be the file input, but if + // it's not, then make `appendChild` behave as normal. + console.error('File input was not immediately given to appendChild upon clicking "Import"!'); + return appendChild(fileInput); + } + }; + // Simulate clicking on the "Import" option + contextMenu.children[0].click(); + }; + } else if ( + (el = e.target.closest('div[class*="question_question-input"] > input[class*="input_input-form_l9eYg"]')) + ) { + callback = async (files) => { + const text = (await Promise.all(Array.from(files, (file) => file.text()))) + .join("") + // Match pasting behavior: remove all newline characters at the end + .replace(/[\r\n]+$/, "") + .replace(/\r?\n|\r/g, " "); + const selectionStart = el.selectionStart; + reactAwareSetValue(el, el.value.slice(0, selectionStart) + text + el.value.slice(el.selectionEnd)); + el.setSelectionRange(selectionStart, selectionStart + text.length); + }; + } + if (!el) { + return; + } + + e.preventDefault(); + + if (el === currentDraggingElement) { + return; + } + currentDraggingElement = el; + + /** @type {HTMLElement[]} */ + const elementsToAnimate = [ + el, + el.querySelector('div[class*="stage-selector_header_"]'), + el.querySelector('div[class*="sprite-info_sprite-info"]'), + el.querySelector('div[class*="monitor_list-body"]'), + ].filter((i) => i); + for (const el of elementsToAnimate) { + animateElement(el, FORWARD); + } + + const handleDrop = (e) => { + e.preventDefault(); + cleanup(); + if (e.dataTransfer.types.includes("Files") && e.dataTransfer.files.length > 0) { + callback(e.dataTransfer.files); + } + }; + + const handleDragOver = (e) => { + e.preventDefault(); + e.dataTransfer.dropEffect = "copy"; + }; + e.dataTransfer.dropEffect = "copy"; + + const handleDragLeave = (e) => { + e.preventDefault(); + cleanup(); + }; + + const cleanup = () => { + currentDraggingElement = null; + + el.removeEventListener("dragover", handleDragOver); + el.removeEventListener("dragleave", handleDragLeave); + el.removeEventListener("drop", handleDrop); + + for (const el of elementsToAnimate) { + animateElement(el, REVERSE); + } + }; + + el.addEventListener("dragover", handleDragOver); + el.addEventListener("dragleave", handleDragLeave); + el.addEventListener("drop", handleDrop); + }; + + document.addEventListener("dragover", globalHandleDragOver, { useCapture: true }); +} diff --git a/src/addons/addons/editor-block-chomping/_manifest_entry.js b/src/addons/addons/editor-block-chomping/_manifest_entry.js new file mode 100644 index 0000000000000000000000000000000000000000..dfa9667b7a2bab55469a97377e7a822a76e912e9 --- /dev/null +++ b/src/addons/addons/editor-block-chomping/_manifest_entry.js @@ -0,0 +1,21 @@ +/* generated by pull.js */ +const manifest = { + "name": "Extend wrapped C blocks", + "description": "Makes C blocks extend when wrapping them around blocks, like in Scratch 2.0.", + "credits": [ + { + "name": "CST1229", + "link": "https://github.com/CST1229/" + } + ], + "userscripts": [ + { + "url": "userscript.js" + } + ], + "tags": ["editor", "codeEditor", "new", "beta"], + "enabledByDefault": false, + "dynamicEnable": true, + "dynamicDisable": true +}; +export default manifest; diff --git a/src/addons/addons/editor-block-chomping/_runtime_entry.js b/src/addons/addons/editor-block-chomping/_runtime_entry.js new file mode 100644 index 0000000000000000000000000000000000000000..bc67131957e52185c142f348760610cfaa4f774d --- /dev/null +++ b/src/addons/addons/editor-block-chomping/_runtime_entry.js @@ -0,0 +1,5 @@ +/* generated by pull.js */ +import _js from "./userscript.js"; +export const resources = { + "userscript.js": _js, +}; diff --git a/src/addons/addons/editor-block-chomping/userscript.js b/src/addons/addons/editor-block-chomping/userscript.js new file mode 100644 index 0000000000000000000000000000000000000000..4f001633fbe7c32ac7298673df86f02cb9f54d6b --- /dev/null +++ b/src/addons/addons/editor-block-chomping/userscript.js @@ -0,0 +1,74 @@ +export default async function ({ addon }) { + const ScratchBlocks = await addon.tab.traps.getBlockly(); + + // Rerender the dragged block when updating the insertion marker + const ogConnectMarker = ScratchBlocks.InsertionMarkerManager.prototype.connectMarker_; + ScratchBlocks.InsertionMarkerManager.prototype.connectMarker_ = function () { + ogConnectMarker.call(this); + if (!addon.self.disabled && this.firstMarker_) { + const block = this?.workspace_?.currentGesture_?.blockDragger_?.draggingBlock_; + block.noMoveConnection = true; + if (block) block.render(false); + } + }; + const ogDisconnectMarker = ScratchBlocks.InsertionMarkerManager.prototype.disconnectMarker_; + ScratchBlocks.InsertionMarkerManager.prototype.disconnectMarker_ = function () { + ogDisconnectMarker.call(this); + if (!addon.self.disabled && this.firstMarker_) { + const block = this?.workspace_?.currentGesture_?.blockDragger_?.draggingBlock_; + block.noMoveConnection = true; + if (block) block.render(false); + } + }; + + const ogDraw = ScratchBlocks.BlockSvg.prototype.renderDraw_; + const ogMoveConnections = ScratchBlocks.BlockSvg.prototype.renderMoveConnections_; + ScratchBlocks.BlockSvg.prototype.renderDraw_ = function (iconWidth, inputRows) { + if (addon.self.disabled) return ogDraw.call(this, iconWidth, inputRows); + + // If the block contains a statement (C) input and has an insertion marker, + // use that to calculate the height of the statement inputs + let computeBlock = this; + if (this?.workspace?.currentGesture_?.blockDragger_?.draggedConnectionManager_) { + const dragger = this.workspace.currentGesture_.blockDragger_; + const manager = dragger.draggedConnectionManager_; + if ( + manager.markerConnection_ && + manager.firstMarker_ && + dragger.draggingBlock_ == this && + dragger.draggingBlock_.type == manager.firstMarker_.type + ) { + if (inputRows.some((row) => row.some((input) => input.type === ScratchBlocks.NEXT_STATEMENT))) { + computeBlock = manager.firstMarker_; + } + } + } + + // Change the height of substacks + // (If we set inputRows to computeBlock.renderCompute_, + // the references to the inputs would be wrong + // so they just won't update properly) + if (computeBlock !== this) { + const _inputRows = computeBlock.renderCompute_(iconWidth); + for (let i = 0; i < inputRows.length; i++) { + const row = inputRows[i]; + let update = false; + for (const input of row) { + if (input.type === ScratchBlocks.NEXT_STATEMENT) update = true; + } + if (update) row.height = Math.max(row.height, _inputRows[i].height); + } + } + + ogDraw.call(this, iconWidth, inputRows); + + // Moving the connections of a block while it's being dragged breaks it, + // so don't + if (computeBlock === this && !this.noMoveConnection) ogMoveConnections.call(this); + this.noMoveConnection = false; + }; + ScratchBlocks.BlockSvg.prototype.renderMoveConnections_ = function () { + if (addon.self.disabled) return ogMoveConnections.call(this); + // Do nothing (this function is instead called by renderDraw_) + }; +} \ No newline at end of file diff --git a/src/addons/addons/editor-buttons-reverse-order/_manifest_entry.js b/src/addons/addons/editor-buttons-reverse-order/_manifest_entry.js new file mode 100644 index 0000000000000000000000000000000000000000..fd13a38ef0345682e75cc821e2728d5052a7f7b3 --- /dev/null +++ b/src/addons/addons/editor-buttons-reverse-order/_manifest_entry.js @@ -0,0 +1,15 @@ +/* generated by pull.js */ +const manifest = { + "name": "Reverse order of project controls", + "description": "Moves the green flag and stop buttons to the right and the full screen button to the left, like in Scratch 2.0.", + "tags": [ + "theme" + ], + "dynamicDisable": true, + "userstyles": [ + { + "url": "userstyle.css" + } + ] +}; +export default manifest; diff --git a/src/addons/addons/editor-buttons-reverse-order/_runtime_entry.js b/src/addons/addons/editor-buttons-reverse-order/_runtime_entry.js new file mode 100644 index 0000000000000000000000000000000000000000..7258d9ba2794dad3eb667e6071b542c59e495b56 --- /dev/null +++ b/src/addons/addons/editor-buttons-reverse-order/_runtime_entry.js @@ -0,0 +1,5 @@ +/* generated by pull.js */ +import _css from "!css-loader!./userstyle.css"; +export const resources = { + "userstyle.css": _css, +}; diff --git a/src/addons/addons/editor-buttons-reverse-order/userstyle.css b/src/addons/addons/editor-buttons-reverse-order/userstyle.css new file mode 100644 index 0000000000000000000000000000000000000000..f72edc66ce0b051b7ec12ed7c6b50a51e14d44f8 --- /dev/null +++ b/src/addons/addons/editor-buttons-reverse-order/userstyle.css @@ -0,0 +1,24 @@ +[class*="stage-header_stage-menu-wrapper"], +[class*="stage-header_stage-size-row"] { + flex-direction: row-reverse; +} + +[dir="ltr"] [class*="stage-header_stage-size-toggle-group"], +[dir="ltr"] .sa-debugger-container, +[dir="ltr"] .sa-gamepad-container { + margin-right: 0; + margin-left: 0.2rem; +} + +[dir="rtl"] [class*="stage-header_stage-size-toggle-group"], +[dir="rtl"] .sa-debugger-container, +[dir="rtl"] .sa-gamepad-container { + margin-left: 0; + margin-right: 0.2rem; +} + +[class*="green-flag_green-flag_"], +[class*="stop-all_stop-all_"], +.pause-btn { + order: 1; +} diff --git a/src/addons/addons/editor-colored-context-menus/_manifest_entry.js b/src/addons/addons/editor-colored-context-menus/_manifest_entry.js new file mode 100644 index 0000000000000000000000000000000000000000..7d7e0f1bc44fa0e2714119e7798b5409e4abd717 --- /dev/null +++ b/src/addons/addons/editor-colored-context-menus/_manifest_entry.js @@ -0,0 +1,28 @@ +/* generated by pull.js */ +const manifest = { + "editorOnly": true, + "noTranslations": true, + "name": "Colored context menus", + "description": "Makes block right click context menus colorful.", + "credits": [ + { + "name": "GarboMuffin" + } + ], + "dynamicDisable": true, + "userscripts": [ + { + "url": "userscript.js" + } + ], + "userstyles": [ + { + "url": "userscript.css" + } + ], + "tags": [ + "theme" + ], + "enabledByDefault": false +}; +export default manifest; diff --git a/src/addons/addons/editor-colored-context-menus/_runtime_entry.js b/src/addons/addons/editor-colored-context-menus/_runtime_entry.js new file mode 100644 index 0000000000000000000000000000000000000000..7d9d3b5487a949dcd0e972e3066ce988a323038d --- /dev/null +++ b/src/addons/addons/editor-colored-context-menus/_runtime_entry.js @@ -0,0 +1,7 @@ +/* generated by pull.js */ +import _js from "./userscript.js"; +import _css from "!css-loader!./userscript.css"; +export const resources = { + "userscript.js": _js, + "userscript.css": _css, +}; diff --git a/src/addons/addons/editor-colored-context-menus/userscript.css b/src/addons/addons/editor-colored-context-menus/userscript.css new file mode 100644 index 0000000000000000000000000000000000000000..ea7d0f2bc8620b440f8f293af62ae9949a4c0792 --- /dev/null +++ b/src/addons/addons/editor-colored-context-menus/userscript.css @@ -0,0 +1,15 @@ +.sa-contextmenu-colored .blocklyContextMenu { + background-color: var(--sa-contextmenu-bg) !important; + border-color: var(--sa-contextmenu-border) !important; +} +.sa-contextmenu-colored .blocklyContextMenu .goog-menuitem-highlight, +.sa-contextmenu-colored .s3dev-mi:hover { + background-color: #0001; + border-color: transparent !important; +} +.sa-contextmenu-colored .blocklyContextMenu .goog-menuitem[style*="border-top"] { + border-top-color: var(--sa-contextmenu-border) !important; +} +.sa-contextmenu-colored .blocklyContextMenu .goog-menuitem .goog-menuitem-content { + color: white; +} diff --git a/src/addons/addons/editor-colored-context-menus/userscript.js b/src/addons/addons/editor-colored-context-menus/userscript.js new file mode 100644 index 0000000000000000000000000000000000000000..923dba2c165ed3e32816a2ee4f3daeafb3d21c80 --- /dev/null +++ b/src/addons/addons/editor-colored-context-menus/userscript.js @@ -0,0 +1,39 @@ +import { removeAlpha } from "../../libraries/common/cs/text-color.esm.js"; + +export default async function ({ addon, console }) { + const ScratchBlocks = await addon.tab.traps.getBlockly(); + + const applyContextMenuColor = (block) => { + const widgetDiv = ScratchBlocks.WidgetDiv.DIV; + if (!widgetDiv) { + return; + } + const background = block.svgPath_; + if (!background) { + return; + } + const fill = removeAlpha(background.getAttribute("fill")); + const border = background.getAttribute("stroke") || "#0003"; + widgetDiv.classList.add("sa-contextmenu-colored"); + widgetDiv.style.setProperty("--sa-contextmenu-bg", fill); + widgetDiv.style.setProperty("--sa-contextmenu-border", border); + }; + + const originalHandleRightClick = ScratchBlocks.Gesture.prototype.handleRightClick; + ScratchBlocks.Gesture.prototype.handleRightClick = function (...args) { + const block = this.targetBlock_; + const ret = originalHandleRightClick.call(this, ...args); + if (block) { + applyContextMenuColor(block); + } + return ret; + }; + + const originalHide = ScratchBlocks.WidgetDiv.hide; + ScratchBlocks.WidgetDiv.hide = function (...args) { + if (ScratchBlocks.WidgetDiv.DIV) { + ScratchBlocks.WidgetDiv.DIV.classList.remove("sa-contextmenu-colored"); + } + return originalHide.call(this, ...args); + }; +} diff --git a/src/addons/addons/editor-comment-previews/_manifest_entry.js b/src/addons/addons/editor-comment-previews/_manifest_entry.js new file mode 100644 index 0000000000000000000000000000000000000000..956ec93ae72d99deca97341940b8c835f820076a --- /dev/null +++ b/src/addons/addons/editor-comment-previews/_manifest_entry.js @@ -0,0 +1,95 @@ +/* generated by pull.js */ +const manifest = { + "editorOnly": true, + "noTranslations": true, + "name": "Editor comment previews", + "description": "Allows you to preview the contents of comments by hovering over collapsed comments and blocks. You can use this to view comments that are off-screen, identify a loop block from the bottom by its preview, fit many long comments in a small space, and more.", + "tags": [], + "credits": [ + { + "name": "lisa_wolfgang", + "link": "https://scratch.mit.edu/users/lisa_wolfgang/" + }, + { + "name": "GarboMuffin" + } + ], + "userstyles": [ + { + "url": "userstyle.css" + } + ], + "userscripts": [ + { + "url": "userscript.js" + } + ], + "settings": [ + { + "dynamic": true, + "name": "Hover collapsed comments to preview", + "id": "hover-view", + "type": "boolean", + "default": true + }, + { + "dynamic": true, + "name": "Hover blocks to preview attached comments", + "id": "hover-view-block", + "type": "boolean", + "default": true + }, + { + "dynamic": true, + "name": "Hover custom blocks to preview definition comments", + "id": "hover-view-procedure", + "type": "boolean", + "default": true + }, + { + "dynamic": true, + "name": "Delay duration", + "id": "delay", + "type": "select", + "potentialValues": [ + { + "name": "None", + "id": "none" + }, + { + "name": "Short", + "id": "short" + }, + { + "name": "Long", + "id": "long" + } + ], + "default": "short" + }, + { + "dynamic": true, + "name": "Follow mouse", + "id": "follow-mouse", + "type": "boolean", + "default": true + }, + { + "dynamic": true, + "name": "Reduce transparency", + "id": "reduce-transparency", + "type": "boolean", + "default": false + }, + { + "dynamic": true, + "name": "Reduce animation", + "id": "reduce-animation", + "type": "boolean", + "default": false + } + ], + "dynamicDisable": true, + "enabledByDefault": true +}; +export default manifest; diff --git a/src/addons/addons/editor-comment-previews/_runtime_entry.js b/src/addons/addons/editor-comment-previews/_runtime_entry.js new file mode 100644 index 0000000000000000000000000000000000000000..e8d1f9d053dfbf3603b17200d244fda9ead99731 --- /dev/null +++ b/src/addons/addons/editor-comment-previews/_runtime_entry.js @@ -0,0 +1,7 @@ +/* generated by pull.js */ +import _js from "./userscript.js"; +import _css from "!css-loader!./userstyle.css"; +export const resources = { + "userscript.js": _js, + "userstyle.css": _css, +}; diff --git a/src/addons/addons/editor-comment-previews/userscript.js b/src/addons/addons/editor-comment-previews/userscript.js new file mode 100644 index 0000000000000000000000000000000000000000..27e388545e29063a83784eab8f36aa757d5ff3cd --- /dev/null +++ b/src/addons/addons/editor-comment-previews/userscript.js @@ -0,0 +1,151 @@ +export default async function ({ addon, console }) { + const vm = addon.tab.traps.vm; + + const updateStyles = () => { + previewInner.classList.toggle("sa-comment-preview-delay", addon.settings.get("delay") !== "none"); + previewInner.classList.toggle("sa-comment-preview-reduce-transparency", addon.settings.get("reduce-transparency")); + previewInner.classList.toggle("sa-comment-preview-fade", !addon.settings.get("reduce-animation")); + }; + + const afterDelay = (cb) => { + if (!previewInner.classList.contains("sa-comment-preview-hidden")) { + // If not hidden, updating immediately is preferred + cb(); + return; + } + const delay = addon.settings.get("delay"); + if (delay === "long") return setTimeout(cb, 500); + if (delay === "short") return setTimeout(cb, 300); + cb(); + }; + + let hoveredElement = null; + let showTimeout = null; + let mouseX = 0; + let mouseY = 0; + let doNotShowUntilMoveMouse = false; + + const previewOuter = document.createElement("div"); + previewOuter.classList.add("sa-comment-preview-outer"); + const previewInner = document.createElement("div"); + previewInner.classList.add("sa-comment-preview-inner"); + previewInner.classList.add("sa-comment-preview-hidden"); + updateStyles(); + addon.settings.addEventListener("change", updateStyles); + previewOuter.appendChild(previewInner); + document.body.appendChild(previewOuter); + + const getBlock = (id) => vm.editingTarget.blocks.getBlock(id) || vm.runtime.flyoutBlocks.getBlock(id); + const getComment = (block) => block && block.comment && vm.editingTarget.comments[block.comment]; + const getProcedureDefinitionBlock = (procCode) => { + const procedurePrototype = Object.values(vm.editingTarget.blocks._blocks).find( + (i) => i.opcode === "procedures_prototype" && i.mutation.proccode === procCode + ); + if (procedurePrototype) { + // Usually `parent` will exist but sometimes it doesn't + if (procedurePrototype.parent) { + return getBlock(procedurePrototype.parent); + } + const id = procedurePrototype.id; + return Object.values(vm.editingTarget.blocks._blocks).find( + (i) => (i.opcode === "procedures_definition" || i.opcode === "procedures_definition_return") && i.inputs.custom_block && i.inputs.custom_block.block === id + ); + } + return null; + }; + + const setText = (text) => { + previewInner.innerText = text; + previewInner.classList.remove("sa-comment-preview-hidden"); + updateMousePosition(); + }; + + const updateMousePosition = () => { + previewOuter.style.transform = `translate(${mouseX + 8}px, ${mouseY + 8}px)`; + }; + + const hidePreview = () => { + if (hoveredElement) { + hoveredElement = null; + previewInner.classList.add("sa-comment-preview-hidden"); + } + }; + + document.addEventListener("mouseover", (e) => { + if (addon.self.disabled) { + return; + } + clearTimeout(showTimeout); + if (doNotShowUntilMoveMouse) { + return; + } + + const el = e.target.closest(".blocklyBubbleCanvas > g, .blocklyBlockCanvas .blocklyDraggable[data-id]"); + if (el === hoveredElement) { + // Nothing to do. + return; + } + if (!el) { + hidePreview(); + return; + } + + let text = null; + if ( + addon.settings.get("hover-view") && + e.target.closest(".blocklyBubbleCanvas > g") && + // Hovering over the thin line that connects comments to blocks should never show a preview + !e.target.closest("line") + ) { + const collapsedText = el.querySelector("text.scratchCommentText"); + if (!collapsedText) return; + if (collapsedText.getAttribute("display") !== "none") { + const textarea = el.querySelector("textarea"); + text = textarea.value; + } + } else if (e.target.closest(".blocklyBlockCanvas .blocklyDraggable[data-id]")) { + const id = el.dataset.id; + const block = getBlock(id); + const comment = getComment(block); + if (addon.settings.get("hover-view-block") && comment) { + text = comment.text; + } else if (block && block.opcode === "procedures_call" && addon.settings.get("hover-view-procedure")) { + const procCode = block.mutation.proccode; + const procedureDefinitionBlock = getProcedureDefinitionBlock(procCode); + const procedureComment = getComment(procedureDefinitionBlock); + if (procedureComment) { + text = procedureComment.text; + } + } + } + + if (text !== null && text.trim() !== "") { + showTimeout = afterDelay(() => { + hoveredElement = el; + setText(text); + }); + } else { + hidePreview(); + } + }); + + document.addEventListener("mousemove", (e) => { + mouseX = e.clientX; + mouseY = e.clientY; + doNotShowUntilMoveMouse = false; + if (addon.settings.get("follow-mouse") && !previewInner.classList.contains("sa-comment-preview-hidden")) { + updateMousePosition(); + } + }); + + document.addEventListener( + "mousedown", + () => { + hidePreview(); + doNotShowUntilMoveMouse = true; + }, + { + capture: true, + } + ); +} diff --git a/src/addons/addons/editor-comment-previews/userstyle.css b/src/addons/addons/editor-comment-previews/userstyle.css new file mode 100644 index 0000000000000000000000000000000000000000..7bd0effd112049ee6ef5d1c6cf2f210a13c5aeee --- /dev/null +++ b/src/addons/addons/editor-comment-previews/userstyle.css @@ -0,0 +1,48 @@ +.sa-comment-preview-outer { + position: fixed; + top: 0; + left: 0; + z-index: 100000000; + pointer-events: none; +} + +.sa-comment-preview-inner { + width: calc(200px - 16px); + max-height: calc(132px - 8px); + padding: 8px; + overflow: hidden; + + font-size: 12px; + white-space: pre-wrap; + pointer-events: none; + + color: rgb(87, 94, 117); + background-color: rgb(255 255 255 / 90%); + border-style: none; + border-radius: 8px; + filter: drop-shadow(0px 5px 5px rgb(0 0 0 / 10%)); + + transform: perspective(200px); +} + +@supports (backdrop-filter: blur(16px)) { + .sa-comment-preview-inner { + background-color: rgb(255 255 255 / 75%); + backdrop-filter: blur(16px); + } +} + +.sa-comment-preview-fade { + transition: opacity 0.1s, filter 0.1s, transform 0.1s linear; +} + +.sa-comment-preview-hidden { + opacity: 0; + filter: none; + transform: perspective(200px) translateZ(-20px); +} + +.sa-comment-preview-reduce-transparency { + background-color: rgb(255 255 255); + backdrop-filter: none; +} diff --git a/src/addons/addons/editor-devtools/DevTools.js b/src/addons/addons/editor-devtools/DevTools.js new file mode 100644 index 0000000000000000000000000000000000000000..e2106f976429317de40c7d915e0c4007b4220fb9 --- /dev/null +++ b/src/addons/addons/editor-devtools/DevTools.js @@ -0,0 +1,754 @@ +// import ShowBroadcast from "./show-broadcast.js"; +import DomHelpers from "./DomHelpers.js"; +import UndoGroup from "./UndoGroup.js"; + +export default class DevTools { + constructor(addon, msg, m) { + this.addon = addon; + this.msg = msg; + this.m = m; + /** + * @type {VirtualMachine} + */ + this.domHelpers = new DomHelpers(addon); + + this.codeTab = null; + this.costTab = null; + this.costTabBody = null; + this.selVarID = null; + this.canShare = false; + + this.mouseXY = { x: 0, y: 0 }; + } + + async init() { + this.addContextMenus(); + while (true) { + const root = await this.addon.tab.waitForElement("ul[class*=gui_tab-list_]", { + markAsSeen: true, + reduxEvents: [ + "scratch-gui/mode/SET_PLAYER", + "fontsLoaded/SET_FONTS_LOADED", + "scratch-gui/locales/SELECT_LOCALE", + ], + reduxCondition: (state) => !state.scratchGui.mode.isPlayerOnly, + }); + this.initInner(root); + } + } + async addContextMenus() { + const blockly = await this.addon.tab.traps.getBlockly(); + const oldCleanUpFunc = blockly.WorkspaceSvg.prototype.cleanUp; + const self = this; + blockly.WorkspaceSvg.prototype.cleanUp = function () { + if (self.addon.settings.get("enableCleanUpPlus")) { + self.doCleanUp(); + } else { + oldCleanUpFunc.call(this); + } + }; + + let originalMsg = blockly.Msg.CLEAN_UP; + if (this.addon.settings.get("enableCleanUpPlus")) blockly.Msg.CLEAN_UP = this.m("clean-plus"); + this.addon.settings.addEventListener("change", () => { + if (this.addon.settings.get("enableCleanUpPlus")) blockly.Msg.CLEAN_UP = this.m("clean-plus"); + else blockly.Msg.CLEAN_UP = originalMsg; + }); + + this.addon.tab.createBlockContextMenu( + (items, block) => { + items.push({ + enabled: blockly.clipboardXml_, + text: this.m("paste"), + separator: true, + _isDevtoolsFirstItem: true, + callback: () => { + let ids = this.getTopBlockIDs(); + + document.dispatchEvent( + new KeyboardEvent("keydown", { + keyCode: 86, + ctrlKey: true, + griff: true, + }) + ); + + setTimeout(() => { + this.beginDragOfNewBlocksNotInIDs(ids); + }, 10); + }, + }); + return items; + }, + { workspace: true } + ); + this.addon.tab.createBlockContextMenu( + (items, block) => { + items.push( + { + enabled: true, + text: this.m("make-space"), + _isDevtoolsFirstItem: true, + callback: () => { + this.doCleanUp(block); + }, + separator: true, + }, + { + enabled: true, + text: this.m("copy-all"), + callback: () => { + this.eventCopyClick(block); + }, + separator: true, + }, + { + enabled: true, + text: this.m("copy-block"), + callback: () => { + this.eventCopyClick(block, 1); + }, + }, + { + enabled: true, + text: this.m("cut-block"), + callback: () => { + this.eventCopyClick(block, 2); + }, + } + ); + // const BROADCAST_BLOCKS = ["event_whenbroadcastreceived", "event_broadcast", "event_broadcastandwait"]; + // if (BROADCAST_BLOCKS.includes(block.type)) { + // // Show Broadcast + // const broadcastId = this.showBroadcastSingleton.getAssociatedBroadcastId(block.id); + // if (broadcastId) { + // ["Senders", "Receivers"].forEach((showKey, i) => { + // items.push({ + // enabled: true, + // text: this.msg(`show-${showKey}`.toLowerCase()), + // callback: () => { + // this.showBroadcastSingleton[`show${showKey}`](broadcastId); + // }, + // separator: i == 0, + // }); + // }); + // } + // } + return items; + }, + { blocks: true } + ); + this.addon.tab.createBlockContextMenu( + (items, block) => { + if (block.getCategory() === "data" || block.getCategory() === "data-lists") { + this.selVarID = block.getVars()[0]; + items.push({ + enabled: true, + text: this.m("swap", { var: block.getCategory() === "data" ? this.m("variables") : this.m("lists") }), + callback: async () => { + let wksp = this.getWorkspace(); + let v = wksp.getVariableById(this.selVarID); + // prompt() returns Promise in desktop app + let varName = await window.prompt(this.msg("replace", { name: v.name })); + if (varName) { + this.doReplaceVariable(this.selVarID, varName, v.type); + } + }, + separator: true, + }); + } + return items; + }, + { blocks: true, flyout: true } + ); + } + + getWorkspace() { + return Blockly.getMainWorkspace(); + } + + isCostumeEditor() { + return this.costTab.className.indexOf("gui_is-selected") >= 0; + } + + /** + * A nicely ordered version of the top blocks + * @returns {[Blockly.Block]} + */ + getTopBlocks() { + let result = this.getOrderedTopBlockColumns(); + let columns = result.cols; + /** + * @type {[[Blockly.Block]]} + */ + let topBlocks = []; + for (const col of columns) { + topBlocks = topBlocks.concat(col.blocks); + } + return topBlocks; + } + + /** + * A much nicer way of laying out the blocks into columns + */ + doCleanUp(block) { + let workspace = this.getWorkspace(); + let makeSpaceForBlock = block && block.getRootBlock(); + + UndoGroup.startUndoGroup(workspace); + + let result = this.getOrderedTopBlockColumns(true); + let columns = result.cols; + let orphanCount = result.orphans.blocks.length; + if (orphanCount > 0 && !block) { + let message = this.msg("orphaned", { + count: orphanCount, + }); + if (confirm(message)) { + for (const block of result.orphans.blocks) { + block.dispose(); + } + } else { + columns.unshift(result.orphans); + } + } + + let cursorX = 48; + + let maxWidths = result.maxWidths; + + for (const column of columns) { + let cursorY = 64; + let maxWidth = 0; + + for (const block of column.blocks) { + let extraWidth = block === makeSpaceForBlock ? 380 : 0; + let extraHeight = block === makeSpaceForBlock ? 480 : 72; + let xy = block.getRelativeToSurfaceXY(); + if (cursorX - xy.x !== 0 || cursorY - xy.y !== 0) { + block.moveBy(cursorX - xy.x, cursorY - xy.y); + } + let heightWidth = block.getHeightWidth(); + cursorY += heightWidth.height + extraHeight; + + let maxWidthWithComments = maxWidths[block.id] || 0; + maxWidth = Math.max(maxWidth, Math.max(heightWidth.width + extraWidth, maxWidthWithComments)); + } + + cursorX += maxWidth + 96; + } + + let topComments = workspace.getTopComments(); + for (const comment of topComments) { + if (comment.setVisible) { + comment.setVisible(false); + comment.needsAutoPositioning_ = true; + comment.setVisible(true); + } + } + + setTimeout(() => { + // Locate unused local variables... + let workspace = this.getWorkspace(); + let map = workspace.getVariableMap(); + let vars = map.getVariablesOfType(""); + let unusedLocals = []; + + for (const row of vars) { + if (row.isLocal) { + let usages = map.getVariableUsesById(row.getId()); + if (!usages || usages.length === 0) { + unusedLocals.push(row); + } + } + } + + if (unusedLocals.length > 0) { + const unusedCount = unusedLocals.length; + let message = this.msg("unused-var", { + count: unusedCount, + }); + for (let i = 0; i < unusedLocals.length; i++) { + let orphan = unusedLocals[i]; + if (i > 0) { + message += ", "; + } + message += orphan.name; + } + if (confirm(message)) { + for (const orphan of unusedLocals) { + workspace.deleteVariableById(orphan.getId()); + } + } + } + + // Locate unused local lists... + let lists = map.getVariablesOfType("list"); + let unusedLists = []; + + for (const row of lists) { + if (row.isLocal) { + let usages = map.getVariableUsesById(row.getId()); + if (!usages || usages.length === 0) { + unusedLists.push(row); + } + } + } + if (unusedLists.length > 0) { + const unusedCount = unusedLists.length; + let message = this.msg("unused-list", { + count: unusedCount, + }); + for (let i = 0; i < unusedLists.length; i++) { + let orphan = unusedLists[i]; + if (i > 0) { + message += ", "; + } + message += orphan.name; + } + if (confirm(message)) { + for (const orphan of unusedLists) { + workspace.deleteVariableById(orphan.getId()); + } + } + } + + UndoGroup.endUndoGroup(workspace); + }, 100); + } + + /** + * Badly Orphaned - might want to delete these! + * @param topBlock + * @returns {boolean} + */ + isBlockAnOrphan(topBlock) { + return !!topBlock.outputConnection; + } + + /** + * Split the top blocks into ordered columns + * @param separateOrphans true to keep all orphans separate + * @returns {{orphans: {blocks: [Block], x: number, count: number}, cols: [Col]}} + */ + getOrderedTopBlockColumns(separateOrphans) { + let w = this.getWorkspace(); + let topBlocks = w.getTopBlocks(); + let maxWidths = {}; + + if (separateOrphans) { + let topComments = w.getTopComments(); + + // todo: tie comments to blocks... find widths and width of block stack row... + for (const comment of topComments) { + // comment.autoPosition_(); + // Hiding and showing repositions the comment right next to it's block - nice! + if (comment.setVisible) { + comment.setVisible(false); + comment.needsAutoPositioning_ = true; + comment.setVisible(true); + + // let bb = comment.block_.svgPath_.getBBox(); + let right = comment.getBoundingRectangle().bottomRight.x; + + // Get top block for stack... + let root = comment.block_.getRootBlock(); + let left = root.getBoundingRectangle().topLeft.x; + maxWidths[root.id] = Math.max(right - left, maxWidths[root.id] || 0); + } + } + } + + // Default scratch ordering is horrid... Lets try something more clever. + + /** + * @type {Col[]} + */ + let cols = []; + const TOLERANCE = 256; + let orphans = { x: -999999, count: 0, blocks: [] }; + + for (const topBlock of topBlocks) { + // let r = b.getBoundingRectangle(); + let position = topBlock.getRelativeToSurfaceXY(); + /** + * @type {Col} + */ + let bestCol = null; + let bestError = TOLERANCE; + + if (separateOrphans && this.isBlockAnOrphan(topBlock)) { + orphans.blocks.push(topBlock); + continue; + } + + // Find best columns + for (const col of cols) { + let err = Math.abs(position.x - col.x); + if (err < bestError) { + bestError = err; + bestCol = col; + } + } + + if (bestCol) { + // We found a column that we fitted into + bestCol.x = (bestCol.x * bestCol.count + position.x) / ++bestCol.count; // re-average the columns as more items get added... + bestCol.blocks.push(topBlock); + } else { + // Create a new column + cols.push(new Col(position.x, 1, [topBlock])); + } + } + + // if (orphans.blocks.length > 0) { + // cols.push(orphans); + // } + + // Sort columns, then blocks inside the columns + cols.sort((a, b) => a.x - b.x); + for (const col of cols) { + col.blocks.sort((a, b) => a.getRelativeToSurfaceXY().y - b.getRelativeToSurfaceXY().y); + } + + return { cols: cols, orphans: orphans, maxWidths: maxWidths }; + } + + /** + * Find all the uses of a named variable. + * @param {string} id ID of the variable to find. + * @return {!Array.} Array of block usages. + */ + getVariableUsesById(id) { + let uses = []; + + let topBlocks = this.getTopBlocks(true); // todo: Confirm this was the right getTopBlocks? + for (const topBlock of topBlocks) { + /** @type {!Array} */ + let kids = topBlock.getDescendants(); + for (const block of kids) { + /** @type {!Array} */ + let blockVariables = block.getVarModels(); + if (blockVariables) { + for (const blockVar of blockVariables) { + if (blockVar.getId() === id) { + uses.push(block); + } + } + } + } + } + + return uses; + } + + /** + * Quick and dirty replace all instances of one variable / list with another variable / list + * @param varId original variable name + * @param newVarName new variable name + * @param type type of variable ("" = variable, anything else is a list? + */ + doReplaceVariable(varId, newVarName, type) { + let wksp = this.getWorkspace(); + let v = wksp.getVariable(newVarName, type); + if (!v) { + alert(this.msg("var-not-exist")); + return; + } + let newVId = v.getId(); + + UndoGroup.startUndoGroup(wksp); + let blocks = this.getVariableUsesById(varId); + for (const block of blocks) { + try { + if (type === "") { + block.getField("VARIABLE").setValue(newVId); + } else { + block.getField("LIST").setValue(newVId); + } + } catch (e) { + // ignore + } + } + UndoGroup.endUndoGroup(wksp); + } + + /* + function doInjectScripts(codeString) { + let w = getWorkspace(); + let xml = new XML(); // document.implementation.createDocument(null, "xml"); + let x = xml.xmlDoc.firstChild; + + let tree = math.parse(codeString); + console.log(tree); + + const binaryOperatorTypes = { + add: "operator_add", + subtract: "operator_subtract", + this.multiply: "operator_multiply", + divide: "operator_divide", + }; + + const BLOCK_TYPE = { + number: "math_number", + text: "text", + }; + + function translateMathToXml(x, tree, shadowType) { + let xShadowField = null; + if (shadowType) { + let xShadow = xml.newXml(x, "shadow", { type: shadowType }); + if (shadowType === BLOCK_TYPE.number) { + xShadowField = xml.newXml(xShadow, "field", { name: "NUM" }); + } else if (shadowType === BLOCK_TYPE.text) { + xShadowField = xml.newXml(xShadow, "field", { name: "TEXT" }); + } + } + + if (!tree || !tree.type) { + return; + } + + if (tree.type === "OperatorNode") { + let operatorType = binaryOperatorTypes[tree.fn]; + if (operatorType) { + let xOp = newXml(x, "block", { type: operatorType }); + translateMathToXml(xml.newXml(xOp, "value", { name: "NUM1" }), tree.args[0], BLOCK_TYPE.number); + translateMathToXml(xml.newXml(xOp, "value", { name: "NUM2" }), tree.args[1], BLOCK_TYPE.number); + return; + } + + return; + } + + if (tree.type === "ConstantNode") { + // number or text in quotes + if (xShadowField) { + xml.setAttr(xShadowField, { text: tree.value }); + } + return; + } + + if (tree.type === "SymbolNode") { + // variable + let xVar = xml.newXml(x, "block", { type: "data_variable" }); + xml.newXml(xVar, "field", { name: "VARIABLE", text: tree.name }); + return; + } + + if (tree.type === "FunctionNode") { + // Method Call + if (tree.fn.name === "join") { + let xOp = newXml(x, "block", { type: "operator_join" }); + translateMathToXml(xml.newXml(xOp, "value", { name: "STRING1" }), tree.args[0], BLOCK_TYPE.text); + translateMathToXml(xml.newXml(xOp, "value", { name: "STRING2" }), tree.args[1], BLOCK_TYPE.text); + return; + } + } + } + + translateMathToXml(x, tree); + console.log(x); + + let ids = Blockly.Xml.domToWorkspace(x, w); + console.log(ids); + } + */ + /* + function clickInject(e) { + let codeString = window.prompt("Griffpatch: Enter an expression (i.e. a+2*3)"); + if (codeString) { + doInjectScripts(codeString); + } + e.preventDefault(); + return false; + } + */ + + /** + * Returns a Set of the top blocks in this workspace / sprite + * @returns {Set} Set of top blocks + */ + getTopBlockIDs() { + let wksp = this.getWorkspace(); + let topBlocks = wksp.getTopBlocks(); + let ids = new Set(); + for (const block of topBlocks) { + ids.add(block.id); + } + return ids; + } + + /** + * Initiates a drag event for all block stacks except those in the set of ids. + * But why? - Because we know all the ids of the existing stacks before we paste / duplicate - so we can find the + * new stack by excluding all the known ones. + * @param ids Set of previously known ids + */ + beginDragOfNewBlocksNotInIDs(ids) { + if (!this.addon.settings.get("enablePasteBlocksAtMouse")) { + return; + } + let wksp = this.getWorkspace(); + let topBlocks = wksp.getTopBlocks(); + for (const block of topBlocks) { + if (!ids.has(block.id)) { + // console.log("I found a new block!!! - " + block.id); + // todo: move the block to the mouse pointer? + let mouseXYClone = { x: this.mouseXY.x, y: this.mouseXY.y }; + block.setIntersects(true); // fixes offscreen block pasting in Turbo Warp + this.domHelpers.triggerDragAndDrop(block.svgPath_, null, mouseXYClone); + } + } + } + + updateMousePosition(e) { + this.mouseXY.x = e.clientX; + this.mouseXY.y = e.clientY; + } + + eventMouseMove(e) { + this.updateMousePosition(e); + } + + eventKeyDown(e) { + const switchCostume = (up) => { + // todo: select previous costume + let selected = this.costTabBody.querySelector("div[class*='sprite-selector-item_is-selected']"); + let node = up ? selected.parentNode.previousSibling : selected.parentNode.nextSibling; + if (node) { + let wrapper = node.closest("div[class*=gui_flex-wrapper]"); + node.querySelector("div[class^='sprite-selector-item_sprite-name']").click(); + node.scrollIntoView({ + behavior: "auto", + block: "center", + inline: "start", + }); + wrapper.scrollTop = 0; + } + }; + + if (document.URL.indexOf("editor") <= 0) { + return; + } + + let ctrlKey = e.ctrlKey || e.metaKey; + + if (e.keyCode === 37 && ctrlKey) { + // Ctrl + Left Arrow Key + if (document.activeElement.tagName === "INPUT") { + return; + } + + if (this.isCostumeEditor()) { + switchCostume(true); + e.cancelBubble = true; + e.preventDefault(); + return true; + } + } + + if (e.keyCode === 39 && ctrlKey) { + // Ctrl + Right Arrow Key + if (document.activeElement.tagName === "INPUT") { + return; + } + + if (this.isCostumeEditor()) { + switchCostume(false); + e.cancelBubble = true; + e.preventDefault(); + return true; + } + } + + if (e.keyCode === 86 && ctrlKey && !e.griff) { + // Ctrl + V + // Set a timeout so we can take control of the paste after the event + let ids = this.getTopBlockIDs(); + setTimeout(() => { + this.beginDragOfNewBlocksNotInIDs(ids); + }, 10); + } + + // if (e.keyCode === 220 && (!document.activeElement || document.activeElement.tagName === 'INPUT')) { + // + // } + } + + eventCopyClick(block, blockOnly) { + let wksp = this.getWorkspace(); + + if (block) { + block.select(); + let next = blockOnly ? block.getNextBlock() : null; + if (next) { + next.unplug(false); // setParent(null); + } + + // separate child temporarily + document.dispatchEvent(new KeyboardEvent("keydown", { keyCode: 67, ctrlKey: true })); + if (next || blockOnly === 2) { + setTimeout(() => { + if (next) { + wksp.undo(); // undo the unplug above... + } + if (blockOnly === 2) { + UndoGroup.startUndoGroup(wksp); + block.dispose(true); + UndoGroup.endUndoGroup(wksp); + } + }, 0); + } + } + } + + eventMouseDown(e) { + this.updateMousePosition(e); + } + + eventMouseUp(e) { + this.updateMousePosition(e); + } + + initInner(root) { + let guiTabs = root.childNodes; + + if (this.codeTab && guiTabs[0] !== this.codeTab) { + // We have been CHANGED!!! - Happens when going to project page, and then back inside again!!! + this.domHelpers.unbindAllEvents(); + } + + this.codeTab = guiTabs[0]; + this.costTab = guiTabs[1]; + this.costTabBody = document.querySelector("div[aria-labelledby=" + this.costTab.id + "]"); + + this.domHelpers.bindOnce(document, "keydown", (...e) => this.eventKeyDown(...e), true); + this.domHelpers.bindOnce(document, "mousemove", (...e) => this.eventMouseMove(...e), true); + this.domHelpers.bindOnce(document, "mousedown", (...e) => this.eventMouseDown(...e), true); // true to capture all mouse downs 'before' the dom events handle them + this.domHelpers.bindOnce(document, "mouseup", (...e) => this.eventMouseUp(...e), true); + } +} + +class Col { + /** + * @param x {Number} x position (for ordering) + * @param count {Number} + * @param blocks {[Block]} + */ + constructor(x, count, blocks) { + /** + * x position (for ordering) + * @type {Number} + */ + this.x = x; + /** + * @type {Number} + */ + this.count = count; + /** + * @type {[Blockly.Block]} + */ + this.blocks = blocks; + } +} diff --git a/src/addons/addons/editor-devtools/DomHelpers.js b/src/addons/addons/editor-devtools/DomHelpers.js new file mode 100644 index 0000000000000000000000000000000000000000..605ad29b82044dff0cb23a022d174fd40404cd2b --- /dev/null +++ b/src/addons/addons/editor-devtools/DomHelpers.js @@ -0,0 +1,106 @@ +export default class DomHelpers { + constructor(addon) { + this.addon = addon; + this.vm = addon.tab.traps.vm; + /** + * @type {eventDetails[]} + */ + this.events = []; + } + + /** + * Simulate a drag and drop programmatically through javascript + * @param selectorDrag + * @param selectorDrop + * @param mouseXY + * @param [shiftKey=false] + * @returns {boolean} + */ + triggerDragAndDrop(selectorDrag, selectorDrop, mouseXY, shiftKey) { + // function for triggering mouse events + shiftKey = shiftKey || false; + let fireMouseEvent = function (type, elem, centerX, centerY) { + let evt = document.createEvent("MouseEvents"); + evt.initMouseEvent(type, true, true, window, 1, 1, 1, centerX, centerY, shiftKey, false, false, false, 0, elem); + elem.dispatchEvent(evt); + }; + + // fetch target elements + let elemDrag = selectorDrag; // document.querySelector(selectorDrag); + let elemDrop = selectorDrop; // document.querySelector(selectorDrop); + if (!elemDrag /* || !elemDrop*/) { + return false; + } + + // calculate positions + let pos = elemDrag.getBoundingClientRect(); + let center1X = Math.floor((pos.left + pos.right) / 2); + let center1Y = Math.floor((pos.top + pos.bottom) / 2); + + // mouse over dragged element and mousedown + fireMouseEvent("mouseover", elemDrag, center1X, center1Y); + fireMouseEvent("mousedown", elemDrag, center1X, center1Y); + + // start dragging process over to drop target + fireMouseEvent("dragstart", elemDrag, center1X, center1Y); + fireMouseEvent("drag", elemDrag, center1X, center1Y); + fireMouseEvent("mousemove", elemDrag, center1X, center1Y); + + if (!elemDrop) { + if (mouseXY) { + // console.log(mouseXY); + let center2X = mouseXY.x; + let center2Y = mouseXY.y; + fireMouseEvent("drag", elemDrag, center2X, center2Y); + fireMouseEvent("mousemove", elemDrag, center2X, center2Y); + } + return false; + } + + pos = elemDrop.getBoundingClientRect(); + let center2X = Math.floor((pos.left + pos.right) / 2); + let center2Y = Math.floor((pos.top + pos.bottom) / 2); + + fireMouseEvent("drag", elemDrag, center2X, center2Y); + fireMouseEvent("mousemove", elemDrop, center2X, center2Y); + + // trigger dragging process on top of drop target + fireMouseEvent("mouseenter", elemDrop, center2X, center2Y); + fireMouseEvent("dragenter", elemDrop, center2X, center2Y); + fireMouseEvent("mouseover", elemDrop, center2X, center2Y); + fireMouseEvent("dragover", elemDrop, center2X, center2Y); + + // release dragged element on top of drop target + fireMouseEvent("drop", elemDrop, center2X, center2Y); + fireMouseEvent("dragend", elemDrag, center2X, center2Y); + fireMouseEvent("mouseup", elemDrag, center2X, center2Y); + + return true; + } + + bindOnce(dom, event, func, capture) { + capture = !!capture; + dom.removeEventListener(event, func, capture); + dom.addEventListener(event, func, capture); + this.events.push(new eventDetails(dom, event, func, capture)); + } + + unbindAllEvents() { + for (const event of this.events) { + event.dom.removeEventListener(event.event, event.func, event.capture); + } + this.events = []; + } +} + +/** + * A record of an event + */ +class eventDetails { + constructor(dom, event, func, capture) { + this.dom = dom; + this.event = event; + this.func = func; + this.capture = capture; + } +} diff --git a/src/addons/addons/editor-devtools/UndoGroup.js b/src/addons/addons/editor-devtools/UndoGroup.js new file mode 100644 index 0000000000000000000000000000000000000000..c08d677164a741335accfc4f0e99fff0e28bf890 --- /dev/null +++ b/src/addons/addons/editor-devtools/UndoGroup.js @@ -0,0 +1,47 @@ +/** + * This class is dedicated to maintaining the Undo stack of Blockly + * It allows us to initiate an undo group such that all subsequent operations are recorded as a single + * undoable transaction. + */ +export default class UndoGroup { + /** + * Start an Undo group - begin recording + * @param workspace the workspace + */ + static startUndoGroup(workspace) { + const undoStack = workspace.undoStack_; + if (undoStack.length) { + undoStack[undoStack.length - 1]._devtoolsLastUndo = true; + } + } + + /** + * End an Undo group - stops recording + * @param workspace the workspace + */ + static endUndoGroup(workspace) { + const undoStack = workspace.undoStack_; + // Events (responsible for undoStack updates) are delayed with a setTimeout(f, 0) + // https://github.com/LLK/scratch-blocks/blob/f159a1779e5391b502d374fb2fdd0cb5ca43d6a2/core/events.js#L182 + setTimeout(() => { + const group = generateUID(); + for (let i = undoStack.length - 1; i >= 0 && !undoStack[i]._devtoolsLastUndo; i--) { + undoStack[i].group = group; + } + }, 0); + } +} + +/** + * https://github.com/LLK/scratch-blocks/blob/f159a1779e5391b502d374fb2fdd0cb5ca43d6a2/core/events.js#L182 + * @returns {string} + * @private + */ +function generateUID() { + const CHARACTERS = "ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789!#$%()*+,-./:;=?@[]^_`{|}~"; + let result = ""; + for (let i = 0; i < 20; i++) { + result += CHARACTERS[Math.floor(Math.random() * CHARACTERS.length)]; + } + return result; +} diff --git a/src/addons/addons/editor-devtools/_manifest_entry.js b/src/addons/addons/editor-devtools/_manifest_entry.js new file mode 100644 index 0000000000000000000000000000000000000000..0a0db302f1ec6551fa08e68f5ea7b06d498450dc --- /dev/null +++ b/src/addons/addons/editor-devtools/_manifest_entry.js @@ -0,0 +1,37 @@ +/* generated by pull.js */ +const manifest = { + "editorOnly": true, + "name": "Developer tools", + "description": "Adds new menu options to the editor: copy/paste blocks, better clean up, and more!", + "credits": [ + { + "name": "griffpatch" + } + ], + "settings": [ + { + "dynamic": true, + "name": "Enhance \"Clean up Blocks\"", + "id": "enableCleanUpPlus", + "type": "boolean", + "default": true + }, + { + "dynamic": true, + "name": "Paste blocks at mouse cursor", + "id": "enablePasteBlocksAtMouse", + "type": "boolean", + "default": true + } + ], + "userscripts": [ + { + "url": "userscript.js" + } + ], + "tags": [ + "recommended" + ], + "enabledByDefault": true +}; +export default manifest; diff --git a/src/addons/addons/editor-devtools/_runtime_entry.js b/src/addons/addons/editor-devtools/_runtime_entry.js new file mode 100644 index 0000000000000000000000000000000000000000..59d4deed506d49eefd2f3fcf10fba5badc6c279c --- /dev/null +++ b/src/addons/addons/editor-devtools/_runtime_entry.js @@ -0,0 +1,7 @@ +/* generated by pull.js */ +import _js from "./userscript.js"; +import _asset from "!url-loader!./icon--close.svg"; +export const resources = { + "userscript.js": _js, + "icon--close.svg": _asset, +}; diff --git a/src/addons/addons/editor-devtools/icon--close.svg b/src/addons/addons/editor-devtools/icon--close.svg new file mode 100644 index 0000000000000000000000000000000000000000..9e5509e76a2296c93988ef8138eb61be814fb21a Binary files /dev/null and b/src/addons/addons/editor-devtools/icon--close.svg differ diff --git a/src/addons/addons/editor-devtools/show-broadcast.js b/src/addons/addons/editor-devtools/show-broadcast.js new file mode 100644 index 0000000000000000000000000000000000000000..4d441e7a422d9a7c5f1b0c559f08a6b0076f5641 --- /dev/null +++ b/src/addons/addons/editor-devtools/show-broadcast.js @@ -0,0 +1,110 @@ +// A file to split Editor Devtools by features. +// Unlike userscript.js, this file mainly interacts with VM. +export default class ShowBroadcast { + constructor(addon) { + this.addon = addon; + this.vm = this.addon.tab.traps.vm; + this.highlights = { + timeoutId: 0, + callback: () => {}, + }; + } + + showSenders(broadcastId) { + this.highlightTargets(this.getTargetsWithSenders(broadcastId)); + } + + getTargetsWithSenders(broadcastId) { + const targetWithSenders = []; + for (const target of this.vm.runtime.targets) { + if (!target.isOriginal) return; + for (const blockId of Object.keys(target.blocks._blocks)) { + const block = target.blocks.getBlock(blockId); + if (block.inputs.BROADCAST_INPUT) { + const input = block.inputs.BROADCAST_INPUT; + // For results, blocks must NOT be inserted, for convenience. + if ( + input.block === input.shadow && + target.blocks.getBlock(input.shadow).fields.BROADCAST_OPTION.id === broadcastId + ) { + targetWithSenders.push(target); + break; + } + } + } + } + return targetWithSenders; + } + + showReceivers(broadcastId) { + this.highlightTargets(this.getTargetsWithReceivers(broadcastId)); + } + + getTargetsWithReceivers(broadcastId) { + const targetWithReceivers = []; + for (const target of this.vm.runtime.targets) { + if (!target.isOriginal) return; + for (const blockId of Object.keys(target.blocks._blocks)) { + const block = target.blocks.getBlock(blockId); + if (block.opcode === "event_whenbroadcastreceived" && block.fields.BROADCAST_OPTION.id === broadcastId) { + targetWithReceivers.push(target); + break; + } + } + } + return targetWithReceivers; + } + + highlightTargets(targets) { + if (this.highlights.timeoutId) { + this.highlights.callback(); + clearTimeout(this.highlights.timeoutId); + this.highlights = { + timeoutId: 0, + callback: () => {}, + }; + } + const elemPendingToRemoveHighlights = []; + for (const target of targets) { + let elem = null; + if (target.isStage) { + elem = document.querySelector('div[class*="stage-selector_header"]'); + } else if (target.isOriginal) { + // This is one of the most ridiculous code I've ever written. + // This essentially compares sprite names to textContent so that we can add CSS. + const possibleElements = document.querySelectorAll('div[class*="sprite-selector-item_sprite-name"]'); + const spriteNameElem = Array.prototype.find.call( + possibleElements, + (elem) => elem.textContent === target.getName() + ); + if (!spriteNameElem) continue; + elem = spriteNameElem.parentElement; + } + elem.dataset.highlighted = "true"; + elemPendingToRemoveHighlights.push(elem); + } + const callbackFactory = (elemToRemoveHighlights) => () => { + for (const removingElem of elemToRemoveHighlights) { + if (!removingElem.isConnected) continue; + removingElem.dataset.highlighted = "false"; + } + }; + const callback = callbackFactory(elemPendingToRemoveHighlights); + this.highlights = { + callback, + timeoutId: setTimeout(callback, 2000), + }; + } + + getAssociatedBroadcastId(blockId) { + const editingTarget = this.vm.editingTarget; + const block = editingTarget.blocks.getBlock(blockId); + if (block.opcode === "event_whenbroadcastreceived") { + return block.fields.BROADCAST_OPTION.id; + } else { + const input = block.inputs.BROADCAST_INPUT; + // Allow shadow blocks + return editingTarget.blocks.getBlock(input.shadow).fields.BROADCAST_OPTION.id; + } + } +} diff --git a/src/addons/addons/editor-devtools/userscript.js b/src/addons/addons/editor-devtools/userscript.js new file mode 100644 index 0000000000000000000000000000000000000000..44e70aa56f72da4e59370f9854e37189a17b6024 --- /dev/null +++ b/src/addons/addons/editor-devtools/userscript.js @@ -0,0 +1,6 @@ +import DevTools from "./DevTools.js"; + +export default async function ({ addon, console, msg, safeMsg: m }) { + const devTools = new DevTools(addon, msg, m); + devTools.init(); +} diff --git a/src/addons/addons/editor-extra-keys/_manifest_entry.js b/src/addons/addons/editor-extra-keys/_manifest_entry.js new file mode 100644 index 0000000000000000000000000000000000000000..fb0f4422bf14639e3213cd0c090d5295510c0ae7 --- /dev/null +++ b/src/addons/addons/editor-extra-keys/_manifest_entry.js @@ -0,0 +1,63 @@ +/* generated by pull.js */ +const manifest = { + "editorOnly": true, + "name": "Extra key options", + "description": "Adds more keys to the \"key () pressed?\" and \"when () key pressed\" block dropdowns, such as enter, dot, comma, and more. These keys will work even for users who do not have this addon.", + "tags": [ + "beta" + ], + "credits": [ + { + "name": "Tacodiva", + "link": "https://scratch.mit.edu/users/Tacodiva7729/" + } + ], + "info": [ + { + "type": "notice", + "text": "The \"experimental keys\" include equals, slash, semicolon and more. They may not work on all operating systems or keyboard layouts.", + "id": "experimentalKeysWarn" + }, + { + "type": "notice", + "text": "The \"Shift keys\" include keys which typically require the Shift key and a number key, like hashtag, exclamation mark and more. These keys only work with the \"when () key pressed\" block and do not work on all operating systems or keyboard layouts.", + "id": "shiftKeysWarn" + }, + { + "type": "warning", + "text": "The \"TurboWarp keys\" will only work in TurboWarp, not in Scratch.", + "id": "twKeysWarn" + } + ], + "settings": [ + { + "dynamic": true, + "name": "Show experimental keys", + "id": "experimentalKeys", + "type": "boolean", + "default": false + }, + { + "dynamic": true, + "name": "Show Shift keys", + "id": "shiftKeys", + "type": "boolean", + "default": false + }, + { + "dynamic": true, + "name": "Show TurboWarp keys", + "id": "twKeys", + "type": "boolean", + "default": true + } + ], + "userscripts": [ + { + "url": "userscript.js" + } + ], + "dynamicDisable": true, + "enabledByDefault": true +}; +export default manifest; diff --git a/src/addons/addons/editor-extra-keys/_runtime_entry.js b/src/addons/addons/editor-extra-keys/_runtime_entry.js new file mode 100644 index 0000000000000000000000000000000000000000..bc67131957e52185c142f348760610cfaa4f774d --- /dev/null +++ b/src/addons/addons/editor-extra-keys/_runtime_entry.js @@ -0,0 +1,5 @@ +/* generated by pull.js */ +import _js from "./userscript.js"; +export const resources = { + "userscript.js": _js, +}; diff --git a/src/addons/addons/editor-extra-keys/userscript.js b/src/addons/addons/editor-extra-keys/userscript.js new file mode 100644 index 0000000000000000000000000000000000000000..3e23de6f882eece2954bad74323caa295c6abf44 --- /dev/null +++ b/src/addons/addons/editor-extra-keys/userscript.js @@ -0,0 +1,123 @@ +export default async function ({ addon, msg }) { + const ScratchBlocks = await addon.tab.traps.getBlockly(); + + let defaultKeys = null; + function appendKeys(keys, enableShiftKeys) { + if (!defaultKeys) { + defaultKeys = [...keys]; + } + if (!addon.self.disabled) { + keys.push( + ...[ + ["-", "-"], + [",", ","], + [".", "."], + ] + ); + keys.splice(5, 0, [msg("enter-key"), "enter"]); + if (addon.settings.get("experimentalKeys")) { + keys.push( + ...[ + ["`", "`"], + ["=", "="], + ["[", "["], + ["]", "]"], + ["\\", "\\"], + [";", ";"], + ["'", "'"], + ["/", "/"], + ] + ); + } + if (enableShiftKeys && addon.settings.get("shiftKeys")) { + keys.push( + ...[ + ["!", "!"], + ["@", "@"], + ["#", "#"], + ["$", "$"], + ["%", "%"], + ["^", "^"], + ["&", "&"], + ["*", "*"], + ["(", "("], + [")", ")"], + ["_", "_"], + ["+", "+"], + ["{", "{"], + ["}", "}"], + ["|", "|"], + [":", ":"], + ['"', '"'], + ["?", "?"], + ["<", "<"], + [">", ">"], + ["~", "~"], + ] + ); + } + if (addon.settings.get("twKeys")) { + keys.push( + ...[ + ["backspace", "backspace"], + ["delete", "delete"], + ["shift", "shift"], + ["caps lock", "caps lock"], + ["scroll lock", "scroll lock"], + ["control", "control"], + ["escape", "escape"], + ["insert", "insert"], + ["home", "home"], + ["end", "end"], + ["page up", "page up"], + ["page down", "page down"], + ] + ); + } + } + return keys; + } + + for (const opcode of ["sensing_keyoptions", "event_whenkeypressed", "event_whenkeyhit"]) { + const block = ScratchBlocks.Blocks[opcode]; + const originalInit = block.init; + block.init = function (...args) { + const originalJsonInit = this.jsonInit; + this.jsonInit = function (obj) { + appendKeys(obj.args0[0].options, opcode === "event_whenkeypressed" || opcode === "event_whenkeyhit"); + return originalJsonInit.call(this, obj); + }; + return originalInit.call(this, ...args); + }; + } + + const updateExistingBlocks = () => { + const workspace = Blockly.getMainWorkspace(); + const flyout = workspace && workspace.getFlyout(); + if (workspace && flyout) { + const allBlocks = [...workspace.getAllBlocks(), ...flyout.getWorkspace().getAllBlocks()]; + for (const block of allBlocks) { + if (block.type !== "event_whenkeypressed" && block.type !== "event_whenkeyhit" && block.type !== "sensing_keyoptions") { + continue; + } + const input = block.inputList[0]; + if (!input) { + continue; + } + const field = input.fieldRow.find((i) => i && Array.isArray(i.menuGenerator_)); + if (!field) { + continue; + } + field.menuGenerator_ = appendKeys( + defaultKeys ? [...defaultKeys] : field.menuGenerator_, + block.type === "event_whenkeypressed" || block.type === "event_whenkeyhit" + ); + } + } + }; + + updateExistingBlocks(); + addon.settings.addEventListener("change", updateExistingBlocks); + addon.self.addEventListener("disabled", updateExistingBlocks); + addon.self.addEventListener("reenabled", updateExistingBlocks); +} diff --git a/src/addons/addons/editor-searchable-dropdowns/_manifest_entry.js b/src/addons/addons/editor-searchable-dropdowns/_manifest_entry.js new file mode 100644 index 0000000000000000000000000000000000000000..ecd5e9137afd9f8e0b7ddeed139f6e771c803194 --- /dev/null +++ b/src/addons/addons/editor-searchable-dropdowns/_manifest_entry.js @@ -0,0 +1,29 @@ +/* generated by pull.js */ +const manifest = { + "editorOnly": true, + "name": "Searchable dropdowns", + "description": "Allows you to search block dropdowns.", + "credits": [ + { + "name": "GarboMuffin" + } + ], + "dynamicDisable": true, + "userscripts": [ + { + "url": "userscript.js" + } + ], + "userstyles": [ + { + "url": "userscript.css" + } + ], + "tags": [ + "recommended" + ], + "enabledByDefault": true +}; +import {isMobile} from "../../environment"; +if (isMobile) manifest.enabledByDefault = false; +export default manifest; diff --git a/src/addons/addons/editor-searchable-dropdowns/_runtime_entry.js b/src/addons/addons/editor-searchable-dropdowns/_runtime_entry.js new file mode 100644 index 0000000000000000000000000000000000000000..7d9d3b5487a949dcd0e972e3066ce988a323038d --- /dev/null +++ b/src/addons/addons/editor-searchable-dropdowns/_runtime_entry.js @@ -0,0 +1,7 @@ +/* generated by pull.js */ +import _js from "./userscript.js"; +import _css from "!css-loader!./userscript.css"; +export const resources = { + "userscript.js": _js, + "userscript.css": _css, +}; diff --git a/src/addons/addons/editor-searchable-dropdowns/userscript.css b/src/addons/addons/editor-searchable-dropdowns/userscript.css new file mode 100644 index 0000000000000000000000000000000000000000..ff95a874ad30f13433ed5da9a4e1108f6e8c94b2 --- /dev/null +++ b/src/addons/addons/editor-searchable-dropdowns/userscript.css @@ -0,0 +1,24 @@ +.u-dropdown-searchbar { + width: 100%; + box-sizing: border-box; + /* based on styles for the title input */ + color: white; + background-color: hsla(0, 100%, 100%, 0.25); + border: 1px solid hsla(0, 0%, 0%, 0.15); + padding: 0.5rem; + outline: none; + transition: 0.25s ease-out; + font-size: 13px; + font-weight: bold; + border-radius: 4px; +} +.u-dropdown-searchbar:hover { + background-color: hsla(0, 100%, 100%, 0.5); +} +.u-dropdown-searchbar:focus { + background-color: white; + color: black; +} +.blocklyDropDownDiv .goog-menu { + overflow-x: hidden; +} diff --git a/src/addons/addons/editor-searchable-dropdowns/userscript.js b/src/addons/addons/editor-searchable-dropdowns/userscript.js new file mode 100644 index 0000000000000000000000000000000000000000..652a55c8f580b76d59b2154635e5480699d8ce41 --- /dev/null +++ b/src/addons/addons/editor-searchable-dropdowns/userscript.js @@ -0,0 +1,337 @@ +/* eslint-disable */ +export default async function ({ addon, console, msg }) { + const Blockly = await addon.tab.traps.getBlockly(); + const vm = addon.tab.traps.vm; + + const SCRATCH_ITEMS_TO_HIDE = [ + "RENAME_VARIABLE_ID", + "DELETE_VARIABLE_ID", + "NEW_BROADCAST_MESSAGE_ID", + // From rename-broadcasts addon + "RENAME_BROADCAST_MESSAGE_ID", + ]; + + const canUseAsGlobalVariableName = (name, type) => { + return !vm.runtime.getAllVarNamesOfType(type).includes(name); + }; + + const canUseAsLocalVariableName = (name, type) => { + return !vm.editingTarget.lookupVariableByNameAndType(name, type); + }; + + const ADDON_ITEMS = { + createGlobalVariable: { + enabled: (name) => canUseAsGlobalVariableName(name, ""), + createVariable: (workspace, name) => workspace.createVariable(name), + }, + createLocalVariable: { + enabled: (name) => canUseAsLocalVariableName(name, ""), + createVariable: (workspace, name) => workspace.createVariable(name, "", null, true), + }, + createGlobalList: { + enabled: (name) => canUseAsGlobalVariableName(name, "list"), + createVariable: (workspace, name) => workspace.createVariable(name, "list"), + }, + createLocalList: { + enabled: (name) => canUseAsLocalVariableName(name, "list"), + createVariable: (workspace, name) => workspace.createVariable(name, "list", null, true), + }, + createBroadcast: { + enabled: (name) => canUseAsGlobalVariableName(name, "broadcast_msg"), + createVariable: (workspace, name) => workspace.createVariable(name, "broadcast_msg"), + }, + }; + + let blocklyDropDownContent = null; + let blocklyDropdownMenu = null; + let searchBar = null; + // Contains DOM and addon state + let items = []; + let searchedItems = []; + // Tracks internal Scratch state + let currentDropdownOptions = []; + let resultOfLastGetOptions = []; + + const oldDropDownDivShow = Blockly.DropDownDiv.show; + Blockly.DropDownDiv.show = function (...args) { + blocklyDropdownMenu = document.querySelector(".blocklyDropdownMenu"); + if (!blocklyDropdownMenu) { + return oldDropDownDivShow.call(this, ...args); + } + + blocklyDropdownMenu.focus = () => {}; // no-op focus() so it can't steal it from the search bar + + searchBar = document.createElement("input"); + addon.tab.displayNoneWhileDisabled(searchBar, { display: "flex" }); + searchBar.type = "text"; + searchBar.addEventListener("input", updateSearch); + searchBar.addEventListener("keydown", handleKeyDownEvent); + searchBar.classList.add("u-dropdown-searchbar"); + blocklyDropdownMenu.insertBefore(searchBar, blocklyDropdownMenu.firstChild); + + items = Array.from(blocklyDropdownMenu.children) + .filter((child) => child.tagName !== "INPUT") + .map((element) => ({ + element, + text: element.textContent, + })); + currentDropdownOptions = resultOfLastGetOptions; + updateSearch(); + + // Call the original show method after adding everything so that it can perform the correct size calculations + const ret = oldDropDownDivShow.call(this, ...args); + + // Lock the size of the dropdown + blocklyDropDownContent = Blockly.DropDownDiv.getContentDiv(); + blocklyDropDownContent.style.width = getComputedStyle(blocklyDropDownContent).width; + blocklyDropDownContent.style.height = getComputedStyle(blocklyDropDownContent).height; + + // This is really strange, but if you don't reinsert the search bar into the DOM then focus() doesn't work + blocklyDropdownMenu.insertBefore(searchBar, blocklyDropdownMenu.firstChild); + searchBar.focus(); + + return ret; + }; + + const oldDropDownDivClearContent = Blockly.DropDownDiv.clearContent; + Blockly.DropDownDiv.clearContent = function () { + oldDropDownDivClearContent.call(this); + items = []; + searchedItems = []; + Blockly.DropDownDiv.content_.style.height = ""; + }; + + const oldFieldDropdownGetOptions = Blockly.FieldDropdown.prototype.getOptions; + Blockly.FieldDropdown.prototype.getOptions = function () { + const options = oldFieldDropdownGetOptions.call(this); + const block = this.sourceBlock_; + const isStage = vm.editingTarget && vm.editingTarget.isStage; + if (block) { + if (block.category_ === "data") { + options.push(getMenuItemMessage("createGlobalVariable")); + if (!isStage) { + options.push(getMenuItemMessage("createLocalVariable")); + } + } else if (block.category_ === "data-lists") { + options.push(getMenuItemMessage("createGlobalList")); + if (!isStage) { + options.push(getMenuItemMessage("createLocalList")); + } + } else if (block.type === "event_broadcast_menu" || block.type === "event_whenbroadcastreceived") { + options.push(getMenuItemMessage("createBroadcast")); + } + } + // Options aren't normally stored anywhere, so we'll store them ourselves. + resultOfLastGetOptions = options; + return options; + }; + + const oldFieldTextDropdownGetOptions = Blockly.FieldTextDropdown.prototype.getOptions; + Blockly.FieldTextDropdown.prototype.getOptions = function () { + const options = oldFieldTextDropdownGetOptions.call(this); + const block = this.sourceBlock_; + const isStage = vm.editingTarget && vm.editingTarget.isStage; + if (block) { + if (block.category_ === "data") { + options.push(getMenuItemMessage("createGlobalVariable")); + if (!isStage) { + options.push(getMenuItemMessage("createLocalVariable")); + } + } else if (block.category_ === "data-lists") { + options.push(getMenuItemMessage("createGlobalList")); + if (!isStage) { + options.push(getMenuItemMessage("createLocalList")); + } + } else if (block.type === "event_broadcast_menu" || block.type === "event_whenbroadcastreceived") { + options.push(getMenuItemMessage("createBroadcast")); + } + } + // Options aren't normally stored anywhere, so we'll store them ourselves. + resultOfLastGetOptions = options; + return options; + }; + + const oldFieldVariableOnItemSelected = Blockly.FieldVariable.prototype.onItemSelected; + Blockly.FieldVariable.prototype.onItemSelected = function (menu, menuItem) { + const sourceBlock = this.sourceBlock_; + if (sourceBlock && sourceBlock.workspace && searchBar.value.length !== 0) { + const workspace = sourceBlock.workspace; + const optionId = menuItem.getValue(); + + if (Object.prototype.hasOwnProperty.call(ADDON_ITEMS, optionId)) { + const addonItem = ADDON_ITEMS[optionId]; + Blockly.Events.setGroup(true); + const variable = addonItem.createVariable(workspace, searchBar.value.trim()); + if (this.sourceBlock_) this.setValue(variable.getId()); + Blockly.Events.setGroup(false); + return; + } + } + return oldFieldVariableOnItemSelected.call(this, menu, menuItem); + }; + + function selectItem(item, click) { + // You can't just use click() or focus() because Blockly uses mousedown and mouseup handlers, not click handlers. + item.dispatchEvent(new MouseEvent("mousedown", { relatedTarget: item, bubbles: true })); + if (click) item.dispatchEvent(new MouseEvent("mouseup", { relatedTarget: item, bubbles: true })); + + // Scroll the item into view if it is offscreen. + const itemTop = item.offsetTop; + const itemEnd = itemTop + item.offsetHeight; + + const scrollTop = blocklyDropDownContent.scrollTop; + const scrollHeight = blocklyDropDownContent.offsetHeight; + const scrollEnd = scrollTop + scrollHeight; + + if (scrollTop > itemTop) { + blocklyDropDownContent.scrollTop = itemTop; + } else if (itemEnd > scrollEnd) { + blocklyDropDownContent.scrollTop = itemEnd - scrollHeight; + } + } + + function performSearch() { + const rawQuery = searchBar.value.trim(); + const query = rawQuery.trim().toLowerCase(); + + const rank = (item, index) => { + // Negative number will hide + // Higher numbers will appear first + const option = currentDropdownOptions[index]; + const optionId = option[1]; + if (SCRATCH_ITEMS_TO_HIDE.includes(optionId)) { + return query ? -1 : 0; + } else if (Object.prototype.hasOwnProperty.call(ADDON_ITEMS, optionId)) { + if (!query) { + return -1; + } + const addonInfo = ADDON_ITEMS[optionId]; + if (addonInfo.enabled(rawQuery)) { + item.element.lastChild.lastChild.textContent = getMenuItemMessage(optionId)[0]; + return 0; + } + return -1; + } + const itemText = item.text.toLowerCase(); + if (query === itemText) { + return 2; + } + if (itemText.startsWith(query)) { + return 1; + } + if (itemText.includes(query)) { + return 0; + } + return -1; + }; + return items + .map((item, index) => ({ + item, + score: rank(item, index), + })) + .sort(({ score: scoreA }, { score: scoreB }) => Math.max(0, scoreB) - Math.max(0, scoreA)); + } + + function updateSearch() { + const previousSearchedItems = searchedItems; + searchedItems = performSearch(); + let needToUpdateDOM = previousSearchedItems.length !== searchedItems.length; + if (!needToUpdateDOM) { + for (let i = 0; i < searchedItems.length; i++) { + if (searchedItems[i].item !== previousSearchedItems[i].item) { + needToUpdateDOM = true; + break; + } + } + } + if (needToUpdateDOM && previousSearchedItems.length > 0) { + for (const { item } of previousSearchedItems) { + item.element.remove(); + } + for (const { item } of searchedItems) { + blocklyDropdownMenu.appendChild(item.element); + } + } + for (const { item, score } of searchedItems) { + item.element.hidden = score < 0; + } + } + + function handleKeyDownEvent(event) { + if (event.key === "Enter") { + // Reimplement enter to select item to account for hidden items and default to the top item. + event.stopPropagation(); + event.preventDefault(); + + const selectedItem = document.querySelector(".goog-menuitem-highlight"); + if (selectedItem && !selectedItem.hidden) { + selectItem(selectedItem, true); + return; + } + + const selectedBlock = Blockly.selected; + if (searchBar.value === "" && selectedBlock) { + if ( + selectedBlock.type === "event_broadcast" || + selectedBlock.type === "event_broadcastandwait" || + selectedBlock.type === "event_whenbroadcastreceived" + ) { + // The top item of these dropdowns is always "New message" + // When pressing enter on an empty search bar, we close the dropdown instead of making a new broadcast. + Blockly.DropDownDiv.hide(); + return; + } + } + for (const { item } of searchedItems) { + if (!item.element.hidden) { + selectItem(item.element, true); + break; + } + } + // If there is no top value, do nothing and leave the dropdown open + } else if (event.key === "Escape") { + Blockly.DropDownDiv.hide(); + } else if (event.key === "ArrowDown" || event.key === "ArrowUp") { + // Reimplement keyboard navigation to account for hidden items. + event.preventDefault(); + event.stopPropagation(); + + const items = searchedItems.filter((i) => i.score >= 0).map((i) => i.item); + if (items.length === 0) { + return; + } + + let selectedIndex = -1; + for (let i = 0; i < items.length; i++) { + if (items[i].element.classList.contains("goog-menuitem-highlight")) { + selectedIndex = i; + break; + } + } + + const lastIndex = items.length - 1; + let newIndex = 0; + if (event.key === "ArrowDown") { + if (selectedIndex === -1 || selectedIndex === lastIndex) { + newIndex = 0; + } else { + newIndex = selectedIndex + 1; + } + } else { + if (selectedIndex === -1 || selectedIndex === 0) { + newIndex = lastIndex; + } else { + newIndex = selectedIndex - 1; + } + } + + selectItem(items[newIndex].element, false); + } + } + + function getMenuItemMessage(message) { + // Format used internally by Scratch: + // [human readable name, internal name] + return [msg(message, { name: searchBar?.value.trim() || "" }), message]; + } +} diff --git a/src/addons/addons/editor-sounds/_manifest_entry.js b/src/addons/addons/editor-sounds/_manifest_entry.js new file mode 100644 index 0000000000000000000000000000000000000000..3ce15bb0d951fb658409558afce333cda09c17cc --- /dev/null +++ b/src/addons/addons/editor-sounds/_manifest_entry.js @@ -0,0 +1,21 @@ +/* generated by pull.js */ +const manifest = { + "editorOnly": true, + "noTranslations": true, + "name": "Editor sound effects", + "description": "Plays sound effects when you connect or delete blocks.", + "credits": [ + { + "name": "GarboMuffin" + } + ], + "dynamicDisable": true, + "userscripts": [ + { + "url": "userscript.js" + } + ], + "tags": [], + "enabledByDefault": false +}; +export default manifest; diff --git a/src/addons/addons/editor-sounds/_runtime_entry.js b/src/addons/addons/editor-sounds/_runtime_entry.js new file mode 100644 index 0000000000000000000000000000000000000000..bc67131957e52185c142f348760610cfaa4f774d --- /dev/null +++ b/src/addons/addons/editor-sounds/_runtime_entry.js @@ -0,0 +1,5 @@ +/* generated by pull.js */ +import _js from "./userscript.js"; +export const resources = { + "userscript.js": _js, +}; diff --git a/src/addons/addons/editor-sounds/userscript.js b/src/addons/addons/editor-sounds/userscript.js new file mode 100644 index 0000000000000000000000000000000000000000..50757bf3c1845b152b90ba6e9d7dc030fcbe5454 --- /dev/null +++ b/src/addons/addons/editor-sounds/userscript.js @@ -0,0 +1,27 @@ +export default async function ({ addon, console }) { + const ScratchBlocks = await addon.tab.traps.getBlockly(); + const injectCurrent = () => { + const workspace = Blockly.getMainWorkspace(); + const pathToMedia = workspace.options.pathToMedia; + ScratchBlocks.inject.loadSounds_(pathToMedia, workspace); + }; + + // Add sounds to the current workspace + injectCurrent(); + + // Add sounds to all future workspaces + const originalInit = ScratchBlocks.init_; + ScratchBlocks.init_ = function (...args) { + const wksp = args[0]; + wksp.options.hasSounds = true; + return originalInit.call(this, ...args); + }; + + addon.self.addEventListener("disabled", () => { + const workspace = Blockly.getMainWorkspace(); + const audio = workspace.getAudioManager(); + delete audio.SOUNDS_.click; + delete audio.SOUNDS_.delete; + }); + addon.self.addEventListener("reenabled", injectCurrent); +} diff --git a/src/addons/addons/editor-stage-left/_manifest_entry.js b/src/addons/addons/editor-stage-left/_manifest_entry.js new file mode 100644 index 0000000000000000000000000000000000000000..c56b0a4f06f75eff48897a076f2d6bce01567a77 --- /dev/null +++ b/src/addons/addons/editor-stage-left/_manifest_entry.js @@ -0,0 +1,33 @@ +/* generated by pull.js */ +const manifest = { + "noTranslations": true, + "name": "Display stage on left side", + "description": "Moves the stage to the left side of the editor, like in Scratch 2.0.", + "info": [ + { + "id": "reverseOrder", + "text": "To change the position of buttons above the stage, use the \"reverse order of project controls\" addon." + } + ], + "credits": [ + { + "name": "NitroCipher/ZenithRogue" + } + ], + "userscripts": [ + { + "url": "fix-share-the-love.js" + } + ], + "dynamicDisable": true, + "userstyles": [ + { + "url": "stageleft.css" + } + ], + "tags": [ + "theme" + ], + "enabledByDefault": false +}; +export default manifest; diff --git a/src/addons/addons/editor-stage-left/_runtime_entry.js b/src/addons/addons/editor-stage-left/_runtime_entry.js new file mode 100644 index 0000000000000000000000000000000000000000..1cf6ee03c289739cd570cf760396363edf5c72bd --- /dev/null +++ b/src/addons/addons/editor-stage-left/_runtime_entry.js @@ -0,0 +1,7 @@ +/* generated by pull.js */ +import _js from "./fix-share-the-love.js"; +import _css from "!css-loader!./stageleft.css"; +export const resources = { + "fix-share-the-love.js": _js, + "stageleft.css": _css, +}; diff --git a/src/addons/addons/editor-stage-left/fix-share-the-love.js b/src/addons/addons/editor-stage-left/fix-share-the-love.js new file mode 100644 index 0000000000000000000000000000000000000000..73b0c65a0d1ad76e52ea253eea751e5231c34048 --- /dev/null +++ b/src/addons/addons/editor-stage-left/fix-share-the-love.js @@ -0,0 +1,21 @@ +export default async function ({ addon, console }) { + const ScratchBlocks = await addon.tab.traps.getBlockly(); + const resize = () => { + const workspace = Blockly.getMainWorkspace(); + if (workspace) window.dispatchEvent(new Event("resize")); + }; + addon.self.addEventListener("disabled", resize); + addon.self.addEventListener("reenabled", resize); + const originalGetClientRect = ScratchBlocks.VerticalFlyout.prototype.getClientRect; + ScratchBlocks.VerticalFlyout.prototype.getClientRect = function () { + const rect = originalGetClientRect.call(this); + if (!rect || addon.self.disabled) return rect; + // undo the effect of BIG_NUM in https://github.com/LLK/scratch-blocks/blob/ab26fa2960643fa38fbc7b91ca2956be66055070/core/flyout_vertical.js#L739 + if (this.toolboxPosition_ === ScratchBlocks.TOOLBOX_AT_LEFT) { + rect.left += 1000000000; + } + rect.width -= 1000000000; + return rect; + }; + resize(); +} diff --git a/src/addons/addons/editor-stage-left/stageleft.css b/src/addons/addons/editor-stage-left/stageleft.css new file mode 100644 index 0000000000000000000000000000000000000000..22efa808131a3984c74d143818a05f7bbe52166f --- /dev/null +++ b/src/addons/addons/editor-stage-left/stageleft.css @@ -0,0 +1,80 @@ +[dir="ltr"] [class^="stage-header_stage-size-toggle-group"] [class^="stage-header_stage-button-icon"] { + transform: scaleX(-1); +} +[dir="rtl"] [class^="stage-header_stage-size-toggle-group"] [class^="stage-header_stage-button-icon"] { + transform: none; +} +[class^="target-pane_target-pane"] { + flex-direction: row-reverse; +} +[dir="ltr"] [class^="target-pane_stage-selector-wrapper"] { + margin-left: 0; + margin-right: calc(0.5rem / 2); +} +[dir="ltr"] [class^="sprite-selector_sprite-selector"] { + margin-left: calc(0.5rem / 2); + margin-right: 0; +} +[dir="rtl"] [class^="target-pane_stage-selector-wrapper"] { + margin-right: 0; + margin-left: calc(0.5rem / 2); +} +[dir="rtl"] [class^="sprite-selector_sprite-selector"] { + margin-right: calc(0.5rem / 2); + margin-left: 0; +} +[class^="gui_flex-wrapper"] { + flex-direction: row-reverse; + overflow-x: hidden; +} + +[dir="ltr"] [class^="backpack_backpack-header"] { + border-top-right-radius: 0; + border-top-left-radius: 0.5rem; +} +[dir="ltr"] [class^="blocks_blocks_C530M"] .injectionDiv, +[dir="ltr"] [class^="asset-panel_wrapper"] { + border-top-right-radius: 0; + border-bottom-right-radius: 0; + border-bottom-left-radius: 0.5rem; +} +[dir="ltr"] [class^="gui_extension-button-container"] { + border-bottom-left-radius: 0.5rem; +} + +[dir="rtl"] [class^="backpack_backpack-header"] { + border-top-left-radius: 0; + border-top-right-radius: 0.5rem; +} +[dir="rtl"] [class^="blocks_blocks_C530M"] .injectionDiv, +[dir="rtl"] [class^="asset-panel_wrapper"] { + border-top-left-radius: 0; + border-bottom-left-radius: 0; + border-bottom-right-radius: 0.5rem; +} +[dir="rtl"] [class^="gui_extension-button-container"] { + border-bottom-right-radius: 0.5rem; +} + +.Popover { + /* See hide-flyout */ + z-index: 51; +} + +/* hide-stage compatibility */ + +.sa-stage-hidden [class*="stage-header_stage-size-row"] { + right: auto; + left: 0.5rem; + width: calc(240px + 0.125rem); + justify-content: flex-end; +} + +[dir="rtl"] .sa-stage-hidden [class*="stage-header_stage-size-row"] { + left: auto; + right: 0.5rem; +} + +.sa-stage-hidden [class*="gui_tab-list_"] { + padding-inline-start: calc(240px + 1.125rem); +} diff --git a/src/addons/addons/editor-stepping/_manifest_entry.js b/src/addons/addons/editor-stepping/_manifest_entry.js new file mode 100644 index 0000000000000000000000000000000000000000..535deff696b4a25b1561cd180f93015ba379ad57 --- /dev/null +++ b/src/addons/addons/editor-stepping/_manifest_entry.js @@ -0,0 +1,26 @@ +/* generated by pull.js */ +const manifest = { + "editorOnly": true, + "noTranslations": true, + "noCompiler": true, + "name": "Running block border", + "description": "Adds a colored highlight to the blocks that are currently being executed in a project.", + "dynamicDisable": true, + "userscripts": [ + { + "url": "userscript.js" + } + ], + "settings": [ + { + "dynamic": true, + "name": "Highlight color", + "id": "highlight-color", + "type": "color", + "default": "#0000ff" + } + ], + "tags": [], + "enabledByDefault": false +}; +export default manifest; diff --git a/src/addons/addons/editor-stepping/_runtime_entry.js b/src/addons/addons/editor-stepping/_runtime_entry.js new file mode 100644 index 0000000000000000000000000000000000000000..bc67131957e52185c142f348760610cfaa4f774d --- /dev/null +++ b/src/addons/addons/editor-stepping/_runtime_entry.js @@ -0,0 +1,5 @@ +/* generated by pull.js */ +import _js from "./userscript.js"; +export const resources = { + "userscript.js": _js, +}; diff --git a/src/addons/addons/editor-stepping/highlighter.js b/src/addons/addons/editor-stepping/highlighter.js new file mode 100644 index 0000000000000000000000000000000000000000..15d75e69fe3139634a9ae8910009116d4edaaa82 --- /dev/null +++ b/src/addons/addons/editor-stepping/highlighter.js @@ -0,0 +1,146 @@ +const SVG_NS = "http://www.w3.org/2000/svg"; + +const containerSvg = document.createElementNS(SVG_NS, "svg"); +// unfortunately we can't use display: none on this as that breaks filters +containerSvg.style.position = "fixed"; +containerSvg.style.top = "-999999px"; +containerSvg.style.width = "0"; +containerSvg.style.height = "0"; +document.body.appendChild(containerSvg); + +let nextGlowerId = 0; + +const highlightsPerElement = new WeakMap(); + +const getHighlightersForElement = (element) => { + if (!highlightsPerElement.get(element)) { + highlightsPerElement.set(element, new Set()); + } + return highlightsPerElement.get(element); +}; + +const updateHighlight = (element, highlighters) => { + let result; + for (const i of highlighters) { + if (!result || i.priority > result.priority) { + result = i; + } + } + if (result) { + element.style.filter = result.filter; + } else { + element.style.filter = ""; + } +}; + +const addHighlight = (element, highlighter) => { + const highlighters = getHighlightersForElement(element); + highlighters.add(highlighter); + updateHighlight(element, highlighters); +}; + +const removeHighlight = (element, highlighter) => { + const highlighters = getHighlightersForElement(element); + highlighters.delete(highlighter); + updateHighlight(element, highlighters); +}; + +class Highlighter { + constructor(priority, color) { + this.priority = priority; + + const id = `sa_glower_filter${nextGlowerId++}`; + this.filter = `url("#${id}")`; + + this.previousElements = new Set(); + + const filterElement = document.createElementNS(SVG_NS, "filter"); + filterElement.id = id; + filterElement.setAttribute("width", "180%"); + filterElement.setAttribute("height", "160%"); + filterElement.setAttribute("x", "-40%"); + filterElement.setAttribute("y", "-30%"); + + const filterBlur = document.createElementNS(SVG_NS, "feGaussianBlur"); + filterBlur.setAttribute("in", "SourceGraphic"); + filterBlur.setAttribute("stdDeviation", "4"); + filterElement.appendChild(filterBlur); + + const filterTransfer = document.createElementNS(SVG_NS, "feComponentTransfer"); + filterTransfer.setAttribute("result", "outBlur"); + filterElement.appendChild(filterTransfer); + + const filterTransferTable = document.createElementNS(SVG_NS, "feFuncA"); + filterTransferTable.setAttribute("type", "table"); + filterTransferTable.setAttribute("tableValues", "0 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1"); + filterTransfer.appendChild(filterTransferTable); + + const filterFlood = document.createElementNS(SVG_NS, "feFlood"); + filterFlood.setAttribute("flood-opacity", "1"); + filterFlood.setAttribute("result", "outColor"); + filterElement.appendChild(filterFlood); + this.filterFlood = filterFlood; + + const filterComposite = document.createElementNS(SVG_NS, "feComposite"); + filterComposite.setAttribute("in", "outColor"); + filterComposite.setAttribute("in2", "outBlur"); + filterComposite.setAttribute("operator", "in"); + filterComposite.setAttribute("result", "outGlow"); + filterElement.appendChild(filterComposite); + + const filterFinalComposite = document.createElementNS(SVG_NS, "feComposite"); + filterFinalComposite.setAttribute("in", "SourceGraphic"); + filterFinalComposite.setAttribute("in2", "outGlow"); + filterFinalComposite.setAttribute("operator", "over"); + filterElement.appendChild(filterFinalComposite); + + containerSvg.appendChild(filterElement); + this.setColor(color); + } + + setColor(color) { + this.filterFlood.setAttribute("flood-color", color); + } + + setGlowingThreads(threads) { + const elementsToHighlight = new Set(); + const workspace = Blockly.getMainWorkspace(); + + if (workspace) { + for (const thread of threads) { + thread.stack.forEach((blockId) => { + const block = workspace.getBlockById(blockId); + if (!block) { + return; + } + const childblock = thread.stack.find((i) => { + let b = block; + while (b.childBlocks_.length) { + b = b.childBlocks_[b.childBlocks_.length - 1]; + if (i === b.id) return true; + } + return false; + }); + if (!childblock && block.svgPath_) { + const svgPath = block.svgPath_; + elementsToHighlight.add(svgPath); + } + }); + } + } + + for (const element of this.previousElements) { + if (!elementsToHighlight.has(element)) { + removeHighlight(element, this); + } + } + for (const element of elementsToHighlight) { + if (!this.previousElements.has(element)) { + addHighlight(element, this); + } + } + this.previousElements = elementsToHighlight; + } +} + +export default Highlighter; diff --git a/src/addons/addons/editor-stepping/userscript.js b/src/addons/addons/editor-stepping/userscript.js new file mode 100644 index 0000000000000000000000000000000000000000..d118dfb3aa565a3a05075244936e29e213d8def4 --- /dev/null +++ b/src/addons/addons/editor-stepping/userscript.js @@ -0,0 +1,27 @@ +import { getRunningThread } from "../debugger/module.js"; +import Highlighter from "./highlighter.js"; + +export default async function ({ addon, console }) { + const vm = addon.tab.traps.vm; + + const highlighter = new Highlighter(0, addon.settings.get("highlight-color")); + addon.settings.addEventListener("change", () => { + highlighter.setColor(addon.settings.get("highlight-color")); + }); + + addon.self.addEventListener("disabled", () => { + highlighter.setGlowingThreads([]); + }); + + const oldStep = vm.runtime._step; + vm.runtime._step = function (...args) { + oldStep.call(this, ...args); + if (!addon.self.disabled) { + const runningThread = getRunningThread(); + const threads = vm.runtime.threads.filter( + (thread) => thread !== runningThread && !thread.target.blocks.forceNoGlow && !thread.isCompiled + ); + highlighter.setGlowingThreads(threads); + } + }; +} diff --git a/src/addons/addons/editor-theme3/_manifest_entry.js b/src/addons/addons/editor-theme3/_manifest_entry.js new file mode 100644 index 0000000000000000000000000000000000000000..589cb9900340c9ba7291819e8b6b95bc119f9a50 --- /dev/null +++ b/src/addons/addons/editor-theme3/_manifest_entry.js @@ -0,0 +1,396 @@ +/* generated by pull.js */ +const manifest = { + "editorOnly": true, + "noTranslations": true, + "name": "Customizable block colors", + "description": "Edit block colors for each category in the editor.", + "credits": [ + { + "name": "NitroCipher/ZenithRogue" + }, + { + "name": "TheColaber", + "link": "https://scratch.mit.edu/users/TheColaber/" + } + ], + "customCssVariables": [ + { + "name": "inputColor-text", + "value": { + "type": "alphaThreshold", + "source": { + "type": "settingValue", + "settingId": "input-color" + }, + "opaque": { + "type": "textColor", + "source": { + "type": "settingValue", + "settingId": "input-color" + } + }, + "transparent": { + "type": "map", + "source": { + "type": "settingValue", + "settingId": "text" + }, + "options": { + "white": "#ffffff", + "black": "#575e75", + "colorOnWhite": "#575e75", + "colorOnBlack": "#ffffff" + } + } + } + }, + { + "name": "inputColor-blackText", + "value": { + "type": "alphaThreshold", + "source": { + "type": "settingValue", + "settingId": "input-color" + }, + "opaque": { + "type": "textColor", + "black": "#000000", + "source": { + "type": "settingValue", + "settingId": "input-color" + } + }, + "transparent": { + "type": "map", + "source": { + "type": "settingValue", + "settingId": "text" + }, + "options": { + "white": "#ffffff", + "black": "#000000", + "colorOnWhite": "#000000", + "colorOnBlack": "#ffffff" + } + } + } + }, + { + "name": "commentText", + "value": { + "type": "textColor", + "source": { + "type": "settingValue", + "settingId": "comment-color" + } + } + }, + { + "name": "commentTextTransparent", + "value": { + "type": "textColor", + "black": "rgba(0, 0, 0, 0.50)", + "white": "rgba(255, 255, 255, 0.50)", + "source": { + "type": "settingValue", + "settingId": "comment-color" + } + } + }, + { + "name": "commentBorder", + "value": { + "type": "multiply", + "source": { + "type": "settingValue", + "settingId": "comment-color" + }, + "r": 0.7, + "g": 0.7, + "b": 0.7 + } + } + ], + "dynamicDisable": true, + "userscripts": [ + { + "url": "theme3.js" + } + ], + "userstyles": [ + { + "url": "theme3.css" + }, + { + "url": "black_text.css", + "if": { + "settings": { + "text": "black" + } + } + }, + { + "url": "color_on_white.css", + "if": { + "settings": { + "text": "colorOnWhite" + } + } + }, + { + "url": "color_on_black.css", + "if": { + "settings": { + "text": "colorOnBlack" + } + } + } + ], + "settings": [ + { + "dynamic": true, + "name": "motion", + "id": "motion-color", + "type": "color", + "default": "#4C97FF", + "allowTransparency": true + }, + { + "dynamic": true, + "name": "looks", + "id": "looks-color", + "type": "color", + "default": "#9966FF", + "allowTransparency": true + }, + { + "dynamic": true, + "name": "sounds", + "id": "sounds-color", + "type": "color", + "default": "#CF63CF", + "allowTransparency": true + }, + { + "dynamic": true, + "name": "events", + "id": "events-color", + "type": "color", + "default": "#FFBF00", + "allowTransparency": true + }, + { + "dynamic": true, + "name": "control", + "id": "control-color", + "type": "color", + "default": "#FFAB19", + "allowTransparency": true + }, + { + "dynamic": true, + "name": "sensing", + "id": "sensing-color", + "type": "color", + "default": "#5CB1D6", + "allowTransparency": true + }, + { + "dynamic": true, + "name": "operators", + "id": "operators-color", + "type": "color", + "default": "#59C059", + "allowTransparency": true + }, + { + "dynamic": true, + "name": "variables", + "id": "data-color", + "type": "color", + "default": "#FF8C1A", + "allowTransparency": true + }, + { + "dynamic": true, + "name": "lists", + "id": "data-lists-color", + "type": "color", + "default": "#FF661A", + "allowTransparency": true + }, + { + "dynamic": true, + "name": "custom", + "id": "custom-color", + "type": "color", + "default": "#FF6680", + "allowTransparency": true + }, + { + "dynamic": true, + "name": "extensions", + "id": "Pen-color", + "type": "color", + "default": "#0FBD8C", + "allowTransparency": true + }, + { + "dynamic": true, + "name": "TurboWarp", + "id": "tw-color", + "type": "color", + "default": "#ff4c4c", + "allowTransparency": true + }, + { + "dynamic": true, + "name": "Addon blocks", + "id": "sa-color", + "type": "color", + "default": "#29BEB8", + "allowTransparency": true, + "if": { + "addonEnabled": [ + "debugger" + ] + } + }, + { + "dynamic": true, + "name": "Block inputs", + "id": "input-color", + "type": "color", + "default": "#FFFFFF", + "allowTransparency": true + }, + { + "dynamic": true, + "name": "Comments", + "id": "comment-color", + "type": "color", + "default": "#FEF49C" + }, + { + "dynamic": true, + "name": "Text color", + "id": "text", + "type": "select", + "default": "white", + "potentialValues": [ + { + "id": "white", + "name": "White" + }, + { + "id": "black", + "name": "Black" + }, + { + "id": "colorOnWhite", + "name": "Colored on white background" + }, + { + "id": "colorOnBlack", + "name": "Colored on black background" + } + ] + } + ], + "tags": [ + "theme" + ], + "enabledByDefault": false, + "presets": [ + { + "name": "3.0 Tweaks", + "id": "tweaks", + "description": "Events, Control, and Custom blocks with 2.0 inspired colors", + "values": { + "motion-color": "#4C97FF", + "looks-color": "#9966FF", + "sounds-color": "#CF63CF", + "events-color": "#DE9E2E", + "control-color": "#FFBF00", + "sensing-color": "#5CB1D6", + "operators-color": "#59C059", + "data-color": "#FF8C1A", + "data-lists-color": "#FF661A", + "custom-color": "#5f49d8", + "Pen-color": "#0FBD8C", + "sa-color": "#29BEB8", + "comment-color": "#FEF49C", + "input-color": "#FFFFFF", + "text": "white" + } + }, + { + "name": "2.0 Colors", + "id": "original", + "description": "The original block colors from Scratch 2.0", + "values": { + "motion-color": "#4a6cd4", + "looks-color": "#8a55d7", + "sounds-color": "#bb42c3", + "events-color": "#c88330", + "control-color": "#e1a91a", + "sensing-color": "#2ca5e2", + "operators-color": "#5cb712", + "data-color": "#ee7d16", + "data-lists-color": "#cc5b22", + "custom-color": "#632d99", + "Pen-color": "#0e9a6c", + "sa-color": "#29beb8", + "comment-color": "#FFFFD2", + "input-color": "#ffffff", + "text": "white" + } + }, + { + "name": "Dark", + "id": "dark", + "description": "Dark versions of the default colors", + "values": { + "motion-color": "#004099", + "looks-color": "#220066", + "sounds-color": "#752475", + "events-color": "#997300", + "control-color": "#664100", + "sensing-color": "#1f5f7a", + "operators-color": "#235c23", + "data-color": "#b35900", + "data-lists-color": "#993300", + "custom-color": "#99004d", + "Pen-color": "#064734", + "tw-color": "#660000", + "sa-color": "#166966", + "comment-color": "#423f24", + "input-color": "#202020", + "text": "white" + } + }, + { + "name": "Black", + "id": "black", + "description": "Makes block backgrounds black", + "values": { + "motion-color": "#4C97FF", + "looks-color": "#9966FF", + "sounds-color": "#CF63CF", + "events-color": "#FFBF00", + "control-color": "#FFAB19", + "sensing-color": "#5CB1D6", + "operators-color": "#59C059", + "data-color": "#FF8C1A", + "data-lists-color": "#FF661A", + "custom-color": "#FF6680", + "Pen-color": "#0FBD8C", + "sa-color": "#29BEB8", + "comment-color": "#FEF49C", + "input-color": "#202020", + "text": "colorOnBlack" + } + } + ] +}; +export default manifest; diff --git a/src/addons/addons/editor-theme3/_runtime_entry.js b/src/addons/addons/editor-theme3/_runtime_entry.js new file mode 100644 index 0000000000000000000000000000000000000000..6e6ee7718109c2f9cf38bb5ad01a0f3e7b2a928e --- /dev/null +++ b/src/addons/addons/editor-theme3/_runtime_entry.js @@ -0,0 +1,13 @@ +/* generated by pull.js */ +import _js from "./theme3.js"; +import _css from "!css-loader!./theme3.css"; +import _css2 from "!css-loader!./black_text.css"; +import _css3 from "!css-loader!./color_on_white.css"; +import _css4 from "!css-loader!./color_on_black.css"; +export const resources = { + "theme3.js": _js, + "theme3.css": _css, + "black_text.css": _css2, + "color_on_white.css": _css3, + "color_on_black.css": _css4, +}; diff --git a/src/addons/addons/editor-theme3/black_text.css b/src/addons/addons/editor-theme3/black_text.css new file mode 100644 index 0000000000000000000000000000000000000000..9be63aba2cee999f172ca53854c0b8236d6370aa --- /dev/null +++ b/src/addons/addons/editor-theme3/black_text.css @@ -0,0 +1,36 @@ +@namespace xlink url("http://www.w3.org/1999/xlink"); + +.scratchCategoryItemBubble::after { + /* block-palette-icons */ + filter: brightness(0); +} + +.blocklyEditableText > text { + fill: var(--editorTheme3-inputColor-blackText); +} +.blocklyHtmlInput { + color: var(--editorTheme3-inputColor-blackText); +} + +[class*="blocks_blocks_"] image[xlink|href$="/rotate-left.svg"], +[class*="blocks_blocks_"] image[xlink|href$="/rotate-right.svg"], +[class*="blocks_blocks_"] image[xlink|href$="/repeat.svg"] { + filter: invert(1) hue-rotate(180deg); +} + +.blocklyDropDownDiv .goog-menuitem, +.sa-contextmenu-colored .blocklyContextMenu .goog-menuitem .goog-menuitem-content { + color: black; +} +.blocklyDropDownDiv .blocklyText { + fill: black; +} + +/* Compatibility */ + +.sa-block-color { + --sa-block-text: black; + --sa-block-gray-text: black; + --sa-block-colored-text: var(--sa-block-background-tertiary); + --sa-block-text-on-bright-background: black; +} diff --git a/src/addons/addons/editor-theme3/color_on_black.css b/src/addons/addons/editor-theme3/color_on_black.css new file mode 100644 index 0000000000000000000000000000000000000000..1447f611f526748ee06d53390bf842988f659209 --- /dev/null +++ b/src/addons/addons/editor-theme3/color_on_black.css @@ -0,0 +1,39 @@ +.u-dropdown-searchbar { + border-color: rgba(255, 255, 255, 0.15); +} +.u-dropdown-searchbar:focus { + background-color: var(--editorTheme3-hoveredItem); +} +.blocklyDropDownDiv .goog-menuitem-checkbox { + filter: brightness(0) invert(1); +} + +.scratchCommentRect { + fill: #282828; +} +.scratchCommentBody, +.scratchCommentTextarea { + background-color: #282828; +} +.scratchWorkspaceCommentBorder { + stroke: var(--editorTheme3-commentColor); +} +.scratchCommentTextarea::placeholder { + color: rgba(255, 255, 255, 0.5); +} +.scratchCommentText { + fill: #ffffff; + color: #ffffff; +} + +/* Compatibility */ + +.sa-block-color { + --sa-block-colored-background: var(--sa-block-background-secondary); + --sa-block-colored-background-secondary: var(--sa-block-field-background); + --sa-block-bright-background: var(--sa-block-background-tertiary); + --sa-block-text: var(--sa-block-background-tertiary); + --sa-block-gray-text: white; + --sa-block-colored-text: var(--sa-block-background-tertiary); + --sa-block-text-on-bright-background: white; +} diff --git a/src/addons/addons/editor-theme3/color_on_white.css b/src/addons/addons/editor-theme3/color_on_white.css new file mode 100644 index 0000000000000000000000000000000000000000..2a46948b7d69fa10a3906f353230298936b9efb2 --- /dev/null +++ b/src/addons/addons/editor-theme3/color_on_white.css @@ -0,0 +1,51 @@ +.scratchCategoryItemBubble::after { + /* block-palette-icons */ + filter: brightness(0); + opacity: 0.6; +} + +.u-dropdown-searchbar, +.u-dropdown-searchbar:focus, +.blocklyDropDownDiv .goog-menuitem, +.sa-contextmenu-colored .blocklyContextMenu .goog-menuitem .goog-menuitem-content { + color: #575e75; +} +.u-dropdown-searchbar:focus { + background-color: var(--editorTheme3-hoveredItem); +} + +.blocklyAngleDragHandle { + stroke: black; + stroke-opacity: 0.15; + paint-order: stroke fill; +} + +.scratchCommentRect { + fill: #feffff; +} +.scratchCommentBody, +.scratchCommentTextarea { + background-color: #ffffff; +} +.scratchWorkspaceCommentBorder { + stroke: var(--editorTheme3-commentColor); +} +.scratchCommentTextarea::placeholder { + color: rgba(0, 0, 0, 0.5); +} +.scratchCommentText { + fill: #575e75; + color: #575e75; +} + +/* Compatibility */ + +.sa-block-color { + --sa-block-colored-background: var(--sa-block-background-secondary); + --sa-block-colored-background-secondary: var(--sa-block-field-background); + --sa-block-bright-background: var(--sa-block-background-tertiary); + --sa-block-text: var(--sa-block-background-tertiary); + --sa-block-gray-text: #575e75; + --sa-block-colored-text: var(--sa-block-background-tertiary); + --sa-block-text-on-bright-background: white; +} diff --git a/src/addons/addons/editor-theme3/compatibility.css b/src/addons/addons/editor-theme3/compatibility.css new file mode 100644 index 0000000000000000000000000000000000000000..b619c720dfa577fd3e209439f06a01237f64f845 --- /dev/null +++ b/src/addons/addons/editor-theme3/compatibility.css @@ -0,0 +1,104 @@ +/* Imported by other addons */ + +.sa-block-color { + --sa-block-colored-background: var(--sa-block-background-primary); + --sa-block-colored-background-secondary: var(--sa-block-field-background); + --sa-block-bright-background: var(--sa-block-background-primary); + --sa-block-text: white; + --sa-block-gray-text: white; + --sa-block-colored-text: var(--sa-block-background-primary); + --sa-block-text-on-bright-background: white; +} + +.sa-block-color-motion { + --sa-block-background-primary: var(--editorTheme3-motion-primary, #4c97ff); + --sa-block-background-secondary: var(--editorTheme3-motion-secondary, #4280d7); + --sa-block-background-tertiary: var(--editorTheme3-motion-tertiary, #3373cc); + --sa-block-field-background: var(--editorTheme3-motion-field, #3373cc); +} + +.sa-block-color-looks { + --sa-block-background-primary: var(--editorTheme3-looks-primary, #9966ff); + --sa-block-background-secondary: var(--editorTheme3-looks-secondary, #855cd6); + --sa-block-background-tertiary: var(--editorTheme3-looks-tertiary, #774dcb); + --sa-block-field-background: var(--editorTheme3-looks-field, #774dcb); +} + +.sa-block-color-sounds { + --sa-block-background-primary: var(--editorTheme3-sounds-primary, #cf63cf); + --sa-block-background-secondary: var(--editorTheme3-sounds-secondary, #c94fc9); + --sa-block-background-tertiary: var(--editorTheme3-sounds-tertiary, #bd42bd); + --sa-block-field-background: var(--editorTheme3-sounds-field, #bd42bd); +} + +.sa-block-color-events { + --sa-block-background-primary: var(--editorTheme3-event-primary, #ffbf00); + --sa-block-background-secondary: var(--editorTheme3-event-secondary, #e6ac00); + --sa-block-background-tertiary: var(--editorTheme3-event-tertiary, #cc9900); + --sa-block-field-background: var(--editorTheme3-event-field, #cc9900); +} + +.sa-block-color-control { + --sa-block-background-primary: var(--editorTheme3-control-primary, #ffab19); + --sa-block-background-secondary: var(--editorTheme3-control-secondary, #ec9c13); + --sa-block-background-tertiary: var(--editorTheme3-control-tertiary, #cf8b17); + --sa-block-field-background: var(--editorTheme3-control-field, #cf8b17); +} + +.sa-block-color-sensing { + --sa-block-background-primary: var(--editorTheme3-sensing-primary, #5cb1d6); + --sa-block-background-secondary: var(--editorTheme3-sensing-secondary, #47a8d1); + --sa-block-background-tertiary: var(--editorTheme3-sensing-tertiary, #2e8eb8); + --sa-block-field-background: var(--editorTheme3-sensing-field, #2e8eb8); +} + +.sa-block-color-operators { + --sa-block-background-primary: var(--editorTheme3-operators-primary, #59c059); + --sa-block-background-secondary: var(--editorTheme3-operators-secondary, #46b946); + --sa-block-background-tertiary: var(--editorTheme3-operators-tertiary, #389438); + --sa-block-field-background: var(--editorTheme3-operators-field, #389438); +} + +.sa-block-color-data { + --sa-block-background-primary: var(--editorTheme3-data-primary, #ff8c1a); + --sa-block-background-secondary: var(--editorTheme3-data-secondary, #ff8000); + --sa-block-background-tertiary: var(--editorTheme3-data-tertiary, #db6e00); + --sa-block-field-background: var(--editorTheme3-data-field, #db6e00); +} + +.sa-block-color-data-lists, +.sa-block-color-list { + --sa-block-background-primary: var(--editorTheme3-data_lists-primary, #ff661a); + --sa-block-background-secondary: var(--editorTheme3-data_lists-secondary, #ff5500); + --sa-block-background-tertiary: var(--editorTheme3-data_lists-tertiary, #e64d00); + --sa-block-field-background: var(--editorTheme3-data_lists-field, #e64d00); +} + +.sa-block-color-more, +.sa-block-color-null { + --sa-block-background-primary: var(--editorTheme3-more-primary, #ff6680); + --sa-block-background-secondary: var(--editorTheme3-more-secondary, #ff4d6a); + --sa-block-background-tertiary: var(--editorTheme3-more-tertiary, #ff3355); + --sa-block-field-background: var(--editorTheme3-more-field, #ff3355); +} + +.sa-block-color-pen { + --sa-block-background-primary: var(--editorTheme3-pen-primary, #0fbd8c); + --sa-block-background-secondary: var(--editorTheme3-pen-secondary, #0da57a); + --sa-block-background-tertiary: var(--editorTheme3-pen-tertiary, #0b8e69); + --sa-block-field-background: var(--editorTheme3-pen-field, #0b8e69); +} + +.sa-block-color-addon-custom-block { + --sa-block-background-primary: var(--editorTheme3-sa-primary, #29beb8); + --sa-block-background-secondary: var(--editorTheme3-sa-secondary, #3aa8a4); + --sa-block-background-tertiary: var(--editorTheme3-sa-tertiary, #3aa8a4); + --sa-block-field-background: var(--editorTheme3-sa-field, #3aa8a4); +} + +.sa-block-color-TurboWarp { + --sa-block-background-primary: var(--editorTheme3-tw-primary, #ff4c4c); + --sa-block-background-secondary: var(--editorTheme3-tw-secondary, #e64444); + --sa-block-background-tertiary: var(--editorTheme3-tw-tertiary, #e64444); + --sa-block-field-background: var(--editorTheme3-tw-field, #e64444); +} diff --git a/src/addons/addons/editor-theme3/forums/base.css b/src/addons/addons/editor-theme3/forums/base.css new file mode 100644 index 0000000000000000000000000000000000000000..5a41b6204ef3f24978250175ad3ef1ce99ad6b59 --- /dev/null +++ b/src/addons/addons/editor-theme3/forums/base.css @@ -0,0 +1,187 @@ +.sb-motion, +.sb-looks, +.sb-sound, +.sb-events, +.sb-control, +.sb-sensing, +.sb-operators, +.sb-variables, +.sb-list, +.sb-custom, +.sb-custom-arg, +.sb-extension, +.sb-pen { + fill: var(--sa-block-color); +} +.sb3-motion, +.sb3-looks, +.sb3-sound, +.sb3-events, +.sb3-control, +.sb3-sensing, +.sb3-operators, +.sb3-variables, +.sb3-list, +.sb3-custom, +.sb3-custom-arg, +.sb3-extension, +.sb3-pen { + fill: var(--sa-block-color); + stroke: rgba(0, 0, 0, 0.2); +} + +.sb3-motion-alt, +.sb3-looks-alt, +.sb3-sound-alt, +.sb3-events-alt, +.sb3-control-alt, +.sb3-sensing-alt, +.sb3-operators-alt, +.sb3-variables-alt, +.sb3-list-alt, +.sb3-custom-alt, +.sb3-custom-arg-alt, +.sb3-extension-alt, +.sb3-pen-alt { + fill: rgba(0, 0, 0, 0.1); + stroke: rgba(0, 0, 0, 0.1); +} +.sb3-motion-dark, +.sb3-looks-dark, +.sb3-sound-dark, +.sb3-events-dark, +.sb3-control-dark, +.sb3-sensing-dark, +.sb3-operators-dark, +.sb3-variables-dark, +.sb3-list-dark, +.sb3-custom-dark, +.sb3-custom-arg-dark, +.sb3-extension-dark, +.sb3-pen-dark { + fill: rgba(0, 0, 0, 0.2); +} +.sb3-extension-line { + stroke: rgba(0, 0, 0, 0.1); +} + +.sb-motion, +.sb-motion ~ .sb-label, +.sb3-motion, +.sb3-motion-dark, +.sb3-motion ~ .sb3-label { + --sa-block-color: var(--editorTheme3-motionColor); +} +.sb-looks, +.sb-looks ~ .sb-label, +.sb3-looks, +.sb3-looks-dark, +.sb3-looks ~ .sb3-label { + --sa-block-color: var(--editorTheme3-looksColor); +} +.sb-sound, +.sb-sound ~ .sb-label, +.sb3-sound, +.sb3-sound-dark, +.sb3-sound ~ .sb3-label { + --sa-block-color: var(--editorTheme3-soundsColor); +} +.sb-events, +.sb-events ~ .sb-label, +.sb3-events, +.sb3-events-dark, +.sb3-events ~ .sb3-label { + --sa-block-color: var(--editorTheme3-eventsColor); +} +.sb-control, +.sb-control ~ .sb-label, +.sb3-control, +.sb3-control-dark, +.sb3-control ~ .sb3-label { + --sa-block-color: var(--editorTheme3-controlColor); +} +.sb-sensing, +.sb-sensing ~ .sb-label, +.sb3-sensing, +.sb3-sensing-dark, +.sb3-sensing ~ .sb3-label { + --sa-block-color: var(--editorTheme3-sensingColor); +} +.sb-operators, +.sb-operators ~ .sb-label, +.sb3-operators, +.sb3-operators-dark, +.sb3-operators ~ .sb3-label { + --sa-block-color: var(--editorTheme3-operatorsColor); +} +.sb-variables, +.sb-variables ~ .sb-label, +.sb3-variables, +.sb3-variables-dark, +.sb3-variables ~ .sb3-label { + --sa-block-color: var(--editorTheme3-dataColor); +} +.sb-list, +.sb-list ~ .sb-label, +.sb3-list, +.sb3-list-dark, +.sb3-list ~ .sb3-label { + --sa-block-color: var(--editorTheme3-dataListsColor); +} +.sb-custom, +.sb-custom ~ .sb-label, +.sb3-custom, +.sb3-custom-dark, +.sb3-custom ~ .sb3-label, +.sb-custom-arg, +.sb-custom-arg ~ .sb-label, +.sb3-custom-arg, +.sb3-custom-arg-dark, +.sb3-custom-arg ~ .sb3-label { + --sa-block-color: var(--editorTheme3-customColor); +} +.sb-extension, +.sb-extension ~ .sb-label, +.sb3-extension, +.sb3-extension-dark, +.sb3-extension ~ .sb3-label, +.sb-pen, +.sb-pen ~ .sb-label, +.sb3-pen, +.sb3-pen-dark, +.sb3-pen ~ .sb3-label, +.sb3-extension-line { + --sa-block-color: var(--editorTheme3-PenColor); +} + +.sb-comment, +.sb3-comment, +.sb-comment-line, +.sb3-comment-line { + fill: var(--editorTheme3-commentColor); + stroke: var(--editorTheme3-commentBorder); +} +.sb-comment-label, +.sb3-comment-label { + fill: var(--editorTheme3-commentText); +} + +.sb-input-number, +.sb-input-number-dropdown, +.sb-input-string { + fill: var(--editorTheme3-inputColor); +} +.sb3-input-number, +.sb3-input-string { + fill: var(--editorTheme3-inputColor) !important; +} +.sb-label.sb-literal-number, +.sb-label.sb-literal-number-dropdown, +.sb-literal-number-dropdown + polygon /* dropdown arrow */, +.sb-label.sb-literal-string { + fill: var(--editorTheme3-inputColor-blackText); +} +.sb3-label.sb3-literal-number, +.sb3-label.sb3-literal-string { + fill: var(--editorTheme3-inputColor-text); +} diff --git a/src/addons/addons/editor-theme3/forums/black_text.css b/src/addons/addons/editor-theme3/forums/black_text.css new file mode 100644 index 0000000000000000000000000000000000000000..d6c94fbde1d571ad06398602ca42379761f8134a --- /dev/null +++ b/src/addons/addons/editor-theme3/forums/black_text.css @@ -0,0 +1,88 @@ +.sb3-motion, +.sb3-looks, +.sb3-sound, +.sb3-events, +.sb3-control, +.sb3-sensing, +.sb3-operators, +.sb3-variables, +.sb3-list, +.sb3-custom, +.sb3-custom-arg, +.sb3-extension, +.sb3-pen { + stroke: rgba(0, 0, 0, 0.35); +} + +.sb3-motion-alt, +.sb3-looks-alt, +.sb3-sound-alt, +.sb3-events-alt, +.sb3-control-alt, +.sb3-sensing-alt, +.sb3-operators-alt, +.sb3-variables-alt, +.sb3-list-alt, +.sb3-custom-alt, +.sb3-custom-arg-alt, +.sb3-extension-alt, +.sb3-pen-alt { + fill: rgba(255, 255, 255, 0.4); + stroke: rgba(0, 0, 0, 0.4); +} +.sb3-motion-dark, +.sb3-looks-dark, +.sb3-sound-dark, +.sb3-events-dark, +.sb3-control-dark, +.sb3-sensing-dark, +.sb3-operators-dark, +.sb3-variables-dark, +.sb3-list-dark, +.sb3-custom-dark, +.sb3-custom-arg-dark, +.sb3-extension-dark, +.sb3-pen-dark { + fill: rgba(0, 0, 0, 0.35); +} +.sb3-extension-line { + stroke: rgba(0, 0, 0, 0.35); +} + +.sb-motion ~ .sb-label, +.sb-looks ~ .sb-label, +.sb-sound ~ .sb-label, +.sb-events ~ .sb-label, +.sb-control ~ .sb-label, +.sb-sensing ~ .sb-label, +.sb-operators ~ .sb-label, +.sb-variables ~ .sb-label, +.sb-list ~ .sb-label, +.sb-custom ~ .sb-label, +.sb-custom-arg ~ .sb-label, +.sb-extension ~ .sb-label, +.sb-pen ~ .sb-label, +.sb3-motion ~ .sb3-label, +.sb3-looks ~ .sb3-label, +.sb3-sound ~ .sb3-label, +.sb3-events ~ .sb3-label, +.sb3-control ~ .sb3-label, +.sb3-sensing ~ .sb3-label, +.sb3-operators ~ .sb3-label, +.sb3-variables ~ .sb3-label, +.sb3-list ~ .sb3-label, +.sb3-custom ~ .sb3-label, +.sb3-custom-arg ~ .sb3-label, +.sb3-extension ~ .sb3-label, +.sb3-pen ~ .sb3-label, +#sb3-dropdownArrow path, +#sb3-loopArrow path[fill="#fff"], +#sb3-turnLeft path[fill="#fff"], +#sb3-turnRight path[fill="#fff"] { + fill: black; +} + +.sb3-label.sb3-literal-number, +.sb3-label.sb3-literal-string { + fill: var(--editorTheme3-inputColor-blackText); +} diff --git a/src/addons/addons/editor-theme3/forums/color_on_black.css b/src/addons/addons/editor-theme3/forums/color_on_black.css new file mode 100644 index 0000000000000000000000000000000000000000..0e2752203ffb4778b8ac82a6aed795bd67ac9f7b --- /dev/null +++ b/src/addons/addons/editor-theme3/forums/color_on_black.css @@ -0,0 +1,52 @@ +@import "%addon-self-dir%/forums/colored_text.css"; + +.sb-motion, +.sb-looks, +.sb-sound, +.sb-events, +.sb-control, +.sb-sensing, +.sb-operators, +.sb-variables, +.sb-list, +.sb-custom, +.sb-custom-arg, +.sb-extension, +.sb-pen, +.sb-grey, +.sb-obsolete, +.sb3-motion, +.sb3-looks, +.sb3-sound, +.sb3-events, +.sb3-control, +.sb3-sensing, +.sb3-operators, +.sb3-variables, +.sb3-list, +.sb3-custom, +.sb3-custom-arg, +.sb3-extension, +.sb3-pen, +.sb3-grey, +.sb3-obsolete { + fill: #282828; +} + +#bevelFilter feFlood[flood-color="#000"], +#inputBevelFilter feFlood[flood-color="#000"] { + flood-color: white; + flood-opacity: 0.05; +} + +.sb-comment, +.sb3-comment { + fill: #282828; + stroke: var(--editorTheme3-commentColor); +} + +.sb-label, +.sb3-label, +.sb-input-dropdown ~ polygon { + fill: white; +} diff --git a/src/addons/addons/editor-theme3/forums/color_on_white.css b/src/addons/addons/editor-theme3/forums/color_on_white.css new file mode 100644 index 0000000000000000000000000000000000000000..c19a0688a1f7499092a57bfa825f5a9b01cb8044 --- /dev/null +++ b/src/addons/addons/editor-theme3/forums/color_on_white.css @@ -0,0 +1,49 @@ +@import "%addon-self-dir%/forums/colored_text.css"; + +.sb-motion, +.sb-looks, +.sb-sound, +.sb-events, +.sb-control, +.sb-sensing, +.sb-operators, +.sb-variables, +.sb-list, +.sb-custom, +.sb-custom-arg, +.sb-extension, +.sb-pen, +.sb-grey, +.sb-obsolete, +.sb3-motion, +.sb3-looks, +.sb3-sound, +.sb3-events, +.sb3-control, +.sb3-sensing, +.sb3-operators, +.sb3-variables, +.sb3-list, +.sb3-custom, +.sb3-custom-arg, +.sb3-extension, +.sb3-pen, +.sb3-grey, +.sb3-obsolete { + fill: white; +} + +#bevelFilter feFlood[flood-color="#fff"], +#inputBevelFilter feFlood[flood-color="#fff"] { + flood-color: black; + flood-opacity: 0.3; +} + +.sb-comment, +.sb3-comment { + fill: white; + stroke: var(--editorTheme3-commentColor); +} +#sb3-dropdownArrow path { + fill: #575e75; +} diff --git a/src/addons/addons/editor-theme3/forums/colored_text.css b/src/addons/addons/editor-theme3/forums/colored_text.css new file mode 100644 index 0000000000000000000000000000000000000000..f93f9a6fcad59eef50a7766a724f58f372d2f909 --- /dev/null +++ b/src/addons/addons/editor-theme3/forums/colored_text.css @@ -0,0 +1,102 @@ +.sb3-motion, +.sb3-looks, +.sb3-sound, +.sb3-events, +.sb3-control, +.sb3-sensing, +.sb3-operators, +.sb3-variables, +.sb3-list, +.sb3-custom, +.sb3-custom-arg, +.sb3-extension, +.sb3-pen { + stroke: var(--sa-block-color); +} +.sb3-grey { + stroke: #949494; +} +.sb3-obsolete { + stroke: #ed4242; +} + +.sb-motion ~ .sb-label, +.sb-looks ~ .sb-label, +.sb-sound ~ .sb-label, +.sb-events ~ .sb-label, +.sb-control ~ .sb-label, +.sb-sensing ~ .sb-label, +.sb-operators ~ .sb-label, +.sb-variables ~ .sb-label, +.sb-list ~ .sb-label, +.sb-custom ~ .sb-label, +.sb-custom-arg ~ .sb-label, +.sb-extension ~ .sb-label, +.sb-pen ~ .sb-label, +.sb3-motion ~ .sb3-label, +.sb3-looks ~ .sb3-label, +.sb3-sound ~ .sb3-label, +.sb3-events ~ .sb3-label, +.sb3-control ~ .sb3-label, +.sb3-sensing ~ .sb3-label, +.sb3-operators ~ .sb3-label, +.sb3-variables ~ .sb3-label, +.sb3-list ~ .sb3-label, +.sb3-custom ~ .sb3-label, +.sb3-custom-arg ~ .sb3-label, +.sb3-extension ~ .sb3-label, +.sb3-pen ~ .sb3-label { + fill: var(--sa-block-color); +} +.sb-grey ~ .sb-label, +.sb3-grey ~ .sb3-label { + fill: #949494; +} +.sb-obsolete ~ .sb-label { + fill: #d42828; +} +.sb3-obsolete ~ .sb3-label { + fill: #ed4242; +} + +.sb-darker { + fill: var(--sa-block-color); + fill-opacity: 0.25; + filter: none; +} +.sb3-motion-alt, +.sb3-looks-alt, +.sb3-sound-alt, +.sb3-events-alt, +.sb3-control-alt, +.sb3-sensing-alt, +.sb3-operators-alt, +.sb3-variables-alt, +.sb3-list-alt, +.sb3-custom-alt, +.sb3-custom-arg-alt, +.sb3-extension-alt, +.sb3-pen-alt { + fill: var(--sa-block-color) !important; + fill-opacity: 0.15; +} +.sb3-motion-dark, +.sb3-looks-dark, +.sb3-sound-dark, +.sb3-events-dark, +.sb3-control-dark, +.sb3-sensing-dark, +.sb3-operators-dark, +.sb3-variables-dark, +.sb3-list-dark, +.sb3-custom-dark, +.sb3-custom-arg-dark, +.sb3-extension-dark, +.sb3-pen-dark { + fill: var(--sa-block-color); + fill-opacity: 0.25; +} +.sb3-extension-line { + stroke: var(--sa-block-color); + stroke-opacity: 0.15; +} diff --git a/src/addons/addons/editor-theme3/theme3.css b/src/addons/addons/editor-theme3/theme3.css new file mode 100644 index 0000000000000000000000000000000000000000..3c3070d141cfbeea1defd2557d0ac9f4caaa2d8b --- /dev/null +++ b/src/addons/addons/editor-theme3/theme3.css @@ -0,0 +1,31 @@ +.blocklyEditableText > text { + fill: var(--editorTheme3-inputColor-text); +} +.blocklyHtmlInput { + background-color: var(--editorTheme3-inputColor); + color: var(--editorTheme3-inputColor-text); +} + +.blocklyDropDownDiv .goog-menuitem-highlight, +.blocklyDropDownDiv .goog-menuitem-hover, +.sa-contextmenu-colored .blocklyContextMenu .goog-menuitem-highlight { + background-color: var(--editorTheme3-hoveredItem, rgba(0, 0, 0, 0.2)); +} + +.scratchCommentRect { + fill: var(--editorTheme3-commentColor); +} +.scratchCommentBody, +.scratchCommentTextarea { + background-color: var(--editorTheme3-commentColor); +} +.scratchWorkspaceCommentBorder { + stroke: var(--editorTheme3-commentBorder); +} +.scratchCommentTextarea::placeholder { + color: var(--editorTheme3-commentTextTransparent); +} +.scratchCommentText { + fill: var(--editorTheme3-commentText); + color: var(--editorTheme3-commentText); +} diff --git a/src/addons/addons/editor-theme3/theme3.js b/src/addons/addons/editor-theme3/theme3.js new file mode 100644 index 0000000000000000000000000000000000000000..a25943bc23c75066f50fd64f8a050bc952a1533c --- /dev/null +++ b/src/addons/addons/editor-theme3/theme3.js @@ -0,0 +1,366 @@ +import { + removeAlpha, + multiply, + brighten, + alphaBlend, + recolorFilter, +} from "../../libraries/common/cs/text-color.esm.js"; + +const dataUriRegex = new RegExp("^data:image/svg\\+xml;base64,([A-Za-z0-9+/=]*)$"); +const extensionsCategory = { + id: null, + settingId: "Pen-color", + colorId: "pen", +}; +const twCategory = { + id: null, + settingId: "tw-color", + colorId: "tw" +}; +const saCategory = { + settingId: "sa-color", + colorId: "sa", +}; +const categories = [ + { + id: "motion", + settingId: "motion-color", + colorId: "motion", + }, + { + id: "looks", + settingId: "looks-color", + colorId: "looks", + }, + { + id: "sound", + settingId: "sounds-color", + colorId: "sounds", + }, + { + id: "events", + settingId: "events-color", + colorId: "event", + }, + { + id: "control", + settingId: "control-color", + colorId: "control", + }, + { + id: "sensing", + settingId: "sensing-color", + colorId: "sensing", + }, + { + id: "operators", + settingId: "operators-color", + colorId: "operators", + }, + { + id: "variables", + settingId: "data-color", + colorId: "data", + }, + { + id: "lists", + settingId: "data-lists-color", + colorId: "data_lists", + }, + { + id: "myBlocks", + settingId: "custom-color", + colorId: "more", + }, + extensionsCategory, + twCategory, + saCategory, +]; + +export default async function ({ addon, console }) { + const Blockly = await addon.tab.traps.getBlockly(); + + const originalColors = JSON.parse(JSON.stringify(Blockly.Colours)); + originalColors.sa = { + primary: "#29beb8", + secondary: "#3aa8a4", + tertiary: "#3aa8a4", + }; + originalColors.tw = { + primary: "#ff4c4c", + secondary: "#e64444", + tertiary: "#e64444" + }; + + let textModeSetting = addon.settings.get("text"); + const textMode = () => (addon.self.disabled ? "white" : textModeSetting); + const isColoredTextMode = () => textMode() === "colorOnWhite" || textMode() === "colorOnBlack"; + + const primaryColor = (category) => { + if (addon.self.disabled) return originalColors[category.colorId].primary; + // Colored on white: can't use #ffffff because of editor-dark-mode dropdown div handling + if (textMode() === "colorOnWhite") return "#feffff"; + if (textMode() === "colorOnBlack") return "#282828"; + return addon.settings.get(category.settingId); + }; + const secondaryColor = (category) => { + if (addon.self.disabled) return originalColors[category.colorId].secondary; + if (isColoredTextMode()) + return alphaBlend(primaryColor(category), multiply(addon.settings.get(category.settingId), { a: 0.15 })); + if (textMode() === "black") return brighten(addon.settings.get(category.settingId), { r: 0.6, g: 0.6, b: 0.6 }); + return multiply(addon.settings.get(category.settingId), { r: 0.9, g: 0.9, b: 0.9 }); + }; + const tertiaryColor = (category) => { + if (addon.self.disabled) return originalColors[category.colorId].tertiary; + if (isColoredTextMode()) return addon.settings.get(category.settingId); + if (textMode() === "black") return multiply(addon.settings.get(category.settingId), { r: 0.65, g: 0.65, b: 0.65 }); + return multiply(addon.settings.get(category.settingId), { r: 0.8, g: 0.8, b: 0.8 }); + }; + const fieldBackground = (category) => { + // Background color for open dropdowns and (in some textModes) Boolean inputs + // The argument can be a block, field, or category + if (category instanceof Blockly.Block || category instanceof Blockly.Field) { + const block = category instanceof Blockly.Block ? category : category.sourceBlock_; + if (isColoredTextMode() || textMode() === "black") { + let primary; + if (block.isShadow() && block.getParent()) primary = block.getParent().getColour(); + else primary = block.getColour(); + if (isColoredTextMode()) return alphaBlend(primary, multiply(block.getColourTertiary(), { a: 0.25 })); + else return brighten(primary, { r: 0.4, g: 0.4, b: 0.4 }); + } + return block.getColourTertiary(); + } + if (isColoredTextMode()) + return alphaBlend(primaryColor(category), multiply(addon.settings.get(category.settingId), { a: 0.25 })); + if (textMode() === "black") return brighten(primaryColor(category), { r: 0.4, g: 0.4, b: 0.4 }); + return tertiaryColor(category); + }; + const textColor = (field) => { + if (addon.self.disabled || textMode() === "white") return "#ffffff"; + if (textMode() === "black") return "#000000"; + if (field) return field.sourceBlock_.getColourTertiary(); + return "#000000"; + }; + const uncoloredTextColor = () => { + if (addon.self.disabled) return "#ffffff"; + return { + white: "#ffffff", + black: "#575e75", + colorOnWhite: "#575e75", + colorOnBlack: "#ffffff", + }[textMode]; + }; + const otherColor = (settingId, colorId) => { + if (addon.self.disabled) return originalColors[colorId]; + return addon.settings.get(settingId); + }; + + // Blockly doesn't handle colors with transparency + const oldBlockMakeColor = Blockly.Block.prototype.makeColour_; + Blockly.Block.prototype.makeColour_ = function (color) { + if (typeof color === "string" && /^#(?:[0-9A-Za-z]{2}){3,4}$/.test(color)) return color; + return oldBlockMakeColor(color); + }; + + const oldCategoryCreateDom = Blockly.Toolbox.Category.prototype.createDom; + Blockly.Toolbox.Category.prototype.createDom = function () { + // Category bubbles + if (this.iconURI_) { + if (addon.self.disabled) return oldCategoryCreateDom.call(this); + if (!["sa-blocks", "videoSensing", "text2speech"].includes(this.id_)) return oldCategoryCreateDom.call(this); + + const match = dataUriRegex.exec(this.iconURI_); + if (match) { + const oldSvg = atob(match[1]); + const category = this.id_ === "sa-blocks" ? saCategory : extensionsCategory; + const newColor = isColoredTextMode ? tertiaryColor(category) : primaryColor(category); + if (newColor) { + const newSvg = oldSvg.replace(/#29beb8|#0ebd8c/gi, newColor); + this.iconURI_ = `data:image/svg+xml;base64,${btoa(newSvg)}`; + } + } + } + oldCategoryCreateDom.call(this); + if (this.iconURI_) return; + const category = categories.find((item) => item.id === this.id_); + if (!category) return; + this.bubble_.style.backgroundColor = isColoredTextMode() ? fieldBackground(category) : primaryColor(category); + this.bubble_.style.borderColor = tertiaryColor(category); + }; + + const oldBlockSetColour = Blockly.Block.prototype.setColour; + Blockly.Block.prototype.setColour = function (colour, colourSecondary, colourTertiary) { + // Extension blocks (color is set by VM) + if (colour.toLowerCase() === originalColors.pen.primary.toLowerCase()) { + colour = primaryColor(extensionsCategory); + colourSecondary = secondaryColor(extensionsCategory); + colourTertiary = tertiaryColor(extensionsCategory); + } + // TurboWarp Blocks + if (this.type.startsWith("tw_")) { + colour = primaryColor(twCategory); + colourSecondary = secondaryColor(twCategory); + colourTertiary = tertiaryColor(twCategory); + } + return oldBlockSetColour.call(this, colour, colourSecondary, colourTertiary); + }; + + const oldBlockUpdateColour = Blockly.BlockSvg.prototype.updateColour; + Blockly.BlockSvg.prototype.updateColour = function () { + oldBlockUpdateColour.call(this); + // Boolean inputs + if (isColoredTextMode()) { + for (const input of this.inputList) { + if (input.outlinePath) { + input.outlinePath.setAttribute("fill", fieldBackground(this)); + } + } + } + }; + + const oldBlockShowContextMenu = Blockly.BlockSvg.prototype.showContextMenu_; + Blockly.BlockSvg.prototype.showContextMenu_ = function (e) { + Blockly.WidgetDiv.DIV.style.setProperty("--editorTheme3-hoveredItem", fieldBackground(this)); + return oldBlockShowContextMenu.call(this, e); + }; + + const oldFieldLabelInit = Blockly.FieldLabel.prototype.init; + Blockly.FieldLabel.prototype.init = function () { + // Labels + oldFieldLabelInit.call(this); + this.textElement_.style.fill = textColor(this); + }; + + const oldFieldTextInputInit = Blockly.FieldTextInput.prototype.init; + Blockly.FieldTextInput.prototype.init = function () { + // Text inputs + oldFieldTextInputInit.call(this); + if (this.sourceBlock_.isShadow()) return; + // Labels in custom block editor + this.box_.setAttribute("fill", fieldBackground(this)); + }; + + const oldFieldDropdownInit = Blockly.FieldDropdown.prototype.init; + Blockly.FieldDropdown.prototype.init = function () { + // Dropdowns + oldFieldDropdownInit.call(this); + this.textElement_.style.setProperty("fill", textColor(this), "important"); + if (textColor(this) !== "#ffffff") this.arrow_.style.filter = recolorFilter(textColor(this)); + }; + + const oldFieldDropdownShowEditor = Blockly.FieldDropdown.prototype.showEditor_; + Blockly.FieldDropdown.prototype.showEditor_ = function () { + oldFieldDropdownShowEditor.call(this); + + // Open dropdowns + if (!this.disableColourChange_) { + if (this.sourceBlock_.isShadow()) { + this.sourceBlock_.setShadowColour(fieldBackground(this)); + } else if (this.box_) { + this.box_.setAttribute("fill", fieldBackground(this)); + } + } + + // Dropdown menus + let primaryColor; + if (this.sourceBlock_.isShadow() && this.sourceBlock_.getParent()) + primaryColor = this.sourceBlock_.getParent().getColour(); + else primaryColor = this.sourceBlock_.getColour(); + Blockly.DropDownDiv.DIV_.style.backgroundColor = removeAlpha(primaryColor); + if (isColoredTextMode()) { + Blockly.DropDownDiv.getContentDiv().style.setProperty("--editorTheme3-hoveredItem", fieldBackground(this)); + } else { + Blockly.DropDownDiv.getContentDiv().style.removeProperty("--editorTheme3-hoveredItem"); + } + }; + + const oldFieldVariableInit = Blockly.FieldVariable.prototype.init; + Blockly.FieldVariable.prototype.init = function () { + // Variable dropdowns + oldFieldVariableInit.call(this); + this.textElement_.style.setProperty("fill", textColor(this), "important"); + }; + + const oldFieldVariableGetterInit = Blockly.FieldVariableGetter.prototype.init; + Blockly.FieldVariableGetter.prototype.init = function () { + // Variable reporters + oldFieldVariableGetterInit.call(this); + this.textElement_.style.fill = textColor(this); + }; + + const oldFieldMatrixUpdateMatrix = Blockly.FieldMatrix.prototype.updateMatrix_; + Blockly.FieldMatrix.prototype.updateMatrix_ = function () { + // Matrix inputs + oldFieldMatrixUpdateMatrix.call(this); + for (let i = 0; i < this.matrix_.length; i++) { + if (this.matrix_[i] !== "0") { + this.fillMatrixNode_(this.ledButtons_, i, uncoloredTextColor()); + this.fillMatrixNode_(this.ledThumbNodes_, i, uncoloredTextColor()); + } + } + }; + + const oldFieldMatrixCreateButton = Blockly.FieldMatrix.prototype.createButton_; + Blockly.FieldMatrix.prototype.createButton_ = function (fill) { + if (fill === "#FFFFFF") fill = uncoloredTextColor(); + return oldFieldMatrixCreateButton.call(this, fill); + }; + + const oldFieldVerticalSeparatorInit = Blockly.FieldVerticalSeparator.prototype.init; + Blockly.FieldVerticalSeparator.prototype.init = function () { + // Vertical line between extension icon and block label + oldFieldVerticalSeparatorInit.call(this); + if (textMode() === "black") this.lineElement_.setAttribute("stroke", this.sourceBlock_.getColourTertiary()); + }; + + const updateColors = () => { + const vm = addon.tab.traps.vm; + + textModeSetting = addon.settings.get("text"); + + for (const category of categories) { + // CSS variables are used for compatibility with other addons + const prefix = `--editorTheme3-${category.colorId}`; + for (const [name, value] of Object.entries({ + primary: primaryColor(category), + secondary: secondaryColor(category), + tertiary: tertiaryColor(category), + field: fieldBackground(category), + })) { + document.documentElement.style.setProperty(`${prefix}-${name}`, value); + } + + // Update Blockly.Colours + if (!Blockly.Colours[category.colorId]) continue; + Blockly.Colours[category.colorId].primary = primaryColor(category); + Blockly.Colours[category.colorId].secondary = secondaryColor(category); + Blockly.Colours[category.colorId].tertiary = tertiaryColor(category); + } + addon.tab.setCustomBlockColor({ + color: primaryColor(saCategory), + secondaryColor: secondaryColor(saCategory), + tertiaryColor: tertiaryColor(saCategory), + }); + Blockly.Colours.textField = otherColor("input-color", "textField"); + if (uncoloredTextColor() === "#575e75") Blockly.Colours.fieldShadow = "rgba(0, 0, 0, 0.15)"; + else Blockly.Colours.fieldShadow = originalColors.fieldShadow; + + const workspace = Blockly.getMainWorkspace(); + const flyout = workspace.getFlyout(); + const toolbox = workspace.getToolbox(); + + // Reload toolbox + if (vm.editingTarget) { + vm.emitWorkspaceUpdate(); + } + const flyoutWorkspace = flyout.getWorkspace(); + Blockly.Xml.clearWorkspaceAndLoadFromXml(Blockly.Xml.workspaceToDom(flyoutWorkspace), flyoutWorkspace); + toolbox.populate_(workspace.options.languageTree); + workspace.toolboxRefreshEnabled_ = true; + }; + + updateColors(); + addon.settings.addEventListener("change", updateColors); + addon.self.addEventListener("disabled", updateColors); + addon.self.addEventListener("reenabled", updateColors); +} diff --git a/src/addons/addons/find-bar/_manifest_entry.js b/src/addons/addons/find-bar/_manifest_entry.js new file mode 100644 index 0000000000000000000000000000000000000000..54182693045f0a852e3225ec3fdd55b9229d0a04 --- /dev/null +++ b/src/addons/addons/find-bar/_manifest_entry.js @@ -0,0 +1,37 @@ +/* generated by pull.js */ +const manifest = { + "editorOnly": true, + "name": "Editor find bar", + "description": "Adds a find bar to find and jump to scripts, costumes and sounds next to the sounds tab. Use Ctrl+Left and Ctrl+Right in the code area to navigate to previous or next visited position after using the find bar.", + "info": [ + { + "text": "This addon was previously part of the \"developer tools\" addon but has moved here.", + "id": "developer-tools" + } + ], + "credits": [ + { + "name": "griffpatch" + }, + { + "name": "TheColaber", + "link": "https://scratch.mit.edu/users/thecolaber/" + } + ], + "dynamicDisable": true, + "userscripts": [ + { + "url": "userscript.js" + } + ], + "userstyles": [ + { + "url": "userstyle.css" + } + ], + "tags": [ + "recommended" + ], + "enabledByDefault": true +}; +export default manifest; diff --git a/src/addons/addons/find-bar/_runtime_entry.js b/src/addons/addons/find-bar/_runtime_entry.js new file mode 100644 index 0000000000000000000000000000000000000000..e8d1f9d053dfbf3603b17200d244fda9ead99731 --- /dev/null +++ b/src/addons/addons/find-bar/_runtime_entry.js @@ -0,0 +1,7 @@ +/* generated by pull.js */ +import _js from "./userscript.js"; +import _css from "!css-loader!./userstyle.css"; +export const resources = { + "userscript.js": _js, + "userstyle.css": _css, +}; diff --git a/src/addons/addons/find-bar/blockly/BlockFlasher.js b/src/addons/addons/find-bar/blockly/BlockFlasher.js new file mode 100644 index 0000000000000000000000000000000000000000..160fe030cae9e129859aec96c8d2ef059eaa12cc --- /dev/null +++ b/src/addons/addons/find-bar/blockly/BlockFlasher.js @@ -0,0 +1,43 @@ +/** + * Helper class to flash a Blockly scratch block in the users workspace + */ +export default class BlockFlasher { + /** + * FLash a block 3 times + * @param block the block to flash + */ + static flash(block) { + if (myFlash.timerID > 0) { + clearTimeout(myFlash.timerID); + if (myFlash.block.svgPath_) { + myFlash.block.svgPath_.style.fill = ""; + } + } + + let count = 4; + let flashOn = true; + myFlash.block = block; + + /** + * Internal method to switch the colour of a block between light yellow and it's original colour + * @private + */ + function _flash() { + if (myFlash.block.svgPath_) { + myFlash.block.svgPath_.style.fill = flashOn ? "#ffff80" : ""; + } + flashOn = !flashOn; + count--; + if (count > 0) { + myFlash.timerID = setTimeout(_flash, 200); + } else { + myFlash.timerID = 0; + myFlash.block = null; + } + } + + _flash(); + } +} + +const myFlash = { block: null, timerID: null }; diff --git a/src/addons/addons/find-bar/blockly/BlockInstance.js b/src/addons/addons/find-bar/blockly/BlockInstance.js new file mode 100644 index 0000000000000000000000000000000000000000..5ade803fc732ce8d2308acd9cbfa51ee22399919 --- /dev/null +++ b/src/addons/addons/find-bar/blockly/BlockInstance.js @@ -0,0 +1,9 @@ +/** + * Encapsulates a block (either in this sprite or another / Blockly, or native JSON block + */ +export default class BlockInstance { + constructor(target, block) { + this.targetId = target.id; + this.id = block.id; + } +} diff --git a/src/addons/addons/find-bar/blockly/BlockItem.js b/src/addons/addons/find-bar/blockly/BlockItem.js new file mode 100644 index 0000000000000000000000000000000000000000..37520202704179036ca07741c897c16798916ce3 --- /dev/null +++ b/src/addons/addons/find-bar/blockly/BlockItem.js @@ -0,0 +1,34 @@ +export default class BlockItem { + constructor(cls, procCode, labelID, y) { + this.cls = cls; + this.procCode = procCode; + this.labelID = labelID; + this.y = y; + this.lower = procCode.toLowerCase(); + /** + * An Array of block ids + * @type {Array.} + */ + this.clones = null; + this.eventName = null; + } + + /** + * True if the blockID matches a black represented by this BlockItem + * @param id + * @returns {boolean} + */ + matchesID(id) { + if (this.labelID === id) { + return true; + } + if (this.clones) { + for (const cloneID of this.clones) { + if (cloneID === id) { + return true; + } + } + } + return false; + } +} diff --git a/src/addons/addons/find-bar/blockly/Utils.js b/src/addons/addons/find-bar/blockly/Utils.js new file mode 100644 index 0000000000000000000000000000000000000000..8b6873f9f4645d2e60ac17568969f9f4af70a77b --- /dev/null +++ b/src/addons/addons/find-bar/blockly/Utils.js @@ -0,0 +1,214 @@ +import BlockInstance from "./BlockInstance.js"; +import BlockFlasher from "./BlockFlasher.js"; + +// Make these global so that every addon uses the same arrays. +let views = []; +let forward = []; +export default class Utils { + constructor(addon) { + this.addon = addon; + this.addon.tab.traps.getBlockly().then((blockly) => { + this.blockly = blockly; + }); + /** + * Scratch Virtual Machine + * @type {null|*} + */ + this.vm = this.addon.tab.traps.vm; + // this._myFlash = { block: null, timerID: null, colour: null }; + this.offsetX = 32; + this.offsetY = 32; + this.navigationHistory = new NavigationHistory(); + /** + * The workspace + */ + this._workspace = null; + } + + /** + * Get the Scratch Editing Target + * @returns {?Target} the scratch editing target + */ + getEditingTarget() { + return this.vm.runtime.getEditingTarget(); + } + + /** + * Set the current workspace (switches sprites) + * @param targetID {string} + */ + setEditingTarget(targetID) { + if (this.getEditingTarget().id !== targetID) { + this.vm.setEditingTarget(targetID); + } + } + + /** + * Returns the main workspace + * @returns !Blockly.Workspace + */ + getWorkspace() { + const currentWorkspace = Blockly.getMainWorkspace(); + if (currentWorkspace.getToolbox()) { + // Sadly get get workspace does not always return the 'real' workspace... Not sure how to get that at the moment, + // but we can work out whether it's the right one by whether it has a toolbox. + this._workspace = currentWorkspace; + } + return this._workspace; + } + + /** + * Based on wksp.centerOnBlock(li.data.labelID); + * @param blockOrId {Blockly.Block|{id}|BlockInstance} A Blockly Block, a block id, or a BlockInstance + */ + scrollBlockIntoView(blockOrId) { + let workspace = this.getWorkspace(); + /** @type {Blockly.Block} */ + let block; // or is it really a Blockly.BlockSvg? + + if (blockOrId instanceof BlockInstance) { + // Switch to sprite + this.setEditingTarget(blockOrId.targetId); + // Highlight the block! + block = workspace.getBlockById(blockOrId.id); + } else { + block = blockOrId && blockOrId.id ? blockOrId : workspace.getBlockById(blockOrId); + } + + if (!block) { + return; + } + + /** + * !Blockly.Block + */ + let root = block.getRootBlock(); + let base = this.getTopOfStackFor(block); + let ePos = base.getRelativeToSurfaceXY(), // Align with the top of the block + rPos = root.getRelativeToSurfaceXY(), // Align with the left of the block 'stack' + scale = workspace.scale, + x = rPos.x * scale, + y = ePos.y * scale, + xx = block.width + x, // Turns out they have their x & y stored locally, and they are the actual size rather than scaled or including children... + yy = block.height + y, + s = workspace.getMetrics(); + if ( + x < s.viewLeft + this.offsetX - 4 || + xx > s.viewLeft + s.viewWidth || + y < s.viewTop + this.offsetY - 4 || + yy > s.viewTop + s.viewHeight + ) { + // sx = s.contentLeft + s.viewWidth / 2 - x, + let sx = x - s.contentLeft - this.offsetX, + // sy = s.contentTop - y + Math.max(Math.min(32, 32 * scale), (s.viewHeight - yh) / 2); + sy = y - s.contentTop - this.offsetY; + + this.navigationHistory.storeView(this.navigationHistory.peek(), 64); + + // workspace.hideChaff(), + workspace.scrollbar.set(sx, sy); + this.navigationHistory.storeView({ left: sx, top: sy }, 64); + } + this.blockly?.hideChaff(); + BlockFlasher.flash(block); + } + + /** + * Find the top stack block of a stack + * @param block a block in a stack + * @returns {*} a block that is the top of the stack of blocks + */ + getTopOfStackFor(block) { + let base = block; + while (base.getOutputShape() && base.getSurroundParent()) { + base = base.getSurroundParent(); + } + return base; + } +} + +class NavigationHistory { + /** + * Keep a record of the scroll and zoom position + */ + storeView(next, dist) { + forward = []; + let workspace = Blockly.getMainWorkspace(), + s = workspace.getMetrics(); + + let pos = { left: s.viewLeft, top: s.viewTop }; + if (!next || distance(pos, next) > dist) { + views.push(pos); + } + } + + peek() { + return views.length > 0 ? views[views.length - 1] : null; + } + + goBack() { + const workspace = Blockly.getMainWorkspace(), + s = workspace.getMetrics(); + + let pos = { left: s.viewLeft, top: s.viewTop }; + let view = this.peek(); + if (!view) { + return; + } + if (distance(pos, view) < 64) { + // Go back to current if we are already far away from it + if (views.length > 1) { + views.pop(); + forward.push(view); + } + } + + view = this.peek(); + if (!view) { + return; + } + + let sx = view.left - s.contentLeft, + sy = view.top - s.contentTop; + + // transform.setTranslate(-600,0); + + workspace.scrollbar.set(sx, sy); + + /* + let blocklySvg = document.getElementsByClassName('blocklySvg')[0]; + let blocklyBlockCanvas = blocklySvg.getElementsByClassName('blocklyBlockCanvas')[0]; + let transform = blocklyBlockCanvas.transform.baseVal.getItem(0); + let scale = blocklyBlockCanvas.transform.baseVal.getItem(1); + + let transformMatrix = transform.matrix; + let scaleMatrix = scale.matrix; + + console.log('Transform - getMetrics', s); + console.log('sx, sy: ', sx, sy); + console.log('left, top: ', view.left, view.top); + console.log('contentLeft, right:', s.contentLeft, s.contentTop); + console.log('transform, scale matrix: ', transformMatrix, scaleMatrix); + */ + } + + goForward() { + let view = forward.pop(); + if (!view) { + return; + } + views.push(view); + + let workspace = Blockly.getMainWorkspace(), + s = workspace.getMetrics(); + + let sx = view.left - s.contentLeft, + sy = view.top - s.contentTop; + + workspace.scrollbar.set(sx, sy); + } +} + +function distance(pos, next) { + return Math.sqrt(Math.pow(pos.left - next.left, 2) + Math.pow(pos.top - next.top, 2)); +} diff --git a/src/addons/addons/find-bar/userscript.js b/src/addons/addons/find-bar/userscript.js new file mode 100644 index 0000000000000000000000000000000000000000..174bbc2036341da646d1493658d8cf41993b5ae0 --- /dev/null +++ b/src/addons/addons/find-bar/userscript.js @@ -0,0 +1,828 @@ +import BlockItem from "./blockly/BlockItem.js"; +import BlockInstance from "./blockly/BlockInstance.js"; +import Utils from "./blockly/Utils.js"; + +export default async function ({ addon, msg, console }) { + const Blockly = await addon.tab.traps.getBlockly(); + + class FindBar { + constructor() { + this.utils = new Utils(addon); + + this.prevValue = ""; + + this.findBarOuter = null; + this.findWrapper = null; + this.findInput = null; + this.dropdownOut = null; + this.dropdown = new Dropdown(this.utils); + + document.addEventListener("keydown", (e) => this.eventKeyDown(e), true); + } + + get workspace() { + return Blockly.getMainWorkspace(); + } + + createDom(root) { + this.findBarOuter = document.createElement("div"); + this.findBarOuter.className = "sa-find-bar"; + addon.tab.displayNoneWhileDisabled(this.findBarOuter, { display: "flex" }); + root.appendChild(this.findBarOuter); + + this.findWrapper = this.findBarOuter.appendChild(document.createElement("span")); + this.findWrapper.className = "sa-find-wrapper"; + + this.dropdownOut = this.findWrapper.appendChild(document.createElement("label")); + this.dropdownOut.className = "sa-find-dropdown-out"; + + this.findInput = this.dropdownOut.appendChild(document.createElement("input")); + this.findInput.className = addon.tab.scratchClass("input_input-form", { + others: "sa-find-input", + }); + // for