From 77754d124e0d6845105f2270743cd1cbe816fb56 Mon Sep 17 00:00:00 2001 From: Hatem Hosny Date: Sun, 10 Jan 2021 03:57:45 +0200 Subject: [PATCH] Initial public commit --- .do/deploy.template.yaml | 9 + .editorconfig | 17 + .eslintignore | 10 + .eslintrc.js | 197 + .github/workflows/CI.yml | 31 + .gitignore | 6 + .prettierignore | 3 + LICENSE | 21 + README.md | 488 + images/localpen-export-import.svg | 1 + images/logo/README.md | 1 + images/logo/favicon_package_v0.16.zip | Bin 0 -> 90190 bytes images/logo/localpen-logo-icon.svg | 1 + images/logo/localpen-logo.svg | 1 + images/logo/src/localpen-logo-icon.svg | 1 + images/logo/src/localpen-logo.svg | 1 + package-lock.json | 19399 ++ package.json | 124 + scripts/build.js | 48 + scripts/get-vendors.js | 91 + scripts/patch-typescriptServices.js | 20 + src/favicon.ico | Bin 0 -> 15086 bytes src/index.html | 61 + src/index.ts | 8 + src/localpen/app.html | 221 + src/localpen/app.ts | 1174 + src/localpen/assets/browserconfig.xml | 9 + .../assets/images/android-chrome-192x192.png | Bin 0 -> 6454 bytes .../assets/images/android-chrome-512x512.png | Bin 0 -> 35365 bytes .../assets/images/apple-touch-icon.png | Bin 0 -> 10574 bytes src/localpen/assets/images/down_arrow.svg | 1 + src/localpen/assets/images/favicon-16x16.png | Bin 0 -> 666 bytes src/localpen/assets/images/favicon-32x32.png | Bin 0 -> 1056 bytes src/localpen/assets/images/favicon.ico | Bin 0 -> 15086 bytes src/localpen/assets/images/gear.png | Bin 0 -> 2945 bytes src/localpen/assets/images/loading-gear.svg | 6 + src/localpen/assets/images/localpen-logo.svg | 1 + src/localpen/assets/images/mstile-144x144.png | Bin 0 -> 4729 bytes src/localpen/assets/images/mstile-150x150.png | Bin 0 -> 4527 bytes src/localpen/assets/images/mstile-310x150.png | Bin 0 -> 4864 bytes src/localpen/assets/images/mstile-310x310.png | Bin 0 -> 19203 bytes src/localpen/assets/images/mstile-70x70.png | Bin 0 -> 3236 bytes src/localpen/assets/images/play.svg | 1 + .../assets/images/safari-pinned-tab.svg | 17 + src/localpen/assets/images/spinner.svg | 6 + src/localpen/assets/localpen.css | 880 + src/localpen/assets/site.webmanifest | 19 + src/localpen/compilers.ts | 185 + src/localpen/config.ts | 178 + src/localpen/editor.ts | 54 + src/localpen/embed.ts | 52 + src/localpen/events.ts | 33 + src/localpen/export/export-codepen.ts | 39 + src/localpen/export/export-html.ts | 9 + src/localpen/export/export-jsfiddle.ts | 38 + src/localpen/export/export-json.ts | 10 + src/localpen/export/export-src.ts | 35 + src/localpen/export/export.ts | 22 + src/localpen/export/index.ts | 1 + src/localpen/export/utils.ts | 10 + src/localpen/formatter.ts | 143 + src/localpen/import/__tests__/github.spec.ts | 11 + src/localpen/import/__tests__/url.spec.ts | 32 + src/localpen/import/github-dir.ts | 69 + src/localpen/import/github-gist.ts | 86 + src/localpen/import/github.ts | 78 + src/localpen/import/gitlab-dir.ts | 69 + src/localpen/import/gitlab-snippet.ts | 52 + src/localpen/import/gitlab.ts | 75 + src/localpen/import/import.ts | 37 + src/localpen/import/index.ts | 2 + src/localpen/import/url.ts | 121 + src/localpen/import/utils.ts | 74 + src/localpen/index.ts | 68 + src/localpen/languages.ts | 193 + src/localpen/localpen.json | 6 + src/localpen/modal.ts | 45 + src/localpen/models.ts | 122 + src/localpen/monaco.ts | 2 + src/localpen/notifications.ts | 38 + src/localpen/storage.ts | 93 + .../templates/external-resources.html | 19 + src/localpen/templates/import-ui.html | 46 + src/localpen/templates/index.ts | 10 + src/localpen/templates/result-template.html | 15 + src/localpen/templates/save-prompt.html | 14 + src/localpen/utils.ts | 19 + .../vendor/asciidoctor/asciidoctor.min.js | 1463 + .../vendor/autoprefixer/autoprefixer.js | 1 + .../vendor/coffeescript/coffeescript.js | 8 + .../github-markdown-css/github-markdown.css | 985 + src/localpen/vendor/jszip/jszip.js | 17 + src/localpen/vendor/less/less.js | 65 + src/localpen/vendor/marked/marked.esm.min.js | 40 + .../vendor/monaco-editor/codicon.5SR44O26.ttf | Bin 0 -> 61024 bytes .../vendor/monaco-editor/css.worker.js | 166 + .../vendor/monaco-editor/editor.worker.js | 77 + .../vendor/monaco-editor/html.worker.js | 146 + .../vendor/monaco-editor/json.worker.js | 132 + src/localpen/vendor/monaco-editor/monaco.css | 1 + src/localpen/vendor/monaco-editor/monaco.js | 1227 + .../vendor/monaco-editor/ts.worker.js | 89 + src/localpen/vendor/prettier/parser-babel.mjs | 1 + src/localpen/vendor/prettier/parser-html.mjs | 113 + .../vendor/prettier/parser-markdown.mjs | 19 + .../vendor/prettier/parser-postcss.mjs | 1 + src/localpen/vendor/prettier/standalone.mjs | 55 + src/localpen/vendor/pug/pug.min.js | 104 + src/localpen/vendor/sass.js/sass.js | 5 + src/localpen/vendor/sass.js/sass.worker.js | 838 + src/localpen/vendor/stylus/stylus.min.js | 6 + .../vendor/typescript/typescript.min.js | 254 + tsconfig.eslint.json | 5 + tsconfig.json | 46 + vendor_modules/imports/less.js | 3 + vendor_modules/imports/monaco.ts | 2 + vendor_modules/imports/sass.js | 14 + vendor_modules/imports/typescript.js | 1 + .../src/autoprefixer/autoprefixer.js | 1 + .../src/coffeescript/coffeescript.js | 8 + vendor_modules/src/coffeescript/readme.md | 1 + vendor_modules/src/jszip/jszip.js | 17 + vendor_modules/src/jszip/readme.md | 1 + vendor_modules/src/pug/pug.min.js | 104 + vendor_modules/src/stylus/stylus.min.js | 6 + .../src/typescript/typescriptServices.js | 146883 +++++++++++++++ 126 files changed, 177984 insertions(+) create mode 100644 .do/deploy.template.yaml create mode 100644 .editorconfig create mode 100644 .eslintignore create mode 100644 .eslintrc.js create mode 100644 .github/workflows/CI.yml create mode 100644 .gitignore create mode 100644 .prettierignore create mode 100644 LICENSE create mode 100644 README.md create mode 100644 images/localpen-export-import.svg create mode 100644 images/logo/README.md create mode 100644 images/logo/favicon_package_v0.16.zip create mode 100644 images/logo/localpen-logo-icon.svg create mode 100644 images/logo/localpen-logo.svg create mode 100644 images/logo/src/localpen-logo-icon.svg create mode 100644 images/logo/src/localpen-logo.svg create mode 100644 package-lock.json create mode 100644 package.json create mode 100644 scripts/build.js create mode 100644 scripts/get-vendors.js create mode 100644 scripts/patch-typescriptServices.js create mode 100644 src/favicon.ico create mode 100644 src/index.html create mode 100644 src/index.ts create mode 100644 src/localpen/app.html create mode 100644 src/localpen/app.ts create mode 100644 src/localpen/assets/browserconfig.xml create mode 100644 src/localpen/assets/images/android-chrome-192x192.png create mode 100644 src/localpen/assets/images/android-chrome-512x512.png create mode 100644 src/localpen/assets/images/apple-touch-icon.png create mode 100644 src/localpen/assets/images/down_arrow.svg create mode 100644 src/localpen/assets/images/favicon-16x16.png create mode 100644 src/localpen/assets/images/favicon-32x32.png create mode 100644 src/localpen/assets/images/favicon.ico create mode 100644 src/localpen/assets/images/gear.png create mode 100644 src/localpen/assets/images/loading-gear.svg create mode 100644 src/localpen/assets/images/localpen-logo.svg create mode 100644 src/localpen/assets/images/mstile-144x144.png create mode 100644 src/localpen/assets/images/mstile-150x150.png create mode 100644 src/localpen/assets/images/mstile-310x150.png create mode 100644 src/localpen/assets/images/mstile-310x310.png create mode 100644 src/localpen/assets/images/mstile-70x70.png create mode 100644 src/localpen/assets/images/play.svg create mode 100644 src/localpen/assets/images/safari-pinned-tab.svg create mode 100644 src/localpen/assets/images/spinner.svg create mode 100644 src/localpen/assets/localpen.css create mode 100644 src/localpen/assets/site.webmanifest create mode 100644 src/localpen/compilers.ts create mode 100644 src/localpen/config.ts create mode 100644 src/localpen/editor.ts create mode 100644 src/localpen/embed.ts create mode 100644 src/localpen/events.ts create mode 100644 src/localpen/export/export-codepen.ts create mode 100644 src/localpen/export/export-html.ts create mode 100644 src/localpen/export/export-jsfiddle.ts create mode 100644 src/localpen/export/export-json.ts create mode 100644 src/localpen/export/export-src.ts create mode 100644 src/localpen/export/export.ts create mode 100644 src/localpen/export/index.ts create mode 100644 src/localpen/export/utils.ts create mode 100644 src/localpen/formatter.ts create mode 100644 src/localpen/import/__tests__/github.spec.ts create mode 100644 src/localpen/import/__tests__/url.spec.ts create mode 100644 src/localpen/import/github-dir.ts create mode 100644 src/localpen/import/github-gist.ts create mode 100644 src/localpen/import/github.ts create mode 100644 src/localpen/import/gitlab-dir.ts create mode 100644 src/localpen/import/gitlab-snippet.ts create mode 100644 src/localpen/import/gitlab.ts create mode 100644 src/localpen/import/import.ts create mode 100644 src/localpen/import/index.ts create mode 100644 src/localpen/import/url.ts create mode 100644 src/localpen/import/utils.ts create mode 100644 src/localpen/index.ts create mode 100644 src/localpen/languages.ts create mode 100644 src/localpen/localpen.json create mode 100644 src/localpen/modal.ts create mode 100644 src/localpen/models.ts create mode 100644 src/localpen/monaco.ts create mode 100644 src/localpen/notifications.ts create mode 100644 src/localpen/storage.ts create mode 100644 src/localpen/templates/external-resources.html create mode 100644 src/localpen/templates/import-ui.html create mode 100644 src/localpen/templates/index.ts create mode 100644 src/localpen/templates/result-template.html create mode 100644 src/localpen/templates/save-prompt.html create mode 100644 src/localpen/utils.ts create mode 100644 src/localpen/vendor/asciidoctor/asciidoctor.min.js create mode 100644 src/localpen/vendor/autoprefixer/autoprefixer.js create mode 100644 src/localpen/vendor/coffeescript/coffeescript.js create mode 100644 src/localpen/vendor/github-markdown-css/github-markdown.css create mode 100644 src/localpen/vendor/jszip/jszip.js create mode 100644 src/localpen/vendor/less/less.js create mode 100644 src/localpen/vendor/marked/marked.esm.min.js create mode 100644 src/localpen/vendor/monaco-editor/codicon.5SR44O26.ttf create mode 100644 src/localpen/vendor/monaco-editor/css.worker.js create mode 100644 src/localpen/vendor/monaco-editor/editor.worker.js create mode 100644 src/localpen/vendor/monaco-editor/html.worker.js create mode 100644 src/localpen/vendor/monaco-editor/json.worker.js create mode 100644 src/localpen/vendor/monaco-editor/monaco.css create mode 100644 src/localpen/vendor/monaco-editor/monaco.js create mode 100644 src/localpen/vendor/monaco-editor/ts.worker.js create mode 100644 src/localpen/vendor/prettier/parser-babel.mjs create mode 100644 src/localpen/vendor/prettier/parser-html.mjs create mode 100644 src/localpen/vendor/prettier/parser-markdown.mjs create mode 100644 src/localpen/vendor/prettier/parser-postcss.mjs create mode 100644 src/localpen/vendor/prettier/standalone.mjs create mode 100644 src/localpen/vendor/pug/pug.min.js create mode 100644 src/localpen/vendor/sass.js/sass.js create mode 100644 src/localpen/vendor/sass.js/sass.worker.js create mode 100644 src/localpen/vendor/stylus/stylus.min.js create mode 100644 src/localpen/vendor/typescript/typescript.min.js create mode 100644 tsconfig.eslint.json create mode 100644 tsconfig.json create mode 100644 vendor_modules/imports/less.js create mode 100644 vendor_modules/imports/monaco.ts create mode 100644 vendor_modules/imports/sass.js create mode 100644 vendor_modules/imports/typescript.js create mode 100644 vendor_modules/src/autoprefixer/autoprefixer.js create mode 100644 vendor_modules/src/coffeescript/coffeescript.js create mode 100644 vendor_modules/src/coffeescript/readme.md create mode 100644 vendor_modules/src/jszip/jszip.js create mode 100644 vendor_modules/src/jszip/readme.md create mode 100644 vendor_modules/src/pug/pug.min.js create mode 100644 vendor_modules/src/stylus/stylus.min.js create mode 100644 vendor_modules/src/typescript/typescriptServices.js diff --git a/.do/deploy.template.yaml b/.do/deploy.template.yaml new file mode 100644 index 000000000..dfc712128 --- /dev/null +++ b/.do/deploy.template.yaml @@ -0,0 +1,9 @@ +spec: + name: localpen + static_sites: + - github: + repo: hatemhosny/localpen + branch: master + deploy_on_push: true + name: localpen + build_command: npm run build diff --git a/.editorconfig b/.editorconfig new file mode 100644 index 000000000..b642fbbb1 --- /dev/null +++ b/.editorconfig @@ -0,0 +1,17 @@ +# http://editorconfig.org +root = true + +[*] +charset = utf-8 +indent_size = 2 +indent_style = space +insert_final_newline = true +max_line_length = 80 +trim_trailing_whitespace = true + +[*.ts] +quote_type = single + +[*.md] +max_line_length = 0 +trim_trailing_whitespace = false diff --git a/.eslintignore b/.eslintignore new file mode 100644 index 000000000..f2521bb5f --- /dev/null +++ b/.eslintignore @@ -0,0 +1,10 @@ +node_modules +dist +build +coverage +.eslintrc.js +vendor +vendor_modules +**/*.json +src/modules +scripts diff --git a/.eslintrc.js b/.eslintrc.js new file mode 100644 index 000000000..8f24aa18d --- /dev/null +++ b/.eslintrc.js @@ -0,0 +1,197 @@ +module.exports = { + env: { + browser: true, + node: true, + }, + parser: '@typescript-eslint/parser', + parserOptions: { + project: ['./tsconfig.eslint.json'], + }, + plugins: ['@typescript-eslint', 'jest', 'jsdoc'], + extends: [ + 'plugin:jest/recommended', + 'plugin:import/errors', + 'plugin:import/warnings', + 'plugin:import/typescript', + 'prettier', + 'prettier/@typescript-eslint', + ], + rules: { + '@typescript-eslint/adjacent-overload-signatures': 'error', + '@typescript-eslint/array-type': [ + 'error', + { + default: 'array-simple', + }, + ], + '@typescript-eslint/ban-types': [ + 'error', + { + types: { + Object: { + message: 'Avoid using the `Object` type. Did you mean `object`?', + }, + Function: { + message: + 'Avoid using the `Function` type. Prefer a specific function type, like `() => void`.', + }, + Boolean: { + message: 'Avoid using the `Boolean` type. Did you mean `boolean`?', + }, + Number: { + message: 'Avoid using the `Number` type. Did you mean `number`?', + }, + String: { + message: 'Avoid using the `String` type. Did you mean `string`?', + }, + Symbol: { + message: 'Avoid using the `Symbol` type. Did you mean `symbol`?', + }, + }, + }, + ], + '@typescript-eslint/consistent-type-assertions': 'error', + '@typescript-eslint/consistent-type-definitions': 'error', + '@typescript-eslint/dot-notation': 'error', + '@typescript-eslint/explicit-member-accessibility': [ + 'error', + { + accessibility: 'explicit', + }, + ], + '@typescript-eslint/indent': 'off', + '@typescript-eslint/member-delimiter-style': [ + 'off', + { + multiline: { + delimiter: 'none', + requireLast: true, + }, + singleline: { + delimiter: 'semi', + requireLast: false, + }, + }, + ], + '@typescript-eslint/member-ordering': 'error', + '@typescript-eslint/no-empty-function': 'error', + '@typescript-eslint/no-empty-interface': 'error', + '@typescript-eslint/no-explicit-any': 'off', + '@typescript-eslint/no-misused-new': 'error', + '@typescript-eslint/no-namespace': 'error', + '@typescript-eslint/no-parameter-properties': 'off', + '@typescript-eslint/no-this-alias': 'error', + '@typescript-eslint/no-unused-expressions': 'error', + '@typescript-eslint/no-use-before-define': 'off', + '@typescript-eslint/no-var-requires': 'error', + '@typescript-eslint/prefer-for-of': 'error', + '@typescript-eslint/prefer-function-type': 'error', + '@typescript-eslint/prefer-namespace-keyword': 'error', + '@typescript-eslint/quotes': 'off', + '@typescript-eslint/semi': ['off', null], + '@typescript-eslint/triple-slash-reference': [ + 'error', + { + path: 'always', + types: 'prefer-import', + lib: 'always', + }, + ], + '@typescript-eslint/type-annotation-spacing': 'off', + '@typescript-eslint/unified-signatures': 'error', + 'arrow-body-style': 'error', + 'arrow-parens': ['off', 'always'], + 'brace-style': ['off', 'off'], + camelcase: 'error', + 'comma-dangle': 'off', + complexity: 'off', + 'constructor-super': 'error', + curly: ['error', 'multi-line'], + 'eol-last': 'off', + eqeqeq: ['error', 'smart'], + 'guard-for-in': 'error', + 'id-blacklist': [ + 'error', + 'any', + 'Number', + 'number', + 'String', + 'string', + 'Boolean', + 'boolean', + 'Undefined', + 'undefined', + ], + 'id-match': 'error', + 'import/no-extraneous-dependencies': [ + 'error', + { + devDependencies: false, + }, + ], + 'import/no-internal-modules': 'error', + 'import/order': 'error', + 'import/named': 'off', + 'jsdoc/check-alignment': 'error', + 'jsdoc/check-indentation': 'error', + 'jsdoc/newline-after-description': 'error', + 'linebreak-style': 'off', + 'max-classes-per-file': ['error', 1], + 'max-len': 'off', + 'new-parens': 'off', + 'newline-per-chained-call': 'off', + 'no-bitwise': 'error', + 'no-caller': 'error', + 'no-cond-assign': 'error', + 'no-console': 'error', + 'no-debugger': 'error', + 'no-duplicate-case': 'error', + 'no-duplicate-imports': 'error', + 'no-empty': 'error', + 'no-eval': 'error', + 'no-extra-bind': 'error', + 'no-extra-semi': 'off', + 'no-fallthrough': 'off', + 'no-invalid-this': 'off', + 'no-irregular-whitespace': 'off', + 'no-multiple-empty-lines': 'off', + 'no-new-func': 'error', + 'no-new-wrappers': 'error', + 'no-redeclare': 'error', + 'no-return-await': 'error', + 'no-sequences': 'error', + 'no-shadow': [ + 'off', + { + hoist: 'all', + }, + ], + 'no-sparse-arrays': 'error', + 'no-template-curly-in-string': 'error', + 'no-throw-literal': 'error', + 'no-trailing-spaces': 'off', + 'no-undef-init': 'error', + 'no-underscore-dangle': 'error', + 'no-unsafe-finally': 'error', + 'no-unused-labels': 'error', + 'no-var': 'error', + 'object-shorthand': 'error', + 'one-var': ['error', 'never'], + 'prefer-arrow/prefer-arrow-functions': 'off', + 'prefer-const': 'error', + 'prefer-object-spread': 'error', + 'quote-props': 'off', + radix: 'error', + 'space-before-function-paren': 'off', + 'space-in-parens': ['off', 'never'], + 'spaced-comment': [ + 'error', + 'always', + { + markers: ['/'], + }, + ], + 'use-isnan': 'error', + 'valid-typeof': 'off', + }, +}; diff --git a/.github/workflows/CI.yml b/.github/workflows/CI.yml new file mode 100644 index 000000000..0f0d0ec8e --- /dev/null +++ b/.github/workflows/CI.yml @@ -0,0 +1,31 @@ +name: CI + +on: [push, pull_request] + +jobs: + build: + runs-on: ubuntu-latest + + strategy: + matrix: + node-version: [10.x, 12.x] + + steps: + - name: Checkout code + uses: actions/checkout@v2 + + - name: Use Node.js ${{ matrix.node-version }} + uses: actions/setup-node@v1 + with: + node-version: ${{ matrix.node-version }} + + - name: Install dependencies + run: npm ci + + - name: Build + run: npm run build + + - name: Test + run: npm test + env: + CI: true diff --git a/.gitignore b/.gitignore new file mode 100644 index 000000000..f5afb519d --- /dev/null +++ b/.gitignore @@ -0,0 +1,6 @@ +node_modules +build +dist +.vscode +.cache +**/*.log diff --git a/.prettierignore b/.prettierignore new file mode 100644 index 000000000..9a0e77645 --- /dev/null +++ b/.prettierignore @@ -0,0 +1,3 @@ +# package.json is formatted by package managers, so we ignore it here +package.json +src/modules diff --git a/LICENSE b/LICENSE new file mode 100644 index 000000000..662f51eff --- /dev/null +++ b/LICENSE @@ -0,0 +1,21 @@ +MIT License + +Copyright (c) 2020 Hatem Hosny + +Permission is hereby granted, free of charge, to any person obtaining a copy +of this software and associated documentation files (the "Software"), to deal +in the Software without restriction, including without limitation the rights +to use, copy, modify, merge, publish, distribute, sublicense, and/or sell +copies of the Software, and to permit persons to whom the Software is +furnished to do so, subject to the following conditions: + +The above copyright notice and this permission notice shall be included in all +copies or substantial portions of the Software. + +THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR +IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, +FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE +AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER +LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, +OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE +SOFTWARE. diff --git a/README.md b/README.md new file mode 100644 index 000000000..11f1b7c7d --- /dev/null +++ b/README.md @@ -0,0 +1,488 @@ +# LocalPen + +Code pens that run locally! + +

+ +

+ +A powerful frontend coding playground that runs totally on the client and can be hosted on any static file server. + +[Try it now on localpen.io](https://localpen.io) + +TL;DR: [Getting started](#getting-started) + +[![Deploy to DO](https://www.deploytodo.com/do-btn-blue.svg)](https://cloud.digitalocean.com/apps/new?repo=https://github.com/hatemhosny/localpen/tree/master&refcode=fb8c00b45b91) + +## Feature Summary: + +- [Monaco editor](https://microsoft.github.io/monaco-editor/) (the beautiful code editor that powers [VS Code](https://github.com/Microsoft/vscode)) +- [Prettier](https://prettier.io/) code formatting +- Supports many languages (HTML, Markdown, Pug, AsciiDoc, CSS, SCSS, SASS, Less, Stylus, JavaScript, TypeScript, JSX, CoffeeScript and more to come) +- [Emmet](https://emmet.io/) tab completion +- [Autoprefixer](https://github.com/postcss/autoprefixer) +- All code compiling/transpiling occurs on the fly on the client, so works on any static server. +- Immediately result with no server rounds +- Conditional loading of modules (only the features used are downloaded) +- Add external stylesheets and/or scripts +- Import npm modules and use directly without a build step (using the great [skypack.dev](https://www.skypack.dev/)) +- Import strongly-typed local typescript modules with full code completion and intellisense. +- Can be embedded in regular web pages +- Code embeds allow editing with the immediate preview +- Resizable split panes (using [split.js](https://github.com/nathancahill/split/)) +- Multiple modes: full mode (with split panes), editor only mode, read-only code block mode and result preview mode +- Import code from github and gitlab (gists and repos) or from your web pages +- Immediatley recognize and import codepens exported to github gists +- Export/import projects as JSON +- Export source code as [zip file](https://stuk.github.io/jszip/) or ready-to-run compiled HTML page +- Export to CodePen and JsFiddle (more to come) +- Save/open from local storage with optional autosave +- Keyboard shortcuts +- LocalPen is under active development with more features to come (see [Roadmap](#roadmap)) + +## Table of Contents + +- [What makes LocalPen different?](#what-makes-localpen-different) +- [Getting started](#getting-started) +- [Screenshots](#screenshots) +- [Examples](#examples) +- [Settings](#settings) +- [Default Editors](#default-editors) +- [External Stylesheets/Scripts](#external-stylesheetsscripts) +- [Importing ECMAScript Modules](#importing-ecmascript-modules) + - [Importing NPM Modules](#importing-npm-modules) + - [Importing Local Modules with TypeScript Types](#importing-local-modules-with-typescript-types) +- [Saving to Device Local Storage](#saving-to-device-local-storage) +- [Importing Code (Editor Prefill)](#importing-code-editor-prefill) + - [Importing from URL](#importing-from-url) + - [Importing from CodePen](#importing-from-codepen) + - ["Edit in LocalPen" Bookmarklet](#edit-in-localpen-bookmarklet) + - [Prefill From Code Blocks](#prefill-from-code-blocks) + - [Prefill Editors by Querystring Parameters](#prefill-editors-by-querystring-parameters) +- [Exporting Content](#exporting-content) + - [Edit in other Services](#edit-in-other-services) +- [Code Formatting](#code-formatting) +- [Keyboard Shortcuts](#keyboard-shortcuts) +- [Display Modes](#display-modes) +- [Embeds](#embeds) +- [API](#api) +- [Roadmap](#roadmap) +- [Limitations](#limitations) +- [Contribution](#contribution) +- [Credits](#credits) +- [License](#license) +- [Support the author](#support-the-author) + +## What makes LocalPen different? + +The are many great products like [CodePen](https://codepen.io/), [JSFiddle](https://jsfiddle.net/), [JS Bin](https://jsbin.com/?html,output), [JSitor](https://jsitor.com/) and many others, which LocalPen does not aim to replace or compete with. On the contrary, it aims to integrate with many of these services as their APIs allow (e.g. import and export). + +However, LocalPen aims to stay as a clien-side only app that can be hosted on any static file server. After the initial loading, using the app can be significantly faster than having to wait for server rounds. Developers should be able to use it offline, while any syncing or sharing capabilities would use external services. Having said that, it is an open-source software, and it should not be difficult to implement a backend for such features if you want to extend it as a different project (may be have a look at [parse starter](https://github.com/hatemhosny/parse-starter)). + +The other main goal for LocalPen (in fact, that was the motive for its development), is to provide a feature-rich, easy to use playground that library developers can use for the documentation of their libraries and as a showcase for their products. This includes using the hosted app ([localpen.io](https://localpen.io)), or as a self-hosted option (by including it in their website, or on a separate subdomain for example). Again, being a client-side only app, makes LocalPen more convenient for not needing special server requirements. + +Having editable [embeds](#embeds) using a freely-available open-source software becomes very handy. That goal also drives the requirement for being able to import local (unpublished) libraries with strong-typing, editor auto-completion and intellisense support. + +LocalPen uses Monaco editor (VS Code editor), Prettier, Emmet and Autoprefixer among others. Your can import NPM modules without a build step. It feels like a very light weight version of your own local development environment with all the intellisense and the auto-completion features, without having to `npm install` anything; + +**Important note:** Please note that LocalPen is in early development and may not yet be ready for production use. API may change, and security and performance improvements may still be required. However please take the time to test it. Your feedback and contribution are highly appreciated. + +Enough talk, let's get started. + +## Getting started + +You have multiple options: + +- You may just use the hosted app ([localpen.io](https://localpen.io)) and use various methods to add your code like [embedded editors](#embeds), [code blocks](#prefill-from-code-blocks), ["Edit in LocalPen"](#edit-in-localpen-bookmarklet) and [code prefill](#importing-code-editor-prefill). +- One-click [deploy to Digital Ocean](https://cloud.digitalocean.com/apps/new?repo=https://github.com/hatemhosny/localpen/tree/master&refcode=fb8c00b45b91) +- Download the app from the releases, extract the folder and add it to your website. +- Fork the repo, clone it and use the included setup to publish to github pages: + + ```sh + npm install + npm run build + npm run serve # locally serve to http://127.0.0.2:8080 + npm start # start local development with code watch, rebuild and live-reload + npm run gh-pages # publish to github pages + ``` + +- An npm package is also planned. + +## Screenshots + + + + + + + + + + + + + +## Examples + +Please note that most of the examples presented in this section are code samples that were publicly available as code pens and were used for demonstration with no or little modifications. + +- [Simple jQuery Calculator](https://localpen.io/#https://gist.github.com/hatemhosny/07a742ca9df234cdd433e20cc4e675af) (jQuery) +- [Bootstrap tab panel](https://localpen.io/#https://gist.github.com/hatemhosny/ce9a304057e2dbd66e2a5fa96b72df6a) (Bootstrap) +- [Bootstrap Custom Button SCSS Mixin](https://localpen.io/#https://gist.github.com/hatemhosny/b4a61515f956c1fa7131f392872923a9) (Bootstrap, SCSS) +- [Yet another JavaScript Calculator](https://localpen.io/#https://gist.github.com/aviwarner/3f87dec85a3d84bd3b9bfe634b1e3fa4) (CSS, JS) +- [React Counter](https://localpen.io/#https://gist.github.com/hatemhosny/a0a32216df59e53879b7cd83856cdde4) (React, JSX) +- [Vue.js Counter](https://localpen.io/#https://gist.github.com/hatemhosny/b9ce0ee80da94073cb26cfe46212ea26) (Vue.js) +- [Angular 11 Counter](https://localpen.io/#https://gist.github.com/hatemhosny/a639567e23592b96c2b4de1b53c77263) (Angular 11, Typescript) +- [Preact without JSX](https://localpen.io/#https://gist.github.com/hatemhosny/8d2c23bb86923d351a76a1a2e5c03517) (Preact) +- [Vue.js TodoMVC](https://localpen.io/#https://gist.github.com/hatemhosny/b4b966bdf517e27e712379b24bf625b9) (Vue.js) +- [CSS-only Animated Lantern](https://localpen.io/#https://gist.github.com/hatemhosny/594a6f0982fb012af0da4a94f80fec34) +- [Bootstrap 3 & AngularJS Dialog/Modals](https://localpen.io/#https://gist.github.com/hatemhosny/bd661723e19146ea41bc2bf62d4580b9) (Bootstrap 3, AngularJS) +- [Shooting Star](https://localpen.io/#https://gist.github.com/hatemhosny/dea1f069177c73f515e20476009a5324) (Pug, SCSS, Three.js) +- [Charts info graphic](https://localpen.io/#https://gist.github.com/hatemhosny/6ffa26033947f2b335d4582d7e62e4c9) (D3, SCSS) +- [AngularJs + d3Js + bar chart](https://localpen.io/#https://gist.github.com/hatemhosny/0f3e65c9329f2bce08a7045e551218f1) (AngularJS, D3) +- [Rings Navigation](https://localpen.io/#https://gist.github.com/hatemhosny/3ca25b4cf2cea8772ff7680bb59a1c80) (SCSS, JS) +- [ThreeJS Hover Zoom Channel Displacement](https://localpen.io/#https://gist.github.com/hatemhosny/28e3d1438962da995b7d8909d4cfcce9) +- [D3 Gantt Chart](https://localpen.io/#https://gist.github.com/hatemhosny/e3e79de8a33168ba637d6986c49fc112) (CSS, D3) [from [CodePen](https://codepen.io/jey/pen/jmClJ)] +- [Racing Lines](https://localpen.io/#https://gist.github.com/hatemhosny/9f150679343bc4bb213b7dfcc015e988) (Three.js, TweenMax) [from [CodePen](https://codepen.io/raurir/pen/oXmEPM)] + +In fact, most pens on [CodePen](https://codepen.io/) can be imported with no or minor modifications (See [Importing from CodePen](#importing-from-codepen)) + +## Settings + +Most of the settings can be configured from the UI through the settings menu (accessed from the top right gear icon). Many settings can also be configured by URL querystring parameters. + +LocalPen uses a configuration file (by default at the url: `/localpen.json`). This can be changed by the querystring parameter `config`, for example: + +``` +?config=/playground/custom-config.json" +``` + +Full documentation for configuration will be available when the API gets stable. Meanwhile, the structure and valid values can be found [here](https://localpen.io/api-docs/interfaces/_models_.pen.html). Notice that this is currently subject to change. + +## Default Editors + +By default, the loaded editors use HTML, CSS and Javascript. If you import code, the editors will use the language of the imported files. However, you may wish to load empty editors with other languages without importing code. You can do that with querystring parameters having the extension (or lowercase name) of the languages you want. + +For example, to load editors with HTML, SCSS and TypeScript (with Typescript as the active editor), go to: + +https://localpen.io/?ts&scss&html + +To load markdown as the active editor, go to: + +https://localpen.io/?md + +## External Stylesheets/Scripts + +External CSS stylesheets and JavaScript files can be added to the page from the UI using the settings menu > External CSS/JS. + +These are loaded before the editor codes. You can override CSS properties in them. Global javascript variables defined there should be available to your code. + +Importing and Exporting your code to other services (e.g. Codepen and Github gists) takes into consiedration the external resources. + +## Importing ECMAScript Modules + +### Importing NPM Modules + +In LocalPen you can use node-style non-relative imports for node modules like you do in your local development. Yet, there is no build step. + +e.g. consider the following code: ([try it here]()) + +```js +import { v4 } from 'uuid'; + +document.body.innerHTML = v4(); +``` + +If you run it in regular web page, you get this error: + +``` +Uncaught TypeError: Failed to resolve module specifier "uuid". Relative references must start with either "/", "./", or "../". +``` + +However, in LocalPen, all non-relative imports are converted on-the-fly to use the great service of [skypack.dev](https://www.skypack.dev/). + +So + +```js +import { v4 } from 'uuid'; +``` + +gets converted to + +```js +import { v4 } from 'https://cdn.skypack.dev/uuid'; +``` + +You can import React like that: ([Demo](https://localpen.io/?jsx=script.jsx&html=index.html&css=style.css#https://gist.github.com/hatemhosny/a0a32216df59e53879b7cd83856cdde4)) + +```js +import React, { useState } from 'react'; +import ReactDOM from 'react-dom'; +``` + +It just works without a build step and without you having to worry about. And when you export your code to another service (e.g CodePen or JSFiddle), the full url imports are used, so your code continue to work elsewhere. + +It is recommended to use this method for dependencies over using external scripts. The dependencies are explicitly stated in the code. And if you move to a local development environment, your bundler will take care of importing them and doing other optimizations like tree-shaking. + +### Importing Local Modules with TypeScript Types + +In the [configuration file](#settings), a `modules` property allows to map module names to URLs to retrieve from. + +Example config JSON: + +```json +{ + "title": "My Project", + "modules": [ + { + "name": "my-demo-lib", + "url": "/modules/my-demo-lib/index.js", + "typesUrl": "/modules/my-demo-lib/types.d.ts" + } + ] +} +``` + +This allows code like this is the Typescript editor + +```typescript +Import { Greeter } from 'my-demo-lib'; +const greeter = new Greeter(); +greeter.morning(); +``` + +[Working demo](https://localpen.io/?config=https://raw.githubusercontent.com/hatemhosny/localpen-examples/master/build/greeter.json) - [Source Repo](https://github.com/hatemhosny/localpen-examples/) + +If your library implements this code, the code will actually work, and you get full intellisense and typing support in the editor. This can be of large benefit for library authors in documentation to serve as playground for their code with editor support and can unleash the full potential of such a strong editor like Monaco editor. + +Each item in the modules array may contain the following properties: + +- `name`: The module name +- `url`: The URL to the entry point javascript file +- `typesUrl`: The URL to the types declaration file. It has to be a single file. The module name declared in the file has to match the module name you want to use. The library [dts-bundle](https://www.npmjs.com/package/dts-bundle) was found very helpful to prepare such file. ([example](https://github.com/hatemhosny/localpen-examples/blob/master/package.json#L8)) + +## Saving to Device Local Storage + +Projects can be locally saved to device using local storage. You can save a project by clicking `Save` on the settings menu, or simply with the keyboard shortcut `Ctrl/Cmd + S`. +After the initial save, autosave is enabled so that you do not lose code changes. You may disable autosave from the settings menu. It will remain disabled till the next save. + +You may also fork the project (save as a new project). Also from the settings menu > Fork, or the keyboard shortcut `Ctrl/Cmd + Shift + S`. + +Previously saved projects can be opened from the settings menu > Open. In that screen you can open/delete any project or delete all. + +Please note that the projects are locally saved on the device and are not uploaded to the server. + +## Importing Code (Editor Prefill) + +You can prefill editors with code. This can be great for documentation and sharing links with code. + +### Importing from URL + +Most commonly, code is imported from a url. You can provide the source url from the UI (settings button > Import), or by adding the url as a hash to the LocalPen url: + +(e.g. https://localpen.io/#https://gist.github.com/hatemhosny/a0a32216df59e53879b7cd83856cdde4) + +LocalPen can detect and automatically load code from multiple sources. Currently the supported sources are: + +- Github gists (imports multiple files in the gist) +- A directory in a github repo (multiple files) +- A file in a github repo (imports that single file) +- Gitlab snippets (imports multiple files in the snippet) +- A directory in a gitlab repo (multiple files) +- A file in a gitlab repo (imports that single file) +- Extract code blocks from a webpage (see [code blocks](#prefill-from-code-blocks)) +- Otherwise the url will be considered a raw file (like raw files on github) + +If the source url points to multiple files (e.g github gists and directories), LocalPen tries to guess which file to load each in which code editor (e.g index.html -> markup, my-style.css -> style, app.js -> script). All supported languages can be used. If the source url points to multiple files of the same category, guessing may not wark well. In this case, you may need to provide the files to load and the language for each as querystring params. For example: + +``` +https://localpen.io/?pug=page.pug&scss=styles.scss&ts=app.ts#https://github.com/myuser/myrepo/tree/master/mydir +``` + +LocalPen will look for the directory `mydir` in the github repo `myuser/myrepo`, and load `page.pug` in the markup editor, `styles.scss` in the styles editor, and `app.ts` in the script editor. The first file in the query string will be shown by default (`page.pug` in this case). + +### Importing from CodePen + +Currently, CodePen API does not allow directly importing code from pens. However, you can export any saved pen as a Github gist and then import it to LocalPen. This is even easier if you use the [bookmarklet](#edit-in-localpen-bookmarklet). The format that Codepen exports to gists is well understood by LocalPen. Most pens can be imported with no or minimal changes. + +### "Edit in LocalPen" Bookmarklet + +Instead of manually copy/pasting URLs to import, the bookmarklet can be very convenient. It opens LocalPen in a new window and adds the webpage URL as a hash. Create a new bookmark in your browser and add this code as its URL: + +```js +javascript: (function () { + window.open('https://localpen.io/#' + location.href, '_blank'); +})(); +``` + +Or just drag the following link, and drop it to the bookmarks bar: +Edit in LocalPen + +### Prefill From Code Blocks + +Editors can be prefilled by code blocks in web pages. The page is fetched, its HTML is parsed and code is extracted from elements with specific CSS selectors. + +**Important Note:** For this to work, CORS has to be enabled on the target host to allow fetch requests from LocalPen. This is not required if LocalPen is hosted on the same host of the target web page. + +By default, LocalPen looks for elements that match the CSS selector `.localpen [data-lang="${language}"]`. + +for example, in this code block: + +```html + +
+This is identified as <strong>HTML</strong> code
+
+
+``` + +this string is considered HTML code to prefill the editor: `This is identified as HTML code` + +Notice that angled brackets should be encoded to avoid interference with the HTML of the page. + +[This is a demo](https://hatemhosny.github.io/localpen-examples/prefill-from-code-blocks.html) for automatic extraction of code blocks to prefill editors by creating "Edit in LocalPen" links. Also embedded editors are prefilled from the code blocks. ([View source](https://github.com/hatemhosny/localpen-examples/blob/master/prefill-from-code-blocks.html)) + +### Prefill Editors by Querystring Parameters + +You can prefill the editors by writing content as querystring parameter values, e.g.: + +https://localpen.io/?css=h1{color:blue;}&html=%3Ch1%3EHello%20World%3C/h1%3E + +This link preloads the CSS and HTML editors with content and makes the CSS the default editor. This can be convenient to share links with preloaded cotent without using an external service. However, please be cautious with this method because you quickly reach the ~2000 character limit of URL length. You also need to URI-encode the content (which you can do in JavaScript using the `encodeURI` and `encodeURIComponent` methods). + +## Exporting Content + +Projects in LocalPen can be exported as: + +- JSON: this is a JSON representation of the project configuration with the project source code included. This allows re-importing or sharig your projects. +- Source: The source code is exported as separate files in a single zip file. This is your untouched source code. +- Result: The combined compiled/transpiled code is exported as a ready-to-run HTML file. You may run it by simply opening the file in the browser, or using a simple local http server, for example: + ```sh + npx http-server + ``` + +### Edit in other Services + +Currently LocalPen can export content to [CodePen](https://codepen.io/) and [JSFiddle](https://jsfiddle.net/). This is accessible from the settings menu > Export. + +It is planned to support more services. + +This allows you to move code between different services. +This is a summary overview of moving code between LocalPen, CodePen and GitHub gists: + + + +Remember, you can always export your code from LocalPen as raw source code files, compiled/transpiled code as an HTML file or as project configuration JSON. + +## Code Formatting + +The popular code formatter, [Prettier](https://prettier.io/), is included out-of-the-box in LocalPen. Code formatting and preview update are triggered by the keyboard shortcut `Ctrl + Enter` (on Windows) or `Cmd + Enter` (on Mac). + +## Keyboard Shortcuts + +- `Ctrl/Cmd + Enter`: Code format + update preview +- `Ctrl/Cmd + N`: New project +- `Ctrl/Cmd + S`: Save +- `Ctrl/Cmd + Shift + S`: Fork (Save as new project) +- `Ctrl/Cmd + P`: Monaco editor command palette + +These are in addition to the Monaco editor [keyboard shortcuts](https://code.visualstudio.com/shortcuts/keyboard-shortcuts-windows.pdf) (PDF) that you probably use in VS Code. + +## Display Modes + +The querystring parameter `mode` can be used to select different display modes. +The following display modes are supported: + +- `full`: This is the default mode with a top toolbar, editor and results panes. + + example: https://localpen.io/ + +- `editor`: Hides the results pane and works as editor only. + + example: https://localpen.io/?mode=editor + +- `codeblock`: A read-only mode just showing only the code block. On mouse-over a copy button appears that allows to copy the code. This is useful when embedded + + example: [Demo](https://hatemhosny.github.io/localpen-examples/embed.html#codeblock) [View source](https://github.com/hatemhosny/localpen-examples/blob/master/embed.html#L56) + + + +## Embeds + +The code editor can be embedded in web pages using iframes. They can still be fully functional and editable unless, for example mode is set to codeblock. Notice they can also prefilled with code, the same way [described before](#importing-code-editor-prefill). + +Examples: [Demo](https://hatemhosny.github.io/localpen-examples/embed.html) - [Full Source](https://github.com/hatemhosny/localpen-examples/blob/master/embed.html) + +```html + + + + + +``` + +[This is a demo](https://hatemhosny.github.io/localpen-examples/prefill-from-code-blocks.html) for embedded editors that are prefilled by code blocks in the HTML of the web page that contains them. ([View source](https://github.com/hatemhosny/localpen-examples/blob/master/prefill-from-code-blocks.html)) + +## API + +The documentation for API and configuration specs will be published on a separate documentation website when the API becomes stable. Meanwhile, you can have an idea about the configuration structure by exporting the project JSON. + +## Roadmap + +Many features/fixes are planned, the most important are: + +- [ ] Add JavaScript console. +- [ ] Enhancing security +- [ ] Add starter templates (standard and user-defined) +- [ ] CSS presets (e.g. normalize, reset) +- [ ] Improve embedded editors +- [ ] Click to load embeds +- [ ] NPM package +- [ ] View compiled code +- [ ] Offline support (PWA) +- [ ] Github login +- [ ] Export/import from services like google drive/dropbox +- [ ] Support different layouts +- [ ] Small footer with quick tasks +- [ ] Documentation website +- [ ] Add tests +- [ ] Try automatically detecting and loading typescript types +- [ ] Support more languages +- [ ] Improve build process and decrease file size +- [ ] Various bug fixes and performance improvements +- [ ] Improve UX while loading + +#### and may be: + +- [ ] browser extension (similar to [Web Maker](https://webmaker.app/)) +- [ ] Support creating exercises with unit test checks + +## Limitations + +- Client-side only! +- The Monaco editor is **not** supported in mobile browsers. + +## Contribution + +Please do! + +Feedback, ideas and pull requests are highly appreciated. + +## Credits + +In addition to all the previously mentioned great products, LocalPen was inspired and initially based on [monacode](https://github.com/lukejacksonn/monacode/). + +## License + +MIT + +## Support the author + +Supporting the author allows continued work on open-source software, and keeps [localpen.io](https://localpen.io) free of ads. + +[![ko-fi](https://ko-fi.com/img/githubbutton_sm.svg)](https://ko-fi.com/N4N036P4Y) diff --git a/images/localpen-export-import.svg b/images/localpen-export-import.svg new file mode 100644 index 000000000..b86eb5467 --- /dev/null +++ b/images/localpen-export-import.svg @@ -0,0 +1 @@ +CodePenGitHub GistsLocalPen \ No newline at end of file diff --git a/images/logo/README.md b/images/logo/README.md new file mode 100644 index 000000000..c92277422 --- /dev/null +++ b/images/logo/README.md @@ -0,0 +1 @@ +created in https://vecta.io diff --git a/images/logo/favicon_package_v0.16.zip b/images/logo/favicon_package_v0.16.zip new file mode 100644 index 0000000000000000000000000000000000000000..7221a9a9777e15b2526f648e3a70201ecab6e6ca GIT binary patch literal 90190 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
Phj@2arXS!CPgI|c&2yb2zCRk=Gtf*n}d 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

d4H=!Owsw(c7WBFUp|uai4_vQZKT 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 \ No newline at end of file diff --git a/images/logo/localpen-logo.svg b/images/logo/localpen-logo.svg new file mode 100644 index 000000000..0ca27dc6e --- /dev/null +++ b/images/logo/localpen-logo.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/images/logo/src/localpen-logo-icon.svg b/images/logo/src/localpen-logo-icon.svg new file mode 100644 index 000000000..5ae0eb08d --- /dev/null +++ b/images/logo/src/localpen-logo-icon.svg @@ -0,0 +1 @@ +localpen logo (icon) \ No newline at end of file diff --git a/images/logo/src/localpen-logo.svg b/images/logo/src/localpen-logo.svg new file mode 100644 index 000000000..a7fd05b02 --- /dev/null +++ b/images/logo/src/localpen-logo.svg @@ -0,0 +1 @@ +localpen logo \ No newline at end of file diff --git a/package-lock.json b/package-lock.json new file mode 100644 index 000000000..e9de563ab --- /dev/null +++ b/package-lock.json @@ -0,0 +1,19399 @@ +{ + "name": "localpen", + "version": "0.0.1", + "lockfileVersion": 1, + "requires": true, + "dependencies": { + "@asciidoctor/core": { + "version": "2.2.1", + "resolved": "https://registry.npmjs.org/@asciidoctor/core/-/core-2.2.1.tgz", + "integrity": "sha512-wdVseZjCcBvFfWSsCGyyvJkSQJ9UmXDdTDKnL+HerM12XQq4eWtk7lniSIKO459ipqImcsrueib47EtkzzRjLw==", + "requires": { + "asciidoctor-opal-runtime": "0.3.0", + "unxhr": "1.0.1" + } + }, + "@babel/code-frame": { + "version": "7.12.11", + "resolved": "https://registry.npmjs.org/@babel/code-frame/-/code-frame-7.12.11.tgz", + "integrity": "sha512-Zt1yodBx1UcyiePMSkWnU4hPqhwq7hGi2nFL1LeA3EUl+q2LQx16MISgJ0+z7dnmgvP9QtIleuETGOiOH1RcIw==", + "dev": true, + "requires": { + "@babel/highlight": "^7.10.4" + } + }, + "@babel/compat-data": { + "version": "7.12.7", + "resolved": "https://registry.npmjs.org/@babel/compat-data/-/compat-data-7.12.7.tgz", + "integrity": "sha512-YaxPMGs/XIWtYqrdEOZOCPsVWfEoriXopnsz3/i7apYPXQ3698UFhS6dVT1KN5qOsWmVgw/FOrmQgpRaZayGsw==", + "dev": true + }, + "@babel/core": { + "version": "7.12.10", + "resolved": "https://registry.npmjs.org/@babel/core/-/core-7.12.10.tgz", + "integrity": "sha512-eTAlQKq65zHfkHZV0sIVODCPGVgoo1HdBlbSLi9CqOzuZanMv2ihzY+4paiKr1mH+XmYESMAmJ/dpZ68eN6d8w==", + "dev": true, + "requires": { + "@babel/code-frame": "^7.10.4", + "@babel/generator": "^7.12.10", + "@babel/helper-module-transforms": "^7.12.1", + "@babel/helpers": "^7.12.5", + "@babel/parser": "^7.12.10", + "@babel/template": "^7.12.7", + "@babel/traverse": "^7.12.10", + "@babel/types": "^7.12.10", + "convert-source-map": "^1.7.0", + "debug": "^4.1.0", + "gensync": "^1.0.0-beta.1", + "json5": "^2.1.2", + "lodash": "^4.17.19", + "semver": "^5.4.1", + "source-map": "^0.5.0" + }, + "dependencies": { + "json5": { + "version": "2.1.3", + "resolved": "https://registry.npmjs.org/json5/-/json5-2.1.3.tgz", + "integrity": "sha512-KXPvOm8K9IJKFM0bmdn8QXh7udDh1g/giieX0NLCaMnb4hEiVFqnop2ImTXCc5e0/oHz3LTqmHGtExn5hfMkOA==", + "dev": true, + "requires": { + "minimist": "^1.2.5" + } + }, + "minimist": { + "version": "1.2.5", + "resolved": "https://registry.npmjs.org/minimist/-/minimist-1.2.5.tgz", + "integrity": "sha512-FM9nNUYrRBAELZQT3xeZQ7fmMOBg6nWNmJKTcgsJeaLstP/UODVpGsr5OhXhhXg6f+qtJ8uiZ+PUxkDWcgIXLw==", + "dev": true + }, + "source-map": { + "version": "0.5.7", + "resolved": "https://registry.npmjs.org/source-map/-/source-map-0.5.7.tgz", + "integrity": "sha1-igOdLRAh0i0eoUyA2OpGi6LvP8w=", + "dev": true + } + } + }, + "@babel/generator": { + "version": "7.12.11", + "resolved": "https://registry.npmjs.org/@babel/generator/-/generator-7.12.11.tgz", + "integrity": "sha512-Ggg6WPOJtSi8yYQvLVjG8F/TlpWDlKx0OpS4Kt+xMQPs5OaGYWy+v1A+1TvxI6sAMGZpKWWoAQ1DaeQbImlItA==", + "dev": true, + "requires": { + "@babel/types": "^7.12.11", + "jsesc": "^2.5.1", + "source-map": "^0.5.0" + }, + "dependencies": { + "source-map": { + "version": "0.5.7", + "resolved": "https://registry.npmjs.org/source-map/-/source-map-0.5.7.tgz", + "integrity": "sha1-igOdLRAh0i0eoUyA2OpGi6LvP8w=", + "dev": true + } + } + }, + "@babel/helper-annotate-as-pure": { + "version": "7.12.10", + "resolved": "https://registry.npmjs.org/@babel/helper-annotate-as-pure/-/helper-annotate-as-pure-7.12.10.tgz", + "integrity": "sha512-XplmVbC1n+KY6jL8/fgLVXXUauDIB+lD5+GsQEh6F6GBF1dq1qy4DP4yXWzDKcoqXB3X58t61e85Fitoww4JVQ==", + "dev": true, + "requires": { + "@babel/types": "^7.12.10" + } + }, + "@babel/helper-builder-binary-assignment-operator-visitor": { + "version": "7.10.4", + "resolved": "https://registry.npmjs.org/@babel/helper-builder-binary-assignment-operator-visitor/-/helper-builder-binary-assignment-operator-visitor-7.10.4.tgz", + "integrity": "sha512-L0zGlFrGWZK4PbT8AszSfLTM5sDU1+Az/En9VrdT8/LmEiJt4zXt+Jve9DCAnQcbqDhCI+29y/L93mrDzddCcg==", + "dev": true, + "requires": { + "@babel/helper-explode-assignable-expression": "^7.10.4", + "@babel/types": "^7.10.4" + } + }, + "@babel/helper-builder-react-jsx": { + "version": "7.10.4", + "resolved": "https://registry.npmjs.org/@babel/helper-builder-react-jsx/-/helper-builder-react-jsx-7.10.4.tgz", + "integrity": "sha512-5nPcIZ7+KKDxT1427oBivl9V9YTal7qk0diccnh7RrcgrT/pGFOjgGw1dgryyx1GvHEpXVfoDF6Ak3rTiWh8Rg==", + "dev": true, + "requires": { + "@babel/helper-annotate-as-pure": "^7.10.4", + "@babel/types": "^7.10.4" + } + }, + "@babel/helper-builder-react-jsx-experimental": { + "version": "7.12.11", + "resolved": "https://registry.npmjs.org/@babel/helper-builder-react-jsx-experimental/-/helper-builder-react-jsx-experimental-7.12.11.tgz", + "integrity": "sha512-4oGVOekPI8dh9JphkPXC68iIuP6qp/RPbaPmorRmEFbRAHZjSqxPjqHudn18GVDPgCuFM/KdFXc63C17Ygfa9w==", + "dev": true, + "requires": { + "@babel/helper-annotate-as-pure": "^7.12.10", + "@babel/helper-module-imports": "^7.12.5", + "@babel/types": "^7.12.11" + } + }, + "@babel/helper-compilation-targets": { + "version": "7.12.5", + "resolved": "https://registry.npmjs.org/@babel/helper-compilation-targets/-/helper-compilation-targets-7.12.5.tgz", + "integrity": "sha512-+qH6NrscMolUlzOYngSBMIOQpKUGPPsc61Bu5W10mg84LxZ7cmvnBHzARKbDoFxVvqqAbj6Tg6N7bSrWSPXMyw==", + "dev": true, + "requires": { + "@babel/compat-data": "^7.12.5", + "@babel/helper-validator-option": "^7.12.1", + "browserslist": "^4.14.5", + "semver": "^5.5.0" + } + }, + "@babel/helper-create-class-features-plugin": { + "version": "7.12.1", + "resolved": "https://registry.npmjs.org/@babel/helper-create-class-features-plugin/-/helper-create-class-features-plugin-7.12.1.tgz", + "integrity": "sha512-hkL++rWeta/OVOBTRJc9a5Azh5mt5WgZUGAKMD8JM141YsE08K//bp1unBBieO6rUKkIPyUE0USQ30jAy3Sk1w==", + "dev": true, + "requires": { + "@babel/helper-function-name": "^7.10.4", + "@babel/helper-member-expression-to-functions": "^7.12.1", + "@babel/helper-optimise-call-expression": "^7.10.4", + "@babel/helper-replace-supers": "^7.12.1", + "@babel/helper-split-export-declaration": "^7.10.4" + } + }, + "@babel/helper-create-regexp-features-plugin": { + "version": "7.12.7", + "resolved": "https://registry.npmjs.org/@babel/helper-create-regexp-features-plugin/-/helper-create-regexp-features-plugin-7.12.7.tgz", + "integrity": "sha512-idnutvQPdpbduutvi3JVfEgcVIHooQnhvhx0Nk9isOINOIGYkZea1Pk2JlJRiUnMefrlvr0vkByATBY/mB4vjQ==", + "dev": true, + "requires": { + "@babel/helper-annotate-as-pure": "^7.10.4", + "regexpu-core": "^4.7.1" + } + }, + "@babel/helper-define-map": { + "version": "7.10.5", + "resolved": "https://registry.npmjs.org/@babel/helper-define-map/-/helper-define-map-7.10.5.tgz", + "integrity": "sha512-fMw4kgFB720aQFXSVaXr79pjjcW5puTCM16+rECJ/plGS+zByelE8l9nCpV1GibxTnFVmUuYG9U8wYfQHdzOEQ==", + "dev": true, + "requires": { + "@babel/helper-function-name": "^7.10.4", + "@babel/types": "^7.10.5", + "lodash": "^4.17.19" + } + }, + "@babel/helper-explode-assignable-expression": { + "version": "7.12.1", + "resolved": "https://registry.npmjs.org/@babel/helper-explode-assignable-expression/-/helper-explode-assignable-expression-7.12.1.tgz", + "integrity": "sha512-dmUwH8XmlrUpVqgtZ737tK88v07l840z9j3OEhCLwKTkjlvKpfqXVIZ0wpK3aeOxspwGrf/5AP5qLx4rO3w5rA==", + "dev": true, + "requires": { + "@babel/types": "^7.12.1" + } + }, + "@babel/helper-function-name": { + "version": "7.12.11", + "resolved": "https://registry.npmjs.org/@babel/helper-function-name/-/helper-function-name-7.12.11.tgz", + "integrity": "sha512-AtQKjtYNolKNi6nNNVLQ27CP6D9oFR6bq/HPYSizlzbp7uC1M59XJe8L+0uXjbIaZaUJF99ruHqVGiKXU/7ybA==", + "dev": true, + "requires": { + "@babel/helper-get-function-arity": "^7.12.10", + "@babel/template": "^7.12.7", + "@babel/types": "^7.12.11" + } + }, + "@babel/helper-get-function-arity": { + "version": "7.12.10", + "resolved": "https://registry.npmjs.org/@babel/helper-get-function-arity/-/helper-get-function-arity-7.12.10.tgz", + "integrity": "sha512-mm0n5BPjR06wh9mPQaDdXWDoll/j5UpCAPl1x8fS71GHm7HA6Ua2V4ylG1Ju8lvcTOietbPNNPaSilKj+pj+Ag==", + "dev": true, + "requires": { + "@babel/types": "^7.12.10" + } + }, + "@babel/helper-hoist-variables": { + "version": "7.10.4", + "resolved": "https://registry.npmjs.org/@babel/helper-hoist-variables/-/helper-hoist-variables-7.10.4.tgz", + "integrity": "sha512-wljroF5PgCk2juF69kanHVs6vrLwIPNp6DLD+Lrl3hoQ3PpPPikaDRNFA+0t81NOoMt2DL6WW/mdU8k4k6ZzuA==", + "dev": true, + "requires": { + "@babel/types": "^7.10.4" + } + }, + "@babel/helper-member-expression-to-functions": { + "version": "7.12.7", + "resolved": "https://registry.npmjs.org/@babel/helper-member-expression-to-functions/-/helper-member-expression-to-functions-7.12.7.tgz", + "integrity": "sha512-DCsuPyeWxeHgh1Dus7APn7iza42i/qXqiFPWyBDdOFtvS581JQePsc1F/nD+fHrcswhLlRc2UpYS1NwERxZhHw==", + "dev": true, + "requires": { + "@babel/types": "^7.12.7" + } + }, + "@babel/helper-module-imports": { + "version": "7.12.5", + "resolved": "https://registry.npmjs.org/@babel/helper-module-imports/-/helper-module-imports-7.12.5.tgz", + "integrity": "sha512-SR713Ogqg6++uexFRORf/+nPXMmWIn80TALu0uaFb+iQIUoR7bOC7zBWyzBs5b3tBBJXuyD0cRu1F15GyzjOWA==", + "dev": true, + "requires": { + "@babel/types": "^7.12.5" + } + }, + "@babel/helper-module-transforms": { + "version": "7.12.1", + "resolved": "https://registry.npmjs.org/@babel/helper-module-transforms/-/helper-module-transforms-7.12.1.tgz", + "integrity": "sha512-QQzehgFAZ2bbISiCpmVGfiGux8YVFXQ0abBic2Envhej22DVXV9nCFaS5hIQbkyo1AdGb+gNME2TSh3hYJVV/w==", + "dev": true, + "requires": { + "@babel/helper-module-imports": "^7.12.1", + "@babel/helper-replace-supers": "^7.12.1", + "@babel/helper-simple-access": "^7.12.1", + "@babel/helper-split-export-declaration": "^7.11.0", + "@babel/helper-validator-identifier": "^7.10.4", + "@babel/template": "^7.10.4", + "@babel/traverse": "^7.12.1", + "@babel/types": "^7.12.1", + "lodash": "^4.17.19" + } + }, + "@babel/helper-optimise-call-expression": { + "version": "7.12.10", + "resolved": "https://registry.npmjs.org/@babel/helper-optimise-call-expression/-/helper-optimise-call-expression-7.12.10.tgz", + "integrity": "sha512-4tpbU0SrSTjjt65UMWSrUOPZTsgvPgGG4S8QSTNHacKzpS51IVWGDj0yCwyeZND/i+LSN2g/O63jEXEWm49sYQ==", + "dev": true, + "requires": { + "@babel/types": "^7.12.10" + } + }, + "@babel/helper-plugin-utils": { + "version": "7.10.4", + "resolved": "https://registry.npmjs.org/@babel/helper-plugin-utils/-/helper-plugin-utils-7.10.4.tgz", + "integrity": "sha512-O4KCvQA6lLiMU9l2eawBPMf1xPP8xPfB3iEQw150hOVTqj/rfXz0ThTb4HEzqQfs2Bmo5Ay8BzxfzVtBrr9dVg==", + "dev": true + }, + "@babel/helper-remap-async-to-generator": { + "version": "7.12.1", + "resolved": "https://registry.npmjs.org/@babel/helper-remap-async-to-generator/-/helper-remap-async-to-generator-7.12.1.tgz", + "integrity": "sha512-9d0KQCRM8clMPcDwo8SevNs+/9a8yWVVmaE80FGJcEP8N1qToREmWEGnBn8BUlJhYRFz6fqxeRL1sl5Ogsed7A==", + "dev": true, + "requires": { + "@babel/helper-annotate-as-pure": "^7.10.4", + "@babel/helper-wrap-function": "^7.10.4", + "@babel/types": "^7.12.1" + } + }, + "@babel/helper-replace-supers": { + "version": "7.12.11", + "resolved": "https://registry.npmjs.org/@babel/helper-replace-supers/-/helper-replace-supers-7.12.11.tgz", + "integrity": "sha512-q+w1cqmhL7R0FNzth/PLLp2N+scXEK/L2AHbXUyydxp828F4FEa5WcVoqui9vFRiHDQErj9Zof8azP32uGVTRA==", + "dev": true, + "requires": { + "@babel/helper-member-expression-to-functions": "^7.12.7", + "@babel/helper-optimise-call-expression": "^7.12.10", + "@babel/traverse": "^7.12.10", + "@babel/types": "^7.12.11" + } + }, + "@babel/helper-simple-access": { + "version": "7.12.1", + "resolved": "https://registry.npmjs.org/@babel/helper-simple-access/-/helper-simple-access-7.12.1.tgz", + "integrity": "sha512-OxBp7pMrjVewSSC8fXDFrHrBcJATOOFssZwv16F3/6Xtc138GHybBfPbm9kfiqQHKhYQrlamWILwlDCeyMFEaA==", + "dev": true, + "requires": { + "@babel/types": "^7.12.1" + } + }, + "@babel/helper-skip-transparent-expression-wrappers": { + "version": "7.12.1", + "resolved": "https://registry.npmjs.org/@babel/helper-skip-transparent-expression-wrappers/-/helper-skip-transparent-expression-wrappers-7.12.1.tgz", + "integrity": "sha512-Mf5AUuhG1/OCChOJ/HcADmvcHM42WJockombn8ATJG3OnyiSxBK/Mm5x78BQWvmtXZKHgbjdGL2kin/HOLlZGA==", + "dev": true, + "requires": { + "@babel/types": "^7.12.1" + } + }, + "@babel/helper-split-export-declaration": { + "version": "7.12.11", + "resolved": "https://registry.npmjs.org/@babel/helper-split-export-declaration/-/helper-split-export-declaration-7.12.11.tgz", + "integrity": "sha512-LsIVN8j48gHgwzfocYUSkO/hjYAOJqlpJEc7tGXcIm4cubjVUf8LGW6eWRyxEu7gA25q02p0rQUWoCI33HNS5g==", + "dev": true, + "requires": { + "@babel/types": "^7.12.11" + } + }, + "@babel/helper-validator-identifier": { + "version": "7.12.11", + "resolved": "https://registry.npmjs.org/@babel/helper-validator-identifier/-/helper-validator-identifier-7.12.11.tgz", + "integrity": "sha512-np/lG3uARFybkoHokJUmf1QfEvRVCPbmQeUQpKow5cQ3xWrV9i3rUHodKDJPQfTVX61qKi+UdYk8kik84n7XOw==", + "dev": true + }, + "@babel/helper-validator-option": { + "version": "7.12.11", + "resolved": "https://registry.npmjs.org/@babel/helper-validator-option/-/helper-validator-option-7.12.11.tgz", + "integrity": "sha512-TBFCyj939mFSdeX7U7DDj32WtzYY7fDcalgq8v3fBZMNOJQNn7nOYzMaUCiPxPYfCup69mtIpqlKgMZLvQ8Xhw==", + "dev": true + }, + "@babel/helper-wrap-function": { + "version": "7.12.3", + "resolved": "https://registry.npmjs.org/@babel/helper-wrap-function/-/helper-wrap-function-7.12.3.tgz", + "integrity": "sha512-Cvb8IuJDln3rs6tzjW3Y8UeelAOdnpB8xtQ4sme2MSZ9wOxrbThporC0y/EtE16VAtoyEfLM404Xr1e0OOp+ow==", + "dev": true, + "requires": { + "@babel/helper-function-name": "^7.10.4", + "@babel/template": "^7.10.4", + "@babel/traverse": "^7.10.4", + "@babel/types": "^7.10.4" + } + }, + "@babel/helpers": { + "version": "7.12.5", + "resolved": "https://registry.npmjs.org/@babel/helpers/-/helpers-7.12.5.tgz", + "integrity": "sha512-lgKGMQlKqA8meJqKsW6rUnc4MdUk35Ln0ATDqdM1a/UpARODdI4j5Y5lVfUScnSNkJcdCRAaWkspykNoFg9sJA==", + "dev": true, + "requires": { + "@babel/template": "^7.10.4", + "@babel/traverse": "^7.12.5", + "@babel/types": "^7.12.5" + } + }, + "@babel/highlight": { + "version": "7.10.4", + "resolved": "https://registry.npmjs.org/@babel/highlight/-/highlight-7.10.4.tgz", + "integrity": "sha512-i6rgnR/YgPEQzZZnbTHHuZdlE8qyoBNalD6F+q4vAFlcMEcqmkoG+mPqJYJCo63qPf74+Y1UZsl3l6f7/RIkmA==", + "dev": true, + "requires": { + "@babel/helper-validator-identifier": "^7.10.4", + "chalk": "^2.0.0", + "js-tokens": "^4.0.0" + } + }, + "@babel/parser": { + "version": "7.12.11", + "resolved": "https://registry.npmjs.org/@babel/parser/-/parser-7.12.11.tgz", + "integrity": "sha512-N3UxG+uuF4CMYoNj8AhnbAcJF0PiuJ9KHuy1lQmkYsxTer/MAH9UBNHsBoAX/4s6NvlDD047No8mYVGGzLL4hg==", + "dev": true + }, + "@babel/plugin-proposal-async-generator-functions": { + "version": "7.12.1", + "resolved": "https://registry.npmjs.org/@babel/plugin-proposal-async-generator-functions/-/plugin-proposal-async-generator-functions-7.12.1.tgz", + "integrity": "sha512-d+/o30tJxFxrA1lhzJqiUcEJdI6jKlNregCv5bASeGf2Q4MXmnwH7viDo7nhx1/ohf09oaH8j1GVYG/e3Yqk6A==", + "dev": true, + "requires": { + "@babel/helper-plugin-utils": "^7.10.4", + "@babel/helper-remap-async-to-generator": "^7.12.1", + "@babel/plugin-syntax-async-generators": "^7.8.0" + } + }, + "@babel/plugin-proposal-class-properties": { + "version": "7.12.1", + "resolved": "https://registry.npmjs.org/@babel/plugin-proposal-class-properties/-/plugin-proposal-class-properties-7.12.1.tgz", + "integrity": "sha512-cKp3dlQsFsEs5CWKnN7BnSHOd0EOW8EKpEjkoz1pO2E5KzIDNV9Ros1b0CnmbVgAGXJubOYVBOGCT1OmJwOI7w==", + "dev": true, + "requires": { + "@babel/helper-create-class-features-plugin": "^7.12.1", + "@babel/helper-plugin-utils": "^7.10.4" + } + }, + "@babel/plugin-proposal-dynamic-import": { + "version": "7.12.1", + "resolved": "https://registry.npmjs.org/@babel/plugin-proposal-dynamic-import/-/plugin-proposal-dynamic-import-7.12.1.tgz", + "integrity": "sha512-a4rhUSZFuq5W8/OO8H7BL5zspjnc1FLd9hlOxIK/f7qG4a0qsqk8uvF/ywgBA8/OmjsapjpvaEOYItfGG1qIvQ==", + "dev": true, + "requires": { + "@babel/helper-plugin-utils": "^7.10.4", + "@babel/plugin-syntax-dynamic-import": "^7.8.0" + } + }, + "@babel/plugin-proposal-export-namespace-from": { + "version": "7.12.1", + "resolved": "https://registry.npmjs.org/@babel/plugin-proposal-export-namespace-from/-/plugin-proposal-export-namespace-from-7.12.1.tgz", + "integrity": "sha512-6CThGf0irEkzujYS5LQcjBx8j/4aQGiVv7J9+2f7pGfxqyKh3WnmVJYW3hdrQjyksErMGBPQrCnHfOtna+WLbw==", + "dev": true, + "requires": { + "@babel/helper-plugin-utils": "^7.10.4", + "@babel/plugin-syntax-export-namespace-from": "^7.8.3" + } + }, + "@babel/plugin-proposal-json-strings": { + "version": "7.12.1", + "resolved": "https://registry.npmjs.org/@babel/plugin-proposal-json-strings/-/plugin-proposal-json-strings-7.12.1.tgz", + "integrity": "sha512-GoLDUi6U9ZLzlSda2Df++VSqDJg3CG+dR0+iWsv6XRw1rEq+zwt4DirM9yrxW6XWaTpmai1cWJLMfM8qQJf+yw==", + "dev": true, + "requires": { + "@babel/helper-plugin-utils": "^7.10.4", + "@babel/plugin-syntax-json-strings": "^7.8.0" + } + }, + "@babel/plugin-proposal-logical-assignment-operators": { + "version": "7.12.1", + "resolved": "https://registry.npmjs.org/@babel/plugin-proposal-logical-assignment-operators/-/plugin-proposal-logical-assignment-operators-7.12.1.tgz", + "integrity": "sha512-k8ZmVv0JU+4gcUGeCDZOGd0lCIamU/sMtIiX3UWnUc5yzgq6YUGyEolNYD+MLYKfSzgECPcqetVcJP9Afe/aCA==", + "dev": true, + "requires": { + "@babel/helper-plugin-utils": "^7.10.4", + "@babel/plugin-syntax-logical-assignment-operators": "^7.10.4" + } + }, + "@babel/plugin-proposal-nullish-coalescing-operator": { + "version": "7.12.1", + "resolved": "https://registry.npmjs.org/@babel/plugin-proposal-nullish-coalescing-operator/-/plugin-proposal-nullish-coalescing-operator-7.12.1.tgz", + "integrity": "sha512-nZY0ESiaQDI1y96+jk6VxMOaL4LPo/QDHBqL+SF3/vl6dHkTwHlOI8L4ZwuRBHgakRBw5zsVylel7QPbbGuYgg==", + "dev": true, + "requires": { + "@babel/helper-plugin-utils": "^7.10.4", + "@babel/plugin-syntax-nullish-coalescing-operator": "^7.8.0" + } + }, + "@babel/plugin-proposal-numeric-separator": { + "version": "7.12.7", + "resolved": "https://registry.npmjs.org/@babel/plugin-proposal-numeric-separator/-/plugin-proposal-numeric-separator-7.12.7.tgz", + "integrity": "sha512-8c+uy0qmnRTeukiGsjLGy6uVs/TFjJchGXUeBqlG4VWYOdJWkhhVPdQ3uHwbmalfJwv2JsV0qffXP4asRfL2SQ==", + "dev": true, + "requires": { + "@babel/helper-plugin-utils": "^7.10.4", + "@babel/plugin-syntax-numeric-separator": "^7.10.4" + } + }, + "@babel/plugin-proposal-object-rest-spread": { + "version": "7.12.1", + "resolved": "https://registry.npmjs.org/@babel/plugin-proposal-object-rest-spread/-/plugin-proposal-object-rest-spread-7.12.1.tgz", + "integrity": "sha512-s6SowJIjzlhx8o7lsFx5zmY4At6CTtDvgNQDdPzkBQucle58A6b/TTeEBYtyDgmcXjUTM+vE8YOGHZzzbc/ioA==", + "dev": true, + "requires": { + "@babel/helper-plugin-utils": "^7.10.4", + "@babel/plugin-syntax-object-rest-spread": "^7.8.0", + "@babel/plugin-transform-parameters": "^7.12.1" + } + }, + "@babel/plugin-proposal-optional-catch-binding": { + "version": "7.12.1", + "resolved": "https://registry.npmjs.org/@babel/plugin-proposal-optional-catch-binding/-/plugin-proposal-optional-catch-binding-7.12.1.tgz", + "integrity": "sha512-hFvIjgprh9mMw5v42sJWLI1lzU5L2sznP805zeT6rySVRA0Y18StRhDqhSxlap0oVgItRsB6WSROp4YnJTJz0g==", + "dev": true, + "requires": { + "@babel/helper-plugin-utils": "^7.10.4", + "@babel/plugin-syntax-optional-catch-binding": "^7.8.0" + } + }, + "@babel/plugin-proposal-optional-chaining": { + "version": "7.12.7", + "resolved": "https://registry.npmjs.org/@babel/plugin-proposal-optional-chaining/-/plugin-proposal-optional-chaining-7.12.7.tgz", + "integrity": "sha512-4ovylXZ0PWmwoOvhU2vhnzVNnm88/Sm9nx7V8BPgMvAzn5zDou3/Awy0EjglyubVHasJj+XCEkr/r1X3P5elCA==", + "dev": true, + "requires": { + "@babel/helper-plugin-utils": "^7.10.4", + "@babel/helper-skip-transparent-expression-wrappers": "^7.12.1", + "@babel/plugin-syntax-optional-chaining": "^7.8.0" + } + }, + "@babel/plugin-proposal-private-methods": { + "version": "7.12.1", + "resolved": "https://registry.npmjs.org/@babel/plugin-proposal-private-methods/-/plugin-proposal-private-methods-7.12.1.tgz", + "integrity": "sha512-mwZ1phvH7/NHK6Kf8LP7MYDogGV+DKB1mryFOEwx5EBNQrosvIczzZFTUmWaeujd5xT6G1ELYWUz3CutMhjE1w==", + "dev": true, + "requires": { + "@babel/helper-create-class-features-plugin": "^7.12.1", + "@babel/helper-plugin-utils": "^7.10.4" + } + }, + "@babel/plugin-proposal-unicode-property-regex": { + "version": "7.12.1", + "resolved": "https://registry.npmjs.org/@babel/plugin-proposal-unicode-property-regex/-/plugin-proposal-unicode-property-regex-7.12.1.tgz", + "integrity": "sha512-MYq+l+PvHuw/rKUz1at/vb6nCnQ2gmJBNaM62z0OgH7B2W1D9pvkpYtlti9bGtizNIU1K3zm4bZF9F91efVY0w==", + "dev": true, + "requires": { + "@babel/helper-create-regexp-features-plugin": "^7.12.1", + "@babel/helper-plugin-utils": "^7.10.4" + } + }, + "@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-bigint": { + "version": "7.8.3", + "resolved": "https://registry.npmjs.org/@babel/plugin-syntax-bigint/-/plugin-syntax-bigint-7.8.3.tgz", + "integrity": "sha512-wnTnFlG+YxQm3vDxpGE57Pj0srRU4sHE/mDkt1qv2YJJSeUAec2ma4WLUnUPeKjyrfntVwe/N6dCXpU+zL3Npg==", + "dev": true, + "requires": { + "@babel/helper-plugin-utils": "^7.8.0" + } + }, + "@babel/plugin-syntax-class-properties": { + "version": "7.12.1", + "resolved": "https://registry.npmjs.org/@babel/plugin-syntax-class-properties/-/plugin-syntax-class-properties-7.12.1.tgz", + "integrity": "sha512-U40A76x5gTwmESz+qiqssqmeEsKvcSyvtgktrm0uzcARAmM9I1jR221f6Oq+GmHrcD+LvZDag1UTOTe2fL3TeA==", + "dev": true, + "requires": { + "@babel/helper-plugin-utils": "^7.10.4" + } + }, + "@babel/plugin-syntax-dynamic-import": { + "version": "7.8.3", + "resolved": "https://registry.npmjs.org/@babel/plugin-syntax-dynamic-import/-/plugin-syntax-dynamic-import-7.8.3.tgz", + "integrity": "sha512-5gdGbFon+PszYzqs83S3E5mpi7/y/8M9eC90MRTZfduQOYW76ig6SOSPNe41IG5LoP3FGBn2N0RjVDSQiS94kQ==", + "dev": true, + "requires": { + "@babel/helper-plugin-utils": "^7.8.0" + } + }, + "@babel/plugin-syntax-export-namespace-from": { + "version": "7.8.3", + "resolved": "https://registry.npmjs.org/@babel/plugin-syntax-export-namespace-from/-/plugin-syntax-export-namespace-from-7.8.3.tgz", + "integrity": "sha512-MXf5laXo6c1IbEbegDmzGPwGNTsHZmEy6QGznu5Sh2UCWvueywb2ee+CCE4zQiZstxU9BMoQO9i6zUFSY0Kj0Q==", + "dev": true, + "requires": { + "@babel/helper-plugin-utils": "^7.8.3" + } + }, + "@babel/plugin-syntax-flow": { + "version": "7.12.1", + "resolved": "https://registry.npmjs.org/@babel/plugin-syntax-flow/-/plugin-syntax-flow-7.12.1.tgz", + "integrity": "sha512-1lBLLmtxrwpm4VKmtVFselI/P3pX+G63fAtUUt6b2Nzgao77KNDwyuRt90Mj2/9pKobtt68FdvjfqohZjg/FCA==", + "dev": true, + "requires": { + "@babel/helper-plugin-utils": "^7.10.4" + } + }, + "@babel/plugin-syntax-import-meta": { + "version": "7.10.4", + "resolved": "https://registry.npmjs.org/@babel/plugin-syntax-import-meta/-/plugin-syntax-import-meta-7.10.4.tgz", + "integrity": "sha512-Yqfm+XDx0+Prh3VSeEQCPU81yC+JWZ2pDPFSS4ZdpfZhp4MkFMaDC1UqseovEKwSUpnIL7+vK+Clp7bfh0iD7g==", + "dev": true, + "requires": { + "@babel/helper-plugin-utils": "^7.10.4" + } + }, + "@babel/plugin-syntax-json-strings": { + "version": "7.8.3", + "resolved": "https://registry.npmjs.org/@babel/plugin-syntax-json-strings/-/plugin-syntax-json-strings-7.8.3.tgz", + "integrity": "sha512-lY6kdGpWHvjoe2vk4WrAapEuBR69EMxZl+RoGRhrFGNYVK8mOPAW8VfbT/ZgrFbXlDNiiaxQnAtgVCZ6jv30EA==", + "dev": true, + "requires": { + "@babel/helper-plugin-utils": "^7.8.0" + } + }, + "@babel/plugin-syntax-jsx": { + "version": "7.12.1", + "resolved": "https://registry.npmjs.org/@babel/plugin-syntax-jsx/-/plugin-syntax-jsx-7.12.1.tgz", + "integrity": "sha512-1yRi7yAtB0ETgxdY9ti/p2TivUxJkTdhu/ZbF9MshVGqOx1TdB3b7xCXs49Fupgg50N45KcAsRP/ZqWjs9SRjg==", + "dev": true, + "requires": { + "@babel/helper-plugin-utils": "^7.10.4" + } + }, + "@babel/plugin-syntax-logical-assignment-operators": { + "version": "7.10.4", + "resolved": "https://registry.npmjs.org/@babel/plugin-syntax-logical-assignment-operators/-/plugin-syntax-logical-assignment-operators-7.10.4.tgz", + "integrity": "sha512-d8waShlpFDinQ5MtvGU9xDAOzKH47+FFoney2baFIoMr952hKOLp1HR7VszoZvOsV/4+RRszNY7D17ba0te0ig==", + "dev": true, + "requires": { + "@babel/helper-plugin-utils": "^7.10.4" + } + }, + "@babel/plugin-syntax-nullish-coalescing-operator": { + "version": "7.8.3", + "resolved": "https://registry.npmjs.org/@babel/plugin-syntax-nullish-coalescing-operator/-/plugin-syntax-nullish-coalescing-operator-7.8.3.tgz", + "integrity": "sha512-aSff4zPII1u2QD7y+F8oDsz19ew4IGEJg9SVW+bqwpwtfFleiQDMdzA/R+UlWDzfnHFCxxleFT0PMIrR36XLNQ==", + "dev": true, + "requires": { + "@babel/helper-plugin-utils": "^7.8.0" + } + }, + "@babel/plugin-syntax-numeric-separator": { + "version": "7.10.4", + "resolved": "https://registry.npmjs.org/@babel/plugin-syntax-numeric-separator/-/plugin-syntax-numeric-separator-7.10.4.tgz", + "integrity": "sha512-9H6YdfkcK/uOnY/K7/aA2xpzaAgkQn37yzWUMRK7OaPOqOpGS1+n0H5hxT9AUw9EsSjPW8SVyMJwYRtWs3X3ug==", + "dev": true, + "requires": { + "@babel/helper-plugin-utils": "^7.10.4" + } + }, + "@babel/plugin-syntax-object-rest-spread": { + "version": "7.8.3", + "resolved": "https://registry.npmjs.org/@babel/plugin-syntax-object-rest-spread/-/plugin-syntax-object-rest-spread-7.8.3.tgz", + "integrity": "sha512-XoqMijGZb9y3y2XskN+P1wUGiVwWZ5JmoDRwx5+3GmEplNyVM2s2Dg8ILFQm8rWM48orGy5YpI5Bl8U1y7ydlA==", + "dev": true, + "requires": { + "@babel/helper-plugin-utils": "^7.8.0" + } + }, + "@babel/plugin-syntax-optional-catch-binding": { + "version": "7.8.3", + "resolved": "https://registry.npmjs.org/@babel/plugin-syntax-optional-catch-binding/-/plugin-syntax-optional-catch-binding-7.8.3.tgz", + "integrity": "sha512-6VPD0Pc1lpTqw0aKoeRTMiB+kWhAoT24PA+ksWSBrFtl5SIRVpZlwN3NNPQjehA2E/91FV3RjLWoVTglWcSV3Q==", + "dev": true, + "requires": { + "@babel/helper-plugin-utils": "^7.8.0" + } + }, + "@babel/plugin-syntax-optional-chaining": { + "version": "7.8.3", + "resolved": "https://registry.npmjs.org/@babel/plugin-syntax-optional-chaining/-/plugin-syntax-optional-chaining-7.8.3.tgz", + "integrity": "sha512-KoK9ErH1MBlCPxV0VANkXW2/dw4vlbGDrFgz8bmUsBGYkFRcbRwMh6cIJubdPrkxRwuGdtCk0v/wPTKbQgBjkg==", + "dev": true, + "requires": { + "@babel/helper-plugin-utils": "^7.8.0" + } + }, + "@babel/plugin-syntax-top-level-await": { + "version": "7.12.1", + "resolved": "https://registry.npmjs.org/@babel/plugin-syntax-top-level-await/-/plugin-syntax-top-level-await-7.12.1.tgz", + "integrity": "sha512-i7ooMZFS+a/Om0crxZodrTzNEPJHZrlMVGMTEpFAj6rYY/bKCddB0Dk/YxfPuYXOopuhKk/e1jV6h+WUU9XN3A==", + "dev": true, + "requires": { + "@babel/helper-plugin-utils": "^7.10.4" + } + }, + "@babel/plugin-transform-arrow-functions": { + "version": "7.12.1", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-arrow-functions/-/plugin-transform-arrow-functions-7.12.1.tgz", + "integrity": "sha512-5QB50qyN44fzzz4/qxDPQMBCTHgxg3n0xRBLJUmBlLoU/sFvxVWGZF/ZUfMVDQuJUKXaBhbupxIzIfZ6Fwk/0A==", + "dev": true, + "requires": { + "@babel/helper-plugin-utils": "^7.10.4" + } + }, + "@babel/plugin-transform-async-to-generator": { + "version": "7.12.1", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-async-to-generator/-/plugin-transform-async-to-generator-7.12.1.tgz", + "integrity": "sha512-SDtqoEcarK1DFlRJ1hHRY5HvJUj5kX4qmtpMAm2QnhOlyuMC4TMdCRgW6WXpv93rZeYNeLP22y8Aq2dbcDRM1A==", + "dev": true, + "requires": { + "@babel/helper-module-imports": "^7.12.1", + "@babel/helper-plugin-utils": "^7.10.4", + "@babel/helper-remap-async-to-generator": "^7.12.1" + } + }, + "@babel/plugin-transform-block-scoped-functions": { + "version": "7.12.1", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-block-scoped-functions/-/plugin-transform-block-scoped-functions-7.12.1.tgz", + "integrity": "sha512-5OpxfuYnSgPalRpo8EWGPzIYf0lHBWORCkj5M0oLBwHdlux9Ri36QqGW3/LR13RSVOAoUUMzoPI/jpE4ABcHoA==", + "dev": true, + "requires": { + "@babel/helper-plugin-utils": "^7.10.4" + } + }, + "@babel/plugin-transform-block-scoping": { + "version": "7.12.11", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-block-scoping/-/plugin-transform-block-scoping-7.12.11.tgz", + "integrity": "sha512-atR1Rxc3hM+VPg/NvNvfYw0npQEAcHuJ+MGZnFn6h3bo+1U3BWXMdFMlvVRApBTWKQMX7SOwRJZA5FBF/JQbvA==", + "dev": true, + "requires": { + "@babel/helper-plugin-utils": "^7.10.4" + } + }, + "@babel/plugin-transform-classes": { + "version": "7.12.1", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-classes/-/plugin-transform-classes-7.12.1.tgz", + "integrity": "sha512-/74xkA7bVdzQTBeSUhLLJgYIcxw/dpEpCdRDiHgPJ3Mv6uC11UhjpOhl72CgqbBCmt1qtssCyB2xnJm1+PFjog==", + "dev": true, + "requires": { + "@babel/helper-annotate-as-pure": "^7.10.4", + "@babel/helper-define-map": "^7.10.4", + "@babel/helper-function-name": "^7.10.4", + "@babel/helper-optimise-call-expression": "^7.10.4", + "@babel/helper-plugin-utils": "^7.10.4", + "@babel/helper-replace-supers": "^7.12.1", + "@babel/helper-split-export-declaration": "^7.10.4", + "globals": "^11.1.0" + } + }, + "@babel/plugin-transform-computed-properties": { + "version": "7.12.1", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-computed-properties/-/plugin-transform-computed-properties-7.12.1.tgz", + "integrity": "sha512-vVUOYpPWB7BkgUWPo4C44mUQHpTZXakEqFjbv8rQMg7TC6S6ZhGZ3otQcRH6u7+adSlE5i0sp63eMC/XGffrzg==", + "dev": true, + "requires": { + "@babel/helper-plugin-utils": "^7.10.4" + } + }, + "@babel/plugin-transform-destructuring": { + "version": "7.12.1", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-destructuring/-/plugin-transform-destructuring-7.12.1.tgz", + "integrity": "sha512-fRMYFKuzi/rSiYb2uRLiUENJOKq4Gnl+6qOv5f8z0TZXg3llUwUhsNNwrwaT/6dUhJTzNpBr+CUvEWBtfNY1cw==", + "dev": true, + "requires": { + "@babel/helper-plugin-utils": "^7.10.4" + } + }, + "@babel/plugin-transform-dotall-regex": { + "version": "7.12.1", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-dotall-regex/-/plugin-transform-dotall-regex-7.12.1.tgz", + "integrity": "sha512-B2pXeRKoLszfEW7J4Hg9LoFaWEbr/kzo3teWHmtFCszjRNa/b40f9mfeqZsIDLLt/FjwQ6pz/Gdlwy85xNckBA==", + "dev": true, + "requires": { + "@babel/helper-create-regexp-features-plugin": "^7.12.1", + "@babel/helper-plugin-utils": "^7.10.4" + } + }, + "@babel/plugin-transform-duplicate-keys": { + "version": "7.12.1", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-duplicate-keys/-/plugin-transform-duplicate-keys-7.12.1.tgz", + "integrity": "sha512-iRght0T0HztAb/CazveUpUQrZY+aGKKaWXMJ4uf9YJtqxSUe09j3wteztCUDRHs+SRAL7yMuFqUsLoAKKzgXjw==", + "dev": true, + "requires": { + "@babel/helper-plugin-utils": "^7.10.4" + } + }, + "@babel/plugin-transform-exponentiation-operator": { + "version": "7.12.1", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-exponentiation-operator/-/plugin-transform-exponentiation-operator-7.12.1.tgz", + "integrity": "sha512-7tqwy2bv48q+c1EHbXK0Zx3KXd2RVQp6OC7PbwFNt/dPTAV3Lu5sWtWuAj8owr5wqtWnqHfl2/mJlUmqkChKug==", + "dev": true, + "requires": { + "@babel/helper-builder-binary-assignment-operator-visitor": "^7.10.4", + "@babel/helper-plugin-utils": "^7.10.4" + } + }, + "@babel/plugin-transform-flow-strip-types": { + "version": "7.12.10", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-flow-strip-types/-/plugin-transform-flow-strip-types-7.12.10.tgz", + "integrity": "sha512-0ti12wLTLeUIzu9U7kjqIn4MyOL7+Wibc7avsHhj4o1l5C0ATs8p2IMHrVYjm9t9wzhfEO6S3kxax0Rpdo8LTg==", + "dev": true, + "requires": { + "@babel/helper-plugin-utils": "^7.10.4", + "@babel/plugin-syntax-flow": "^7.12.1" + } + }, + "@babel/plugin-transform-for-of": { + "version": "7.12.1", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-for-of/-/plugin-transform-for-of-7.12.1.tgz", + "integrity": "sha512-Zaeq10naAsuHo7heQvyV0ptj4dlZJwZgNAtBYBnu5nNKJoW62m0zKcIEyVECrUKErkUkg6ajMy4ZfnVZciSBhg==", + "dev": true, + "requires": { + "@babel/helper-plugin-utils": "^7.10.4" + } + }, + "@babel/plugin-transform-function-name": { + "version": "7.12.1", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-function-name/-/plugin-transform-function-name-7.12.1.tgz", + "integrity": "sha512-JF3UgJUILoFrFMEnOJLJkRHSk6LUSXLmEFsA23aR2O5CSLUxbeUX1IZ1YQ7Sn0aXb601Ncwjx73a+FVqgcljVw==", + "dev": true, + "requires": { + "@babel/helper-function-name": "^7.10.4", + "@babel/helper-plugin-utils": "^7.10.4" + } + }, + "@babel/plugin-transform-literals": { + "version": "7.12.1", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-literals/-/plugin-transform-literals-7.12.1.tgz", + "integrity": "sha512-+PxVGA+2Ag6uGgL0A5f+9rklOnnMccwEBzwYFL3EUaKuiyVnUipyXncFcfjSkbimLrODoqki1U9XxZzTvfN7IQ==", + "dev": true, + "requires": { + "@babel/helper-plugin-utils": "^7.10.4" + } + }, + "@babel/plugin-transform-member-expression-literals": { + "version": "7.12.1", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-member-expression-literals/-/plugin-transform-member-expression-literals-7.12.1.tgz", + "integrity": "sha512-1sxePl6z9ad0gFMB9KqmYofk34flq62aqMt9NqliS/7hPEpURUCMbyHXrMPlo282iY7nAvUB1aQd5mg79UD9Jg==", + "dev": true, + "requires": { + "@babel/helper-plugin-utils": "^7.10.4" + } + }, + "@babel/plugin-transform-modules-amd": { + "version": "7.12.1", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-modules-amd/-/plugin-transform-modules-amd-7.12.1.tgz", + "integrity": "sha512-tDW8hMkzad5oDtzsB70HIQQRBiTKrhfgwC/KkJeGsaNFTdWhKNt/BiE8c5yj19XiGyrxpbkOfH87qkNg1YGlOQ==", + "dev": true, + "requires": { + "@babel/helper-module-transforms": "^7.12.1", + "@babel/helper-plugin-utils": "^7.10.4", + "babel-plugin-dynamic-import-node": "^2.3.3" + } + }, + "@babel/plugin-transform-modules-commonjs": { + "version": "7.12.1", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-modules-commonjs/-/plugin-transform-modules-commonjs-7.12.1.tgz", + "integrity": "sha512-dY789wq6l0uLY8py9c1B48V8mVL5gZh/+PQ5ZPrylPYsnAvnEMjqsUXkuoDVPeVK+0VyGar+D08107LzDQ6pag==", + "dev": true, + "requires": { + "@babel/helper-module-transforms": "^7.12.1", + "@babel/helper-plugin-utils": "^7.10.4", + "@babel/helper-simple-access": "^7.12.1", + "babel-plugin-dynamic-import-node": "^2.3.3" + } + }, + "@babel/plugin-transform-modules-systemjs": { + "version": "7.12.1", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-modules-systemjs/-/plugin-transform-modules-systemjs-7.12.1.tgz", + "integrity": "sha512-Hn7cVvOavVh8yvW6fLwveFqSnd7rbQN3zJvoPNyNaQSvgfKmDBO9U1YL9+PCXGRlZD9tNdWTy5ACKqMuzyn32Q==", + "dev": true, + "requires": { + "@babel/helper-hoist-variables": "^7.10.4", + "@babel/helper-module-transforms": "^7.12.1", + "@babel/helper-plugin-utils": "^7.10.4", + "@babel/helper-validator-identifier": "^7.10.4", + "babel-plugin-dynamic-import-node": "^2.3.3" + } + }, + "@babel/plugin-transform-modules-umd": { + "version": "7.12.1", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-modules-umd/-/plugin-transform-modules-umd-7.12.1.tgz", + "integrity": "sha512-aEIubCS0KHKM0zUos5fIoQm+AZUMt1ZvMpqz0/H5qAQ7vWylr9+PLYurT+Ic7ID/bKLd4q8hDovaG3Zch2uz5Q==", + "dev": true, + "requires": { + "@babel/helper-module-transforms": "^7.12.1", + "@babel/helper-plugin-utils": "^7.10.4" + } + }, + "@babel/plugin-transform-named-capturing-groups-regex": { + "version": "7.12.1", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-named-capturing-groups-regex/-/plugin-transform-named-capturing-groups-regex-7.12.1.tgz", + "integrity": "sha512-tB43uQ62RHcoDp9v2Nsf+dSM8sbNodbEicbQNA53zHz8pWUhsgHSJCGpt7daXxRydjb0KnfmB+ChXOv3oADp1Q==", + "dev": true, + "requires": { + "@babel/helper-create-regexp-features-plugin": "^7.12.1" + } + }, + "@babel/plugin-transform-new-target": { + "version": "7.12.1", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-new-target/-/plugin-transform-new-target-7.12.1.tgz", + "integrity": "sha512-+eW/VLcUL5L9IvJH7rT1sT0CzkdUTvPrXC2PXTn/7z7tXLBuKvezYbGdxD5WMRoyvyaujOq2fWoKl869heKjhw==", + "dev": true, + "requires": { + "@babel/helper-plugin-utils": "^7.10.4" + } + }, + "@babel/plugin-transform-object-super": { + "version": "7.12.1", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-object-super/-/plugin-transform-object-super-7.12.1.tgz", + "integrity": "sha512-AvypiGJH9hsquNUn+RXVcBdeE3KHPZexWRdimhuV59cSoOt5kFBmqlByorAeUlGG2CJWd0U+4ZtNKga/TB0cAw==", + "dev": true, + "requires": { + "@babel/helper-plugin-utils": "^7.10.4", + "@babel/helper-replace-supers": "^7.12.1" + } + }, + "@babel/plugin-transform-parameters": { + "version": "7.12.1", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-parameters/-/plugin-transform-parameters-7.12.1.tgz", + "integrity": "sha512-xq9C5EQhdPK23ZeCdMxl8bbRnAgHFrw5EOC3KJUsSylZqdkCaFEXxGSBuTSObOpiiHHNyb82es8M1QYgfQGfNg==", + "dev": true, + "requires": { + "@babel/helper-plugin-utils": "^7.10.4" + } + }, + "@babel/plugin-transform-property-literals": { + "version": "7.12.1", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-property-literals/-/plugin-transform-property-literals-7.12.1.tgz", + "integrity": "sha512-6MTCR/mZ1MQS+AwZLplX4cEySjCpnIF26ToWo942nqn8hXSm7McaHQNeGx/pt7suI1TWOWMfa/NgBhiqSnX0cQ==", + "dev": true, + "requires": { + "@babel/helper-plugin-utils": "^7.10.4" + } + }, + "@babel/plugin-transform-react-jsx": { + "version": "7.12.11", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-react-jsx/-/plugin-transform-react-jsx-7.12.11.tgz", + "integrity": "sha512-5nWOw6mTylaFU72BdZfa0dP1HsGdY3IMExpxn8LBE8dNmkQjB+W+sR+JwIdtbzkPvVuFviT3zyNbSUkuVTVxbw==", + "dev": true, + "requires": { + "@babel/helper-builder-react-jsx": "^7.10.4", + "@babel/helper-builder-react-jsx-experimental": "^7.12.11", + "@babel/helper-plugin-utils": "^7.10.4", + "@babel/plugin-syntax-jsx": "^7.12.1" + } + }, + "@babel/plugin-transform-regenerator": { + "version": "7.12.1", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-regenerator/-/plugin-transform-regenerator-7.12.1.tgz", + "integrity": "sha512-gYrHqs5itw6i4PflFX3OdBPMQdPbF4bj2REIUxlMRUFk0/ZOAIpDFuViuxPjUL7YC8UPnf+XG7/utJvqXdPKng==", + "dev": true, + "requires": { + "regenerator-transform": "^0.14.2" + } + }, + "@babel/plugin-transform-reserved-words": { + "version": "7.12.1", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-reserved-words/-/plugin-transform-reserved-words-7.12.1.tgz", + "integrity": "sha512-pOnUfhyPKvZpVyBHhSBoX8vfA09b7r00Pmm1sH+29ae2hMTKVmSp4Ztsr8KBKjLjx17H0eJqaRC3bR2iThM54A==", + "dev": true, + "requires": { + "@babel/helper-plugin-utils": "^7.10.4" + } + }, + "@babel/plugin-transform-shorthand-properties": { + "version": "7.12.1", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-shorthand-properties/-/plugin-transform-shorthand-properties-7.12.1.tgz", + "integrity": "sha512-GFZS3c/MhX1OusqB1MZ1ct2xRzX5ppQh2JU1h2Pnfk88HtFTM+TWQqJNfwkmxtPQtb/s1tk87oENfXJlx7rSDw==", + "dev": true, + "requires": { + "@babel/helper-plugin-utils": "^7.10.4" + } + }, + "@babel/plugin-transform-spread": { + "version": "7.12.1", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-spread/-/plugin-transform-spread-7.12.1.tgz", + "integrity": "sha512-vuLp8CP0BE18zVYjsEBZ5xoCecMK6LBMMxYzJnh01rxQRvhNhH1csMMmBfNo5tGpGO+NhdSNW2mzIvBu3K1fng==", + "dev": true, + "requires": { + "@babel/helper-plugin-utils": "^7.10.4", + "@babel/helper-skip-transparent-expression-wrappers": "^7.12.1" + } + }, + "@babel/plugin-transform-sticky-regex": { + "version": "7.12.7", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-sticky-regex/-/plugin-transform-sticky-regex-7.12.7.tgz", + "integrity": "sha512-VEiqZL5N/QvDbdjfYQBhruN0HYjSPjC4XkeqW4ny/jNtH9gcbgaqBIXYEZCNnESMAGs0/K/R7oFGMhOyu/eIxg==", + "dev": true, + "requires": { + "@babel/helper-plugin-utils": "^7.10.4" + } + }, + "@babel/plugin-transform-template-literals": { + "version": "7.12.1", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-template-literals/-/plugin-transform-template-literals-7.12.1.tgz", + "integrity": "sha512-b4Zx3KHi+taXB1dVRBhVJtEPi9h1THCeKmae2qP0YdUHIFhVjtpqqNfxeVAa1xeHVhAy4SbHxEwx5cltAu5apw==", + "dev": true, + "requires": { + "@babel/helper-plugin-utils": "^7.10.4" + } + }, + "@babel/plugin-transform-typeof-symbol": { + "version": "7.12.10", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-typeof-symbol/-/plugin-transform-typeof-symbol-7.12.10.tgz", + "integrity": "sha512-JQ6H8Rnsogh//ijxspCjc21YPd3VLVoYtAwv3zQmqAt8YGYUtdo5usNhdl4b9/Vir2kPFZl6n1h0PfUz4hJhaA==", + "dev": true, + "requires": { + "@babel/helper-plugin-utils": "^7.10.4" + } + }, + "@babel/plugin-transform-unicode-escapes": { + "version": "7.12.1", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-unicode-escapes/-/plugin-transform-unicode-escapes-7.12.1.tgz", + "integrity": "sha512-I8gNHJLIc7GdApm7wkVnStWssPNbSRMPtgHdmH3sRM1zopz09UWPS4x5V4n1yz/MIWTVnJ9sp6IkuXdWM4w+2Q==", + "dev": true, + "requires": { + "@babel/helper-plugin-utils": "^7.10.4" + } + }, + "@babel/plugin-transform-unicode-regex": { + "version": "7.12.1", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-unicode-regex/-/plugin-transform-unicode-regex-7.12.1.tgz", + "integrity": "sha512-SqH4ClNngh/zGwHZOOQMTD+e8FGWexILV+ePMyiDJttAWRh5dhDL8rcl5lSgU3Huiq6Zn6pWTMvdPAb21Dwdyg==", + "dev": true, + "requires": { + "@babel/helper-create-regexp-features-plugin": "^7.12.1", + "@babel/helper-plugin-utils": "^7.10.4" + } + }, + "@babel/preset-env": { + "version": "7.12.11", + "resolved": "https://registry.npmjs.org/@babel/preset-env/-/preset-env-7.12.11.tgz", + "integrity": "sha512-j8Tb+KKIXKYlDBQyIOy4BLxzv1NUOwlHfZ74rvW+Z0Gp4/cI2IMDPBWAgWceGcE7aep9oL/0K9mlzlMGxA8yNw==", + "dev": true, + "requires": { + "@babel/compat-data": "^7.12.7", + "@babel/helper-compilation-targets": "^7.12.5", + "@babel/helper-module-imports": "^7.12.5", + "@babel/helper-plugin-utils": "^7.10.4", + "@babel/helper-validator-option": "^7.12.11", + "@babel/plugin-proposal-async-generator-functions": "^7.12.1", + "@babel/plugin-proposal-class-properties": "^7.12.1", + "@babel/plugin-proposal-dynamic-import": "^7.12.1", + "@babel/plugin-proposal-export-namespace-from": "^7.12.1", + "@babel/plugin-proposal-json-strings": "^7.12.1", + "@babel/plugin-proposal-logical-assignment-operators": "^7.12.1", + "@babel/plugin-proposal-nullish-coalescing-operator": "^7.12.1", + "@babel/plugin-proposal-numeric-separator": "^7.12.7", + "@babel/plugin-proposal-object-rest-spread": "^7.12.1", + "@babel/plugin-proposal-optional-catch-binding": "^7.12.1", + "@babel/plugin-proposal-optional-chaining": "^7.12.7", + "@babel/plugin-proposal-private-methods": "^7.12.1", + "@babel/plugin-proposal-unicode-property-regex": "^7.12.1", + "@babel/plugin-syntax-async-generators": "^7.8.0", + "@babel/plugin-syntax-class-properties": "^7.12.1", + "@babel/plugin-syntax-dynamic-import": "^7.8.0", + "@babel/plugin-syntax-export-namespace-from": "^7.8.3", + "@babel/plugin-syntax-json-strings": "^7.8.0", + "@babel/plugin-syntax-logical-assignment-operators": "^7.10.4", + "@babel/plugin-syntax-nullish-coalescing-operator": "^7.8.0", + "@babel/plugin-syntax-numeric-separator": "^7.10.4", + "@babel/plugin-syntax-object-rest-spread": "^7.8.0", + "@babel/plugin-syntax-optional-catch-binding": "^7.8.0", + "@babel/plugin-syntax-optional-chaining": "^7.8.0", + "@babel/plugin-syntax-top-level-await": "^7.12.1", + "@babel/plugin-transform-arrow-functions": "^7.12.1", + "@babel/plugin-transform-async-to-generator": "^7.12.1", + "@babel/plugin-transform-block-scoped-functions": "^7.12.1", + "@babel/plugin-transform-block-scoping": "^7.12.11", + "@babel/plugin-transform-classes": "^7.12.1", + "@babel/plugin-transform-computed-properties": "^7.12.1", + "@babel/plugin-transform-destructuring": "^7.12.1", + "@babel/plugin-transform-dotall-regex": "^7.12.1", + "@babel/plugin-transform-duplicate-keys": "^7.12.1", + "@babel/plugin-transform-exponentiation-operator": "^7.12.1", + "@babel/plugin-transform-for-of": "^7.12.1", + "@babel/plugin-transform-function-name": "^7.12.1", + "@babel/plugin-transform-literals": "^7.12.1", + "@babel/plugin-transform-member-expression-literals": "^7.12.1", + "@babel/plugin-transform-modules-amd": "^7.12.1", + "@babel/plugin-transform-modules-commonjs": "^7.12.1", + "@babel/plugin-transform-modules-systemjs": "^7.12.1", + "@babel/plugin-transform-modules-umd": "^7.12.1", + "@babel/plugin-transform-named-capturing-groups-regex": "^7.12.1", + "@babel/plugin-transform-new-target": "^7.12.1", + "@babel/plugin-transform-object-super": "^7.12.1", + "@babel/plugin-transform-parameters": "^7.12.1", + "@babel/plugin-transform-property-literals": "^7.12.1", + "@babel/plugin-transform-regenerator": "^7.12.1", + "@babel/plugin-transform-reserved-words": "^7.12.1", + "@babel/plugin-transform-shorthand-properties": "^7.12.1", + "@babel/plugin-transform-spread": "^7.12.1", + "@babel/plugin-transform-sticky-regex": "^7.12.7", + "@babel/plugin-transform-template-literals": "^7.12.1", + "@babel/plugin-transform-typeof-symbol": "^7.12.10", + "@babel/plugin-transform-unicode-escapes": "^7.12.1", + "@babel/plugin-transform-unicode-regex": "^7.12.1", + "@babel/preset-modules": "^0.1.3", + "@babel/types": "^7.12.11", + "core-js-compat": "^3.8.0", + "semver": "^5.5.0" + } + }, + "@babel/preset-modules": { + "version": "0.1.4", + "resolved": "https://registry.npmjs.org/@babel/preset-modules/-/preset-modules-0.1.4.tgz", + "integrity": "sha512-J36NhwnfdzpmH41M1DrnkkgAqhZaqr/NBdPfQ677mLzlaXo+oDiv1deyCDtgAhz8p328otdob0Du7+xgHGZbKg==", + "dev": true, + "requires": { + "@babel/helper-plugin-utils": "^7.0.0", + "@babel/plugin-proposal-unicode-property-regex": "^7.4.4", + "@babel/plugin-transform-dotall-regex": "^7.4.4", + "@babel/types": "^7.4.4", + "esutils": "^2.0.2" + } + }, + "@babel/runtime": { + "version": "7.12.5", + "resolved": "https://registry.npmjs.org/@babel/runtime/-/runtime-7.12.5.tgz", + "integrity": "sha512-plcc+hbExy3McchJCEQG3knOsuh3HH+Prx1P6cLIkET/0dLuQDEnrT+s27Axgc9bqfsmNUNHfscgMUdBpC9xfg==", + "dev": true, + "requires": { + "regenerator-runtime": "^0.13.4" + } + }, + "@babel/template": { + "version": "7.12.7", + "resolved": "https://registry.npmjs.org/@babel/template/-/template-7.12.7.tgz", + "integrity": "sha512-GkDzmHS6GV7ZeXfJZ0tLRBhZcMcY0/Lnb+eEbXDBfCAcZCjrZKe6p3J4we/D24O9Y8enxWAg1cWwof59yLh2ow==", + "dev": true, + "requires": { + "@babel/code-frame": "^7.10.4", + "@babel/parser": "^7.12.7", + "@babel/types": "^7.12.7" + } + }, + "@babel/traverse": { + "version": "7.12.10", + "resolved": "https://registry.npmjs.org/@babel/traverse/-/traverse-7.12.10.tgz", + "integrity": "sha512-6aEtf0IeRgbYWzta29lePeYSk+YAFIC3kyqESeft8o5CkFlYIMX+EQDDWEiAQ9LHOA3d0oHdgrSsID/CKqXJlg==", + "dev": true, + "requires": { + "@babel/code-frame": "^7.10.4", + "@babel/generator": "^7.12.10", + "@babel/helper-function-name": "^7.10.4", + "@babel/helper-split-export-declaration": "^7.11.0", + "@babel/parser": "^7.12.10", + "@babel/types": "^7.12.10", + "debug": "^4.1.0", + "globals": "^11.1.0", + "lodash": "^4.17.19" + } + }, + "@babel/types": { + "version": "7.12.11", + "resolved": "https://registry.npmjs.org/@babel/types/-/types-7.12.11.tgz", + "integrity": "sha512-ukA9SQtKThINm++CX1CwmliMrE54J6nIYB5XTwL5f/CLFW9owfls+YSU8tVW15RQ2w+a3fSbPjC6HdQNtWZkiA==", + "dev": true, + "requires": { + "@babel/helper-validator-identifier": "^7.12.11", + "lodash": "^4.17.19", + "to-fast-properties": "^2.0.0" + } + }, + "@bcoe/v8-coverage": { + "version": "0.2.3", + "resolved": "https://registry.npmjs.org/@bcoe/v8-coverage/-/v8-coverage-0.2.3.tgz", + "integrity": "sha512-0hYQ8SB4Db5zvZB4axdMHGwEaQjkZzFjQiN9LVYvIFB2nSUHW9tYpxWriPrWDASIxiaXax83REcLxuSdnGPZtw==", + "dev": true + }, + "@bitjson/typedoc": { + "version": "0.15.0-0", + "resolved": "https://registry.npmjs.org/@bitjson/typedoc/-/typedoc-0.15.0-0.tgz", + "integrity": "sha512-7/BNMjoO3mfxV7WtjeUGTE6Zr0a2iGLF0NwY30ZUxwwY/m4x4SMkbQEh+0rgSHE82SEblWWnbYuL+0ZHqSCang==", + "dev": true, + "requires": { + "@types/minimatch": "3.0.3", + "fs-extra": "^7.0.1", + "handlebars": "^4.1.2", + "highlight.js": "^9.13.1", + "lodash": "^4.17.11", + "marked": "^0.6.2", + "minimatch": "^3.0.0", + "progress": "^2.0.3", + "shelljs": "^0.8.3", + "typedoc-default-themes": "^0.6.0-0", + "typescript": "3.5.x" + }, + "dependencies": { + "marked": { + "version": "0.6.3", + "resolved": "https://registry.npmjs.org/marked/-/marked-0.6.3.tgz", + "integrity": "sha512-Fqa7eq+UaxfMriqzYLayfqAE40WN03jf+zHjT18/uXNuzjq3TY0XTbrAoPeqSJrAmPz11VuUA+kBPYOhHt9oOQ==", + "dev": true + }, + "typescript": { + "version": "3.5.3", + "resolved": "https://registry.npmjs.org/typescript/-/typescript-3.5.3.tgz", + "integrity": "sha512-ACzBtm/PhXBDId6a6sDJfroT2pOWt/oOnk4/dElG5G33ZL776N3Y6/6bKZJBFpd+b05F3Ct9qDjMeJmRWtE2/g==", + "dev": true + } + } + }, + "@cnakazawa/watch": { + "version": "1.0.4", + "resolved": "https://registry.npmjs.org/@cnakazawa/watch/-/watch-1.0.4.tgz", + "integrity": "sha512-v9kIhKwjeZThiWrLmj0y17CWoyddASLj9O2yvbZkbvw/N3rWOYy9zkV66ursAoVr0mV15bL8g0c4QZUE6cdDoQ==", + "dev": true, + "requires": { + "exec-sh": "^0.3.2", + "minimist": "^1.2.0" + }, + "dependencies": { + "minimist": { + "version": "1.2.5", + "resolved": "https://registry.npmjs.org/minimist/-/minimist-1.2.5.tgz", + "integrity": "sha512-FM9nNUYrRBAELZQT3xeZQ7fmMOBg6nWNmJKTcgsJeaLstP/UODVpGsr5OhXhhXg6f+qtJ8uiZ+PUxkDWcgIXLw==", + "dev": true + } + } + }, + "@commitlint/execute-rule": { + "version": "11.0.0", + "resolved": "https://registry.npmjs.org/@commitlint/execute-rule/-/execute-rule-11.0.0.tgz", + "integrity": "sha512-g01p1g4BmYlZ2+tdotCavrMunnPFPhTzG1ZiLKTCYrooHRbmvqo42ZZn4QMStUEIcn+jfLb6BRZX3JzIwA1ezQ==", + "dev": true, + "optional": true + }, + "@commitlint/load": { + "version": "11.0.0", + "resolved": "https://registry.npmjs.org/@commitlint/load/-/load-11.0.0.tgz", + "integrity": "sha512-t5ZBrtgvgCwPfxmG811FCp39/o3SJ7L+SNsxFL92OR4WQxPcu6c8taD0CG2lzOHGuRyuMxZ7ps3EbngT2WpiCg==", + "dev": true, + "optional": true, + "requires": { + "@commitlint/execute-rule": "^11.0.0", + "@commitlint/resolve-extends": "^11.0.0", + "@commitlint/types": "^11.0.0", + "chalk": "4.1.0", + "cosmiconfig": "^7.0.0", + "lodash": "^4.17.19", + "resolve-from": "^5.0.0" + }, + "dependencies": { + "ansi-styles": { + "version": "4.3.0", + "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-4.3.0.tgz", + "integrity": "sha512-zbB9rCJAT1rbjiVDb2hqKFHNYLxgtk8NURxZ3IZwD3F6NtxbXZQCnnSi1Lkx+IDohdPlFp222wVALIheZJQSEg==", + "dev": true, + "optional": true, + "requires": { + "color-convert": "^2.0.1" + } + }, + "chalk": { + "version": "4.1.0", + "resolved": "https://registry.npmjs.org/chalk/-/chalk-4.1.0.tgz", + "integrity": "sha512-qwx12AxXe2Q5xQ43Ac//I6v5aXTipYrSESdOgzrN+9XjgEpyjpKuvSGaN4qE93f7TQTlerQQ8S+EQ0EyDoVL1A==", + "dev": true, + "optional": true, + "requires": { + "ansi-styles": "^4.1.0", + "supports-color": "^7.1.0" + } + }, + "color-convert": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/color-convert/-/color-convert-2.0.1.tgz", + "integrity": "sha512-RRECPsj7iu/xb5oKYcsFHSppFNnsj/52OVTRKb4zP5onXwVF3zVmmToNcOfGC+CRDpfK/U584fMg38ZHCaElKQ==", + "dev": true, + "optional": true, + "requires": { + "color-name": "~1.1.4" + } + }, + "color-name": { + "version": "1.1.4", + "resolved": "https://registry.npmjs.org/color-name/-/color-name-1.1.4.tgz", + "integrity": "sha512-dOy+3AuW3a2wNbZHIuMZpTcgjGuLU/uBL/ubcZF9OXbDo8ff4O8yVp5Bf0efS8uEoYo5q4Fx7dY9OgQGXgAsQA==", + "dev": true, + "optional": true + }, + "cosmiconfig": { + "version": "7.0.0", + "resolved": "https://registry.npmjs.org/cosmiconfig/-/cosmiconfig-7.0.0.tgz", + "integrity": "sha512-pondGvTuVYDk++upghXJabWzL6Kxu6f26ljFw64Swq9v6sQPUL3EUlVDV56diOjpCayKihL6hVe8exIACU4XcA==", + "dev": true, + "optional": true, + "requires": { + "@types/parse-json": "^4.0.0", + "import-fresh": "^3.2.1", + "parse-json": "^5.0.0", + "path-type": "^4.0.0", + "yaml": "^1.10.0" + } + }, + "has-flag": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/has-flag/-/has-flag-4.0.0.tgz", + "integrity": "sha512-EykJT/Q1KjTWctppgIAgfSO0tKVuZUjhgMr17kqTumMl6Afv3EISleU7qZUzoXDFTAHTDC4NOoG/ZxU3EvlMPQ==", + "dev": true, + "optional": true + }, + "import-fresh": { + "version": "3.3.0", + "resolved": "https://registry.npmjs.org/import-fresh/-/import-fresh-3.3.0.tgz", + "integrity": "sha512-veYYhQa+D1QBKznvhUHxb8faxlrwUnxseDAbAp457E0wLNio2bOSKnjYDhMj+YiAq61xrMGhQk9iXVk5FzgQMw==", + "dev": true, + "optional": true, + "requires": { + "parent-module": "^1.0.0", + "resolve-from": "^4.0.0" + }, + "dependencies": { + "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, + "optional": true + } + } + }, + "parse-json": { + "version": "5.1.0", + "resolved": "https://registry.npmjs.org/parse-json/-/parse-json-5.1.0.tgz", + "integrity": "sha512-+mi/lmVVNKFNVyLXV31ERiy2CY5E1/F6QtJFEzoChPRwwngMNXRDQ9GJ5WdE2Z2P4AujsOi0/+2qHID68KwfIQ==", + "dev": true, + "optional": true, + "requires": { + "@babel/code-frame": "^7.0.0", + "error-ex": "^1.3.1", + "json-parse-even-better-errors": "^2.3.0", + "lines-and-columns": "^1.1.6" + } + }, + "path-type": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/path-type/-/path-type-4.0.0.tgz", + "integrity": "sha512-gDKb8aZMDeD/tZWs9P6+q0J9Mwkdl6xMV8TjnGP3qJVJ06bdMgkbBlLU8IdfOsIsFz2BW1rNVT3XuNEl8zPAvw==", + "dev": true, + "optional": true + }, + "resolve-from": { + "version": "5.0.0", + "resolved": "https://registry.npmjs.org/resolve-from/-/resolve-from-5.0.0.tgz", + "integrity": "sha512-qYg9KP24dD5qka9J47d0aVky0N+b4fTU89LN9iDnjB5waksiC49rvMB0PrUJQGoTmH50XPiqOvAjDfaijGxYZw==", + "dev": true, + "optional": true + }, + "supports-color": { + "version": "7.2.0", + "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-7.2.0.tgz", + "integrity": "sha512-qpCAvRl9stuOHveKsn7HncJRvv501qIacKzQlO/+Lwxc9+0q2wLyv4Dfvt80/DPn2pqOBsJdDiogXGR9+OvwRw==", + "dev": true, + "optional": true, + "requires": { + "has-flag": "^4.0.0" + } + } + } + }, + "@commitlint/resolve-extends": { + "version": "11.0.0", + "resolved": "https://registry.npmjs.org/@commitlint/resolve-extends/-/resolve-extends-11.0.0.tgz", + "integrity": "sha512-WinU6Uv6L7HDGLqn/To13KM1CWvZ09VHZqryqxXa1OY+EvJkfU734CwnOEeNlSCK7FVLrB4kmodLJtL1dkEpXw==", + "dev": true, + "optional": true, + "requires": { + "import-fresh": "^3.0.0", + "lodash": "^4.17.19", + "resolve-from": "^5.0.0", + "resolve-global": "^1.0.0" + }, + "dependencies": { + "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, + "optional": true, + "requires": { + "parent-module": "^1.0.0", + "resolve-from": "^4.0.0" + }, + "dependencies": { + "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, + "optional": true + } + } + }, + "resolve-from": { + "version": "5.0.0", + "resolved": "https://registry.npmjs.org/resolve-from/-/resolve-from-5.0.0.tgz", + "integrity": "sha512-qYg9KP24dD5qka9J47d0aVky0N+b4fTU89LN9iDnjB5waksiC49rvMB0PrUJQGoTmH50XPiqOvAjDfaijGxYZw==", + "dev": true, + "optional": true + } + } + }, + "@commitlint/types": { + "version": "11.0.0", + "resolved": "https://registry.npmjs.org/@commitlint/types/-/types-11.0.0.tgz", + "integrity": "sha512-VoNqai1vR5anRF5Tuh/+SWDFk7xi7oMwHrHrbm1BprYXjB2RJsWLhUrStMssDxEl5lW/z3EUdg8RvH/IUBccSQ==", + "dev": true, + "optional": true + }, + "@emmetio/abbreviation": { + "version": "0.7.0", + "resolved": "https://registry.npmjs.org/@emmetio/abbreviation/-/abbreviation-0.7.0.tgz", + "integrity": "sha512-CjLWtUCyh2nRgG/TkBruPTNI03i+b2Bau9UP7g0zgWdeV6bBjNC8CxX106ZdMekK3I/RmTrWuzVV9b+7nwqKXA==", + "requires": { + "@emmetio/node": "^0.1.2", + "@emmetio/stream-reader": "^2.2.0", + "@emmetio/stream-reader-utils": "^0.1.0" + } + }, + "@emmetio/css-abbreviation": { + "version": "0.4.0", + "resolved": "https://registry.npmjs.org/@emmetio/css-abbreviation/-/css-abbreviation-0.4.0.tgz", + "integrity": "sha512-8b4+ZoBElpNMedO+gGCiEX/xGv8Do0NYUvsdVNv6O0fuP9octnxyzjb7HFGqDJ7hFzVORAfzOhpjyL8y2dw9AQ==", + "requires": { + "@emmetio/node": "^0.1.2", + "@emmetio/stream-reader": "^2.2.0", + "@emmetio/stream-reader-utils": "^0.1.0" + } + }, + "@emmetio/css-snippets-resolver": { + "version": "0.4.0", + "resolved": "https://registry.npmjs.org/@emmetio/css-snippets-resolver/-/css-snippets-resolver-0.4.0.tgz", + "integrity": "sha512-H0eOed2KljA/nQ64j3BKwAkAFliku5LAD58o4pvS3A9tZ2g3ctEpJ+61po78SZE1+Q+gRA3CGtC6rxtk7QlGPA==" + }, + "@emmetio/field-parser": { + "version": "0.3.1", + "resolved": "https://registry.npmjs.org/@emmetio/field-parser/-/field-parser-0.3.1.tgz", + "integrity": "sha512-A26JuVvZRUBb/rNpaDdmBB2jaN3spx2JRLJQfkskz9CRbiSW9ZE/M7etKKMunV5UWUfSlygFaFUclT3y+UNDxw==", + "requires": { + "@emmetio/stream-reader": "^2.2.0", + "@emmetio/stream-reader-utils": "^0.1.0" + } + }, + "@emmetio/html-snippets-resolver": { + "version": "0.1.4", + "resolved": "https://registry.npmjs.org/@emmetio/html-snippets-resolver/-/html-snippets-resolver-0.1.4.tgz", + "integrity": "sha1-szrT+nj9eNZLlL+Iqftos62Ojn4=", + "requires": { + "@emmetio/abbreviation": "^0.6.0" + }, + "dependencies": { + "@emmetio/abbreviation": { + "version": "0.6.6", + "resolved": "https://registry.npmjs.org/@emmetio/abbreviation/-/abbreviation-0.6.6.tgz", + "integrity": "sha512-jsh1Hyc7iY+5tADcn6GlIF/kxEbglPW+JE/FcCb4NNYqDr2swXvEGWd+DN3porBA67VDfDZVAwThhvYTsHKrRw==", + "requires": { + "@emmetio/node": "^0.1.2", + "@emmetio/stream-reader": "^2.2.0", + "@emmetio/stream-reader-utils": "^0.1.0" + } + } + } + }, + "@emmetio/html-transform": { + "version": "0.3.10", + "resolved": "https://registry.npmjs.org/@emmetio/html-transform/-/html-transform-0.3.10.tgz", + "integrity": "sha512-GxKcFDCkHQAre4lBRr4hbyYfRhAtTqDrcnwDi2n97CX6bKhdfL9p7fZIobtNtjX+ZdCVs36x4vizpiChEYOArg==", + "requires": { + "@emmetio/implicit-tag": "^1.0.0" + } + }, + "@emmetio/implicit-tag": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/@emmetio/implicit-tag/-/implicit-tag-1.0.0.tgz", + "integrity": "sha1-+CbU4fxR2jlDTCMmtvbQ4rLntBk=" + }, + "@emmetio/lorem": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/@emmetio/lorem/-/lorem-1.0.2.tgz", + "integrity": "sha1-jealcY85Fy6n0iUypbDTu9EAg9w=", + "requires": { + "@emmetio/implicit-tag": "^1.0.0" + } + }, + "@emmetio/markup-formatters": { + "version": "0.4.1", + "resolved": "https://registry.npmjs.org/@emmetio/markup-formatters/-/markup-formatters-0.4.1.tgz", + "integrity": "sha512-RR+QPozAAL7pnFL5Nl3g5qXxUF2qw54oGl0njmBTZYYwf96LDJ2p6DfRhy8uCenRjMMgUijjQ31wtmDR4cobDA==", + "requires": { + "@emmetio/field-parser": "^0.3.0", + "@emmetio/output-renderer": "^0.1.2" + } + }, + "@emmetio/node": { + "version": "0.1.2", + "resolved": "https://registry.npmjs.org/@emmetio/node/-/node-0.1.2.tgz", + "integrity": "sha1-QjHVOMRUgaUYNfwquj9dn8EpY0w=" + }, + "@emmetio/output-profile": { + "version": "0.1.6", + "resolved": "https://registry.npmjs.org/@emmetio/output-profile/-/output-profile-0.1.6.tgz", + "integrity": "sha512-7bIwR3YHmTEnyy76X4l9e5+wXE+lah2E1AIoeDyKFIfVujztXNqcv+BmPcV4LRl1+V6Qir8hIex+F2nz7PTPCg==" + }, + "@emmetio/output-renderer": { + "version": "0.1.2", + "resolved": "https://registry.npmjs.org/@emmetio/output-renderer/-/output-renderer-0.1.2.tgz", + "integrity": "sha1-Ds4RrM6SmFB4aK7SGrUlPh6wgvg=", + "requires": { + "@emmetio/field-parser": "^0.3.0" + } + }, + "@emmetio/snippets": { + "version": "0.2.12", + "resolved": "https://registry.npmjs.org/@emmetio/snippets/-/snippets-0.2.12.tgz", + "integrity": "sha512-xgjkyLZ4Ez8kN2qGNY59MadoIlStIohn80/FUSk+/DyNp/0SVpAe+/uQ5qJ4Mo4DDzfnkEkfCBMO/yq4SKoB0w==" + }, + "@emmetio/snippets-registry": { + "version": "0.3.1", + "resolved": "https://registry.npmjs.org/@emmetio/snippets-registry/-/snippets-registry-0.3.1.tgz", + "integrity": "sha1-7A6KEi/paDZZzmmiI5b0E2uUDSA=" + }, + "@emmetio/stream-reader": { + "version": "2.2.0", + "resolved": "https://registry.npmjs.org/@emmetio/stream-reader/-/stream-reader-2.2.0.tgz", + "integrity": "sha1-Rs/+oRmgoAMxKiHC2bVijLX81EI=" + }, + "@emmetio/stream-reader-utils": { + "version": "0.1.0", + "resolved": "https://registry.npmjs.org/@emmetio/stream-reader-utils/-/stream-reader-utils-0.1.0.tgz", + "integrity": "sha1-JEywLHfsLnT3ipvTGCGKvJxQCmE=" + }, + "@emmetio/stylesheet-formatters": { + "version": "0.2.1", + "resolved": "https://registry.npmjs.org/@emmetio/stylesheet-formatters/-/stylesheet-formatters-0.2.1.tgz", + "integrity": "sha512-1XHNVx6S3ra7dnv12CNT6Gq15VyT2Fkrhgp2yCj4g2jJJflVHU6t++VfjoK6w36hGYu0AqZL9TCa/8hLj2YjQw==", + "requires": { + "@emmetio/field-parser": "^0.3.0", + "@emmetio/output-renderer": "^0.1.1" + } + }, + "@emmetio/variable-resolver": { + "version": "0.2.1", + "resolved": "https://registry.npmjs.org/@emmetio/variable-resolver/-/variable-resolver-0.2.1.tgz", + "integrity": "sha1-zhG1FYRmmjQJhmkM8OwmnkTGP7o=" + }, + "@eslint/eslintrc": { + "version": "0.2.2", + "resolved": "https://registry.npmjs.org/@eslint/eslintrc/-/eslintrc-0.2.2.tgz", + "integrity": "sha512-EfB5OHNYp1F4px/LI/FEnGylop7nOqkQ1LRzCM0KccA2U8tvV8w01KBv37LbO7nW4H+YhKyo2LcJhRwjjV17QQ==", + "dev": true, + "requires": { + "ajv": "^6.12.4", + "debug": "^4.1.1", + "espree": "^7.3.0", + "globals": "^12.1.0", + "ignore": "^4.0.6", + "import-fresh": "^3.2.1", + "js-yaml": "^3.13.1", + "lodash": "^4.17.19", + "minimatch": "^3.0.4", + "strip-json-comments": "^3.1.1" + }, + "dependencies": { + "globals": { + "version": "12.4.0", + "resolved": "https://registry.npmjs.org/globals/-/globals-12.4.0.tgz", + "integrity": "sha512-BWICuzzDvDoH54NHKCseDanAhE3CeDorgDL5MT6LMXXj2WCnd9UC2szdk4AWLfjdgNBCXLUanXYcpBBKOSWGwg==", + "dev": true, + "requires": { + "type-fest": "^0.8.1" + } + }, + "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 + }, + "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" + } + }, + "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 + }, + "strip-json-comments": { + "version": "3.1.1", + "resolved": "https://registry.npmjs.org/strip-json-comments/-/strip-json-comments-3.1.1.tgz", + "integrity": "sha512-6fPc+R4ihwqP6N/aIv2f1gMH8lOVtWQHoqC4yK6oSDVVocumAsfCqjkXnqiYMhmMwS/mEHLp7Vehlt3ql6lEig==", + "dev": true + } + } + }, + "@iarna/toml": { + "version": "2.2.5", + "resolved": "https://registry.npmjs.org/@iarna/toml/-/toml-2.2.5.tgz", + "integrity": "sha512-trnsAYxU3xnS1gPHPyU961coFyLkh4gAD/0zQ5mymY4yOZ+CYvsPqUbOFSw0aDM4y0tV7tiFxL/1XfXPNC6IPg==", + "dev": true + }, + "@istanbuljs/load-nyc-config": { + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/@istanbuljs/load-nyc-config/-/load-nyc-config-1.1.0.tgz", + "integrity": "sha512-VjeHSlIzpv/NyD3N0YuHfXOPDIixcA1q2ZV98wsMqcYlPmv2n3Yb2lYP9XMElnaFVXg5A7YLTeLu6V84uQDjmQ==", + "dev": true, + "requires": { + "camelcase": "^5.3.1", + "find-up": "^4.1.0", + "get-package-type": "^0.1.0", + "js-yaml": "^3.13.1", + "resolve-from": "^5.0.0" + }, + "dependencies": { + "find-up": { + "version": "4.1.0", + "resolved": "https://registry.npmjs.org/find-up/-/find-up-4.1.0.tgz", + "integrity": "sha512-PpOwAdQ/YlXQ2vj8a3h8IipDuYRi3wceVQQGYWxNINccq40Anw7BlsEXCMbt1Zt+OLA6Fq9suIpIWD0OsnISlw==", + "dev": true, + "requires": { + "locate-path": "^5.0.0", + "path-exists": "^4.0.0" + } + }, + "locate-path": { + "version": "5.0.0", + "resolved": "https://registry.npmjs.org/locate-path/-/locate-path-5.0.0.tgz", + "integrity": "sha512-t7hw9pI+WvuwNJXwk5zVHpyhIqzg2qTlklJOf0mVxGSbe3Fp2VieZcduNYjaLDoy6p9uGpQEGWG87WpMKlNq8g==", + "dev": true, + "requires": { + "p-locate": "^4.1.0" + } + }, + "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": "4.1.0", + "resolved": "https://registry.npmjs.org/p-locate/-/p-locate-4.1.0.tgz", + "integrity": "sha512-R79ZZ/0wAxKGu3oYMlz8jy/kbhsNrS7SKZ7PxEHBgJ5+F2mtFW2fK2cOtBh1cHYkQsbzFV7I+EoRKe6Yt0oK7A==", + "dev": true, + "requires": { + "p-limit": "^2.2.0" + } + }, + "p-try": { + "version": "2.2.0", + "resolved": "https://registry.npmjs.org/p-try/-/p-try-2.2.0.tgz", + "integrity": "sha512-R4nPAVTAU0B9D35/Gk3uJf/7XYbQcyohSKdvAxIRSNghFl4e71hVoGnBNQz9cWaXxO2I10KTC+3jMdvvoKw6dQ==", + "dev": true + }, + "path-exists": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/path-exists/-/path-exists-4.0.0.tgz", + "integrity": "sha512-ak9Qy5Q7jYb2Wwcey5Fpvg2KoAc/ZIhLSLOSBmRmygPsGwkVVt0fZa0qrtMz+m6tJTAHfZQ8FnmB4MG4LWy7/w==", + "dev": true + }, + "resolve-from": { + "version": "5.0.0", + "resolved": "https://registry.npmjs.org/resolve-from/-/resolve-from-5.0.0.tgz", + "integrity": "sha512-qYg9KP24dD5qka9J47d0aVky0N+b4fTU89LN9iDnjB5waksiC49rvMB0PrUJQGoTmH50XPiqOvAjDfaijGxYZw==", + "dev": true + } + } + }, + "@istanbuljs/nyc-config-typescript": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/@istanbuljs/nyc-config-typescript/-/nyc-config-typescript-1.0.1.tgz", + "integrity": "sha512-/gz6LgVpky205LuoOfwEZmnUtaSmdk0QIMcNFj9OvxhiMhPpKftMgZmGN7jNj7jR+lr8IB1Yks3QSSSNSxfoaQ==", + "dev": true, + "requires": { + "@istanbuljs/schema": "^0.1.2" + } + }, + "@istanbuljs/schema": { + "version": "0.1.2", + "resolved": "https://registry.npmjs.org/@istanbuljs/schema/-/schema-0.1.2.tgz", + "integrity": "sha512-tsAQNx32a8CoFhjhijUIhI4kccIAgmGhy8LZMZgGfmXcpMbPRUqn5LWmgRttILi6yeGmBJd2xsPkFMs0PzgPCw==", + "dev": true + }, + "@jest/console": { + "version": "26.6.2", + "resolved": "https://registry.npmjs.org/@jest/console/-/console-26.6.2.tgz", + "integrity": "sha512-IY1R2i2aLsLr7Id3S6p2BA82GNWryt4oSvEXLAKc+L2zdi89dSkE8xC1C+0kpATG4JhBJREnQOH7/zmccM2B0g==", + "dev": true, + "requires": { + "@jest/types": "^26.6.2", + "@types/node": "*", + "chalk": "^4.0.0", + "jest-message-util": "^26.6.2", + "jest-util": "^26.6.2", + "slash": "^3.0.0" + }, + "dependencies": { + "@jest/types": { + "version": "26.6.2", + "resolved": "https://registry.npmjs.org/@jest/types/-/types-26.6.2.tgz", + "integrity": "sha512-fC6QCp7Sc5sX6g8Tvbmj4XUTbyrik0akgRy03yjXbQaBWWNWGE7SGtJk98m0N8nzegD/7SggrUlivxo5ax4KWQ==", + "dev": true, + "requires": { + "@types/istanbul-lib-coverage": "^2.0.0", + "@types/istanbul-reports": "^3.0.0", + "@types/node": "*", + "@types/yargs": "^15.0.0", + "chalk": "^4.0.0" + } + }, + "@types/istanbul-reports": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/@types/istanbul-reports/-/istanbul-reports-3.0.0.tgz", + "integrity": "sha512-nwKNbvnwJ2/mndE9ItP/zc2TCzw6uuodnF4EHYWD+gCQDVBuRQL5UzbZD0/ezy1iKsFU2ZQiDqg4M9dN4+wZgA==", + "dev": true, + "requires": { + "@types/istanbul-lib-report": "*" + } + }, + "ansi-styles": { + "version": "4.3.0", + "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-4.3.0.tgz", + "integrity": "sha512-zbB9rCJAT1rbjiVDb2hqKFHNYLxgtk8NURxZ3IZwD3F6NtxbXZQCnnSi1Lkx+IDohdPlFp222wVALIheZJQSEg==", + "dev": true, + "requires": { + "color-convert": "^2.0.1" + } + }, + "chalk": { + "version": "4.1.0", + "resolved": "https://registry.npmjs.org/chalk/-/chalk-4.1.0.tgz", + "integrity": "sha512-qwx12AxXe2Q5xQ43Ac//I6v5aXTipYrSESdOgzrN+9XjgEpyjpKuvSGaN4qE93f7TQTlerQQ8S+EQ0EyDoVL1A==", + "dev": true, + "requires": { + "ansi-styles": "^4.1.0", + "supports-color": "^7.1.0" + } + }, + "color-convert": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/color-convert/-/color-convert-2.0.1.tgz", + "integrity": "sha512-RRECPsj7iu/xb5oKYcsFHSppFNnsj/52OVTRKb4zP5onXwVF3zVmmToNcOfGC+CRDpfK/U584fMg38ZHCaElKQ==", + "dev": true, + "requires": { + "color-name": "~1.1.4" + } + }, + "color-name": { + "version": "1.1.4", + "resolved": "https://registry.npmjs.org/color-name/-/color-name-1.1.4.tgz", + "integrity": "sha512-dOy+3AuW3a2wNbZHIuMZpTcgjGuLU/uBL/ubcZF9OXbDo8ff4O8yVp5Bf0efS8uEoYo5q4Fx7dY9OgQGXgAsQA==", + "dev": true + }, + "has-flag": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/has-flag/-/has-flag-4.0.0.tgz", + "integrity": "sha512-EykJT/Q1KjTWctppgIAgfSO0tKVuZUjhgMr17kqTumMl6Afv3EISleU7qZUzoXDFTAHTDC4NOoG/ZxU3EvlMPQ==", + "dev": true + }, + "supports-color": { + "version": "7.2.0", + "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-7.2.0.tgz", + "integrity": "sha512-qpCAvRl9stuOHveKsn7HncJRvv501qIacKzQlO/+Lwxc9+0q2wLyv4Dfvt80/DPn2pqOBsJdDiogXGR9+OvwRw==", + "dev": true, + "requires": { + "has-flag": "^4.0.0" + } + } + } + }, + "@jest/core": { + "version": "26.6.3", + "resolved": "https://registry.npmjs.org/@jest/core/-/core-26.6.3.tgz", + "integrity": "sha512-xvV1kKbhfUqFVuZ8Cyo+JPpipAHHAV3kcDBftiduK8EICXmTFddryy3P7NfZt8Pv37rA9nEJBKCCkglCPt/Xjw==", + "dev": true, + "requires": { + "@jest/console": "^26.6.2", + "@jest/reporters": "^26.6.2", + "@jest/test-result": "^26.6.2", + "@jest/transform": "^26.6.2", + "@jest/types": "^26.6.2", + "@types/node": "*", + "ansi-escapes": "^4.2.1", + "chalk": "^4.0.0", + "exit": "^0.1.2", + "graceful-fs": "^4.2.4", + "jest-changed-files": "^26.6.2", + "jest-config": "^26.6.3", + "jest-haste-map": "^26.6.2", + "jest-message-util": "^26.6.2", + "jest-regex-util": "^26.0.0", + "jest-resolve": "^26.6.2", + "jest-resolve-dependencies": "^26.6.3", + "jest-runner": "^26.6.3", + "jest-runtime": "^26.6.3", + "jest-snapshot": "^26.6.2", + "jest-util": "^26.6.2", + "jest-validate": "^26.6.2", + "jest-watcher": "^26.6.2", + "micromatch": "^4.0.2", + "p-each-series": "^2.1.0", + "rimraf": "^3.0.0", + "slash": "^3.0.0", + "strip-ansi": "^6.0.0" + }, + "dependencies": { + "@jest/types": { + "version": "26.6.2", + "resolved": "https://registry.npmjs.org/@jest/types/-/types-26.6.2.tgz", + "integrity": "sha512-fC6QCp7Sc5sX6g8Tvbmj4XUTbyrik0akgRy03yjXbQaBWWNWGE7SGtJk98m0N8nzegD/7SggrUlivxo5ax4KWQ==", + "dev": true, + "requires": { + "@types/istanbul-lib-coverage": "^2.0.0", + "@types/istanbul-reports": "^3.0.0", + "@types/node": "*", + "@types/yargs": "^15.0.0", + "chalk": "^4.0.0" + } + }, + "@types/istanbul-reports": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/@types/istanbul-reports/-/istanbul-reports-3.0.0.tgz", + "integrity": "sha512-nwKNbvnwJ2/mndE9ItP/zc2TCzw6uuodnF4EHYWD+gCQDVBuRQL5UzbZD0/ezy1iKsFU2ZQiDqg4M9dN4+wZgA==", + "dev": true, + "requires": { + "@types/istanbul-lib-report": "*" + } + }, + "ansi-escapes": { + "version": "4.3.1", + "resolved": "https://registry.npmjs.org/ansi-escapes/-/ansi-escapes-4.3.1.tgz", + "integrity": "sha512-JWF7ocqNrp8u9oqpgV+wH5ftbt+cfvv+PTjOvKLT3AdYly/LmORARfEVT1iyjwN+4MqE5UmVKoAdIBqeoCHgLA==", + "dev": true, + "requires": { + "type-fest": "^0.11.0" + } + }, + "ansi-regex": { + "version": "5.0.0", + "resolved": "https://registry.npmjs.org/ansi-regex/-/ansi-regex-5.0.0.tgz", + "integrity": "sha512-bY6fj56OUQ0hU1KjFNDQuJFezqKdrAyFdIevADiqrWHwSlbmBNMHp5ak2f40Pm8JTFyM2mqxkG6ngkHO11f/lg==", + "dev": true + }, + "ansi-styles": { + "version": "4.3.0", + "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-4.3.0.tgz", + "integrity": "sha512-zbB9rCJAT1rbjiVDb2hqKFHNYLxgtk8NURxZ3IZwD3F6NtxbXZQCnnSi1Lkx+IDohdPlFp222wVALIheZJQSEg==", + "dev": true, + "requires": { + "color-convert": "^2.0.1" + } + }, + "chalk": { + "version": "4.1.0", + "resolved": "https://registry.npmjs.org/chalk/-/chalk-4.1.0.tgz", + "integrity": "sha512-qwx12AxXe2Q5xQ43Ac//I6v5aXTipYrSESdOgzrN+9XjgEpyjpKuvSGaN4qE93f7TQTlerQQ8S+EQ0EyDoVL1A==", + "dev": true, + "requires": { + "ansi-styles": "^4.1.0", + "supports-color": "^7.1.0" + } + }, + "color-convert": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/color-convert/-/color-convert-2.0.1.tgz", + "integrity": "sha512-RRECPsj7iu/xb5oKYcsFHSppFNnsj/52OVTRKb4zP5onXwVF3zVmmToNcOfGC+CRDpfK/U584fMg38ZHCaElKQ==", + "dev": true, + "requires": { + "color-name": "~1.1.4" + } + }, + "color-name": { + "version": "1.1.4", + "resolved": "https://registry.npmjs.org/color-name/-/color-name-1.1.4.tgz", + "integrity": "sha512-dOy+3AuW3a2wNbZHIuMZpTcgjGuLU/uBL/ubcZF9OXbDo8ff4O8yVp5Bf0efS8uEoYo5q4Fx7dY9OgQGXgAsQA==", + "dev": true + }, + "glob": { + "version": "7.1.6", + "resolved": "https://registry.npmjs.org/glob/-/glob-7.1.6.tgz", + "integrity": "sha512-LwaxwyZ72Lk7vZINtNNrywX0ZuLyStrdDtabefZKAY5ZGJhVtgdznluResxNmPitE0SAO+O26sWTHeKSI2wMBA==", + "dev": true, + "requires": { + "fs.realpath": "^1.0.0", + "inflight": "^1.0.4", + "inherits": "2", + "minimatch": "^3.0.4", + "once": "^1.3.0", + "path-is-absolute": "^1.0.0" + } + }, + "has-flag": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/has-flag/-/has-flag-4.0.0.tgz", + "integrity": "sha512-EykJT/Q1KjTWctppgIAgfSO0tKVuZUjhgMr17kqTumMl6Afv3EISleU7qZUzoXDFTAHTDC4NOoG/ZxU3EvlMPQ==", + "dev": true + }, + "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" + } + }, + "strip-ansi": { + "version": "6.0.0", + "resolved": "https://registry.npmjs.org/strip-ansi/-/strip-ansi-6.0.0.tgz", + "integrity": "sha512-AuvKTrTfQNYNIctbR1K/YGTR1756GycPsg7b9bdV9Duqur4gv6aKqHXah67Z8ImS7WEz5QVcOtlfW2rZEugt6w==", + "dev": true, + "requires": { + "ansi-regex": "^5.0.0" + } + }, + "supports-color": { + "version": "7.2.0", + "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-7.2.0.tgz", + "integrity": "sha512-qpCAvRl9stuOHveKsn7HncJRvv501qIacKzQlO/+Lwxc9+0q2wLyv4Dfvt80/DPn2pqOBsJdDiogXGR9+OvwRw==", + "dev": true, + "requires": { + "has-flag": "^4.0.0" + } + }, + "type-fest": { + "version": "0.11.0", + "resolved": "https://registry.npmjs.org/type-fest/-/type-fest-0.11.0.tgz", + "integrity": "sha512-OdjXJxnCN1AvyLSzeKIgXTXxV+99ZuXl3Hpo9XpJAv9MBcHrrJOQ5kV7ypXOuQie+AmWG25hLbiKdwYTifzcfQ==", + "dev": true + } + } + }, + "@jest/environment": { + "version": "26.6.2", + "resolved": "https://registry.npmjs.org/@jest/environment/-/environment-26.6.2.tgz", + "integrity": "sha512-nFy+fHl28zUrRsCeMB61VDThV1pVTtlEokBRgqPrcT1JNq4yRNIyTHfyht6PqtUvY9IsuLGTrbG8kPXjSZIZwA==", + "dev": true, + "requires": { + "@jest/fake-timers": "^26.6.2", + "@jest/types": "^26.6.2", + "@types/node": "*", + "jest-mock": "^26.6.2" + }, + "dependencies": { + "@jest/types": { + "version": "26.6.2", + "resolved": "https://registry.npmjs.org/@jest/types/-/types-26.6.2.tgz", + "integrity": "sha512-fC6QCp7Sc5sX6g8Tvbmj4XUTbyrik0akgRy03yjXbQaBWWNWGE7SGtJk98m0N8nzegD/7SggrUlivxo5ax4KWQ==", + "dev": true, + "requires": { + "@types/istanbul-lib-coverage": "^2.0.0", + "@types/istanbul-reports": "^3.0.0", + "@types/node": "*", + "@types/yargs": "^15.0.0", + "chalk": "^4.0.0" + } + }, + "@types/istanbul-reports": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/@types/istanbul-reports/-/istanbul-reports-3.0.0.tgz", + "integrity": "sha512-nwKNbvnwJ2/mndE9ItP/zc2TCzw6uuodnF4EHYWD+gCQDVBuRQL5UzbZD0/ezy1iKsFU2ZQiDqg4M9dN4+wZgA==", + "dev": true, + "requires": { + "@types/istanbul-lib-report": "*" + } + }, + "ansi-styles": { + "version": "4.3.0", + "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-4.3.0.tgz", + "integrity": "sha512-zbB9rCJAT1rbjiVDb2hqKFHNYLxgtk8NURxZ3IZwD3F6NtxbXZQCnnSi1Lkx+IDohdPlFp222wVALIheZJQSEg==", + "dev": true, + "requires": { + "color-convert": "^2.0.1" + } + }, + "chalk": { + "version": "4.1.0", + "resolved": "https://registry.npmjs.org/chalk/-/chalk-4.1.0.tgz", + "integrity": "sha512-qwx12AxXe2Q5xQ43Ac//I6v5aXTipYrSESdOgzrN+9XjgEpyjpKuvSGaN4qE93f7TQTlerQQ8S+EQ0EyDoVL1A==", + "dev": true, + "requires": { + "ansi-styles": "^4.1.0", + "supports-color": "^7.1.0" + } + }, + "color-convert": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/color-convert/-/color-convert-2.0.1.tgz", + "integrity": "sha512-RRECPsj7iu/xb5oKYcsFHSppFNnsj/52OVTRKb4zP5onXwVF3zVmmToNcOfGC+CRDpfK/U584fMg38ZHCaElKQ==", + "dev": true, + "requires": { + "color-name": "~1.1.4" + } + }, + "color-name": { + "version": "1.1.4", + "resolved": "https://registry.npmjs.org/color-name/-/color-name-1.1.4.tgz", + "integrity": "sha512-dOy+3AuW3a2wNbZHIuMZpTcgjGuLU/uBL/ubcZF9OXbDo8ff4O8yVp5Bf0efS8uEoYo5q4Fx7dY9OgQGXgAsQA==", + "dev": true + }, + "has-flag": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/has-flag/-/has-flag-4.0.0.tgz", + "integrity": "sha512-EykJT/Q1KjTWctppgIAgfSO0tKVuZUjhgMr17kqTumMl6Afv3EISleU7qZUzoXDFTAHTDC4NOoG/ZxU3EvlMPQ==", + "dev": true + }, + "supports-color": { + "version": "7.2.0", + "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-7.2.0.tgz", + "integrity": "sha512-qpCAvRl9stuOHveKsn7HncJRvv501qIacKzQlO/+Lwxc9+0q2wLyv4Dfvt80/DPn2pqOBsJdDiogXGR9+OvwRw==", + "dev": true, + "requires": { + "has-flag": "^4.0.0" + } + } + } + }, + "@jest/fake-timers": { + "version": "26.6.2", + "resolved": "https://registry.npmjs.org/@jest/fake-timers/-/fake-timers-26.6.2.tgz", + "integrity": "sha512-14Uleatt7jdzefLPYM3KLcnUl1ZNikaKq34enpb5XG9i81JpppDb5muZvonvKyrl7ftEHkKS5L5/eB/kxJ+bvA==", + "dev": true, + "requires": { + "@jest/types": "^26.6.2", + "@sinonjs/fake-timers": "^6.0.1", + "@types/node": "*", + "jest-message-util": "^26.6.2", + "jest-mock": "^26.6.2", + "jest-util": "^26.6.2" + }, + "dependencies": { + "@jest/types": { + "version": "26.6.2", + "resolved": "https://registry.npmjs.org/@jest/types/-/types-26.6.2.tgz", + "integrity": "sha512-fC6QCp7Sc5sX6g8Tvbmj4XUTbyrik0akgRy03yjXbQaBWWNWGE7SGtJk98m0N8nzegD/7SggrUlivxo5ax4KWQ==", + "dev": true, + "requires": { + "@types/istanbul-lib-coverage": "^2.0.0", + "@types/istanbul-reports": "^3.0.0", + "@types/node": "*", + "@types/yargs": "^15.0.0", + "chalk": "^4.0.0" + } + }, + "@types/istanbul-reports": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/@types/istanbul-reports/-/istanbul-reports-3.0.0.tgz", + "integrity": "sha512-nwKNbvnwJ2/mndE9ItP/zc2TCzw6uuodnF4EHYWD+gCQDVBuRQL5UzbZD0/ezy1iKsFU2ZQiDqg4M9dN4+wZgA==", + "dev": true, + "requires": { + "@types/istanbul-lib-report": "*" + } + }, + "ansi-styles": { + "version": "4.3.0", + "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-4.3.0.tgz", + "integrity": "sha512-zbB9rCJAT1rbjiVDb2hqKFHNYLxgtk8NURxZ3IZwD3F6NtxbXZQCnnSi1Lkx+IDohdPlFp222wVALIheZJQSEg==", + "dev": true, + "requires": { + "color-convert": "^2.0.1" + } + }, + "chalk": { + "version": "4.1.0", + "resolved": "https://registry.npmjs.org/chalk/-/chalk-4.1.0.tgz", + "integrity": "sha512-qwx12AxXe2Q5xQ43Ac//I6v5aXTipYrSESdOgzrN+9XjgEpyjpKuvSGaN4qE93f7TQTlerQQ8S+EQ0EyDoVL1A==", + "dev": true, + "requires": { + "ansi-styles": "^4.1.0", + "supports-color": "^7.1.0" + } + }, + "color-convert": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/color-convert/-/color-convert-2.0.1.tgz", + "integrity": "sha512-RRECPsj7iu/xb5oKYcsFHSppFNnsj/52OVTRKb4zP5onXwVF3zVmmToNcOfGC+CRDpfK/U584fMg38ZHCaElKQ==", + "dev": true, + "requires": { + "color-name": "~1.1.4" + } + }, + "color-name": { + "version": "1.1.4", + "resolved": "https://registry.npmjs.org/color-name/-/color-name-1.1.4.tgz", + "integrity": "sha512-dOy+3AuW3a2wNbZHIuMZpTcgjGuLU/uBL/ubcZF9OXbDo8ff4O8yVp5Bf0efS8uEoYo5q4Fx7dY9OgQGXgAsQA==", + "dev": true + }, + "has-flag": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/has-flag/-/has-flag-4.0.0.tgz", + "integrity": "sha512-EykJT/Q1KjTWctppgIAgfSO0tKVuZUjhgMr17kqTumMl6Afv3EISleU7qZUzoXDFTAHTDC4NOoG/ZxU3EvlMPQ==", + "dev": true + }, + "supports-color": { + "version": "7.2.0", + "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-7.2.0.tgz", + "integrity": "sha512-qpCAvRl9stuOHveKsn7HncJRvv501qIacKzQlO/+Lwxc9+0q2wLyv4Dfvt80/DPn2pqOBsJdDiogXGR9+OvwRw==", + "dev": true, + "requires": { + "has-flag": "^4.0.0" + } + } + } + }, + "@jest/globals": { + "version": "26.6.2", + "resolved": "https://registry.npmjs.org/@jest/globals/-/globals-26.6.2.tgz", + "integrity": "sha512-85Ltnm7HlB/KesBUuALwQ68YTU72w9H2xW9FjZ1eL1U3lhtefjjl5c2MiUbpXt/i6LaPRvoOFJ22yCBSfQ0JIA==", + "dev": true, + "requires": { + "@jest/environment": "^26.6.2", + "@jest/types": "^26.6.2", + "expect": "^26.6.2" + }, + "dependencies": { + "@jest/types": { + "version": "26.6.2", + "resolved": "https://registry.npmjs.org/@jest/types/-/types-26.6.2.tgz", + "integrity": "sha512-fC6QCp7Sc5sX6g8Tvbmj4XUTbyrik0akgRy03yjXbQaBWWNWGE7SGtJk98m0N8nzegD/7SggrUlivxo5ax4KWQ==", + "dev": true, + "requires": { + "@types/istanbul-lib-coverage": "^2.0.0", + "@types/istanbul-reports": "^3.0.0", + "@types/node": "*", + "@types/yargs": "^15.0.0", + "chalk": "^4.0.0" + } + }, + "@types/istanbul-reports": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/@types/istanbul-reports/-/istanbul-reports-3.0.0.tgz", + "integrity": "sha512-nwKNbvnwJ2/mndE9ItP/zc2TCzw6uuodnF4EHYWD+gCQDVBuRQL5UzbZD0/ezy1iKsFU2ZQiDqg4M9dN4+wZgA==", + "dev": true, + "requires": { + "@types/istanbul-lib-report": "*" + } + }, + "ansi-styles": { + "version": "4.3.0", + "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-4.3.0.tgz", + "integrity": "sha512-zbB9rCJAT1rbjiVDb2hqKFHNYLxgtk8NURxZ3IZwD3F6NtxbXZQCnnSi1Lkx+IDohdPlFp222wVALIheZJQSEg==", + "dev": true, + "requires": { + "color-convert": "^2.0.1" + } + }, + "chalk": { + "version": "4.1.0", + "resolved": "https://registry.npmjs.org/chalk/-/chalk-4.1.0.tgz", + "integrity": "sha512-qwx12AxXe2Q5xQ43Ac//I6v5aXTipYrSESdOgzrN+9XjgEpyjpKuvSGaN4qE93f7TQTlerQQ8S+EQ0EyDoVL1A==", + "dev": true, + "requires": { + "ansi-styles": "^4.1.0", + "supports-color": "^7.1.0" + } + }, + "color-convert": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/color-convert/-/color-convert-2.0.1.tgz", + "integrity": "sha512-RRECPsj7iu/xb5oKYcsFHSppFNnsj/52OVTRKb4zP5onXwVF3zVmmToNcOfGC+CRDpfK/U584fMg38ZHCaElKQ==", + "dev": true, + "requires": { + "color-name": "~1.1.4" + } + }, + "color-name": { + "version": "1.1.4", + "resolved": "https://registry.npmjs.org/color-name/-/color-name-1.1.4.tgz", + "integrity": "sha512-dOy+3AuW3a2wNbZHIuMZpTcgjGuLU/uBL/ubcZF9OXbDo8ff4O8yVp5Bf0efS8uEoYo5q4Fx7dY9OgQGXgAsQA==", + "dev": true + }, + "has-flag": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/has-flag/-/has-flag-4.0.0.tgz", + "integrity": "sha512-EykJT/Q1KjTWctppgIAgfSO0tKVuZUjhgMr17kqTumMl6Afv3EISleU7qZUzoXDFTAHTDC4NOoG/ZxU3EvlMPQ==", + "dev": true + }, + "supports-color": { + "version": "7.2.0", + "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-7.2.0.tgz", + "integrity": "sha512-qpCAvRl9stuOHveKsn7HncJRvv501qIacKzQlO/+Lwxc9+0q2wLyv4Dfvt80/DPn2pqOBsJdDiogXGR9+OvwRw==", + "dev": true, + "requires": { + "has-flag": "^4.0.0" + } + } + } + }, + "@jest/reporters": { + "version": "26.6.2", + "resolved": "https://registry.npmjs.org/@jest/reporters/-/reporters-26.6.2.tgz", + "integrity": "sha512-h2bW53APG4HvkOnVMo8q3QXa6pcaNt1HkwVsOPMBV6LD/q9oSpxNSYZQYkAnjdMjrJ86UuYeLo+aEZClV6opnw==", + "dev": true, + "requires": { + "@bcoe/v8-coverage": "^0.2.3", + "@jest/console": "^26.6.2", + "@jest/test-result": "^26.6.2", + "@jest/transform": "^26.6.2", + "@jest/types": "^26.6.2", + "chalk": "^4.0.0", + "collect-v8-coverage": "^1.0.0", + "exit": "^0.1.2", + "glob": "^7.1.2", + "graceful-fs": "^4.2.4", + "istanbul-lib-coverage": "^3.0.0", + "istanbul-lib-instrument": "^4.0.3", + "istanbul-lib-report": "^3.0.0", + "istanbul-lib-source-maps": "^4.0.0", + "istanbul-reports": "^3.0.2", + "jest-haste-map": "^26.6.2", + "jest-resolve": "^26.6.2", + "jest-util": "^26.6.2", + "jest-worker": "^26.6.2", + "node-notifier": "^8.0.0", + "slash": "^3.0.0", + "source-map": "^0.6.0", + "string-length": "^4.0.1", + "terminal-link": "^2.0.0", + "v8-to-istanbul": "^7.0.0" + }, + "dependencies": { + "@jest/types": { + "version": "26.6.2", + "resolved": "https://registry.npmjs.org/@jest/types/-/types-26.6.2.tgz", + "integrity": "sha512-fC6QCp7Sc5sX6g8Tvbmj4XUTbyrik0akgRy03yjXbQaBWWNWGE7SGtJk98m0N8nzegD/7SggrUlivxo5ax4KWQ==", + "dev": true, + "requires": { + "@types/istanbul-lib-coverage": "^2.0.0", + "@types/istanbul-reports": "^3.0.0", + "@types/node": "*", + "@types/yargs": "^15.0.0", + "chalk": "^4.0.0" + } + }, + "@types/istanbul-reports": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/@types/istanbul-reports/-/istanbul-reports-3.0.0.tgz", + "integrity": "sha512-nwKNbvnwJ2/mndE9ItP/zc2TCzw6uuodnF4EHYWD+gCQDVBuRQL5UzbZD0/ezy1iKsFU2ZQiDqg4M9dN4+wZgA==", + "dev": true, + "requires": { + "@types/istanbul-lib-report": "*" + } + }, + "ansi-styles": { + "version": "4.3.0", + "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-4.3.0.tgz", + "integrity": "sha512-zbB9rCJAT1rbjiVDb2hqKFHNYLxgtk8NURxZ3IZwD3F6NtxbXZQCnnSi1Lkx+IDohdPlFp222wVALIheZJQSEg==", + "dev": true, + "requires": { + "color-convert": "^2.0.1" + } + }, + "chalk": { + "version": "4.1.0", + "resolved": "https://registry.npmjs.org/chalk/-/chalk-4.1.0.tgz", + "integrity": "sha512-qwx12AxXe2Q5xQ43Ac//I6v5aXTipYrSESdOgzrN+9XjgEpyjpKuvSGaN4qE93f7TQTlerQQ8S+EQ0EyDoVL1A==", + "dev": true, + "requires": { + "ansi-styles": "^4.1.0", + "supports-color": "^7.1.0" + } + }, + "color-convert": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/color-convert/-/color-convert-2.0.1.tgz", + "integrity": "sha512-RRECPsj7iu/xb5oKYcsFHSppFNnsj/52OVTRKb4zP5onXwVF3zVmmToNcOfGC+CRDpfK/U584fMg38ZHCaElKQ==", + "dev": true, + "requires": { + "color-name": "~1.1.4" + } + }, + "color-name": { + "version": "1.1.4", + "resolved": "https://registry.npmjs.org/color-name/-/color-name-1.1.4.tgz", + "integrity": "sha512-dOy+3AuW3a2wNbZHIuMZpTcgjGuLU/uBL/ubcZF9OXbDo8ff4O8yVp5Bf0efS8uEoYo5q4Fx7dY9OgQGXgAsQA==", + "dev": true + }, + "glob": { + "version": "7.1.6", + "resolved": "https://registry.npmjs.org/glob/-/glob-7.1.6.tgz", + "integrity": "sha512-LwaxwyZ72Lk7vZINtNNrywX0ZuLyStrdDtabefZKAY5ZGJhVtgdznluResxNmPitE0SAO+O26sWTHeKSI2wMBA==", + "dev": true, + "requires": { + "fs.realpath": "^1.0.0", + "inflight": "^1.0.4", + "inherits": "2", + "minimatch": "^3.0.4", + "once": "^1.3.0", + "path-is-absolute": "^1.0.0" + } + }, + "has-flag": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/has-flag/-/has-flag-4.0.0.tgz", + "integrity": "sha512-EykJT/Q1KjTWctppgIAgfSO0tKVuZUjhgMr17kqTumMl6Afv3EISleU7qZUzoXDFTAHTDC4NOoG/ZxU3EvlMPQ==", + "dev": true + }, + "supports-color": { + "version": "7.2.0", + "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-7.2.0.tgz", + "integrity": "sha512-qpCAvRl9stuOHveKsn7HncJRvv501qIacKzQlO/+Lwxc9+0q2wLyv4Dfvt80/DPn2pqOBsJdDiogXGR9+OvwRw==", + "dev": true, + "requires": { + "has-flag": "^4.0.0" + } + } + } + }, + "@jest/source-map": { + "version": "26.6.2", + "resolved": "https://registry.npmjs.org/@jest/source-map/-/source-map-26.6.2.tgz", + "integrity": "sha512-YwYcCwAnNmOVsZ8mr3GfnzdXDAl4LaenZP5z+G0c8bzC9/dugL8zRmxZzdoTl4IaS3CryS1uWnROLPFmb6lVvA==", + "dev": true, + "requires": { + "callsites": "^3.0.0", + "graceful-fs": "^4.2.4", + "source-map": "^0.6.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 + } + } + }, + "@jest/test-result": { + "version": "26.6.2", + "resolved": "https://registry.npmjs.org/@jest/test-result/-/test-result-26.6.2.tgz", + "integrity": "sha512-5O7H5c/7YlojphYNrK02LlDIV2GNPYisKwHm2QTKjNZeEzezCbwYs9swJySv2UfPMyZ0VdsmMv7jIlD/IKYQpQ==", + "dev": true, + "requires": { + "@jest/console": "^26.6.2", + "@jest/types": "^26.6.2", + "@types/istanbul-lib-coverage": "^2.0.0", + "collect-v8-coverage": "^1.0.0" + }, + "dependencies": { + "@jest/types": { + "version": "26.6.2", + "resolved": "https://registry.npmjs.org/@jest/types/-/types-26.6.2.tgz", + "integrity": "sha512-fC6QCp7Sc5sX6g8Tvbmj4XUTbyrik0akgRy03yjXbQaBWWNWGE7SGtJk98m0N8nzegD/7SggrUlivxo5ax4KWQ==", + "dev": true, + "requires": { + "@types/istanbul-lib-coverage": "^2.0.0", + "@types/istanbul-reports": "^3.0.0", + "@types/node": "*", + "@types/yargs": "^15.0.0", + "chalk": "^4.0.0" + } + }, + "@types/istanbul-reports": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/@types/istanbul-reports/-/istanbul-reports-3.0.0.tgz", + "integrity": "sha512-nwKNbvnwJ2/mndE9ItP/zc2TCzw6uuodnF4EHYWD+gCQDVBuRQL5UzbZD0/ezy1iKsFU2ZQiDqg4M9dN4+wZgA==", + "dev": true, + "requires": { + "@types/istanbul-lib-report": "*" + } + }, + "ansi-styles": { + "version": "4.3.0", + "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-4.3.0.tgz", + "integrity": "sha512-zbB9rCJAT1rbjiVDb2hqKFHNYLxgtk8NURxZ3IZwD3F6NtxbXZQCnnSi1Lkx+IDohdPlFp222wVALIheZJQSEg==", + "dev": true, + "requires": { + "color-convert": "^2.0.1" + } + }, + "chalk": { + "version": "4.1.0", + "resolved": "https://registry.npmjs.org/chalk/-/chalk-4.1.0.tgz", + "integrity": "sha512-qwx12AxXe2Q5xQ43Ac//I6v5aXTipYrSESdOgzrN+9XjgEpyjpKuvSGaN4qE93f7TQTlerQQ8S+EQ0EyDoVL1A==", + "dev": true, + "requires": { + "ansi-styles": "^4.1.0", + "supports-color": "^7.1.0" + } + }, + "color-convert": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/color-convert/-/color-convert-2.0.1.tgz", + "integrity": "sha512-RRECPsj7iu/xb5oKYcsFHSppFNnsj/52OVTRKb4zP5onXwVF3zVmmToNcOfGC+CRDpfK/U584fMg38ZHCaElKQ==", + "dev": true, + "requires": { + "color-name": "~1.1.4" + } + }, + "color-name": { + "version": "1.1.4", + "resolved": "https://registry.npmjs.org/color-name/-/color-name-1.1.4.tgz", + "integrity": "sha512-dOy+3AuW3a2wNbZHIuMZpTcgjGuLU/uBL/ubcZF9OXbDo8ff4O8yVp5Bf0efS8uEoYo5q4Fx7dY9OgQGXgAsQA==", + "dev": true + }, + "has-flag": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/has-flag/-/has-flag-4.0.0.tgz", + "integrity": "sha512-EykJT/Q1KjTWctppgIAgfSO0tKVuZUjhgMr17kqTumMl6Afv3EISleU7qZUzoXDFTAHTDC4NOoG/ZxU3EvlMPQ==", + "dev": true + }, + "supports-color": { + "version": "7.2.0", + "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-7.2.0.tgz", + "integrity": "sha512-qpCAvRl9stuOHveKsn7HncJRvv501qIacKzQlO/+Lwxc9+0q2wLyv4Dfvt80/DPn2pqOBsJdDiogXGR9+OvwRw==", + "dev": true, + "requires": { + "has-flag": "^4.0.0" + } + } + } + }, + "@jest/test-sequencer": { + "version": "26.6.3", + "resolved": "https://registry.npmjs.org/@jest/test-sequencer/-/test-sequencer-26.6.3.tgz", + "integrity": "sha512-YHlVIjP5nfEyjlrSr8t/YdNfU/1XEt7c5b4OxcXCjyRhjzLYu/rO69/WHPuYcbCWkz8kAeZVZp2N2+IOLLEPGw==", + "dev": true, + "requires": { + "@jest/test-result": "^26.6.2", + "graceful-fs": "^4.2.4", + "jest-haste-map": "^26.6.2", + "jest-runner": "^26.6.3", + "jest-runtime": "^26.6.3" + } + }, + "@jest/transform": { + "version": "26.6.2", + "resolved": "https://registry.npmjs.org/@jest/transform/-/transform-26.6.2.tgz", + "integrity": "sha512-E9JjhUgNzvuQ+vVAL21vlyfy12gP0GhazGgJC4h6qUt1jSdUXGWJ1wfu/X7Sd8etSgxV4ovT1pb9v5D6QW4XgA==", + "dev": true, + "requires": { + "@babel/core": "^7.1.0", + "@jest/types": "^26.6.2", + "babel-plugin-istanbul": "^6.0.0", + "chalk": "^4.0.0", + "convert-source-map": "^1.4.0", + "fast-json-stable-stringify": "^2.0.0", + "graceful-fs": "^4.2.4", + "jest-haste-map": "^26.6.2", + "jest-regex-util": "^26.0.0", + "jest-util": "^26.6.2", + "micromatch": "^4.0.2", + "pirates": "^4.0.1", + "slash": "^3.0.0", + "source-map": "^0.6.1", + "write-file-atomic": "^3.0.0" + }, + "dependencies": { + "@jest/types": { + "version": "26.6.2", + "resolved": "https://registry.npmjs.org/@jest/types/-/types-26.6.2.tgz", + "integrity": "sha512-fC6QCp7Sc5sX6g8Tvbmj4XUTbyrik0akgRy03yjXbQaBWWNWGE7SGtJk98m0N8nzegD/7SggrUlivxo5ax4KWQ==", + "dev": true, + "requires": { + "@types/istanbul-lib-coverage": "^2.0.0", + "@types/istanbul-reports": "^3.0.0", + "@types/node": "*", + "@types/yargs": "^15.0.0", + "chalk": "^4.0.0" + } + }, + "@types/istanbul-reports": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/@types/istanbul-reports/-/istanbul-reports-3.0.0.tgz", + "integrity": "sha512-nwKNbvnwJ2/mndE9ItP/zc2TCzw6uuodnF4EHYWD+gCQDVBuRQL5UzbZD0/ezy1iKsFU2ZQiDqg4M9dN4+wZgA==", + "dev": true, + "requires": { + "@types/istanbul-lib-report": "*" + } + }, + "ansi-styles": { + "version": "4.3.0", + "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-4.3.0.tgz", + "integrity": "sha512-zbB9rCJAT1rbjiVDb2hqKFHNYLxgtk8NURxZ3IZwD3F6NtxbXZQCnnSi1Lkx+IDohdPlFp222wVALIheZJQSEg==", + "dev": true, + "requires": { + "color-convert": "^2.0.1" + } + }, + "chalk": { + "version": "4.1.0", + "resolved": "https://registry.npmjs.org/chalk/-/chalk-4.1.0.tgz", + "integrity": "sha512-qwx12AxXe2Q5xQ43Ac//I6v5aXTipYrSESdOgzrN+9XjgEpyjpKuvSGaN4qE93f7TQTlerQQ8S+EQ0EyDoVL1A==", + "dev": true, + "requires": { + "ansi-styles": "^4.1.0", + "supports-color": "^7.1.0" + } + }, + "color-convert": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/color-convert/-/color-convert-2.0.1.tgz", + "integrity": "sha512-RRECPsj7iu/xb5oKYcsFHSppFNnsj/52OVTRKb4zP5onXwVF3zVmmToNcOfGC+CRDpfK/U584fMg38ZHCaElKQ==", + "dev": true, + "requires": { + "color-name": "~1.1.4" + } + }, + "color-name": { + "version": "1.1.4", + "resolved": "https://registry.npmjs.org/color-name/-/color-name-1.1.4.tgz", + "integrity": "sha512-dOy+3AuW3a2wNbZHIuMZpTcgjGuLU/uBL/ubcZF9OXbDo8ff4O8yVp5Bf0efS8uEoYo5q4Fx7dY9OgQGXgAsQA==", + "dev": true + }, + "has-flag": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/has-flag/-/has-flag-4.0.0.tgz", + "integrity": "sha512-EykJT/Q1KjTWctppgIAgfSO0tKVuZUjhgMr17kqTumMl6Afv3EISleU7qZUzoXDFTAHTDC4NOoG/ZxU3EvlMPQ==", + "dev": true + }, + "supports-color": { + "version": "7.2.0", + "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-7.2.0.tgz", + "integrity": "sha512-qpCAvRl9stuOHveKsn7HncJRvv501qIacKzQlO/+Lwxc9+0q2wLyv4Dfvt80/DPn2pqOBsJdDiogXGR9+OvwRw==", + "dev": true, + "requires": { + "has-flag": "^4.0.0" + } + } + } + }, + "@jest/types": { + "version": "25.5.0", + "resolved": "https://registry.npmjs.org/@jest/types/-/types-25.5.0.tgz", + "integrity": "sha512-OXD0RgQ86Tu3MazKo8bnrkDRaDXXMGUqd+kTtLtK1Zb7CRzQcaSRPPPV37SvYTdevXEBVxe0HXylEjs8ibkmCw==", + "dev": true, + "requires": { + "@types/istanbul-lib-coverage": "^2.0.0", + "@types/istanbul-reports": "^1.1.1", + "@types/yargs": "^15.0.0", + "chalk": "^3.0.0" + }, + "dependencies": { + "ansi-styles": { + "version": "4.3.0", + "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-4.3.0.tgz", + "integrity": "sha512-zbB9rCJAT1rbjiVDb2hqKFHNYLxgtk8NURxZ3IZwD3F6NtxbXZQCnnSi1Lkx+IDohdPlFp222wVALIheZJQSEg==", + "dev": true, + "requires": { + "color-convert": "^2.0.1" + } + }, + "chalk": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/chalk/-/chalk-3.0.0.tgz", + "integrity": "sha512-4D3B6Wf41KOYRFdszmDqMCGq5VV/uMAB273JILmO+3jAlh8X4qDtdtgCR3fxtbLEMzSx22QdhnDcJvu2u1fVwg==", + "dev": true, + "requires": { + "ansi-styles": "^4.1.0", + "supports-color": "^7.1.0" + } + }, + "color-convert": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/color-convert/-/color-convert-2.0.1.tgz", + "integrity": "sha512-RRECPsj7iu/xb5oKYcsFHSppFNnsj/52OVTRKb4zP5onXwVF3zVmmToNcOfGC+CRDpfK/U584fMg38ZHCaElKQ==", + "dev": true, + "requires": { + "color-name": "~1.1.4" + } + }, + "color-name": { + "version": "1.1.4", + "resolved": "https://registry.npmjs.org/color-name/-/color-name-1.1.4.tgz", + "integrity": "sha512-dOy+3AuW3a2wNbZHIuMZpTcgjGuLU/uBL/ubcZF9OXbDo8ff4O8yVp5Bf0efS8uEoYo5q4Fx7dY9OgQGXgAsQA==", + "dev": true + }, + "has-flag": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/has-flag/-/has-flag-4.0.0.tgz", + "integrity": "sha512-EykJT/Q1KjTWctppgIAgfSO0tKVuZUjhgMr17kqTumMl6Afv3EISleU7qZUzoXDFTAHTDC4NOoG/ZxU3EvlMPQ==", + "dev": true + }, + "supports-color": { + "version": "7.2.0", + "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-7.2.0.tgz", + "integrity": "sha512-qpCAvRl9stuOHveKsn7HncJRvv501qIacKzQlO/+Lwxc9+0q2wLyv4Dfvt80/DPn2pqOBsJdDiogXGR9+OvwRw==", + "dev": true, + "requires": { + "has-flag": "^4.0.0" + } + } + } + }, + "@mrmlnc/readdir-enhanced": { + "version": "2.2.1", + "resolved": "https://registry.npmjs.org/@mrmlnc/readdir-enhanced/-/readdir-enhanced-2.2.1.tgz", + "integrity": "sha512-bPHp6Ji8b41szTOcaP63VlnbbO5Ny6dwAATtY6JTjh5N2OLrb5Qk/Th5cRkRQhkWCt+EJsYrNB0MiL+Gpn6e3g==", + "dev": true, + "requires": { + "call-me-maybe": "^1.0.1", + "glob-to-regexp": "^0.3.0" + } + }, + "@nodelib/fs.scandir": { + "version": "2.1.3", + "resolved": "https://registry.npmjs.org/@nodelib/fs.scandir/-/fs.scandir-2.1.3.tgz", + "integrity": "sha512-eGmwYQn3gxo4r7jdQnkrrN6bY478C3P+a/y72IJukF8LjB6ZHeB3c+Ehacj3sYeSmUXGlnA67/PmbM9CVwL7Dw==", + "dev": true, + "requires": { + "@nodelib/fs.stat": "2.0.3", + "run-parallel": "^1.1.9" + } + }, + "@nodelib/fs.stat": { + "version": "2.0.3", + "resolved": "https://registry.npmjs.org/@nodelib/fs.stat/-/fs.stat-2.0.3.tgz", + "integrity": "sha512-bQBFruR2TAwoevBEd/NWMoAAtNGzTRgdrqnYCc7dhzfoNvqPzLyqlEQnzZ3kVnNrSp25iyxE00/3h2fqGAGArA==", + "dev": true + }, + "@nodelib/fs.walk": { + "version": "1.2.4", + "resolved": "https://registry.npmjs.org/@nodelib/fs.walk/-/fs.walk-1.2.4.tgz", + "integrity": "sha512-1V9XOY4rDW0rehzbrcqAmHnz8e7SKvX27gh8Gt2WgB0+pdzdiLV83p72kZPU+jvMbS1qU5mauP2iOvO8rhmurQ==", + "dev": true, + "requires": { + "@nodelib/fs.scandir": "2.1.3", + "fastq": "^1.6.0" + } + }, + "@parcel/fs": { + "version": "1.11.0", + "resolved": "https://registry.npmjs.org/@parcel/fs/-/fs-1.11.0.tgz", + "integrity": "sha512-86RyEqULbbVoeo8OLcv+LQ1Vq2PKBAvWTU9fCgALxuCTbbs5Ppcvll4Vr+Ko1AnmMzja/k++SzNAwJfeQXVlpA==", + "dev": true, + "requires": { + "@parcel/utils": "^1.11.0", + "mkdirp": "^0.5.1", + "rimraf": "^2.6.2" + }, + "dependencies": { + "minimist": { + "version": "1.2.5", + "resolved": "https://registry.npmjs.org/minimist/-/minimist-1.2.5.tgz", + "integrity": "sha512-FM9nNUYrRBAELZQT3xeZQ7fmMOBg6nWNmJKTcgsJeaLstP/UODVpGsr5OhXhhXg6f+qtJ8uiZ+PUxkDWcgIXLw==", + "dev": true + }, + "mkdirp": { + "version": "0.5.5", + "resolved": "https://registry.npmjs.org/mkdirp/-/mkdirp-0.5.5.tgz", + "integrity": "sha512-NKmAlESf6jMGym1++R0Ra7wvhV+wFW63FaSOFPwRahvea0gMUcGUhVeAg/0BC0wiv9ih5NYPB1Wn1UEI1/L+xQ==", + "dev": true, + "requires": { + "minimist": "^1.2.5" + } + } + } + }, + "@parcel/logger": { + "version": "1.11.1", + "resolved": "https://registry.npmjs.org/@parcel/logger/-/logger-1.11.1.tgz", + "integrity": "sha512-9NF3M6UVeP2udOBDILuoEHd8VrF4vQqoWHEafymO1pfSoOMfxrSJZw1MfyAAIUN/IFp9qjcpDCUbDZB+ioVevA==", + "dev": true, + "requires": { + "@parcel/workers": "^1.11.0", + "chalk": "^2.1.0", + "grapheme-breaker": "^0.3.2", + "ora": "^2.1.0", + "strip-ansi": "^4.0.0" + } + }, + "@parcel/utils": { + "version": "1.11.0", + "resolved": "https://registry.npmjs.org/@parcel/utils/-/utils-1.11.0.tgz", + "integrity": "sha512-cA3p4jTlaMeOtAKR/6AadanOPvKeg8VwgnHhOyfi0yClD0TZS/hi9xu12w4EzA/8NtHu0g6o4RDfcNjqN8l1AQ==", + "dev": true + }, + "@parcel/watcher": { + "version": "1.12.1", + "resolved": "https://registry.npmjs.org/@parcel/watcher/-/watcher-1.12.1.tgz", + "integrity": "sha512-od+uCtCxC/KoNQAIE1vWx1YTyKYY+7CTrxBJPRh3cDWw/C0tCtlBMVlrbplscGoEpt6B27KhJDCv82PBxOERNA==", + "dev": true, + "requires": { + "@parcel/utils": "^1.11.0", + "chokidar": "^2.1.5" + } + }, + "@parcel/workers": { + "version": "1.11.0", + "resolved": "https://registry.npmjs.org/@parcel/workers/-/workers-1.11.0.tgz", + "integrity": "sha512-USSjRAAQYsZFlv43FUPdD+jEGML5/8oLF0rUzPQTtK4q9kvaXr49F5ZplyLz5lox78cLZ0TxN2bIDQ1xhOkulQ==", + "dev": true, + "requires": { + "@parcel/utils": "^1.11.0", + "physical-cpu-count": "^2.0.0" + } + }, + "@sindresorhus/is": { + "version": "0.14.0", + "resolved": "https://registry.npmjs.org/@sindresorhus/is/-/is-0.14.0.tgz", + "integrity": "sha512-9NET910DNaIPngYnLLPeg+Ogzqsi9uM4mSboU5y6p8S5DzMTVEsJZrawi+BoDNUVBa2DhJqQYUFvMDfgU062LQ==", + "dev": true + }, + "@sinonjs/commons": { + "version": "1.8.1", + "resolved": "https://registry.npmjs.org/@sinonjs/commons/-/commons-1.8.1.tgz", + "integrity": "sha512-892K+kWUUi3cl+LlqEWIDrhvLgdL79tECi8JZUyq6IviKy/DNhuzCRlbHUjxK89f4ypPMMaFnFuR9Ie6DoIMsw==", + "dev": true, + "requires": { + "type-detect": "4.0.8" + } + }, + "@sinonjs/fake-timers": { + "version": "6.0.1", + "resolved": "https://registry.npmjs.org/@sinonjs/fake-timers/-/fake-timers-6.0.1.tgz", + "integrity": "sha512-MZPUxrmFubI36XS1DI3qmI0YdN1gks62JtFZvxR67ljjSNCeK6U08Zx4msEWOXuofgqUt6zPHSi1H9fbjR/NRA==", + "dev": true, + "requires": { + "@sinonjs/commons": "^1.7.0" + } + }, + "@szmarczak/http-timer": { + "version": "1.1.2", + "resolved": "https://registry.npmjs.org/@szmarczak/http-timer/-/http-timer-1.1.2.tgz", + "integrity": "sha512-XIB2XbzHTN6ieIjfIMV9hlVcfPU26s2vafYWQcZHWXHOxiaRZYEDKEwdl129Zyg50+foYV2jCgtrqSA6qNuNSA==", + "dev": true, + "requires": { + "defer-to-connect": "^1.0.1" + } + }, + "@tootallnate/once": { + "version": "1.1.2", + "resolved": "https://registry.npmjs.org/@tootallnate/once/-/once-1.1.2.tgz", + "integrity": "sha512-RbzJvlNzmRq5c3O09UipeuXno4tA1FE6ikOjxZK0tuxVv3412l64l5t1W5pj4+rJq9vpkm/kwiR07aZXnsKPxw==", + "dev": true + }, + "@types/babel__core": { + "version": "7.1.12", + "resolved": "https://registry.npmjs.org/@types/babel__core/-/babel__core-7.1.12.tgz", + "integrity": "sha512-wMTHiiTiBAAPebqaPiPDLFA4LYPKr6Ph0Xq/6rq1Ur3v66HXyG+clfR9CNETkD7MQS8ZHvpQOtA53DLws5WAEQ==", + "dev": true, + "requires": { + "@babel/parser": "^7.1.0", + "@babel/types": "^7.0.0", + "@types/babel__generator": "*", + "@types/babel__template": "*", + "@types/babel__traverse": "*" + } + }, + "@types/babel__generator": { + "version": "7.6.2", + "resolved": "https://registry.npmjs.org/@types/babel__generator/-/babel__generator-7.6.2.tgz", + "integrity": "sha512-MdSJnBjl+bdwkLskZ3NGFp9YcXGx5ggLpQQPqtgakVhsWK0hTtNYhjpZLlWQTviGTvF8at+Bvli3jV7faPdgeQ==", + "dev": true, + "requires": { + "@babel/types": "^7.0.0" + } + }, + "@types/babel__template": { + "version": "7.4.0", + "resolved": "https://registry.npmjs.org/@types/babel__template/-/babel__template-7.4.0.tgz", + "integrity": "sha512-NTPErx4/FiPCGScH7foPyr+/1Dkzkni+rHiYHHoTjvwou7AQzJkNeD60A9CXRy+ZEN2B1bggmkTMCDb+Mv5k+A==", + "dev": true, + "requires": { + "@babel/parser": "^7.1.0", + "@babel/types": "^7.0.0" + } + }, + "@types/babel__traverse": { + "version": "7.11.0", + "resolved": "https://registry.npmjs.org/@types/babel__traverse/-/babel__traverse-7.11.0.tgz", + "integrity": "sha512-kSjgDMZONiIfSH1Nxcr5JIRMwUetDki63FSQfpTCz8ogF3Ulqm8+mr5f78dUYs6vMiB6gBusQqfQmBvHZj/lwg==", + "dev": true, + "requires": { + "@babel/types": "^7.3.0" + } + }, + "@types/graceful-fs": { + "version": "4.1.4", + "resolved": "https://registry.npmjs.org/@types/graceful-fs/-/graceful-fs-4.1.4.tgz", + "integrity": "sha512-mWA/4zFQhfvOA8zWkXobwJvBD7vzcxgrOQ0J5CH1votGqdq9m7+FwtGaqyCZqC3NyyBkc9z4m+iry4LlqcMWJg==", + "dev": true, + "requires": { + "@types/node": "*" + } + }, + "@types/istanbul-lib-coverage": { + "version": "2.0.3", + "resolved": "https://registry.npmjs.org/@types/istanbul-lib-coverage/-/istanbul-lib-coverage-2.0.3.tgz", + "integrity": "sha512-sz7iLqvVUg1gIedBOvlkxPlc8/uVzyS5OwGz1cKjXzkl3FpL3al0crU8YGU1WoHkxn0Wxbw5tyi6hvzJKNzFsw==", + "dev": true + }, + "@types/istanbul-lib-report": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/@types/istanbul-lib-report/-/istanbul-lib-report-3.0.0.tgz", + "integrity": "sha512-plGgXAPfVKFoYfa9NpYDAkseG+g6Jr294RqeqcqDixSbU34MZVJRi/P+7Y8GDpzkEwLaGZZOpKIEmeVZNtKsrg==", + "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/jest": { + "version": "25.2.3", + "resolved": "https://registry.npmjs.org/@types/jest/-/jest-25.2.3.tgz", + "integrity": "sha512-JXc1nK/tXHiDhV55dvfzqtmP4S3sy3T3ouV2tkViZgxY/zeUkcpQcQPGRlgF4KmWzWW5oiWYSZwtCB+2RsE4Fw==", + "dev": true, + "requires": { + "jest-diff": "^25.2.1", + "pretty-format": "^25.2.1" + } + }, + "@types/json-schema": { + "version": "7.0.6", + "resolved": "https://registry.npmjs.org/@types/json-schema/-/json-schema-7.0.6.tgz", + "integrity": "sha512-3c+yGKvVP5Y9TYBEibGNR+kLtijnj7mYrXRg+WpFb2X9xm04g/DXYkfg4hmzJQosc9snFNUPkbYIhu+KAm6jJw==", + "dev": true + }, + "@types/minimatch": { + "version": "3.0.3", + "resolved": "https://registry.npmjs.org/@types/minimatch/-/minimatch-3.0.3.tgz", + "integrity": "sha512-tHq6qdbT9U1IRSGf14CL0pUlULksvY9OZ+5eEgl1N7t+OA3tGvNpxJCzuKQlsNgCVwbAs670L1vcVQi8j9HjnA==", + "dev": true + }, + "@types/minimist": { + "version": "1.2.1", + "resolved": "https://registry.npmjs.org/@types/minimist/-/minimist-1.2.1.tgz", + "integrity": "sha512-fZQQafSREFyuZcdWFAExYjBiCL7AUCdgsk80iO0q4yihYYdcIiH28CcuPTGFgLOCC8RlW49GSQxdHwZP+I7CNg==", + "dev": true + }, + "@types/node": { + "version": "14.0.4", + "resolved": "https://registry.npmjs.org/@types/node/-/node-14.0.4.tgz", + "integrity": "sha512-k3NqigXWRzQZVBDS5D1U70A5E8Qk4Kh+Ha/x4M8Bt9pF0X05eggfnC9+63Usc9Q928hRUIpIhTQaXsZwZBl4Ew==", + "dev": true + }, + "@types/normalize-package-data": { + "version": "2.4.0", + "resolved": "https://registry.npmjs.org/@types/normalize-package-data/-/normalize-package-data-2.4.0.tgz", + "integrity": "sha512-f5j5b/Gf71L+dbqxIpQ4Z2WlmI/mPJ0fOkGGmFgtb6sAu97EPczzbS3/tJKxmcYDj55OX6ssqwDAWOHIYDRDGA==", + "dev": true + }, + "@types/parse-json": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/@types/parse-json/-/parse-json-4.0.0.tgz", + "integrity": "sha512-//oorEZjL6sbPcKUaCdIGlIUeH26mgzimjBB77G6XRgnDl/L5wOnpyBGRe/Mmf5CVW3PwEBE1NjiMZ/ssFh4wA==", + "dev": true, + "optional": true + }, + "@types/prettier": { + "version": "2.1.6", + "resolved": "https://registry.npmjs.org/@types/prettier/-/prettier-2.1.6.tgz", + "integrity": "sha512-6gOkRe7OIioWAXfnO/2lFiv+SJichKVSys1mSsgyrYHSEjk8Ctv4tSR/Odvnu+HWlH2C8j53dahU03XmQdd5fA==", + "dev": true + }, + "@types/q": { + "version": "1.5.4", + "resolved": "https://registry.npmjs.org/@types/q/-/q-1.5.4.tgz", + "integrity": "sha512-1HcDas8SEj4z1Wc696tH56G8OlRaH/sqZOynNNB+HF0WOeXPaxTtbYzJY2oEfiUxjSKjhCKr+MvR7dCHcEelug==", + "dev": true + }, + "@types/stack-utils": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/@types/stack-utils/-/stack-utils-2.0.0.tgz", + "integrity": "sha512-RJJrrySY7A8havqpGObOB4W92QXKJo63/jFLLgpvOtsGUqbQZ9Sbgl35KMm1DjC6j7AvmmU2bIno+3IyEaemaw==", + "dev": true + }, + "@types/yargs": { + "version": "15.0.12", + "resolved": "https://registry.npmjs.org/@types/yargs/-/yargs-15.0.12.tgz", + "integrity": "sha512-f+fD/fQAo3BCbCDlrUpznF1A5Zp9rB0noS5vnoormHSIPFKL0Z2DcUJ3Gxp5ytH4uLRNxy7AwYUC9exZzqGMAw==", + "dev": true, + "requires": { + "@types/yargs-parser": "*" + } + }, + "@types/yargs-parser": { + "version": "15.0.0", + "resolved": "https://registry.npmjs.org/@types/yargs-parser/-/yargs-parser-15.0.0.tgz", + "integrity": "sha512-FA/BWv8t8ZWJ+gEOnLLd8ygxH/2UFbAvgEonyfN6yWGLKc7zVjbpl2Y4CTjid9h2RfgPP6SEt6uHwEOply00yw==", + "dev": true + }, + "@typescript-eslint/eslint-plugin": { + "version": "4.8.2", + "resolved": "https://registry.npmjs.org/@typescript-eslint/eslint-plugin/-/eslint-plugin-4.8.2.tgz", + "integrity": "sha512-gQ06QLV5l1DtvYtqOyFLXD9PdcILYqlrJj2l+CGDlPtmgLUzc1GpqciJFIRvyfvgLALpnxYINFuw+n9AZhPBKQ==", + "dev": true, + "requires": { + "@typescript-eslint/experimental-utils": "4.8.2", + "@typescript-eslint/scope-manager": "4.8.2", + "debug": "^4.1.1", + "functional-red-black-tree": "^1.0.1", + "regexpp": "^3.0.0", + "semver": "^7.3.2", + "tsutils": "^3.17.1" + }, + "dependencies": { + "semver": { + "version": "7.3.4", + "resolved": "https://registry.npmjs.org/semver/-/semver-7.3.4.tgz", + "integrity": "sha512-tCfb2WLjqFAtXn4KEdxIhalnRtoKFN7nAwj0B3ZXCbQloV2tq5eDbcTmT68JJD3nRJq24/XgxtQKFIpQdtvmVw==", + "dev": true, + "requires": { + "lru-cache": "^6.0.0" + } + } + } + }, + "@typescript-eslint/experimental-utils": { + "version": "4.8.2", + "resolved": "https://registry.npmjs.org/@typescript-eslint/experimental-utils/-/experimental-utils-4.8.2.tgz", + "integrity": "sha512-hpTw6o6IhBZEsQsjuw/4RWmceRyESfAiEzAEnXHKG1X7S5DXFaZ4IO1JO7CW1aQ604leQBzjZmuMI9QBCAJX8Q==", + "dev": true, + "requires": { + "@types/json-schema": "^7.0.3", + "@typescript-eslint/scope-manager": "4.8.2", + "@typescript-eslint/types": "4.8.2", + "@typescript-eslint/typescript-estree": "4.8.2", + "eslint-scope": "^5.0.0", + "eslint-utils": "^2.0.0" + } + }, + "@typescript-eslint/parser": { + "version": "4.8.2", + "resolved": "https://registry.npmjs.org/@typescript-eslint/parser/-/parser-4.8.2.tgz", + "integrity": "sha512-u0leyJqmclYr3KcXOqd2fmx6SDGBO0MUNHHAjr0JS4Crbb3C3d8dwAdlazy133PLCcPn+aOUFiHn72wcuc5wYw==", + "dev": true, + "requires": { + "@typescript-eslint/scope-manager": "4.8.2", + "@typescript-eslint/types": "4.8.2", + "@typescript-eslint/typescript-estree": "4.8.2", + "debug": "^4.1.1" + } + }, + "@typescript-eslint/scope-manager": { + "version": "4.8.2", + "resolved": "https://registry.npmjs.org/@typescript-eslint/scope-manager/-/scope-manager-4.8.2.tgz", + "integrity": "sha512-qHQ8ODi7mMin4Sq2eh/6eu03uVzsf5TX+J43xRmiq8ujng7ViQSHNPLOHGw/Wr5dFEoxq/ubKhzClIIdQy5q3g==", + "dev": true, + "requires": { + "@typescript-eslint/types": "4.8.2", + "@typescript-eslint/visitor-keys": "4.8.2" + } + }, + "@typescript-eslint/types": { + "version": "4.8.2", + "resolved": "https://registry.npmjs.org/@typescript-eslint/types/-/types-4.8.2.tgz", + "integrity": "sha512-z1/AVcVF8ju5ObaHe2fOpZYEQrwHyZ7PTOlmjd3EoFeX9sv7UekQhfrCmgUO7PruLNfSHrJGQvrW3Q7xQ8EoAw==", + "dev": true + }, + "@typescript-eslint/typescript-estree": { + "version": "4.8.2", + "resolved": "https://registry.npmjs.org/@typescript-eslint/typescript-estree/-/typescript-estree-4.8.2.tgz", + "integrity": "sha512-HToGNwI6fekH0dOw3XEVESUm71Onfam0AKin6f26S2FtUmO7o3cLlWgrIaT1q3vjB3wCTdww3Dx2iGq5wtUOCg==", + "dev": true, + "requires": { + "@typescript-eslint/types": "4.8.2", + "@typescript-eslint/visitor-keys": "4.8.2", + "debug": "^4.1.1", + "globby": "^11.0.1", + "is-glob": "^4.0.1", + "lodash": "^4.17.15", + "semver": "^7.3.2", + "tsutils": "^3.17.1" + }, + "dependencies": { + "semver": { + "version": "7.3.4", + "resolved": "https://registry.npmjs.org/semver/-/semver-7.3.4.tgz", + "integrity": "sha512-tCfb2WLjqFAtXn4KEdxIhalnRtoKFN7nAwj0B3ZXCbQloV2tq5eDbcTmT68JJD3nRJq24/XgxtQKFIpQdtvmVw==", + "dev": true, + "requires": { + "lru-cache": "^6.0.0" + } + } + } + }, + "@typescript-eslint/visitor-keys": { + "version": "4.8.2", + "resolved": "https://registry.npmjs.org/@typescript-eslint/visitor-keys/-/visitor-keys-4.8.2.tgz", + "integrity": "sha512-Vg+/SJTMZJEKKGHW7YC21QxgKJrSbxoYYd3MEUGtW7zuytHuEcksewq0DUmo4eh/CTNrVJGSdIY9AtRb6riWFw==", + "dev": true, + "requires": { + "@typescript-eslint/types": "4.8.2", + "eslint-visitor-keys": "^2.0.0" + } + }, + "JSONStream": { + "version": "1.3.5", + "resolved": "https://registry.npmjs.org/JSONStream/-/JSONStream-1.3.5.tgz", + "integrity": "sha512-E+iruNOY8VV9s4JEbe1aNEm6MiszPRr/UfcHMz0TQh1BXSxHK+ASV1R6W4HpjBhSeS+54PIsAMCBmwD06LLsqQ==", + "dev": true, + "requires": { + "jsonparse": "^1.2.0", + "through": ">=2.2.7 <3" + } + }, + "abab": { + "version": "2.0.5", + "resolved": "https://registry.npmjs.org/abab/-/abab-2.0.5.tgz", + "integrity": "sha512-9IK9EadsbHo6jLWIpxpR6pL0sazTXV6+SQv25ZB+F7Bj9mJNaOc4nCRabwd5M/JwmUa8idz6Eci6eKfJryPs6Q==", + "dev": true + }, + "abbrev": { + "version": "1.1.1", + "resolved": "https://registry.npmjs.org/abbrev/-/abbrev-1.1.1.tgz", + "integrity": "sha512-nne9/IiQ/hzIhY6pdDnbBtz7DjPTKrY00P/zvPSm5pOFkl6xuGrGnXn/VtTNNfNtAfZ9/1RtehkszU9qcTii0Q==", + "dev": true + }, + "accepts": { + "version": "1.3.7", + "resolved": "https://registry.npmjs.org/accepts/-/accepts-1.3.7.tgz", + "integrity": "sha512-Il80Qs2WjYlJIBNzNkK6KYqlVMTbZLXgHx2oT0pU/fjRHyEp+PEfEPY0R3WCwAGVOtauxh1hOxNgIf5bv7dQpA==", + "dev": true, + "requires": { + "mime-types": "~2.1.24", + "negotiator": "0.6.2" + } + }, + "acorn": { + "version": "7.4.1", + "resolved": "https://registry.npmjs.org/acorn/-/acorn-7.4.1.tgz", + "integrity": "sha512-nQyp0o1/mNdbTO1PO6kHkwSrmgZ0MT/jCCpNiwbUjGoRN4dlBhqJtoQuCnEOKzgTVwg0ZWiCoQy6SxMebQVh8A==", + "dev": true + }, + "acorn-globals": { + "version": "4.3.4", + "resolved": "https://registry.npmjs.org/acorn-globals/-/acorn-globals-4.3.4.tgz", + "integrity": "sha512-clfQEh21R+D0leSbUdWf3OcfqyaCSAQ8Ryq00bofSekfr9W8u1jyYZo6ir0xu9Gtcf7BjcHJpnbZH7JOCpP60A==", + "dev": true, + "requires": { + "acorn": "^6.0.1", + "acorn-walk": "^6.0.1" + }, + "dependencies": { + "acorn": { + "version": "6.4.2", + "resolved": "https://registry.npmjs.org/acorn/-/acorn-6.4.2.tgz", + "integrity": "sha512-XtGIhXwF8YM8bJhGxG5kXgjkEuNGLTkoYqVE+KMR+aspr4KGYmKYg7yUe3KghyQ9yheNwLnjmzh/7+gfDBmHCQ==", + "dev": true + } + } + }, + "acorn-jsx": { + "version": "5.3.1", + "resolved": "https://registry.npmjs.org/acorn-jsx/-/acorn-jsx-5.3.1.tgz", + "integrity": "sha512-K0Ptm/47OKfQRpNQ2J/oIN/3QYiK6FwW+eJbILhsdxh2WTLdl+30o8aGdTbm5JbffpFFAg/g+zi1E+jvJha5ng==", + "dev": true + }, + "acorn-walk": { + "version": "6.2.0", + "resolved": "https://registry.npmjs.org/acorn-walk/-/acorn-walk-6.2.0.tgz", + "integrity": "sha512-7evsyfH1cLOCdAzZAd43Cic04yKydNx0cF+7tiA19p1XnLLPU4dpCQOqpjqwokFe//vS0QqfqqjCS2JkiIs0cA==", + "dev": true + }, + "add-stream": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/add-stream/-/add-stream-1.0.0.tgz", + "integrity": "sha1-anmQQ3ynNtXhKI25K9MmbV9csqo=", + "dev": true + }, + "agent-base": { + "version": "6.0.2", + "resolved": "https://registry.npmjs.org/agent-base/-/agent-base-6.0.2.tgz", + "integrity": "sha512-RZNwNclF7+MS/8bDg70amg32dyeZGZxiDuQmZxKLAlQjr3jGyLx+4Kkk58UO7D2QdgFIQCovuSuZESne6RG6XQ==", + "dev": true, + "requires": { + "debug": "4" + } + }, + "ajv": { + "version": "6.12.6", + "resolved": "https://registry.npmjs.org/ajv/-/ajv-6.12.6.tgz", + "integrity": "sha512-j3fVLgvTo527anyYyJOGTYJbG+vnnQYvE0m5mmkc1TK+nxAppkCLMIL0aZ4dblVCNoGShhm+kzE4ZUykBoMg4g==", + "dev": true, + "requires": { + "fast-deep-equal": "^3.1.1", + "fast-json-stable-stringify": "^2.0.0", + "json-schema-traverse": "^0.4.1", + "uri-js": "^4.2.2" + } + }, + "alphanum-sort": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/alphanum-sort/-/alphanum-sort-1.0.2.tgz", + "integrity": "sha1-l6ERlkmyEa0zaR2fn0hqjsn74KM=", + "dev": true + }, + "ansi-align": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/ansi-align/-/ansi-align-3.0.0.tgz", + "integrity": "sha512-ZpClVKqXN3RGBmKibdfWzqCY4lnjEuoNzU5T0oEFpfd/z5qJHVarukridD4juLO2FXMiwUQxr9WqQtaYa8XRYw==", + "dev": true, + "requires": { + "string-width": "^3.0.0" + }, + "dependencies": { + "ansi-regex": { + "version": "4.1.0", + "resolved": "https://registry.npmjs.org/ansi-regex/-/ansi-regex-4.1.0.tgz", + "integrity": "sha512-1apePfXM1UOSqw0o9IiFAovVz9M5S1Dg+4TrDwfMewQ6p/rmMueb7tWZjQ1rx4Loy1ArBggoqGpfqqdI4rondg==", + "dev": true + }, + "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" + } + } + } + }, + "ansi-colors": { + "version": "4.1.1", + "resolved": "https://registry.npmjs.org/ansi-colors/-/ansi-colors-4.1.1.tgz", + "integrity": "sha512-JoX0apGbHaUJBNl6yF+p6JAFYZ666/hhCGKN5t9QFjbJQKUU/g8MNbFDbvfrgKXvI1QpZplPOnwIo99lX/AAmA==", + "dev": true + }, + "ansi-escapes": { + "version": "3.2.0", + "resolved": "https://registry.npmjs.org/ansi-escapes/-/ansi-escapes-3.2.0.tgz", + "integrity": "sha512-cBhpre4ma+U0T1oM5fXg7Dy1Jw7zzwv7lt/GoCpr+hDQJoYnKVPLL4dCvSEFMmQurOQvSrwT7SL/DAlhBI97RQ==", + "dev": true + }, + "ansi-regex": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/ansi-regex/-/ansi-regex-3.0.0.tgz", + "integrity": "sha1-7QMXwyIGT3lGbAKWa922Bas32Zg=", + "dev": true + }, + "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" + } + }, + "ansi-to-html": { + "version": "0.6.14", + "resolved": "https://registry.npmjs.org/ansi-to-html/-/ansi-to-html-0.6.14.tgz", + "integrity": "sha512-7ZslfB1+EnFSDO5Ju+ue5Y6It19DRnZXWv8jrGHgIlPna5Mh4jz7BV5jCbQneXNFurQcKoolaaAjHtgSBfOIuA==", + "dev": true, + "requires": { + "entities": "^1.1.2" + } + }, + "anymatch": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/anymatch/-/anymatch-2.0.0.tgz", + "integrity": "sha512-5teOsQWABXHHBFP9y3skS5P3d/WfWXpv3FUpy+LorMrNYaT9pI4oLMQX7jzQ2KklNpGpWHzdCXTDT2Y3XGlZBw==", + "dev": true, + "requires": { + "micromatch": "^3.1.4", + "normalize-path": "^2.1.1" + }, + "dependencies": { + "braces": { + "version": "2.3.2", + "resolved": "https://registry.npmjs.org/braces/-/braces-2.3.2.tgz", + "integrity": "sha512-aNdbnj9P8PjdXU4ybaWLK2IF3jc/EoDYbC7AazW6to3TRsfXxscC9UXOB5iDiEQrkyIbWp2SLQda4+QAa7nc3w==", + "dev": true, + "requires": { + "arr-flatten": "^1.1.0", + "array-unique": "^0.3.2", + "extend-shallow": "^2.0.1", + "fill-range": "^4.0.0", + "isobject": "^3.0.1", + "repeat-element": "^1.1.2", + "snapdragon": "^0.8.1", + "snapdragon-node": "^2.0.1", + "split-string": "^3.0.2", + "to-regex": "^3.0.1" + }, + "dependencies": { + "extend-shallow": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/extend-shallow/-/extend-shallow-2.0.1.tgz", + "integrity": "sha1-Ua99YUrZqfYQ6huvu5idaxxWiQ8=", + "dev": true, + "requires": { + "is-extendable": "^0.1.0" + } + } + } + }, + "fill-range": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/fill-range/-/fill-range-4.0.0.tgz", + "integrity": "sha1-1USBHUKPmOsGpj3EAtJAPDKMOPc=", + "dev": true, + "requires": { + "extend-shallow": "^2.0.1", + "is-number": "^3.0.0", + "repeat-string": "^1.6.1", + "to-regex-range": "^2.1.0" + }, + "dependencies": { + "extend-shallow": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/extend-shallow/-/extend-shallow-2.0.1.tgz", + "integrity": "sha1-Ua99YUrZqfYQ6huvu5idaxxWiQ8=", + "dev": true, + "requires": { + "is-extendable": "^0.1.0" + } + } + } + }, + "is-number": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/is-number/-/is-number-3.0.0.tgz", + "integrity": "sha1-JP1iAaR4LPUFYcgQJ2r8fRLXEZU=", + "dev": true, + "requires": { + "kind-of": "^3.0.2" + }, + "dependencies": { + "kind-of": { + "version": "3.2.2", + "resolved": "https://registry.npmjs.org/kind-of/-/kind-of-3.2.2.tgz", + "integrity": "sha1-MeohpzS6ubuw8yRm2JOupR5KPGQ=", + "dev": true, + "requires": { + "is-buffer": "^1.1.5" + } + } + } + }, + "micromatch": { + "version": "3.1.10", + "resolved": "https://registry.npmjs.org/micromatch/-/micromatch-3.1.10.tgz", + "integrity": "sha512-MWikgl9n9M3w+bpsY3He8L+w9eF9338xRl8IAO5viDizwSzziFEyUzo2xrrloB64ADbTf8uA8vRqqttDTOmccg==", + "dev": true, + "requires": { + "arr-diff": "^4.0.0", + "array-unique": "^0.3.2", + "braces": "^2.3.1", + "define-property": "^2.0.2", + "extend-shallow": "^3.0.2", + "extglob": "^2.0.4", + "fragment-cache": "^0.2.1", + "kind-of": "^6.0.2", + "nanomatch": "^1.2.9", + "object.pick": "^1.3.0", + "regex-not": "^1.0.0", + "snapdragon": "^0.8.1", + "to-regex": "^3.0.2" + } + }, + "normalize-path": { + "version": "2.1.1", + "resolved": "https://registry.npmjs.org/normalize-path/-/normalize-path-2.1.1.tgz", + "integrity": "sha1-GrKLVW4Zg2Oowab35vogE3/mrtk=", + "dev": true, + "requires": { + "remove-trailing-separator": "^1.0.1" + } + }, + "to-regex-range": { + "version": "2.1.1", + "resolved": "https://registry.npmjs.org/to-regex-range/-/to-regex-range-2.1.1.tgz", + "integrity": "sha1-fIDBe53+vlmeJzZ+DU3VWQFB2zg=", + "dev": true, + "requires": { + "is-number": "^3.0.0", + "repeat-string": "^1.6.1" + } + } + } + }, + "apache-crypt": { + "version": "1.2.4", + "resolved": "https://registry.npmjs.org/apache-crypt/-/apache-crypt-1.2.4.tgz", + "integrity": "sha512-Icze5ny5W5uv3xgMgl8U+iGmRCC0iIDrb2PVPuRBtL3Zy1Y5TMewXP1Vtc4r5X9eNNBEk7KYPu0Qby9m/PmcHg==", + "dev": true, + "requires": { + "unix-crypt-td-js": "^1.1.4" + } + }, + "apache-md5": { + "version": "1.1.5", + "resolved": "https://registry.npmjs.org/apache-md5/-/apache-md5-1.1.5.tgz", + "integrity": "sha512-sbLEIMQrkV7RkIruqTPXxeCMkAAycv4yzTkBzRgOR1BrR5UB7qZtupqxkersTJSf0HZ3sbaNRrNV80TnnM7cUw==", + "dev": true + }, + "argparse": { + "version": "1.0.10", + "resolved": "https://registry.npmjs.org/argparse/-/argparse-1.0.10.tgz", + "integrity": "sha512-o5Roy6tNG4SL/FOkCAN6RzjiakZS25RLYFrcMttJqbdd8BWrnA+fGz57iN5Pb06pvBGvl5gQ0B48dJlslXvoTg==", + "dev": true, + "requires": { + "sprintf-js": "~1.0.2" + } + }, + "argv": { + "version": "0.0.2", + "resolved": "https://registry.npmjs.org/argv/-/argv-0.0.2.tgz", + "integrity": "sha1-7L0W+JSbFXGDcRsb2jNPN4QBhas=", + "dev": true + }, + "arr-diff": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/arr-diff/-/arr-diff-4.0.0.tgz", + "integrity": "sha1-1kYQdP6/7HHn4VI1dhoyml3HxSA=", + "dev": true + }, + "arr-flatten": { + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/arr-flatten/-/arr-flatten-1.1.0.tgz", + "integrity": "sha512-L3hKV5R/p5o81R7O02IGnwpDmkp6E982XhtbuwSe3O4qOtMMMtodicASA1Cny2U+aCXcNpml+m4dPsvsJ3jatg==", + "dev": true + }, + "arr-union": { + "version": "3.1.0", + "resolved": "https://registry.npmjs.org/arr-union/-/arr-union-3.1.0.tgz", + "integrity": "sha1-45sJrqne+Gao8gbiiK9jkZuuOcQ=", + "dev": true + }, + "array-equal": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/array-equal/-/array-equal-1.0.0.tgz", + "integrity": "sha1-jCpe8kcv2ep0KwTHenUJO6J1fJM=", + "dev": true + }, + "array-find-index": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/array-find-index/-/array-find-index-1.0.2.tgz", + "integrity": "sha1-3wEKoSh+Fku9pvlyOwqWoexBh6E=", + "dev": true + }, + "array-ify": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/array-ify/-/array-ify-1.0.0.tgz", + "integrity": "sha1-nlKHYrSpBmrRY6aWKjZEGOlibs4=", + "dev": true + }, + "array-includes": { + "version": "3.1.2", + "resolved": "https://registry.npmjs.org/array-includes/-/array-includes-3.1.2.tgz", + "integrity": "sha512-w2GspexNQpx+PutG3QpT437/BenZBj0M/MZGn5mzv/MofYqo0xmRHzn4lFsoDlWJ+THYsGJmFlW68WlDFx7VRw==", + "dev": true, + "requires": { + "call-bind": "^1.0.0", + "define-properties": "^1.1.3", + "es-abstract": "^1.18.0-next.1", + "get-intrinsic": "^1.0.1", + "is-string": "^1.0.5" + } + }, + "array-union": { + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/array-union/-/array-union-2.1.0.tgz", + "integrity": "sha512-HGyxoOTYUyCM6stUe6EJgnd4EoewAI7zMdfqO+kGjnlZmBDz/cR5pf8r/cR4Wq60sL/p0IkcjUEEPwS3GFrIyw==", + "dev": true + }, + "array-uniq": { + "version": "1.0.3", + "resolved": "https://registry.npmjs.org/array-uniq/-/array-uniq-1.0.3.tgz", + "integrity": "sha1-r2rId6Jcx/dOBYiUdThY39sk/bY=", + "dev": true + }, + "array-unique": { + "version": "0.3.2", + "resolved": "https://registry.npmjs.org/array-unique/-/array-unique-0.3.2.tgz", + "integrity": "sha1-qJS3XUvE9s1nnvMkSp/Y9Gri1Cg=", + "dev": true + }, + "array.prototype.flat": { + "version": "1.2.4", + "resolved": "https://registry.npmjs.org/array.prototype.flat/-/array.prototype.flat-1.2.4.tgz", + "integrity": "sha512-4470Xi3GAPAjZqFcljX2xzckv1qeKPizoNkiS0+O4IoPR2ZNpcjE0pkhdihlDouK+x6QOast26B4Q/O9DJnwSg==", + "dev": true, + "requires": { + "call-bind": "^1.0.0", + "define-properties": "^1.1.3", + "es-abstract": "^1.18.0-next.1" + } + }, + "arrify": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/arrify/-/arrify-1.0.1.tgz", + "integrity": "sha1-iYUI2iIm84DfkEcoRWhJwVAaSw0=", + "dev": true + }, + "asciidoctor": { + "version": "2.2.1", + "resolved": "https://registry.npmjs.org/asciidoctor/-/asciidoctor-2.2.1.tgz", + "integrity": "sha512-adH/pDPDZCd4eb1ku7N8WepN+O6Yl0lVQPWE/ep7+0BFkBm4P/Sx8DUqzZ+X+nG6WSZlma5Uu0gNuDgrc7etFg==", + "requires": { + "@asciidoctor/cli": "3.4.0", + "@asciidoctor/core": "2.2.1" + }, + "dependencies": { + "@asciidoctor/cli": { + "version": "3.4.0", + "resolved": "https://registry.npmjs.org/@asciidoctor/cli/-/cli-3.4.0.tgz", + "integrity": "sha512-jOtxA0I6zB+6z+GGwm9+xhlmGTqCTkFPE902L6fauFlE6v7LxjhLYNxvjDVyn0zMrFLybvoSRcAnM3DcticNoQ==", + "requires": { + "yargs": "15.3.1" + } + }, + "ansi-regex": { + "version": "5.0.0", + "resolved": "https://registry.npmjs.org/ansi-regex/-/ansi-regex-5.0.0.tgz", + "integrity": "sha512-bY6fj56OUQ0hU1KjFNDQuJFezqKdrAyFdIevADiqrWHwSlbmBNMHp5ak2f40Pm8JTFyM2mqxkG6ngkHO11f/lg==" + }, + "emoji-regex": { + "version": "8.0.0", + "resolved": "https://registry.npmjs.org/emoji-regex/-/emoji-regex-8.0.0.tgz", + "integrity": "sha512-MSjYzcWNOA0ewAHpz0MxpYFvwg6yjy1NG3xteoqz644VCo/RPgnr1/GGt+ic3iJTzQ8Eu3TdM14SawnVUmGE6A==" + }, + "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" + } + }, + "is-fullwidth-code-point": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/is-fullwidth-code-point/-/is-fullwidth-code-point-3.0.0.tgz", + "integrity": "sha512-zymm5+u+sCsSWyD9qNaejV3DFvhCKclKdizYaJUuHA83RLjb7nSuGnddCHGv0hk+KY7BMAlsWeK4Ueg6EV6XQg==" + }, + "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" + } + }, + "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==" + }, + "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==" + }, + "string-width": { + "version": "4.2.0", + "resolved": "https://registry.npmjs.org/string-width/-/string-width-4.2.0.tgz", + "integrity": "sha512-zUz5JD+tgqtuDjMhwIg5uFVV3dtqZ9yQJlZVfq4I01/K5Paj5UHj7VyrQOJvzawSVlKpObApbfD0Ed6yJc+1eg==", + "requires": { + "emoji-regex": "^8.0.0", + "is-fullwidth-code-point": "^3.0.0", + "strip-ansi": "^6.0.0" + } + }, + "strip-ansi": { + "version": "6.0.0", + "resolved": "https://registry.npmjs.org/strip-ansi/-/strip-ansi-6.0.0.tgz", + "integrity": "sha512-AuvKTrTfQNYNIctbR1K/YGTR1756GycPsg7b9bdV9Duqur4gv6aKqHXah67Z8ImS7WEz5QVcOtlfW2rZEugt6w==", + "requires": { + "ansi-regex": "^5.0.0" + } + }, + "yargs": { + "version": "15.3.1", + "resolved": "https://registry.npmjs.org/yargs/-/yargs-15.3.1.tgz", + "integrity": "sha512-92O1HWEjw27sBfgmXiixJWT5hRBp2eobqXicLtPBIDBhYB+1HpwZlXmbW2luivBJHBzki+7VyCLRtAkScbTBQA==", + "requires": { + "cliui": "^6.0.0", + "decamelize": "^1.2.0", + "find-up": "^4.1.0", + "get-caller-file": "^2.0.1", + "require-directory": "^2.1.1", + "require-main-filename": "^2.0.0", + "set-blocking": "^2.0.0", + "string-width": "^4.2.0", + "which-module": "^2.0.0", + "y18n": "^4.0.0", + "yargs-parser": "^18.1.1" + } + } + } + }, + "asciidoctor-opal-runtime": { + "version": "0.3.0", + "resolved": "https://registry.npmjs.org/asciidoctor-opal-runtime/-/asciidoctor-opal-runtime-0.3.0.tgz", + "integrity": "sha512-YapVwl2qbbs6sIe1dvAlMpBzQksFVTSa2HOduOKFNhZlE9bNmn+moDgGVvjWPbzMPo/g8gItyTHfWB2u7bQxag==", + "requires": { + "glob": "7.1.3", + "unxhr": "1.0.1" + }, + "dependencies": { + "glob": { + "version": "7.1.3", + "resolved": "https://registry.npmjs.org/glob/-/glob-7.1.3.tgz", + "integrity": "sha512-vcfuiIxogLV4DlGBHIUOwI0IbrJ8HWPc4MU7HzviGeNho/UJDfi6B5p3sHeWIQ0KGIU0Jpxi5ZHxemQfLkkAwQ==", + "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" + } + } + } + }, + "asn1": { + "version": "0.2.4", + "resolved": "https://registry.npmjs.org/asn1/-/asn1-0.2.4.tgz", + "integrity": "sha512-jxwzQpLQjSmWXgwaCZE9Nz+glAG01yF1QnWgbhGwHI5A6FRIEY6IVqtHhIepHqI7/kyEyQEagBC5mBEFlIYvdg==", + "dev": true, + "requires": { + "safer-buffer": "~2.1.0" + } + }, + "asn1.js": { + "version": "5.4.1", + "resolved": "https://registry.npmjs.org/asn1.js/-/asn1.js-5.4.1.tgz", + "integrity": "sha512-+I//4cYPccV8LdmBLiX8CYvf9Sp3vQsrqu2QNXRcrbiWvcx/UdlFiqUJJzxRQxgsZmvhXhn4cSKeSmoFjVdupA==", + "dev": true, + "requires": { + "bn.js": "^4.0.0", + "inherits": "^2.0.1", + "minimalistic-assert": "^1.0.0", + "safer-buffer": "^2.1.0" + }, + "dependencies": { + "bn.js": { + "version": "4.11.9", + "resolved": "https://registry.npmjs.org/bn.js/-/bn.js-4.11.9.tgz", + "integrity": "sha512-E6QoYqCKZfgatHTdHzs1RRKP7ip4vvm+EyRUeE2RF0NblwVvb0p6jSVeNTOFxPn26QXN2o6SMfNxKp6kU8zQaw==", + "dev": true + } + } + }, + "assert": { + "version": "1.5.0", + "resolved": "https://registry.npmjs.org/assert/-/assert-1.5.0.tgz", + "integrity": "sha512-EDsgawzwoun2CZkCgtxJbv392v4nbk9XDD06zI+kQYoBM/3RBWLlEyJARDOmhAAosBjWACEkKL6S+lIZtcAubA==", + "dev": true, + "requires": { + "object-assign": "^4.1.1", + "util": "0.10.3" + }, + "dependencies": { + "inherits": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/inherits/-/inherits-2.0.1.tgz", + "integrity": "sha1-sX0I0ya0Qj5Wjv9xn5GwscvfafE=", + "dev": true + }, + "util": { + "version": "0.10.3", + "resolved": "https://registry.npmjs.org/util/-/util-0.10.3.tgz", + "integrity": "sha1-evsa/lCAUkZInj23/g7TeTNqwPk=", + "dev": true, + "requires": { + "inherits": "2.0.1" + } + } + } + }, + "assert-plus": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/assert-plus/-/assert-plus-1.0.0.tgz", + "integrity": "sha1-8S4PPF13sLHN2RRpQuTpbB5N1SU=", + "dev": true + }, + "assign-symbols": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/assign-symbols/-/assign-symbols-1.0.0.tgz", + "integrity": "sha1-WWZ/QfrdTyDMvCu5a41Pf3jsA2c=", + "dev": true + }, + "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.3", + "resolved": "https://registry.npmjs.org/async/-/async-2.6.3.tgz", + "integrity": "sha512-zflvls11DCy+dQWzTW2dzuilv8Z5X/pjfmZOWba6TNIVDm+2UDaJmXSOXlasHKfNBs8oo3M0aT50fDEWfKZjXg==", + "dev": true, + "requires": { + "lodash": "^4.17.14" + } + }, + "async-each": { + "version": "1.0.3", + "resolved": "https://registry.npmjs.org/async-each/-/async-each-1.0.3.tgz", + "integrity": "sha512-z/WhQ5FPySLdvREByI2vZiTWwCnF0moMJ1hK9YQwDTHKh6I7/uSckMetoRGb5UBZPC1z0jlw+n/XCgjeH7y1AQ==", + "dev": true + }, + "async-limiter": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/async-limiter/-/async-limiter-1.0.1.tgz", + "integrity": "sha512-csOlWGAcRFJaI6m+F2WKdnMKr4HhdhFVBk0H/QbJFMCr+uO2kwohwXQPxw/9OCxp05r5ghVBFSyioixx3gfkNQ==", + "dev": true + }, + "asynckit": { + "version": "0.4.0", + "resolved": "https://registry.npmjs.org/asynckit/-/asynckit-0.4.0.tgz", + "integrity": "sha1-x57Zf380y48robyXkLzDZkdLS3k=", + "dev": true + }, + "at-least-node": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/at-least-node/-/at-least-node-1.0.0.tgz", + "integrity": "sha512-+q/t7Ekv1EDY2l6Gda6LLiX14rU9TV20Wa3ofeQmwPFZbOMo9DXrLbOjFaaclkXKWidIaopwAObQDqwWtGUjqg==", + "dev": true + }, + "atob": { + "version": "2.1.2", + "resolved": "https://registry.npmjs.org/atob/-/atob-2.1.2.tgz", + "integrity": "sha512-Wm6ukoaOGJi/73p/cl2GvLjTI5JM1k/O14isD73YML8StrH/7/lRFgmg8nICZgD3bZZvjwCGxtMOD3wWNAu8cg==", + "dev": true + }, + "autoprefixer": { + "version": "10.1.0", + "resolved": "https://registry.npmjs.org/autoprefixer/-/autoprefixer-10.1.0.tgz", + "integrity": "sha512-0/lBNwN+ZUnb5su18NZo5MBIjDaq6boQKZcxwy86Gip/CmXA2zZqUoFQLCNAGI5P25ZWSP2RWdhDJ8osfKEjoQ==", + "requires": { + "browserslist": "^4.15.0", + "caniuse-lite": "^1.0.30001165", + "colorette": "^1.2.1", + "fraction.js": "^4.0.12", + "normalize-range": "^0.1.2", + "postcss-value-parser": "^4.1.0" + }, + "dependencies": { + "postcss-value-parser": { + "version": "4.1.0", + "resolved": "https://registry.npmjs.org/postcss-value-parser/-/postcss-value-parser-4.1.0.tgz", + "integrity": "sha512-97DXOFbQJhk71ne5/Mt6cOu6yxsSfM0QGQyl0L25Gca4yGWEGJaig7l7gbCX623VqTBNGLRLaVUCnNkcedlRSQ==" + } + } + }, + "aws-sign2": { + "version": "0.7.0", + "resolved": "https://registry.npmjs.org/aws-sign2/-/aws-sign2-0.7.0.tgz", + "integrity": "sha1-tG6JCTSpWR8tL2+G1+ap8bP+dqg=", + "dev": true + }, + "aws4": { + "version": "1.11.0", + "resolved": "https://registry.npmjs.org/aws4/-/aws4-1.11.0.tgz", + "integrity": "sha512-xh1Rl34h6Fi1DC2WWKfxUTVqRsNnr6LsKz2+hfwDxQJWmrx8+c7ylaqBMcHfl1U1r2dsifOvKX3LQuLNZ+XSvA==", + "dev": true + }, + "babel-jest": { + "version": "26.6.3", + "resolved": "https://registry.npmjs.org/babel-jest/-/babel-jest-26.6.3.tgz", + "integrity": "sha512-pl4Q+GAVOHwvjrck6jKjvmGhnO3jHX/xuB9d27f+EJZ/6k+6nMuPjorrYp7s++bKKdANwzElBWnLWaObvTnaZA==", + "dev": true, + "requires": { + "@jest/transform": "^26.6.2", + "@jest/types": "^26.6.2", + "@types/babel__core": "^7.1.7", + "babel-plugin-istanbul": "^6.0.0", + "babel-preset-jest": "^26.6.2", + "chalk": "^4.0.0", + "graceful-fs": "^4.2.4", + "slash": "^3.0.0" + }, + "dependencies": { + "@jest/types": { + "version": "26.6.2", + "resolved": "https://registry.npmjs.org/@jest/types/-/types-26.6.2.tgz", + "integrity": "sha512-fC6QCp7Sc5sX6g8Tvbmj4XUTbyrik0akgRy03yjXbQaBWWNWGE7SGtJk98m0N8nzegD/7SggrUlivxo5ax4KWQ==", + "dev": true, + "requires": { + "@types/istanbul-lib-coverage": "^2.0.0", + "@types/istanbul-reports": "^3.0.0", + "@types/node": "*", + "@types/yargs": "^15.0.0", + "chalk": "^4.0.0" + } + }, + "@types/istanbul-reports": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/@types/istanbul-reports/-/istanbul-reports-3.0.0.tgz", + "integrity": "sha512-nwKNbvnwJ2/mndE9ItP/zc2TCzw6uuodnF4EHYWD+gCQDVBuRQL5UzbZD0/ezy1iKsFU2ZQiDqg4M9dN4+wZgA==", + "dev": true, + "requires": { + "@types/istanbul-lib-report": "*" + } + }, + "ansi-styles": { + "version": "4.3.0", + "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-4.3.0.tgz", + "integrity": "sha512-zbB9rCJAT1rbjiVDb2hqKFHNYLxgtk8NURxZ3IZwD3F6NtxbXZQCnnSi1Lkx+IDohdPlFp222wVALIheZJQSEg==", + "dev": true, + "requires": { + "color-convert": "^2.0.1" + } + }, + "chalk": { + "version": "4.1.0", + "resolved": "https://registry.npmjs.org/chalk/-/chalk-4.1.0.tgz", + "integrity": "sha512-qwx12AxXe2Q5xQ43Ac//I6v5aXTipYrSESdOgzrN+9XjgEpyjpKuvSGaN4qE93f7TQTlerQQ8S+EQ0EyDoVL1A==", + "dev": true, + "requires": { + "ansi-styles": "^4.1.0", + "supports-color": "^7.1.0" + } + }, + "color-convert": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/color-convert/-/color-convert-2.0.1.tgz", + "integrity": "sha512-RRECPsj7iu/xb5oKYcsFHSppFNnsj/52OVTRKb4zP5onXwVF3zVmmToNcOfGC+CRDpfK/U584fMg38ZHCaElKQ==", + "dev": true, + "requires": { + "color-name": "~1.1.4" + } + }, + "color-name": { + "version": "1.1.4", + "resolved": "https://registry.npmjs.org/color-name/-/color-name-1.1.4.tgz", + "integrity": "sha512-dOy+3AuW3a2wNbZHIuMZpTcgjGuLU/uBL/ubcZF9OXbDo8ff4O8yVp5Bf0efS8uEoYo5q4Fx7dY9OgQGXgAsQA==", + "dev": true + }, + "has-flag": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/has-flag/-/has-flag-4.0.0.tgz", + "integrity": "sha512-EykJT/Q1KjTWctppgIAgfSO0tKVuZUjhgMr17kqTumMl6Afv3EISleU7qZUzoXDFTAHTDC4NOoG/ZxU3EvlMPQ==", + "dev": true + }, + "supports-color": { + "version": "7.2.0", + "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-7.2.0.tgz", + "integrity": "sha512-qpCAvRl9stuOHveKsn7HncJRvv501qIacKzQlO/+Lwxc9+0q2wLyv4Dfvt80/DPn2pqOBsJdDiogXGR9+OvwRw==", + "dev": true, + "requires": { + "has-flag": "^4.0.0" + } + } + } + }, + "babel-plugin-dynamic-import-node": { + "version": "2.3.3", + "resolved": "https://registry.npmjs.org/babel-plugin-dynamic-import-node/-/babel-plugin-dynamic-import-node-2.3.3.tgz", + "integrity": "sha512-jZVI+s9Zg3IqA/kdi0i6UDCybUI3aSBLnglhYbSSjKlV7yF1F/5LWv8MakQmvYpnbJDS6fcBL2KzHSxNCMtWSQ==", + "dev": true, + "requires": { + "object.assign": "^4.1.0" + } + }, + "babel-plugin-istanbul": { + "version": "6.0.0", + "resolved": "https://registry.npmjs.org/babel-plugin-istanbul/-/babel-plugin-istanbul-6.0.0.tgz", + "integrity": "sha512-AF55rZXpe7trmEylbaE1Gv54wn6rwU03aptvRoVIGP8YykoSxqdVLV1TfwflBCE/QtHmqtP8SWlTENqbK8GCSQ==", + "dev": true, + "requires": { + "@babel/helper-plugin-utils": "^7.0.0", + "@istanbuljs/load-nyc-config": "^1.0.0", + "@istanbuljs/schema": "^0.1.2", + "istanbul-lib-instrument": "^4.0.0", + "test-exclude": "^6.0.0" + } + }, + "babel-plugin-jest-hoist": { + "version": "26.6.2", + "resolved": "https://registry.npmjs.org/babel-plugin-jest-hoist/-/babel-plugin-jest-hoist-26.6.2.tgz", + "integrity": "sha512-PO9t0697lNTmcEHH69mdtYiOIkkOlj9fySqfO3K1eCcdISevLAE0xY59VLLUj0SoiPiTX/JU2CYFpILydUa5Lw==", + "dev": true, + "requires": { + "@babel/template": "^7.3.3", + "@babel/types": "^7.3.3", + "@types/babel__core": "^7.0.0", + "@types/babel__traverse": "^7.0.6" + } + }, + "babel-preset-current-node-syntax": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/babel-preset-current-node-syntax/-/babel-preset-current-node-syntax-1.0.1.tgz", + "integrity": "sha512-M7LQ0bxarkxQoN+vz5aJPsLBn77n8QgTFmo8WK0/44auK2xlCXrYcUxHFxgU7qW5Yzw/CjmLRK2uJzaCd7LvqQ==", + "dev": true, + "requires": { + "@babel/plugin-syntax-async-generators": "^7.8.4", + "@babel/plugin-syntax-bigint": "^7.8.3", + "@babel/plugin-syntax-class-properties": "^7.8.3", + "@babel/plugin-syntax-import-meta": "^7.8.3", + "@babel/plugin-syntax-json-strings": "^7.8.3", + "@babel/plugin-syntax-logical-assignment-operators": "^7.8.3", + "@babel/plugin-syntax-nullish-coalescing-operator": "^7.8.3", + "@babel/plugin-syntax-numeric-separator": "^7.8.3", + "@babel/plugin-syntax-object-rest-spread": "^7.8.3", + "@babel/plugin-syntax-optional-catch-binding": "^7.8.3", + "@babel/plugin-syntax-optional-chaining": "^7.8.3", + "@babel/plugin-syntax-top-level-await": "^7.8.3" + } + }, + "babel-preset-jest": { + "version": "26.6.2", + "resolved": "https://registry.npmjs.org/babel-preset-jest/-/babel-preset-jest-26.6.2.tgz", + "integrity": "sha512-YvdtlVm9t3k777c5NPQIv6cxFFFapys25HiUmuSgHwIZhfifweR5c5Sf5nwE3MAbfu327CYSvps8Yx6ANLyleQ==", + "dev": true, + "requires": { + "babel-plugin-jest-hoist": "^26.6.2", + "babel-preset-current-node-syntax": "^1.0.0" + } + }, + "babel-runtime": { + "version": "6.26.0", + "resolved": "https://registry.npmjs.org/babel-runtime/-/babel-runtime-6.26.0.tgz", + "integrity": "sha1-llxwWGaOgrVde/4E/yM3vItWR/4=", + "dev": true, + "requires": { + "core-js": "^2.4.0", + "regenerator-runtime": "^0.11.0" + }, + "dependencies": { + "regenerator-runtime": { + "version": "0.11.1", + "resolved": "https://registry.npmjs.org/regenerator-runtime/-/regenerator-runtime-0.11.1.tgz", + "integrity": "sha512-MguG95oij0fC3QV3URf4V2SDYGJhJnJGqvIIgdECeODCT98wSWDAJ94SSuVpYQUoTcGUIL6L4yNB7j1DFFHSBg==", + "dev": true + } + } + }, + "babel-types": { + "version": "6.26.0", + "resolved": "https://registry.npmjs.org/babel-types/-/babel-types-6.26.0.tgz", + "integrity": "sha1-o7Bz+Uq0nrb6Vc1lInozQ4BjJJc=", + "dev": true, + "requires": { + "babel-runtime": "^6.26.0", + "esutils": "^2.0.2", + "lodash": "^4.17.4", + "to-fast-properties": "^1.0.3" + }, + "dependencies": { + "to-fast-properties": { + "version": "1.0.3", + "resolved": "https://registry.npmjs.org/to-fast-properties/-/to-fast-properties-1.0.3.tgz", + "integrity": "sha1-uDVx+k2MJbguIxsG46MFXeTKGkc=", + "dev": true + } + } + }, + "babylon-walk": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/babylon-walk/-/babylon-walk-1.0.2.tgz", + "integrity": "sha1-OxWl3btIKni0zpwByLoYFwLZ1s4=", + "dev": true, + "requires": { + "babel-runtime": "^6.11.6", + "babel-types": "^6.15.0", + "lodash.clone": "^4.5.0" + } + }, + "backbone": { + "version": "1.4.0", + "resolved": "https://registry.npmjs.org/backbone/-/backbone-1.4.0.tgz", + "integrity": "sha512-RLmDrRXkVdouTg38jcgHhyQ/2zjg7a8E6sz2zxfz21Hh17xDJYUHBZimVIt5fUyS8vbfpeSmTL3gUjTEvUV3qQ==", + "dev": true, + "requires": { + "underscore": ">=1.8.3" + } + }, + "balanced-match": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/balanced-match/-/balanced-match-1.0.0.tgz", + "integrity": "sha1-ibTRmasr7kneFk6gK4nORi1xt2c=" + }, + "base": { + "version": "0.11.2", + "resolved": "https://registry.npmjs.org/base/-/base-0.11.2.tgz", + "integrity": "sha512-5T6P4xPgpp0YDFvSWwEZ4NoE3aM4QBQXDzmVbraCkFj8zHM+mba8SyqB5DbZWyR7mYHo6Y7BdQo3MoA4m0TeQg==", + "dev": true, + "requires": { + "cache-base": "^1.0.1", + "class-utils": "^0.3.5", + "component-emitter": "^1.2.1", + "define-property": "^1.0.0", + "isobject": "^3.0.1", + "mixin-deep": "^1.2.0", + "pascalcase": "^0.1.1" + }, + "dependencies": { + "define-property": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/define-property/-/define-property-1.0.0.tgz", + "integrity": "sha1-dp66rz9KY6rTr56NMEybvnm/sOY=", + "dev": true, + "requires": { + "is-descriptor": "^1.0.0" + } + }, + "is-accessor-descriptor": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/is-accessor-descriptor/-/is-accessor-descriptor-1.0.0.tgz", + "integrity": "sha512-m5hnHTkcVsPfqx3AKlyttIPb7J+XykHvJP2B9bZDjlhLIoEq4XoK64Vg7boZlVWYK6LUY94dYPEE7Lh0ZkZKcQ==", + "dev": true, + "requires": { + "kind-of": "^6.0.0" + } + }, + "is-data-descriptor": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/is-data-descriptor/-/is-data-descriptor-1.0.0.tgz", + "integrity": "sha512-jbRXy1FmtAoCjQkVmIVYwuuqDFUbaOeDjmed1tOGPrsMhtJA4rD9tkgA0F1qJ3gRFRXcHYVkdeaP50Q5rE/jLQ==", + "dev": true, + "requires": { + "kind-of": "^6.0.0" + } + }, + "is-descriptor": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/is-descriptor/-/is-descriptor-1.0.2.tgz", + "integrity": "sha512-2eis5WqQGV7peooDyLmNEPUrps9+SXX5c9pL3xEB+4e9HnGuDa7mB7kHxHw4CbqS9k1T2hOH3miL8n8WtiYVtg==", + "dev": true, + "requires": { + "is-accessor-descriptor": "^1.0.0", + "is-data-descriptor": "^1.0.0", + "kind-of": "^6.0.2" + } + } + } + }, + "base64-js": { + "version": "1.5.1", + "resolved": "https://registry.npmjs.org/base64-js/-/base64-js-1.5.1.tgz", + "integrity": "sha512-AKpaYlHn8t4SVbOHCy+b5+KKgvR4vrsD8vbvrbiQJps7fKDTkjkDry6ji0rUJjC0kzbNePLwzxq8iypo41qeWA==", + "dev": true + }, + "basic-auth": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/basic-auth/-/basic-auth-2.0.1.tgz", + "integrity": "sha512-NF+epuEdnUYVlGuhaxbbq+dvJttwLnGY+YixlXlME5KpQ5W3CnXA5cVTneY3SPbPDRkcjMbifrwmFYcClgOZeg==", + "dev": true, + "requires": { + "safe-buffer": "5.1.2" + } + }, + "batch": { + "version": "0.6.1", + "resolved": "https://registry.npmjs.org/batch/-/batch-0.6.1.tgz", + "integrity": "sha1-3DQxT05nkxgJP8dgJyUl+UvyXBY=", + "dev": true + }, + "bcrypt-pbkdf": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/bcrypt-pbkdf/-/bcrypt-pbkdf-1.0.2.tgz", + "integrity": "sha1-pDAdOJtqQ/m2f/PKEaP2Y342Dp4=", + "dev": true, + "requires": { + "tweetnacl": "^0.14.3" + } + }, + "bcryptjs": { + "version": "2.4.3", + "resolved": "https://registry.npmjs.org/bcryptjs/-/bcryptjs-2.4.3.tgz", + "integrity": "sha1-mrVie5PmBiH/fNrF2pczAn3x0Ms=", + "dev": true + }, + "binary-extensions": { + "version": "1.13.1", + "resolved": "https://registry.npmjs.org/binary-extensions/-/binary-extensions-1.13.1.tgz", + "integrity": "sha512-Un7MIEDdUC5gNpcGDV97op1Ywk748MpHcFTHoYs6qnj1Z3j7I53VG3nwZhKzoBZmbdRNnb6WRdFlwl7tSDuZGw==", + "dev": true + }, + "bindings": { + "version": "1.5.0", + "resolved": "https://registry.npmjs.org/bindings/-/bindings-1.5.0.tgz", + "integrity": "sha512-p2q/t/mhvuOj/UeLlV6566GD/guowlr0hHxClI0W9m7MWYkL1F0hLo+0Aexs9HSPCtR1SXQ0TD3MMKrXZajbiQ==", + "dev": true, + "requires": { + "file-uri-to-path": "1.0.0" + } + }, + "bn.js": { + "version": "5.1.3", + "resolved": "https://registry.npmjs.org/bn.js/-/bn.js-5.1.3.tgz", + "integrity": "sha512-GkTiFpjFtUzU9CbMeJ5iazkCzGL3jrhzerzZIuqLABjbwRaFt33I9tUdSNryIptM+RxDet6OKm2WnLXzW51KsQ==", + "dev": true + }, + "boolbase": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/boolbase/-/boolbase-1.0.0.tgz", + "integrity": "sha1-aN/1++YMUes3cl6p4+0xDcwed24=", + "dev": true + }, + "boxen": { + "version": "4.2.0", + "resolved": "https://registry.npmjs.org/boxen/-/boxen-4.2.0.tgz", + "integrity": "sha512-eB4uT9RGzg2odpER62bBwSLvUeGC+WbRjjyyFhGsKnc8wp/m0+hQsMUvUe3H2V0D5vw0nBdO1hCJoZo5mKeuIQ==", + "dev": true, + "requires": { + "ansi-align": "^3.0.0", + "camelcase": "^5.3.1", + "chalk": "^3.0.0", + "cli-boxes": "^2.2.0", + "string-width": "^4.1.0", + "term-size": "^2.1.0", + "type-fest": "^0.8.1", + "widest-line": "^3.1.0" + }, + "dependencies": { + "ansi-regex": { + "version": "5.0.0", + "resolved": "https://registry.npmjs.org/ansi-regex/-/ansi-regex-5.0.0.tgz", + "integrity": "sha512-bY6fj56OUQ0hU1KjFNDQuJFezqKdrAyFdIevADiqrWHwSlbmBNMHp5ak2f40Pm8JTFyM2mqxkG6ngkHO11f/lg==", + "dev": true + }, + "ansi-styles": { + "version": "4.3.0", + "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-4.3.0.tgz", + "integrity": "sha512-zbB9rCJAT1rbjiVDb2hqKFHNYLxgtk8NURxZ3IZwD3F6NtxbXZQCnnSi1Lkx+IDohdPlFp222wVALIheZJQSEg==", + "dev": true, + "requires": { + "color-convert": "^2.0.1" + } + }, + "chalk": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/chalk/-/chalk-3.0.0.tgz", + "integrity": "sha512-4D3B6Wf41KOYRFdszmDqMCGq5VV/uMAB273JILmO+3jAlh8X4qDtdtgCR3fxtbLEMzSx22QdhnDcJvu2u1fVwg==", + "dev": true, + "requires": { + "ansi-styles": "^4.1.0", + "supports-color": "^7.1.0" + } + }, + "color-convert": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/color-convert/-/color-convert-2.0.1.tgz", + "integrity": "sha512-RRECPsj7iu/xb5oKYcsFHSppFNnsj/52OVTRKb4zP5onXwVF3zVmmToNcOfGC+CRDpfK/U584fMg38ZHCaElKQ==", + "dev": true, + "requires": { + "color-name": "~1.1.4" + } + }, + "color-name": { + "version": "1.1.4", + "resolved": "https://registry.npmjs.org/color-name/-/color-name-1.1.4.tgz", + "integrity": "sha512-dOy+3AuW3a2wNbZHIuMZpTcgjGuLU/uBL/ubcZF9OXbDo8ff4O8yVp5Bf0efS8uEoYo5q4Fx7dY9OgQGXgAsQA==", + "dev": true + }, + "emoji-regex": { + "version": "8.0.0", + "resolved": "https://registry.npmjs.org/emoji-regex/-/emoji-regex-8.0.0.tgz", + "integrity": "sha512-MSjYzcWNOA0ewAHpz0MxpYFvwg6yjy1NG3xteoqz644VCo/RPgnr1/GGt+ic3iJTzQ8Eu3TdM14SawnVUmGE6A==", + "dev": true + }, + "has-flag": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/has-flag/-/has-flag-4.0.0.tgz", + "integrity": "sha512-EykJT/Q1KjTWctppgIAgfSO0tKVuZUjhgMr17kqTumMl6Afv3EISleU7qZUzoXDFTAHTDC4NOoG/ZxU3EvlMPQ==", + "dev": true + }, + "is-fullwidth-code-point": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/is-fullwidth-code-point/-/is-fullwidth-code-point-3.0.0.tgz", + "integrity": "sha512-zymm5+u+sCsSWyD9qNaejV3DFvhCKclKdizYaJUuHA83RLjb7nSuGnddCHGv0hk+KY7BMAlsWeK4Ueg6EV6XQg==", + "dev": true + }, + "string-width": { + "version": "4.2.0", + "resolved": "https://registry.npmjs.org/string-width/-/string-width-4.2.0.tgz", + "integrity": "sha512-zUz5JD+tgqtuDjMhwIg5uFVV3dtqZ9yQJlZVfq4I01/K5Paj5UHj7VyrQOJvzawSVlKpObApbfD0Ed6yJc+1eg==", + "dev": true, + "requires": { + "emoji-regex": "^8.0.0", + "is-fullwidth-code-point": "^3.0.0", + "strip-ansi": "^6.0.0" + } + }, + "strip-ansi": { + "version": "6.0.0", + "resolved": "https://registry.npmjs.org/strip-ansi/-/strip-ansi-6.0.0.tgz", + "integrity": "sha512-AuvKTrTfQNYNIctbR1K/YGTR1756GycPsg7b9bdV9Duqur4gv6aKqHXah67Z8ImS7WEz5QVcOtlfW2rZEugt6w==", + "dev": true, + "requires": { + "ansi-regex": "^5.0.0" + } + }, + "supports-color": { + "version": "7.2.0", + "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-7.2.0.tgz", + "integrity": "sha512-qpCAvRl9stuOHveKsn7HncJRvv501qIacKzQlO/+Lwxc9+0q2wLyv4Dfvt80/DPn2pqOBsJdDiogXGR9+OvwRw==", + "dev": true, + "requires": { + "has-flag": "^4.0.0" + } + } + } + }, + "brace-expansion": { + "version": "1.1.11", + "resolved": "https://registry.npmjs.org/brace-expansion/-/brace-expansion-1.1.11.tgz", + "integrity": "sha512-iCuPHDFgrHX7H2vEI/5xpz07zSHB00TpugqhmYtVmMO6518mCuRMoOYFldEBl0g187ufozdaHgWKcYFb61qGiA==", + "requires": { + "balanced-match": "^1.0.0", + "concat-map": "0.0.1" + } + }, + "braces": { + "version": "3.0.2", + "resolved": "https://registry.npmjs.org/braces/-/braces-3.0.2.tgz", + "integrity": "sha512-b8um+L1RzM3WDSzvhm6gIz1yfTbBt6YTlcEKAvsmqCZZFw46z626lVj9j1yEPW33H5H+lBQpZMP1k8l+78Ha0A==", + "dev": true, + "requires": { + "fill-range": "^7.0.1" + } + }, + "brfs": { + "version": "1.6.1", + "resolved": "https://registry.npmjs.org/brfs/-/brfs-1.6.1.tgz", + "integrity": "sha512-OfZpABRQQf+Xsmju8XE9bDjs+uU4vLREGolP7bDgcpsI17QREyZ4Bl+2KLxxx1kCgA0fAIhKQBaBYh+PEcCqYQ==", + "dev": true, + "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": "sha1-EsJe/kCkXjwyPrhnWgoM5XsiNx8=", + "dev": true + }, + "browser-process-hrtime": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/browser-process-hrtime/-/browser-process-hrtime-1.0.0.tgz", + "integrity": "sha512-9o5UecI3GhkpM6DrXr69PblIuWxPKk9Y0jHBRhdocZ2y7YECBFCsHm79Pr3OyR2AvjhDkabFJaDJMYRazHgsow==", + "dev": true + }, + "browserify-aes": { + "version": "1.2.0", + "resolved": "https://registry.npmjs.org/browserify-aes/-/browserify-aes-1.2.0.tgz", + "integrity": "sha512-+7CHXqGuspUn/Sl5aO7Ea0xWGAtETPXNSAjHo48JfLdPWcMng33Xe4znFvQweqc/uzk5zSOI3H52CYnjCfb5hA==", + "dev": true, + "requires": { + "buffer-xor": "^1.0.3", + "cipher-base": "^1.0.0", + "create-hash": "^1.1.0", + "evp_bytestokey": "^1.0.3", + "inherits": "^2.0.1", + "safe-buffer": "^5.0.1" + } + }, + "browserify-cipher": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/browserify-cipher/-/browserify-cipher-1.0.1.tgz", + "integrity": "sha512-sPhkz0ARKbf4rRQt2hTpAHqn47X3llLkUGn+xEJzLjwY8LRs2p0v7ljvI5EyoRO/mexrNunNECisZs+gw2zz1w==", + "dev": true, + "requires": { + "browserify-aes": "^1.0.4", + "browserify-des": "^1.0.0", + "evp_bytestokey": "^1.0.0" + } + }, + "browserify-des": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/browserify-des/-/browserify-des-1.0.2.tgz", + "integrity": "sha512-BioO1xf3hFwz4kc6iBhI3ieDFompMhrMlnDFC4/0/vd5MokpuAc3R+LYbwTA9A5Yc9pq9UYPqffKpW2ObuwX5A==", + "dev": true, + "requires": { + "cipher-base": "^1.0.1", + "des.js": "^1.0.0", + "inherits": "^2.0.1", + "safe-buffer": "^5.1.2" + } + }, + "browserify-rsa": { + "version": "4.1.0", + "resolved": "https://registry.npmjs.org/browserify-rsa/-/browserify-rsa-4.1.0.tgz", + "integrity": "sha512-AdEER0Hkspgno2aR97SAf6vi0y0k8NuOpGnVH3O99rcA5Q6sh8QxcngtHuJ6uXwnfAXNM4Gn1Gb7/MV1+Ymbog==", + "dev": true, + "requires": { + "bn.js": "^5.0.0", + "randombytes": "^2.0.1" + } + }, + "browserify-sign": { + "version": "4.2.1", + "resolved": "https://registry.npmjs.org/browserify-sign/-/browserify-sign-4.2.1.tgz", + "integrity": "sha512-/vrA5fguVAKKAVTNJjgSm1tRQDHUU6DbwO9IROu/0WAzC8PKhucDSh18J0RMvVeHAn5puMd+QHC2erPRNf8lmg==", + "dev": true, + "requires": { + "bn.js": "^5.1.1", + "browserify-rsa": "^4.0.1", + "create-hash": "^1.2.0", + "create-hmac": "^1.1.7", + "elliptic": "^6.5.3", + "inherits": "^2.0.4", + "parse-asn1": "^5.1.5", + "readable-stream": "^3.6.0", + "safe-buffer": "^5.2.0" + }, + "dependencies": { + "readable-stream": { + "version": "3.6.0", + "resolved": "https://registry.npmjs.org/readable-stream/-/readable-stream-3.6.0.tgz", + "integrity": "sha512-BViHy7LKeTz4oNnkcLJ+lVSL6vpiFeX6/d3oSH8zCW7UxP2onchk+vTGB143xuFjHS3deTgkKoXXymXqymiIdA==", + "dev": true, + "requires": { + "inherits": "^2.0.3", + "string_decoder": "^1.1.1", + "util-deprecate": "^1.0.1" + } + }, + "safe-buffer": { + "version": "5.2.1", + "resolved": "https://registry.npmjs.org/safe-buffer/-/safe-buffer-5.2.1.tgz", + "integrity": "sha512-rp3So07KcdmmKbGvgaNxQSJr7bGVSVk5S9Eq1F+ppbRo70+YeaDxkw5Dd8NPN+GD6bjnYm2VuPuCXmpuYvmCXQ==", + "dev": true + } + } + }, + "browserify-zlib": { + "version": "0.2.0", + "resolved": "https://registry.npmjs.org/browserify-zlib/-/browserify-zlib-0.2.0.tgz", + "integrity": "sha512-Z942RysHXmJrhqk88FmKBVq/v5tqmSkDz7p54G/MGyjMnCFFnC79XWNbg+Vta8W6Wb2qtSZTSxIGkJrRpCFEiA==", + "dev": true, + "requires": { + "pako": "~1.0.5" + }, + "dependencies": { + "pako": { + "version": "1.0.11", + "resolved": "https://registry.npmjs.org/pako/-/pako-1.0.11.tgz", + "integrity": "sha512-4hLB8Py4zZce5s4yd9XzopqwVv/yGNhV1Bl8NTmCq1763HeK2+EwVTv+leGeL13Dnh2wfbqowVPXCIO0z4taYw==", + "dev": true + } + } + }, + "browserslist": { + "version": "4.16.0", + "resolved": "https://registry.npmjs.org/browserslist/-/browserslist-4.16.0.tgz", + "integrity": "sha512-/j6k8R0p3nxOC6kx5JGAxsnhc9ixaWJfYc+TNTzxg6+ARaESAvQGV7h0uNOB4t+pLQJZWzcrMxXOxjgsCj3dqQ==", + "requires": { + "caniuse-lite": "^1.0.30001165", + "colorette": "^1.2.1", + "electron-to-chromium": "^1.3.621", + "escalade": "^3.1.1", + "node-releases": "^1.1.67" + } + }, + "bs-logger": { + "version": "0.2.6", + "resolved": "https://registry.npmjs.org/bs-logger/-/bs-logger-0.2.6.tgz", + "integrity": "sha512-pd8DCoxmbgc7hyPKOvxtqNcjYoOsABPQdcCUjGp3d42VR2CX1ORhk2A87oqqu5R1kk+76nsxZupkmyd+MVtCog==", + "dev": true, + "requires": { + "fast-json-stable-stringify": "2.x" + } + }, + "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" + } + }, + "buffer": { + "version": "4.9.2", + "resolved": "https://registry.npmjs.org/buffer/-/buffer-4.9.2.tgz", + "integrity": "sha512-xq+q3SRMOxGivLhBNaUdC64hDTQwejJ+H0T/NB1XMtTVEwNTrfFF3gAxiyW0Bu/xWEGhjVKgUcMhCrUy2+uCWg==", + "dev": true, + "requires": { + "base64-js": "^1.0.2", + "ieee754": "^1.1.4", + "isarray": "^1.0.0" + } + }, + "buffer-equal": { + "version": "0.0.1", + "resolved": "https://registry.npmjs.org/buffer-equal/-/buffer-equal-0.0.1.tgz", + "integrity": "sha1-kbx0sR6kBbyRa8aqkI+q+ltKrEs=", + "dev": true + }, + "buffer-from": { + "version": "1.1.1", + "resolved": "https://registry.npmjs.org/buffer-from/-/buffer-from-1.1.1.tgz", + "integrity": "sha512-MQcXEUbCKtEo7bhqEs6560Hyd4XaovZlO/k9V3hjVUF/zwW7KBVdSK4gIt/bzwS9MbR5qob+F5jusZsb0YQK2A==", + "dev": true + }, + "buffer-xor": { + "version": "1.0.3", + "resolved": "https://registry.npmjs.org/buffer-xor/-/buffer-xor-1.0.3.tgz", + "integrity": "sha1-JuYe0UIvtw3ULm42cp7VHYVf6Nk=", + "dev": true + }, + "builtin-status-codes": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/builtin-status-codes/-/builtin-status-codes-3.0.0.tgz", + "integrity": "sha1-hZgoeOIbmOHGZCXgPQF0eI9Wnug=", + "dev": true + }, + "cache-base": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/cache-base/-/cache-base-1.0.1.tgz", + "integrity": "sha512-AKcdTnFSWATd5/GCPRxr2ChwIJ85CeyrEyjRHlKxQ56d4XJMGym0uAiKn0xbLOGOl3+yRpOTi484dVCEc5AUzQ==", + "dev": true, + "requires": { + "collection-visit": "^1.0.0", + "component-emitter": "^1.2.1", + "get-value": "^2.0.6", + "has-value": "^1.0.0", + "isobject": "^3.0.1", + "set-value": "^2.0.0", + "to-object-path": "^0.3.0", + "union-value": "^1.0.0", + "unset-value": "^1.0.0" + } + }, + "cacheable-request": { + "version": "6.1.0", + "resolved": "https://registry.npmjs.org/cacheable-request/-/cacheable-request-6.1.0.tgz", + "integrity": "sha512-Oj3cAGPCqOZX7Rz64Uny2GYAZNliQSqfbePrgAQ1wKAihYmCUnraBtJtKcGR4xz7wF+LoJC+ssFZvv5BgF9Igg==", + "dev": true, + "requires": { + "clone-response": "^1.0.2", + "get-stream": "^5.1.0", + "http-cache-semantics": "^4.0.0", + "keyv": "^3.0.0", + "lowercase-keys": "^2.0.0", + "normalize-url": "^4.1.0", + "responselike": "^1.0.2" + }, + "dependencies": { + "get-stream": { + "version": "5.2.0", + "resolved": "https://registry.npmjs.org/get-stream/-/get-stream-5.2.0.tgz", + "integrity": "sha512-nBF+F1rAZVCu/p7rjzgA+Yb4lfYXrpl7a6VmJrU8wF9I1CKvP/QwPNZHnOlwbTkY6dvtFIzFMSyQXbLoTQPRpA==", + "dev": true, + "requires": { + "pump": "^3.0.0" + } + }, + "http-cache-semantics": { + "version": "4.1.0", + "resolved": "https://registry.npmjs.org/http-cache-semantics/-/http-cache-semantics-4.1.0.tgz", + "integrity": "sha512-carPklcUh7ROWRK7Cv27RPtdhYhUsela/ue5/jKzjegVvXDqM2ILE9Q2BGn9JZJh1g87cp56su/FgQSzcWS8cQ==", + "dev": true + }, + "lowercase-keys": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/lowercase-keys/-/lowercase-keys-2.0.0.tgz", + "integrity": "sha512-tqNXrS78oMOE73NMxK4EMLQsQowWf8jKooH9g7xPavRT706R6bkQJ6DY2Te7QukaZsulxa30wQ7bk0pm4XiHmA==", + "dev": true + }, + "normalize-url": { + "version": "4.5.0", + "resolved": "https://registry.npmjs.org/normalize-url/-/normalize-url-4.5.0.tgz", + "integrity": "sha512-2s47yzUxdexf1OhyRi4Em83iQk0aPvwTddtFz4hnSSw9dCEsLEGf6SwIO8ss/19S9iBb5sJaOuTvTGDeZI00BQ==", + "dev": true + } + } + }, + "cachedir": { + "version": "2.2.0", + "resolved": "https://registry.npmjs.org/cachedir/-/cachedir-2.2.0.tgz", + "integrity": "sha512-VvxA0xhNqIIfg0V9AmJkDg91DaJwryutH5rVEZAhcNi4iJFj9f+QxmAjgK1LT9I8OgToX27fypX6/MeCXVbBjQ==", + "dev": true + }, + "call-bind": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/call-bind/-/call-bind-1.0.0.tgz", + "integrity": "sha512-AEXsYIyyDY3MCzbwdhzG3Jx1R0J2wetQyUynn6dYHAO+bg8l1k7jwZtRv4ryryFs7EP+NDlikJlVe59jr0cM2w==", + "dev": true, + "requires": { + "function-bind": "^1.1.1", + "get-intrinsic": "^1.0.0" + } + }, + "call-me-maybe": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/call-me-maybe/-/call-me-maybe-1.0.1.tgz", + "integrity": "sha1-JtII6onje1y95gJQoV8DHBak1ms=", + "dev": true + }, + "caller-callsite": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/caller-callsite/-/caller-callsite-2.0.0.tgz", + "integrity": "sha1-hH4PzgoiN1CpoCfFSzNzGtMVQTQ=", + "dev": true, + "requires": { + "callsites": "^2.0.0" + } + }, + "caller-path": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/caller-path/-/caller-path-2.0.0.tgz", + "integrity": "sha1-Ro+DBE42mrIBD6xfBs7uFbsssfQ=", + "dev": true, + "requires": { + "caller-callsite": "^2.0.0" + } + }, + "callsites": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/callsites/-/callsites-2.0.0.tgz", + "integrity": "sha1-BuuE8A7qQT2oav/vrL/7Ngk7PFA=", + "dev": true + }, + "camelcase": { + "version": "5.3.1", + "resolved": "https://registry.npmjs.org/camelcase/-/camelcase-5.3.1.tgz", + "integrity": "sha512-L28STB170nwWS63UjtlEOE3dldQApaJXZkOI1uMFfzf3rRuPegHaHesyee+YxQ+W6SvRDQV6UrdOdRiR153wJg==" + }, + "camelcase-keys": { + "version": "6.2.2", + "resolved": "https://registry.npmjs.org/camelcase-keys/-/camelcase-keys-6.2.2.tgz", + "integrity": "sha512-YrwaA0vEKazPBkn0ipTiMpSajYDSe+KjQfrjhcBMxJt/znbvlHd8Pw/Vamaz5EB4Wfhs3SUR3Z9mwRu/P3s3Yg==", + "dev": true, + "requires": { + "camelcase": "^5.3.1", + "map-obj": "^4.0.0", + "quick-lru": "^4.0.1" + } + }, + "caniuse-api": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/caniuse-api/-/caniuse-api-3.0.0.tgz", + "integrity": "sha512-bsTwuIg/BZZK/vreVTYYbSWoe2F+71P7K5QGEX+pT250DZbfU1MQ5prOKpPR+LL6uWKK3KMwMCAS74QB3Um1uw==", + "dev": true, + "requires": { + "browserslist": "^4.0.0", + "caniuse-lite": "^1.0.0", + "lodash.memoize": "^4.1.2", + "lodash.uniq": "^4.5.0" + } + }, + "caniuse-lite": { + "version": "1.0.30001168", + "resolved": "https://registry.npmjs.org/caniuse-lite/-/caniuse-lite-1.0.30001168.tgz", + "integrity": "sha512-P2zmX7swIXKu+GMMR01TWa4csIKELTNnZKc+f1CjebmZJQtTAEXmpQSoKVJVVcvPGAA0TEYTOUp3VehavZSFPQ==" + }, + "capture-exit": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/capture-exit/-/capture-exit-2.0.0.tgz", + "integrity": "sha512-PiT/hQmTonHhl/HFGN+Lx3JJUznrVYJ3+AQsnthneZbvW7x+f08Tk7yLJTLEOUvBTbduLeeBkxEaYXUOUrRq6g==", + "dev": true, + "requires": { + "rsvp": "^4.8.4" + } + }, + "caseless": { + "version": "0.12.0", + "resolved": "https://registry.npmjs.org/caseless/-/caseless-0.12.0.tgz", + "integrity": "sha1-G2gcIf+EAzyCZUMJBolCDRhxUdw=", + "dev": true + }, + "chalk": { + "version": "2.4.2", + "resolved": "https://registry.npmjs.org/chalk/-/chalk-2.4.2.tgz", + "integrity": "sha512-Mti+f9lpJNcwF4tWV8/OrTTtF1gZi+f8FqlyAdouralcFWFQWF2+NgCHShjkCb+IFBLq9buZwE1xckQU4peSuQ==", + "dev": true, + "requires": { + "ansi-styles": "^3.2.1", + "escape-string-regexp": "^1.0.5", + "supports-color": "^5.3.0" + } + }, + "char-regex": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/char-regex/-/char-regex-1.0.2.tgz", + "integrity": "sha512-kWWXztvZ5SBQV+eRgKFeh8q5sLuZY2+8WUIzlxWVTg+oGwY14qylx1KbKzHd8P6ZYkAg0xyIDU9JMHhyJMZ1jw==", + "dev": true + }, + "chardet": { + "version": "0.7.0", + "resolved": "https://registry.npmjs.org/chardet/-/chardet-0.7.0.tgz", + "integrity": "sha512-mT8iDcrh03qDGRRmoA2hmBJnxpllMR+0/0qlzjqZES6NdiWDcZkCNAk4rPFZ9Q85r27unkiNNg8ZOiwZXBHwcA==", + "dev": true + }, + "chokidar": { + "version": "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" + }, + "dependencies": { + "braces": { + "version": "2.3.2", + "resolved": "https://registry.npmjs.org/braces/-/braces-2.3.2.tgz", + "integrity": "sha512-aNdbnj9P8PjdXU4ybaWLK2IF3jc/EoDYbC7AazW6to3TRsfXxscC9UXOB5iDiEQrkyIbWp2SLQda4+QAa7nc3w==", + "dev": true, + "requires": { + "arr-flatten": "^1.1.0", + "array-unique": "^0.3.2", + "extend-shallow": "^2.0.1", + "fill-range": "^4.0.0", + "isobject": "^3.0.1", + "repeat-element": "^1.1.2", + "snapdragon": "^0.8.1", + "snapdragon-node": "^2.0.1", + "split-string": "^3.0.2", + "to-regex": "^3.0.1" + } + }, + "extend-shallow": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/extend-shallow/-/extend-shallow-2.0.1.tgz", + "integrity": "sha1-Ua99YUrZqfYQ6huvu5idaxxWiQ8=", + "dev": true, + "requires": { + "is-extendable": "^0.1.0" + } + }, + "fill-range": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/fill-range/-/fill-range-4.0.0.tgz", + "integrity": "sha1-1USBHUKPmOsGpj3EAtJAPDKMOPc=", + "dev": true, + "requires": { + "extend-shallow": "^2.0.1", + "is-number": "^3.0.0", + "repeat-string": "^1.6.1", + "to-regex-range": "^2.1.0" + } + }, + "glob-parent": { + "version": "3.1.0", + "resolved": "https://registry.npmjs.org/glob-parent/-/glob-parent-3.1.0.tgz", + "integrity": "sha1-nmr2KZ2NO9K9QEMIMr0RPfkGxa4=", + "dev": true, + "requires": { + "is-glob": "^3.1.0", + "path-dirname": "^1.0.0" + }, + "dependencies": { + "is-glob": { + "version": "3.1.0", + "resolved": "https://registry.npmjs.org/is-glob/-/is-glob-3.1.0.tgz", + "integrity": "sha1-e6WuJCF4BKxwcHuWkiVnSGzD6Eo=", + "dev": true, + "requires": { + "is-extglob": "^2.1.0" + } + } + } + }, + "is-number": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/is-number/-/is-number-3.0.0.tgz", + "integrity": "sha1-JP1iAaR4LPUFYcgQJ2r8fRLXEZU=", + "dev": true, + "requires": { + "kind-of": "^3.0.2" + } + }, + "kind-of": { + "version": "3.2.2", + "resolved": "https://registry.npmjs.org/kind-of/-/kind-of-3.2.2.tgz", + "integrity": "sha1-MeohpzS6ubuw8yRm2JOupR5KPGQ=", + "dev": true, + "requires": { + "is-buffer": "^1.1.5" + } + }, + "to-regex-range": { + "version": "2.1.1", + "resolved": "https://registry.npmjs.org/to-regex-range/-/to-regex-range-2.1.1.tgz", + "integrity": "sha1-fIDBe53+vlmeJzZ+DU3VWQFB2zg=", + "dev": true, + "requires": { + "is-number": "^3.0.0", + "repeat-string": "^1.6.1" + } + } + } + }, + "ci-info": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/ci-info/-/ci-info-2.0.0.tgz", + "integrity": "sha512-5tK7EtrZ0N+OLFMthtqOj4fI2Jeb88C4CAZPu25LDVUgXJ0A3Js4PMGqrn0JU1W0Mh1/Z8wZzYPxqUrXeBboCQ==", + "dev": true + }, + "cipher-base": { + "version": "1.0.4", + "resolved": "https://registry.npmjs.org/cipher-base/-/cipher-base-1.0.4.tgz", + "integrity": "sha512-Kkht5ye6ZGmwv40uUDZztayT2ThLQGfnj/T71N/XzeZeo3nf8foyW7zGTsPYkEya3m5f3cAypH+qe7YOrM1U2Q==", + "dev": true, + "requires": { + "inherits": "^2.0.1", + "safe-buffer": "^5.0.1" + } + }, + "cjs-module-lexer": { + "version": "0.6.0", + "resolved": "https://registry.npmjs.org/cjs-module-lexer/-/cjs-module-lexer-0.6.0.tgz", + "integrity": "sha512-uc2Vix1frTfnuzxxu1Hp4ktSvM3QaI4oXl4ZUqL1wjTu/BGki9TrCWoqLTg/drR1KwAEarXuRFCG2Svr1GxPFw==", + "dev": true + }, + "class-utils": { + "version": "0.3.6", + "resolved": "https://registry.npmjs.org/class-utils/-/class-utils-0.3.6.tgz", + "integrity": "sha512-qOhPa/Fj7s6TY8H8esGu5QNpMMQxz79h+urzrNYN6mn+9BnxlDGf5QZ+XeCDsxSjPqsSR56XOZOJmpeurnLMeg==", + "dev": true, + "requires": { + "arr-union": "^3.1.0", + "define-property": "^0.2.5", + "isobject": "^3.0.0", + "static-extend": "^0.1.1" + }, + "dependencies": { + "define-property": { + "version": "0.2.5", + "resolved": "https://registry.npmjs.org/define-property/-/define-property-0.2.5.tgz", + "integrity": "sha1-w1se+RjsPJkPmlvFe+BKrOxcgRY=", + "dev": true, + "requires": { + "is-descriptor": "^0.1.0" + } + } + } + }, + "cli-boxes": { + "version": "2.2.1", + "resolved": "https://registry.npmjs.org/cli-boxes/-/cli-boxes-2.2.1.tgz", + "integrity": "sha512-y4coMcylgSCdVinjiDBuR8PCC2bLjyGTwEmPb9NHR/QaNU6EUOXcTY/s6VjGMD6ENSEaeQYHCY0GNGS5jfMwPw==", + "dev": true + }, + "cli-cursor": { + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/cli-cursor/-/cli-cursor-2.1.0.tgz", + "integrity": "sha1-s12sN2R5+sw+lHR9QdDQ9SOP/LU=", + "dev": true, + "requires": { + "restore-cursor": "^2.0.0" + } + }, + "cli-spinners": { + "version": "1.3.1", + "resolved": "https://registry.npmjs.org/cli-spinners/-/cli-spinners-1.3.1.tgz", + "integrity": "sha512-1QL4544moEsDVH9T/l6Cemov/37iv1RtoKf7NJ04A60+4MREXNfx/QvavbH6QoGdsD4N4Mwy49cmaINR/o2mdg==", + "dev": true + }, + "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": "6.0.0", + "resolved": "https://registry.npmjs.org/cliui/-/cliui-6.0.0.tgz", + "integrity": "sha512-t6wbgtoCXvAzst7QgXxJYqPt0usEfbgQdftEPbLL/cvv6HPE5VgvqCuAIDR0NgU52ds6rFwqrgakNLrHEjCbrQ==", + "requires": { + "string-width": "^4.2.0", + "strip-ansi": "^6.0.0", + "wrap-ansi": "^6.2.0" + }, + "dependencies": { + "ansi-regex": { + "version": "5.0.0", + "resolved": "https://registry.npmjs.org/ansi-regex/-/ansi-regex-5.0.0.tgz", + "integrity": "sha512-bY6fj56OUQ0hU1KjFNDQuJFezqKdrAyFdIevADiqrWHwSlbmBNMHp5ak2f40Pm8JTFyM2mqxkG6ngkHO11f/lg==" + }, + "emoji-regex": { + "version": "8.0.0", + "resolved": "https://registry.npmjs.org/emoji-regex/-/emoji-regex-8.0.0.tgz", + "integrity": "sha512-MSjYzcWNOA0ewAHpz0MxpYFvwg6yjy1NG3xteoqz644VCo/RPgnr1/GGt+ic3iJTzQ8Eu3TdM14SawnVUmGE6A==" + }, + "is-fullwidth-code-point": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/is-fullwidth-code-point/-/is-fullwidth-code-point-3.0.0.tgz", + "integrity": "sha512-zymm5+u+sCsSWyD9qNaejV3DFvhCKclKdizYaJUuHA83RLjb7nSuGnddCHGv0hk+KY7BMAlsWeK4Ueg6EV6XQg==" + }, + "string-width": { + "version": "4.2.0", + "resolved": "https://registry.npmjs.org/string-width/-/string-width-4.2.0.tgz", + "integrity": "sha512-zUz5JD+tgqtuDjMhwIg5uFVV3dtqZ9yQJlZVfq4I01/K5Paj5UHj7VyrQOJvzawSVlKpObApbfD0Ed6yJc+1eg==", + "requires": { + "emoji-regex": "^8.0.0", + "is-fullwidth-code-point": "^3.0.0", + "strip-ansi": "^6.0.0" + } + }, + "strip-ansi": { + "version": "6.0.0", + "resolved": "https://registry.npmjs.org/strip-ansi/-/strip-ansi-6.0.0.tgz", + "integrity": "sha512-AuvKTrTfQNYNIctbR1K/YGTR1756GycPsg7b9bdV9Duqur4gv6aKqHXah67Z8ImS7WEz5QVcOtlfW2rZEugt6w==", + "requires": { + "ansi-regex": "^5.0.0" + } + } + } + }, + "clone": { + "version": "2.1.2", + "resolved": "https://registry.npmjs.org/clone/-/clone-2.1.2.tgz", + "integrity": "sha1-G39Ln1kfHo+DZwQBYANFoCiHQ18=", + "dev": true + }, + "clone-response": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/clone-response/-/clone-response-1.0.2.tgz", + "integrity": "sha1-0dyXOSAxTfZ/vrlCI7TuNQI56Ws=", + "dev": true, + "requires": { + "mimic-response": "^1.0.0" + } + }, + "co": { + "version": "4.6.0", + "resolved": "https://registry.npmjs.org/co/-/co-4.6.0.tgz", + "integrity": "sha1-bqa989hTrlTMuOR7+gvz+QMfsYQ=", + "dev": true + }, + "coa": { + "version": "2.0.2", + "resolved": "https://registry.npmjs.org/coa/-/coa-2.0.2.tgz", + "integrity": "sha512-q5/jG+YQnSy4nRTV4F7lPepBJZ8qBNJJDBuJdoejDyLXgmL7IEo+Le2JDZudFTFt7mrCqIRaSjws4ygRCTCAXA==", + "dev": true, + "requires": { + "@types/q": "^1.5.1", + "chalk": "^2.4.1", + "q": "^1.1.2" + } + }, + "codecov": { + "version": "3.7.0", + "resolved": "https://registry.npmjs.org/codecov/-/codecov-3.7.0.tgz", + "integrity": "sha512-uIixKofG099NbUDyzRk1HdGtaG8O+PBUAg3wfmjwXw2+ek+PZp+puRvbTohqrVfuudaezivJHFgTtSC3M8MXww==", + "dev": true, + "requires": { + "argv": "0.0.2", + "ignore-walk": "3.0.3", + "js-yaml": "3.13.1", + "teeny-request": "6.0.1", + "urlgrey": "0.4.4" + }, + "dependencies": { + "esprima": { + "version": "4.0.1", + "resolved": "https://registry.npmjs.org/esprima/-/esprima-4.0.1.tgz", + "integrity": "sha512-eGuFFw7Upda+g4p+QHvnW0RyTX/SVeJBDM/gCtMARO0cLuT2HcEKnTPvhjV6aGeqrCB/sbNop0Kszm0jsaWU4A==", + "dev": true + }, + "js-yaml": { + "version": "3.13.1", + "resolved": "https://registry.npmjs.org/js-yaml/-/js-yaml-3.13.1.tgz", + "integrity": "sha512-YfbcO7jXDdyj0DGxYVSlSeQNHbD7XPWvrVWeVUujrQEoZzWJIRrCPoyk6kL6IAjAG2IolMK4T0hNUe0HOUs5Jw==", + "dev": true, + "requires": { + "argparse": "^1.0.7", + "esprima": "^4.0.0" + } + } + } + }, + "collect-v8-coverage": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/collect-v8-coverage/-/collect-v8-coverage-1.0.1.tgz", + "integrity": "sha512-iBPtljfCNcTKNAto0KEtDfZ3qzjJvqE3aTGZsbhjSBlorqpXJlaWWtPO35D+ZImoC3KWejX64o+yPGxhWSTzfg==", + "dev": true + }, + "collection-visit": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/collection-visit/-/collection-visit-1.0.0.tgz", + "integrity": "sha1-S8A3PBZLwykbTTaMgpzxqApZ3KA=", + "dev": true, + "requires": { + "map-visit": "^1.0.0", + "object-visit": "^1.0.0" + } + }, + "color": { + "version": "3.1.3", + "resolved": "https://registry.npmjs.org/color/-/color-3.1.3.tgz", + "integrity": "sha512-xgXAcTHa2HeFCGLE9Xs/R82hujGtu9Jd9x4NW3T34+OMs7VoPsjwzRczKHvTAHeJwWFwX5j15+MgAppE8ztObQ==", + "dev": true, + "requires": { + "color-convert": "^1.9.1", + "color-string": "^1.5.4" + } + }, + "color-convert": { + "version": "1.9.3", + "resolved": "https://registry.npmjs.org/color-convert/-/color-convert-1.9.3.tgz", + "integrity": "sha512-QfAUtd+vFdAtFQcC8CCyYt1fYWxSqAiK2cSD6zDB8N3cpsEBAvRxp9zOGg6G/SHHJYAT88/az/IuDGALsNVbGg==", + "dev": true, + "requires": { + "color-name": "1.1.3" + } + }, + "color-name": { + "version": "1.1.3", + "resolved": "https://registry.npmjs.org/color-name/-/color-name-1.1.3.tgz", + "integrity": "sha1-p9BVi9icQveV3UIyj3QIMcpTvCU=", + "dev": true + }, + "color-string": { + "version": "1.5.4", + "resolved": "https://registry.npmjs.org/color-string/-/color-string-1.5.4.tgz", + "integrity": "sha512-57yF5yt8Xa3czSEW1jfQDE79Idk0+AkN/4KWad6tbdxUmAs3MvjxlWSWD4deYytcRfoZ9nhKyFl1kj5tBvidbw==", + "dev": true, + "requires": { + "color-name": "^1.0.0", + "simple-swizzle": "^0.2.2" + } + }, + "colorette": { + "version": "1.2.1", + "resolved": "https://registry.npmjs.org/colorette/-/colorette-1.2.1.tgz", + "integrity": "sha512-puCDz0CzydiSYOrnXpz/PKd69zRrribezjtE9yd4zvytoRc8+RY/KJPvtPFKZS3E3wP6neGyMe0vOTlHO5L3Pw==" + }, + "colors": { + "version": "1.4.0", + "resolved": "https://registry.npmjs.org/colors/-/colors-1.4.0.tgz", + "integrity": "sha512-a+UqTh4kgZg/SlGvfbzDHpgRu7AAQOmmqRHJnxhRZICKFUT91brVhNNt58CMWU9PsBbv3PDCZUHbVxuDiH2mtA==", + "dev": true + }, + "combined-stream": { + "version": "1.0.8", + "resolved": "https://registry.npmjs.org/combined-stream/-/combined-stream-1.0.8.tgz", + "integrity": "sha512-FQN4MRfuJeHf7cBbBMJFXhKSDq+2kAArBlmRBvcvFE5BB1HZKXtSFASDhdlz9zOYwxh8lDdnvmMOe/+5cdoEdg==", + "dev": true, + "requires": { + "delayed-stream": "~1.0.0" + } + }, + "command-exists": { + "version": "1.2.9", + "resolved": "https://registry.npmjs.org/command-exists/-/command-exists-1.2.9.tgz", + "integrity": "sha512-LTQ/SGc+s0Xc0Fu5WaKnR0YiygZkm9eKFvyS+fRsU7/ZWFF8ykFM6Pc9aCVf1+xasOOZpO3BAVgVrKvsqKHV7w==", + "dev": true + }, + "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 + }, + "comment-parser": { + "version": "0.7.6", + "resolved": "https://registry.npmjs.org/comment-parser/-/comment-parser-0.7.6.tgz", + "integrity": "sha512-GKNxVA7/iuTnAqGADlTWX4tkhzxZKXp5fLJqKTlQLHkE65XDUKutZ3BHaJC5IGcper2tT3QRD1xr4o3jNpgXXg==", + "dev": true + }, + "commitizen": { + "version": "4.2.2", + "resolved": "https://registry.npmjs.org/commitizen/-/commitizen-4.2.2.tgz", + "integrity": "sha512-uz+E6lGsDBDI2mYA4QfOxFeqdWUYwR1ky11YmLgg2BnEEP3YbeejpT4lxzGjkYqumnXr062qTOGavR9NtX/iwQ==", + "dev": true, + "requires": { + "cachedir": "2.2.0", + "cz-conventional-changelog": "3.3.0", + "dedent": "0.7.0", + "detect-indent": "6.0.0", + "find-node-modules": "2.0.0", + "find-root": "1.1.0", + "fs-extra": "8.1.0", + "glob": "7.1.4", + "inquirer": "6.5.2", + "is-utf8": "^0.2.1", + "lodash": "^4.17.20", + "minimist": "1.2.5", + "strip-bom": "4.0.0", + "strip-json-comments": "3.0.1" + }, + "dependencies": { + "cz-conventional-changelog": { + "version": "3.3.0", + "resolved": "https://registry.npmjs.org/cz-conventional-changelog/-/cz-conventional-changelog-3.3.0.tgz", + "integrity": "sha512-U466fIzU5U22eES5lTNiNbZ+d8dfcHcssH4o7QsdWaCcRs/feIPCxKYSWkYBNs5mny7MvEfwpTLWjvbm94hecw==", + "dev": true, + "requires": { + "@commitlint/load": ">6.1.1", + "chalk": "^2.4.1", + "commitizen": "^4.0.3", + "conventional-commit-types": "^3.0.0", + "lodash.map": "^4.5.1", + "longest": "^2.0.1", + "word-wrap": "^1.0.3" + } + }, + "detect-indent": { + "version": "6.0.0", + "resolved": "https://registry.npmjs.org/detect-indent/-/detect-indent-6.0.0.tgz", + "integrity": "sha512-oSyFlqaTHCItVRGK5RmrmjB+CmaMOW7IaNA/kdxqhoa6d17j/5ce9O9eWXmV/KEdRwqpQA+Vqe8a8Bsybu4YnA==", + "dev": true + }, + "fs-extra": { + "version": "8.1.0", + "resolved": "https://registry.npmjs.org/fs-extra/-/fs-extra-8.1.0.tgz", + "integrity": "sha512-yhlQgA6mnOJUKOsRUFsgJdQCvkKhcz8tlZG5HBQfReYZy46OwLcY+Zia0mtdHsOo9y/hP+CxMN0TU9QxoOtG4g==", + "dev": true, + "requires": { + "graceful-fs": "^4.2.0", + "jsonfile": "^4.0.0", + "universalify": "^0.1.0" + } + }, + "glob": { + "version": "7.1.4", + "resolved": "https://registry.npmjs.org/glob/-/glob-7.1.4.tgz", + "integrity": "sha512-hkLPepehmnKk41pUGm3sYxoFs/umurYfYJCerbXEyFIWcAzvpipAgVkBqqT9RBKMGjnq6kMuyYwha6csxbiM1A==", + "dev": true, + "requires": { + "fs.realpath": "^1.0.0", + "inflight": "^1.0.4", + "inherits": "2", + "minimatch": "^3.0.4", + "once": "^1.3.0", + "path-is-absolute": "^1.0.0" + } + }, + "minimist": { + "version": "1.2.5", + "resolved": "https://registry.npmjs.org/minimist/-/minimist-1.2.5.tgz", + "integrity": "sha512-FM9nNUYrRBAELZQT3xeZQ7fmMOBg6nWNmJKTcgsJeaLstP/UODVpGsr5OhXhhXg6f+qtJ8uiZ+PUxkDWcgIXLw==", + "dev": true + }, + "strip-bom": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/strip-bom/-/strip-bom-4.0.0.tgz", + "integrity": "sha512-3xurFv5tEgii33Zi8Jtp55wEIILR9eh34FAW00PZf+JnSsTmV/ioewSgQl97JHvgjoRGwPShsWm+IdrxB35d0w==", + "dev": true + } + } + }, + "compare-func": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/compare-func/-/compare-func-2.0.0.tgz", + "integrity": "sha512-zHig5N+tPWARooBnb0Zx1MFcdfpyJrfTJ3Y5L+IFvUm8rM74hHz66z0gw0x4tijh5CorKkKUCnW82R2vmpeCRA==", + "dev": true, + "requires": { + "array-ify": "^1.0.0", + "dot-prop": "^5.1.0" + } + }, + "component-emitter": { + "version": "1.3.0", + "resolved": "https://registry.npmjs.org/component-emitter/-/component-emitter-1.3.0.tgz", + "integrity": "sha512-Rd3se6QB+sO1TwqZjscQrurpEPIfO0/yYnSin6Q/rD3mOutHvUrCAhJub3r90uNb+SESBuE0QYoB90YdfatsRg==", + "dev": true + }, + "concat-map": { + "version": "0.0.1", + "resolved": "https://registry.npmjs.org/concat-map/-/concat-map-0.0.1.tgz", + "integrity": "sha1-2Klr13/Wjfd5OnMDajug1UBdR3s=" + }, + "concat-stream": { + "version": "1.6.2", + "resolved": "https://registry.npmjs.org/concat-stream/-/concat-stream-1.6.2.tgz", + "integrity": "sha512-27HBghJxjiZtIk3Ycvn/4kbJk/1uZuJFfuPEns6LaEvpvG1f0hTea8lilrouyo9mVc2GWdcEZ8OLoGmSADlrCw==", + "dev": true, + "requires": { + "buffer-from": "^1.0.0", + "inherits": "^2.0.3", + "readable-stream": "^2.2.2", + "typedarray": "^0.0.6" + } + }, + "configstore": { + "version": "5.0.1", + "resolved": "https://registry.npmjs.org/configstore/-/configstore-5.0.1.tgz", + "integrity": "sha512-aMKprgk5YhBNyH25hj8wGt2+D52Sw1DRRIzqBwLp2Ya9mFmY8KPvvtvmna8SxVR9JMZ4kzMD68N22vlaRpkeFA==", + "dev": true, + "requires": { + "dot-prop": "^5.2.0", + "graceful-fs": "^4.1.2", + "make-dir": "^3.0.0", + "unique-string": "^2.0.0", + "write-file-atomic": "^3.0.0", + "xdg-basedir": "^4.0.0" + } + }, + "connect": { + "version": "3.7.0", + "resolved": "https://registry.npmjs.org/connect/-/connect-3.7.0.tgz", + "integrity": "sha512-ZqRXc+tZukToSNmh5C2iWMSoV3X1YUcPbqEM4DkEG5tNQXrQUZCNVGGv3IuicnkMtPfGf3Xtp8WCXs295iQ1pQ==", + "dev": true, + "requires": { + "debug": "2.6.9", + "finalhandler": "1.1.2", + "parseurl": "~1.3.3", + "utils-merge": "1.0.1" + }, + "dependencies": { + "debug": { + "version": "2.6.9", + "resolved": "https://registry.npmjs.org/debug/-/debug-2.6.9.tgz", + "integrity": "sha512-bC7ElrdJaJnPbAP+1EotYvqZsb3ecl5wi6Bfi6BJTUcNowp6cvspg0jXznRTKDjm/E7AdgFBVeAPVMNcKGsHMA==", + "dev": true, + "requires": { + "ms": "2.0.0" + } + }, + "ms": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/ms/-/ms-2.0.0.tgz", + "integrity": "sha1-VgiurfwAvmwpAd9fmGF4jeDVl8g=", + "dev": true + } + } + }, + "console-browserify": { + "version": "1.2.0", + "resolved": "https://registry.npmjs.org/console-browserify/-/console-browserify-1.2.0.tgz", + "integrity": "sha512-ZMkYO/LkF17QvCPqM0gxw8yUzigAOZOSWSHg91FH6orS7vcEj5dVZTidN2fQ14yBSdg97RqhSNwLUXInd52OTA==", + "dev": true + }, + "constants-browserify": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/constants-browserify/-/constants-browserify-1.0.0.tgz", + "integrity": "sha1-wguW2MYXdIqvHBYCF2DNJ/y4y3U=", + "dev": true + }, + "contains-path": { + "version": "0.1.0", + "resolved": "https://registry.npmjs.org/contains-path/-/contains-path-0.1.0.tgz", + "integrity": "sha1-/ozxhP9mcLa67wGp1IYaXL7EEgo=", + "dev": true + }, + "conventional-changelog": { + "version": "3.1.18", + "resolved": "https://registry.npmjs.org/conventional-changelog/-/conventional-changelog-3.1.18.tgz", + "integrity": "sha512-aN6a3rjgV8qwAJj3sC/Lme2kvswWO7fFSGQc32gREcwIOsaiqBaO6f2p0NomFaPDnTqZ+mMZFLL3hlzvEnZ0mQ==", + "dev": true, + "requires": { + "conventional-changelog-angular": "^5.0.6", + "conventional-changelog-atom": "^2.0.3", + "conventional-changelog-codemirror": "^2.0.3", + "conventional-changelog-conventionalcommits": "^4.2.3", + "conventional-changelog-core": "^4.1.4", + "conventional-changelog-ember": "^2.0.4", + "conventional-changelog-eslint": "^3.0.4", + "conventional-changelog-express": "^2.0.1", + "conventional-changelog-jquery": "^3.0.6", + "conventional-changelog-jshint": "^2.0.3", + "conventional-changelog-preset-loader": "^2.3.0" + }, + "dependencies": { + "conventional-changelog-core": { + "version": "4.2.1", + "resolved": "https://registry.npmjs.org/conventional-changelog-core/-/conventional-changelog-core-4.2.1.tgz", + "integrity": "sha512-8cH8/DEoD3e5Q6aeogdR5oaaKs0+mG6+f+Om0ZYt3PNv7Zo0sQhu4bMDRsqAF+UTekTAtP1W/C41jH/fkm8Jtw==", + "dev": true, + "requires": { + "add-stream": "^1.0.0", + "conventional-changelog-writer": "^4.0.18", + "conventional-commits-parser": "^3.2.0", + "dateformat": "^3.0.0", + "get-pkg-repo": "^1.0.0", + "git-raw-commits": "2.0.0", + "git-remote-origin-url": "^2.0.0", + "git-semver-tags": "^4.1.1", + "lodash": "^4.17.15", + "normalize-package-data": "^3.0.0", + "q": "^1.5.1", + "read-pkg": "^3.0.0", + "read-pkg-up": "^3.0.0", + "shelljs": "^0.8.3", + "through2": "^4.0.0" + } + }, + "git-semver-tags": { + "version": "4.1.1", + "resolved": "https://registry.npmjs.org/git-semver-tags/-/git-semver-tags-4.1.1.tgz", + "integrity": "sha512-OWyMt5zBe7xFs8vglMmhM9lRQzCWL3WjHtxNNfJTMngGym7pC1kh8sP6jevfydJ6LP3ZvGxfb6ABYgPUM0mtsA==", + "dev": true, + "requires": { + "meow": "^8.0.0", + "semver": "^6.0.0" + } + }, + "hosted-git-info": { + "version": "3.0.7", + "resolved": "https://registry.npmjs.org/hosted-git-info/-/hosted-git-info-3.0.7.tgz", + "integrity": "sha512-fWqc0IcuXs+BmE9orLDyVykAG9GJtGLGuZAAqgcckPgv5xad4AcXGIv8galtQvlwutxSlaMcdw7BUtq2EIvqCQ==", + "dev": true, + "requires": { + "lru-cache": "^6.0.0" + } + }, + "normalize-package-data": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/normalize-package-data/-/normalize-package-data-3.0.0.tgz", + "integrity": "sha512-6lUjEI0d3v6kFrtgA/lOx4zHCWULXsFNIjHolnZCKCTLA6m/G625cdn3O7eNmT0iD3jfo6HZ9cdImGZwf21prw==", + "dev": true, + "requires": { + "hosted-git-info": "^3.0.6", + "resolve": "^1.17.0", + "semver": "^7.3.2", + "validate-npm-package-license": "^3.0.1" + }, + "dependencies": { + "semver": { + "version": "7.3.4", + "resolved": "https://registry.npmjs.org/semver/-/semver-7.3.4.tgz", + "integrity": "sha512-tCfb2WLjqFAtXn4KEdxIhalnRtoKFN7nAwj0B3ZXCbQloV2tq5eDbcTmT68JJD3nRJq24/XgxtQKFIpQdtvmVw==", + "dev": true, + "requires": { + "lru-cache": "^6.0.0" + } + } + } + }, + "read-pkg-up": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/read-pkg-up/-/read-pkg-up-3.0.0.tgz", + "integrity": "sha1-PtSWaF26D4/hGNBpHcUfSh/5bwc=", + "dev": true, + "requires": { + "find-up": "^2.0.0", + "read-pkg": "^3.0.0" + } + }, + "readable-stream": { + "version": "3.6.0", + "resolved": "https://registry.npmjs.org/readable-stream/-/readable-stream-3.6.0.tgz", + "integrity": "sha512-BViHy7LKeTz4oNnkcLJ+lVSL6vpiFeX6/d3oSH8zCW7UxP2onchk+vTGB143xuFjHS3deTgkKoXXymXqymiIdA==", + "dev": true, + "requires": { + "inherits": "^2.0.3", + "string_decoder": "^1.1.1", + "util-deprecate": "^1.0.1" + } + }, + "semver": { + "version": "6.3.0", + "resolved": "https://registry.npmjs.org/semver/-/semver-6.3.0.tgz", + "integrity": "sha512-b39TBaTSfV6yBrapU89p5fKekE2m/NwnDocOVruQFS1/veMgdzuPcnOM34M6CwxW8jH/lxEa5rBoDeUwu5HHTw==", + "dev": true + }, + "through2": { + "version": "4.0.2", + "resolved": "https://registry.npmjs.org/through2/-/through2-4.0.2.tgz", + "integrity": "sha512-iOqSav00cVxEEICeD7TjLB1sueEL+81Wpzp2bY17uZjZN0pWZPuo4suZ/61VujxmqSGFfgOcNuTZ85QJwNZQpw==", + "dev": true, + "requires": { + "readable-stream": "3" + } + } + } + }, + "conventional-changelog-angular": { + "version": "5.0.12", + "resolved": "https://registry.npmjs.org/conventional-changelog-angular/-/conventional-changelog-angular-5.0.12.tgz", + "integrity": "sha512-5GLsbnkR/7A89RyHLvvoExbiGbd9xKdKqDTrArnPbOqBqG/2wIosu0fHwpeIRI8Tl94MhVNBXcLJZl92ZQ5USw==", + "dev": true, + "requires": { + "compare-func": "^2.0.0", + "q": "^1.5.1" + } + }, + "conventional-changelog-atom": { + "version": "2.0.8", + "resolved": "https://registry.npmjs.org/conventional-changelog-atom/-/conventional-changelog-atom-2.0.8.tgz", + "integrity": "sha512-xo6v46icsFTK3bb7dY/8m2qvc8sZemRgdqLb/bjpBsH2UyOS8rKNTgcb5025Hri6IpANPApbXMg15QLb1LJpBw==", + "dev": true, + "requires": { + "q": "^1.5.1" + } + }, + "conventional-changelog-codemirror": { + "version": "2.0.8", + "resolved": "https://registry.npmjs.org/conventional-changelog-codemirror/-/conventional-changelog-codemirror-2.0.8.tgz", + "integrity": "sha512-z5DAsn3uj1Vfp7po3gpt2Boc+Bdwmw2++ZHa5Ak9k0UKsYAO5mH1UBTN0qSCuJZREIhX6WU4E1p3IW2oRCNzQw==", + "dev": true, + "requires": { + "q": "^1.5.1" + } + }, + "conventional-changelog-config-spec": { + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/conventional-changelog-config-spec/-/conventional-changelog-config-spec-2.1.0.tgz", + "integrity": "sha512-IpVePh16EbbB02V+UA+HQnnPIohgXvJRxHcS5+Uwk4AT5LjzCZJm5sp/yqs5C6KZJ1jMsV4paEV13BN1pvDuxQ==", + "dev": true + }, + "conventional-changelog-conventionalcommits": { + "version": "4.5.0", + "resolved": "https://registry.npmjs.org/conventional-changelog-conventionalcommits/-/conventional-changelog-conventionalcommits-4.5.0.tgz", + "integrity": "sha512-buge9xDvjjOxJlyxUnar/+6i/aVEVGA7EEh4OafBCXPlLUQPGbRUBhBUveWRxzvR8TEjhKEP4BdepnpG2FSZXw==", + "dev": true, + "requires": { + "compare-func": "^2.0.0", + "lodash": "^4.17.15", + "q": "^1.5.1" + } + }, + "conventional-changelog-ember": { + "version": "2.0.9", + "resolved": "https://registry.npmjs.org/conventional-changelog-ember/-/conventional-changelog-ember-2.0.9.tgz", + "integrity": "sha512-ulzIReoZEvZCBDhcNYfDIsLTHzYHc7awh+eI44ZtV5cx6LVxLlVtEmcO+2/kGIHGtw+qVabJYjdI5cJOQgXh1A==", + "dev": true, + "requires": { + "q": "^1.5.1" + } + }, + "conventional-changelog-eslint": { + "version": "3.0.9", + "resolved": "https://registry.npmjs.org/conventional-changelog-eslint/-/conventional-changelog-eslint-3.0.9.tgz", + "integrity": "sha512-6NpUCMgU8qmWmyAMSZO5NrRd7rTgErjrm4VASam2u5jrZS0n38V7Y9CzTtLT2qwz5xEChDR4BduoWIr8TfwvXA==", + "dev": true, + "requires": { + "q": "^1.5.1" + } + }, + "conventional-changelog-express": { + "version": "2.0.6", + "resolved": "https://registry.npmjs.org/conventional-changelog-express/-/conventional-changelog-express-2.0.6.tgz", + "integrity": "sha512-SDez2f3iVJw6V563O3pRtNwXtQaSmEfTCaTBPCqn0oG0mfkq0rX4hHBq5P7De2MncoRixrALj3u3oQsNK+Q0pQ==", + "dev": true, + "requires": { + "q": "^1.5.1" + } + }, + "conventional-changelog-jquery": { + "version": "3.0.11", + "resolved": "https://registry.npmjs.org/conventional-changelog-jquery/-/conventional-changelog-jquery-3.0.11.tgz", + "integrity": "sha512-x8AWz5/Td55F7+o/9LQ6cQIPwrCjfJQ5Zmfqi8thwUEKHstEn4kTIofXub7plf1xvFA2TqhZlq7fy5OmV6BOMw==", + "dev": true, + "requires": { + "q": "^1.5.1" + } + }, + "conventional-changelog-jshint": { + "version": "2.0.9", + "resolved": "https://registry.npmjs.org/conventional-changelog-jshint/-/conventional-changelog-jshint-2.0.9.tgz", + "integrity": "sha512-wMLdaIzq6TNnMHMy31hql02OEQ8nCQfExw1SE0hYL5KvU+JCTuPaDO+7JiogGT2gJAxiUGATdtYYfh+nT+6riA==", + "dev": true, + "requires": { + "compare-func": "^2.0.0", + "q": "^1.5.1" + } + }, + "conventional-changelog-preset-loader": { + "version": "2.3.4", + "resolved": "https://registry.npmjs.org/conventional-changelog-preset-loader/-/conventional-changelog-preset-loader-2.3.4.tgz", + "integrity": "sha512-GEKRWkrSAZeTq5+YjUZOYxdHq+ci4dNwHvpaBC3+ENalzFWuCWa9EZXSuZBpkr72sMdKB+1fyDV4takK1Lf58g==", + "dev": true + }, + "conventional-changelog-writer": { + "version": "4.0.18", + "resolved": "https://registry.npmjs.org/conventional-changelog-writer/-/conventional-changelog-writer-4.0.18.tgz", + "integrity": "sha512-mAQDCKyB9HsE8Ko5cCM1Jn1AWxXPYV0v8dFPabZRkvsiWUul2YyAqbIaoMKF88Zf2ffnOPSvKhboLf3fnjo5/A==", + "dev": true, + "requires": { + "compare-func": "^2.0.0", + "conventional-commits-filter": "^2.0.7", + "dateformat": "^3.0.0", + "handlebars": "^4.7.6", + "json-stringify-safe": "^5.0.1", + "lodash": "^4.17.15", + "meow": "^8.0.0", + "semver": "^6.0.0", + "split": "^1.0.0", + "through2": "^4.0.0" + }, + "dependencies": { + "readable-stream": { + "version": "3.6.0", + "resolved": "https://registry.npmjs.org/readable-stream/-/readable-stream-3.6.0.tgz", + "integrity": "sha512-BViHy7LKeTz4oNnkcLJ+lVSL6vpiFeX6/d3oSH8zCW7UxP2onchk+vTGB143xuFjHS3deTgkKoXXymXqymiIdA==", + "dev": true, + "requires": { + "inherits": "^2.0.3", + "string_decoder": "^1.1.1", + "util-deprecate": "^1.0.1" + } + }, + "semver": { + "version": "6.3.0", + "resolved": "https://registry.npmjs.org/semver/-/semver-6.3.0.tgz", + "integrity": "sha512-b39TBaTSfV6yBrapU89p5fKekE2m/NwnDocOVruQFS1/veMgdzuPcnOM34M6CwxW8jH/lxEa5rBoDeUwu5HHTw==", + "dev": true + }, + "through2": { + "version": "4.0.2", + "resolved": "https://registry.npmjs.org/through2/-/through2-4.0.2.tgz", + "integrity": "sha512-iOqSav00cVxEEICeD7TjLB1sueEL+81Wpzp2bY17uZjZN0pWZPuo4suZ/61VujxmqSGFfgOcNuTZ85QJwNZQpw==", + "dev": true, + "requires": { + "readable-stream": "3" + } + } + } + }, + "conventional-commit-types": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/conventional-commit-types/-/conventional-commit-types-3.0.0.tgz", + "integrity": "sha512-SmmCYnOniSsAa9GqWOeLqc179lfr5TRu5b4QFDkbsrJ5TZjPJx85wtOr3zn+1dbeNiXDKGPbZ72IKbPhLXh/Lg==", + "dev": true + }, + "conventional-commits-filter": { + "version": "2.0.7", + "resolved": "https://registry.npmjs.org/conventional-commits-filter/-/conventional-commits-filter-2.0.7.tgz", + "integrity": "sha512-ASS9SamOP4TbCClsRHxIHXRfcGCnIoQqkvAzCSbZzTFLfcTqJVugB0agRgsEELsqaeWgsXv513eS116wnlSSPA==", + "dev": true, + "requires": { + "lodash.ismatch": "^4.4.0", + "modify-values": "^1.0.0" + } + }, + "conventional-commits-parser": { + "version": "3.2.0", + "resolved": "https://registry.npmjs.org/conventional-commits-parser/-/conventional-commits-parser-3.2.0.tgz", + "integrity": "sha512-XmJiXPxsF0JhAKyfA2Nn+rZwYKJ60nanlbSWwwkGwLQFbugsc0gv1rzc7VbbUWAzJfR1qR87/pNgv9NgmxtBMQ==", + "dev": true, + "requires": { + "JSONStream": "^1.0.4", + "is-text-path": "^1.0.1", + "lodash": "^4.17.15", + "meow": "^8.0.0", + "split2": "^2.0.0", + "through2": "^4.0.0", + "trim-off-newlines": "^1.0.0" + }, + "dependencies": { + "readable-stream": { + "version": "3.6.0", + "resolved": "https://registry.npmjs.org/readable-stream/-/readable-stream-3.6.0.tgz", + "integrity": "sha512-BViHy7LKeTz4oNnkcLJ+lVSL6vpiFeX6/d3oSH8zCW7UxP2onchk+vTGB143xuFjHS3deTgkKoXXymXqymiIdA==", + "dev": true, + "requires": { + "inherits": "^2.0.3", + "string_decoder": "^1.1.1", + "util-deprecate": "^1.0.1" + } + }, + "through2": { + "version": "4.0.2", + "resolved": "https://registry.npmjs.org/through2/-/through2-4.0.2.tgz", + "integrity": "sha512-iOqSav00cVxEEICeD7TjLB1sueEL+81Wpzp2bY17uZjZN0pWZPuo4suZ/61VujxmqSGFfgOcNuTZ85QJwNZQpw==", + "dev": true, + "requires": { + "readable-stream": "3" + } + } + } + }, + "convert-source-map": { + "version": "1.7.0", + "resolved": "https://registry.npmjs.org/convert-source-map/-/convert-source-map-1.7.0.tgz", + "integrity": "sha512-4FJkXzKXEDB1snCFZlLP4gpC3JILicCpGbzG9f9G7tGqGCzETQ2hWPrcinA9oU4wtf2biUaEH5065UnMeR33oA==", + "dev": true, + "requires": { + "safe-buffer": "~5.1.1" + } + }, + "copy-anything": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/copy-anything/-/copy-anything-2.0.1.tgz", + "integrity": "sha512-lA57e7viQHOdPQcrytv5jFeudZZOXuyk47lZym279FiDQ8jeZomXiGuVf6ffMKkJ+3TIai3J1J3yi6M+/4U35g==", + "requires": { + "is-what": "^3.7.1" + } + }, + "copy-descriptor": { + "version": "0.1.1", + "resolved": "https://registry.npmjs.org/copy-descriptor/-/copy-descriptor-0.1.1.tgz", + "integrity": "sha1-Z29us8OZl8LuGsOpJP1hJHSPV40=", + "dev": true + }, + "core-js": { + "version": "2.6.12", + "resolved": "https://registry.npmjs.org/core-js/-/core-js-2.6.12.tgz", + "integrity": "sha512-Kb2wC0fvsWfQrgk8HU5lW6U/Lcs8+9aaYcy4ZFc6DDlo4nZ7n70dEgE5rtR0oG6ufKDUnrwfWL1mXR5ljDatrQ==", + "dev": true + }, + "core-js-compat": { + "version": "3.8.1", + "resolved": "https://registry.npmjs.org/core-js-compat/-/core-js-compat-3.8.1.tgz", + "integrity": "sha512-a16TLmy9NVD1rkjUGbwuyWkiDoN0FDpAwrfLONvHFQx0D9k7J9y0srwMT8QP/Z6HE3MIFaVynEeYwZwPX1o5RQ==", + "dev": true, + "requires": { + "browserslist": "^4.15.0", + "semver": "7.0.0" + }, + "dependencies": { + "semver": { + "version": "7.0.0", + "resolved": "https://registry.npmjs.org/semver/-/semver-7.0.0.tgz", + "integrity": "sha512-+GB6zVA9LWh6zovYQLALHwv5rb2PHGlJi3lfiqIHxR0uuwCgefcOJc59v9fv1w8GbStwxuuqqAjI9NMAOOgq1A==", + "dev": true + } + } + }, + "core-util-is": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/core-util-is/-/core-util-is-1.0.2.tgz", + "integrity": "sha1-tf1UIgqivFq1eqtxQMlAdUUDwac=", + "dev": true + }, + "cors": { + "version": "2.8.5", + "resolved": "https://registry.npmjs.org/cors/-/cors-2.8.5.tgz", + "integrity": "sha512-KIHbLJqu73RGr/hnbrO9uBeixNGuvSQjul/jdFvS/KFSIH1hWVd1ng7zOHx+YrEfInLG7q4n6GHQ9cDtxv/P6g==", + "dev": true, + "requires": { + "object-assign": "^4", + "vary": "^1" + } + }, + "cosmiconfig": { + "version": "5.2.1", + "resolved": "https://registry.npmjs.org/cosmiconfig/-/cosmiconfig-5.2.1.tgz", + "integrity": "sha512-H65gsXo1SKjf8zmrJ67eJk8aIRKV5ff2D4uKZIBZShbhGSpEmsQOPW/SKMKYhSTrqR7ufy6RP69rPogdaPh/kA==", + "dev": true, + "requires": { + "import-fresh": "^2.0.0", + "is-directory": "^0.3.1", + "js-yaml": "^3.13.1", + "parse-json": "^4.0.0" + } + }, + "create-ecdh": { + "version": "4.0.4", + "resolved": "https://registry.npmjs.org/create-ecdh/-/create-ecdh-4.0.4.tgz", + "integrity": "sha512-mf+TCx8wWc9VpuxfP2ht0iSISLZnt0JgWlrOKZiNqyUZWnjIaCIVNQArMHnCZKfEYRg6IM7A+NeJoN8gf/Ws0A==", + "dev": true, + "requires": { + "bn.js": "^4.1.0", + "elliptic": "^6.5.3" + }, + "dependencies": { + "bn.js": { + "version": "4.11.9", + "resolved": "https://registry.npmjs.org/bn.js/-/bn.js-4.11.9.tgz", + "integrity": "sha512-E6QoYqCKZfgatHTdHzs1RRKP7ip4vvm+EyRUeE2RF0NblwVvb0p6jSVeNTOFxPn26QXN2o6SMfNxKp6kU8zQaw==", + "dev": true + } + } + }, + "create-hash": { + "version": "1.2.0", + "resolved": "https://registry.npmjs.org/create-hash/-/create-hash-1.2.0.tgz", + "integrity": "sha512-z00bCGNHDG8mHAkP7CtT1qVu+bFQUPjYq/4Iv3C3kWjTFV10zIjfSoeqXo9Asws8gwSHDGj/hl2u4OGIjapeCg==", + "dev": true, + "requires": { + "cipher-base": "^1.0.1", + "inherits": "^2.0.1", + "md5.js": "^1.3.4", + "ripemd160": "^2.0.1", + "sha.js": "^2.4.0" + } + }, + "create-hmac": { + "version": "1.1.7", + "resolved": "https://registry.npmjs.org/create-hmac/-/create-hmac-1.1.7.tgz", + "integrity": "sha512-MJG9liiZ+ogc4TzUwuvbER1JRdgvUFSB5+VR/g5h82fGaIRWMWddtKBHi7/sVhfjQZ6SehlyhvQYrcYkaUIpLg==", + "dev": true, + "requires": { + "cipher-base": "^1.0.3", + "create-hash": "^1.1.0", + "inherits": "^2.0.1", + "ripemd160": "^2.0.0", + "safe-buffer": "^5.0.1", + "sha.js": "^2.4.8" + } + }, + "cross-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" + } + }, + "crypto-browserify": { + "version": "3.12.0", + "resolved": "https://registry.npmjs.org/crypto-browserify/-/crypto-browserify-3.12.0.tgz", + "integrity": "sha512-fz4spIh+znjO2VjL+IdhEpRJ3YN6sMzITSBijk6FK2UvTqruSQW+/cCZTSNsMiZNvUeq0CqurF+dAbyiGOY6Wg==", + "dev": true, + "requires": { + "browserify-cipher": "^1.0.0", + "browserify-sign": "^4.0.0", + "create-ecdh": "^4.0.0", + "create-hash": "^1.1.0", + "create-hmac": "^1.1.0", + "diffie-hellman": "^5.0.0", + "inherits": "^2.0.1", + "pbkdf2": "^3.0.3", + "public-encrypt": "^4.0.0", + "randombytes": "^2.0.0", + "randomfill": "^1.0.3" + } + }, + "crypto-random-string": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/crypto-random-string/-/crypto-random-string-2.0.0.tgz", + "integrity": "sha512-v1plID3y9r/lPhviJ1wrXpLeyUIGAZ2SHNYTEapm7/8A9nLPoyvVp3RK/EPFqn5kEznyWgYZNsRtYYIWbuG8KA==", + "dev": true + }, + "css-color-names": { + "version": "0.0.4", + "resolved": "https://registry.npmjs.org/css-color-names/-/css-color-names-0.0.4.tgz", + "integrity": "sha1-gIrcLnnPhHOAabZGyyDsJ762KeA=", + "dev": true + }, + "css-declaration-sorter": { + "version": "4.0.1", + "resolved": "https://registry.npmjs.org/css-declaration-sorter/-/css-declaration-sorter-4.0.1.tgz", + "integrity": "sha512-BcxQSKTSEEQUftYpBVnsH4SF05NTuBokb19/sBt6asXGKZ/6VP7PLG1CBCkFDYOnhXhPh0jMhO6xZ71oYHXHBA==", + "dev": true, + "requires": { + "postcss": "^7.0.1", + "timsort": "^0.3.0" + }, + "dependencies": { + "postcss": { + "version": "7.0.35", + "resolved": "https://registry.npmjs.org/postcss/-/postcss-7.0.35.tgz", + "integrity": "sha512-3QT8bBJeX/S5zKTTjTCIjRF3If4avAT6kqxcASlTWEtAFCb9NH0OUxNDfgZSWdP5fJnBYCMEWkIFfWeugjzYMg==", + "dev": true, + "requires": { + "chalk": "^2.4.2", + "source-map": "^0.6.1", + "supports-color": "^6.1.0" + } + }, + "supports-color": { + "version": "6.1.0", + "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-6.1.0.tgz", + "integrity": "sha512-qe1jfm1Mg7Nq/NSh6XE24gPXROEVsWHxC1LIx//XNlD9iw7YZQGjZNjYN7xGaEG6iKdA8EtNFW6R0gjnVXp+wQ==", + "dev": true, + "requires": { + "has-flag": "^3.0.0" + } + } + } + }, + "css-modules-loader-core": { + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/css-modules-loader-core/-/css-modules-loader-core-1.1.0.tgz", + "integrity": "sha1-WQhmgpShvs0mGuCkziGwtVHyHRY=", + "dev": true, + "requires": { + "icss-replace-symbols": "1.1.0", + "postcss": "6.0.1", + "postcss-modules-extract-imports": "1.1.0", + "postcss-modules-local-by-default": "1.2.0", + "postcss-modules-scope": "1.1.0", + "postcss-modules-values": "1.3.0" + }, + "dependencies": { + "ansi-regex": { + "version": "2.1.1", + "resolved": "https://registry.npmjs.org/ansi-regex/-/ansi-regex-2.1.1.tgz", + "integrity": "sha1-w7M6te42DYbg5ijwRorn7yfWVN8=", + "dev": true + }, + "ansi-styles": { + "version": "2.2.1", + "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-2.2.1.tgz", + "integrity": "sha1-tDLdM1i2NM914eRmQ2gkBTPB3b4=", + "dev": true + }, + "chalk": { + "version": "1.1.3", + "resolved": "https://registry.npmjs.org/chalk/-/chalk-1.1.3.tgz", + "integrity": "sha1-qBFcVeSnAv5NFQq9OHKCKn4J/Jg=", + "dev": true, + "requires": { + "ansi-styles": "^2.2.1", + "escape-string-regexp": "^1.0.2", + "has-ansi": "^2.0.0", + "strip-ansi": "^3.0.0", + "supports-color": "^2.0.0" + }, + "dependencies": { + "supports-color": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-2.0.0.tgz", + "integrity": "sha1-U10EXOa2Nj+kARcIRimZXp3zJMc=", + "dev": true + } + } + }, + "has-flag": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/has-flag/-/has-flag-1.0.0.tgz", + "integrity": "sha1-nZ55MWXOAXoA8AQYxD+UKnsdEfo=", + "dev": true + }, + "postcss": { + "version": "6.0.1", + "resolved": "https://registry.npmjs.org/postcss/-/postcss-6.0.1.tgz", + "integrity": "sha1-AA29H47vIXqjaLmiEsX8QLKo8/I=", + "dev": true, + "requires": { + "chalk": "^1.1.3", + "source-map": "^0.5.6", + "supports-color": "^3.2.3" + } + }, + "source-map": { + "version": "0.5.7", + "resolved": "https://registry.npmjs.org/source-map/-/source-map-0.5.7.tgz", + "integrity": "sha1-igOdLRAh0i0eoUyA2OpGi6LvP8w=", + "dev": true + }, + "strip-ansi": { + "version": "3.0.1", + "resolved": "https://registry.npmjs.org/strip-ansi/-/strip-ansi-3.0.1.tgz", + "integrity": "sha1-ajhfuIU9lS1f8F0Oiq+UJ43GPc8=", + "dev": true, + "requires": { + "ansi-regex": "^2.0.0" + } + }, + "supports-color": { + "version": "3.2.3", + "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-3.2.3.tgz", + "integrity": "sha1-ZawFBLOVQXHYpklGsq48u4pfVPY=", + "dev": true, + "requires": { + "has-flag": "^1.0.0" + } + } + } + }, + "css-select": { + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/css-select/-/css-select-2.1.0.tgz", + "integrity": "sha512-Dqk7LQKpwLoH3VovzZnkzegqNSuAziQyNZUcrdDM401iY+R5NkGBXGmtO05/yaXQziALuPogeG0b7UAgjnTJTQ==", + "dev": true, + "requires": { + "boolbase": "^1.0.0", + "css-what": "^3.2.1", + "domutils": "^1.7.0", + "nth-check": "^1.0.2" + } + }, + "css-select-base-adapter": { + "version": "0.1.1", + "resolved": "https://registry.npmjs.org/css-select-base-adapter/-/css-select-base-adapter-0.1.1.tgz", + "integrity": "sha512-jQVeeRG70QI08vSTwf1jHxp74JoZsr2XSgETae8/xC8ovSnL2WF87GTLO86Sbwdt2lK4Umg4HnnwMO4YF3Ce7w==", + "dev": true + }, + "css-selector-tokenizer": { + "version": "0.7.3", + "resolved": "https://registry.npmjs.org/css-selector-tokenizer/-/css-selector-tokenizer-0.7.3.tgz", + "integrity": "sha512-jWQv3oCEL5kMErj4wRnK/OPoBi0D+P1FR2cDCKYPaMeD2eW3/mttav8HT4hT1CKopiJI/psEULjkClhvJo4Lvg==", + "dev": true, + "requires": { + "cssesc": "^3.0.0", + "fastparse": "^1.1.2" + } + }, + "css-tree": { + "version": "1.0.0-alpha.37", + "resolved": "https://registry.npmjs.org/css-tree/-/css-tree-1.0.0-alpha.37.tgz", + "integrity": "sha512-DMxWJg0rnz7UgxKT0Q1HU/L9BeJI0M6ksor0OgqOnF+aRCDWg/N2641HmVyU9KVIu0OVVWOb2IpC9A+BJRnejg==", + "dev": true, + "requires": { + "mdn-data": "2.0.4", + "source-map": "^0.6.1" + } + }, + "css-what": { + "version": "3.4.2", + "resolved": "https://registry.npmjs.org/css-what/-/css-what-3.4.2.tgz", + "integrity": "sha512-ACUm3L0/jiZTqfzRM3Hi9Q8eZqd6IK37mMWPLz9PJxkLWllYeRf+EHUSHYEtFop2Eqytaq1FizFVh7XfBnXCDQ==", + "dev": true + }, + "cssesc": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/cssesc/-/cssesc-3.0.0.tgz", + "integrity": "sha512-/Tb/JcjK111nNScGob5MNtsntNM1aCNUDipB/TkwZFhyDrrE47SOx/18wF2bbjgc3ZzCSKW1T5nt5EbFoAz/Vg==", + "dev": true + }, + "cssnano": { + "version": "4.1.10", + "resolved": "https://registry.npmjs.org/cssnano/-/cssnano-4.1.10.tgz", + "integrity": "sha512-5wny+F6H4/8RgNlaqab4ktc3e0/blKutmq8yNlBFXA//nSFFAqAngjNVRzUvCgYROULmZZUoosL/KSoZo5aUaQ==", + "dev": true, + "requires": { + "cosmiconfig": "^5.0.0", + "cssnano-preset-default": "^4.0.7", + "is-resolvable": "^1.0.0", + "postcss": "^7.0.0" + }, + "dependencies": { + "postcss": { + "version": "7.0.35", + "resolved": "https://registry.npmjs.org/postcss/-/postcss-7.0.35.tgz", + "integrity": "sha512-3QT8bBJeX/S5zKTTjTCIjRF3If4avAT6kqxcASlTWEtAFCb9NH0OUxNDfgZSWdP5fJnBYCMEWkIFfWeugjzYMg==", + "dev": true, + "requires": { + "chalk": "^2.4.2", + "source-map": "^0.6.1", + "supports-color": "^6.1.0" + } + }, + "supports-color": { + "version": "6.1.0", + "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-6.1.0.tgz", + "integrity": "sha512-qe1jfm1Mg7Nq/NSh6XE24gPXROEVsWHxC1LIx//XNlD9iw7YZQGjZNjYN7xGaEG6iKdA8EtNFW6R0gjnVXp+wQ==", + "dev": true, + "requires": { + "has-flag": "^3.0.0" + } + } + } + }, + "cssnano-preset-default": { + "version": "4.0.7", + "resolved": "https://registry.npmjs.org/cssnano-preset-default/-/cssnano-preset-default-4.0.7.tgz", + "integrity": "sha512-x0YHHx2h6p0fCl1zY9L9roD7rnlltugGu7zXSKQx6k2rYw0Hi3IqxcoAGF7u9Q5w1nt7vK0ulxV8Lo+EvllGsA==", + "dev": true, + "requires": { + "css-declaration-sorter": "^4.0.1", + "cssnano-util-raw-cache": "^4.0.1", + "postcss": "^7.0.0", + "postcss-calc": "^7.0.1", + "postcss-colormin": "^4.0.3", + "postcss-convert-values": "^4.0.1", + "postcss-discard-comments": "^4.0.2", + "postcss-discard-duplicates": "^4.0.2", + "postcss-discard-empty": "^4.0.1", + "postcss-discard-overridden": "^4.0.1", + "postcss-merge-longhand": "^4.0.11", + "postcss-merge-rules": "^4.0.3", + "postcss-minify-font-values": "^4.0.2", + "postcss-minify-gradients": "^4.0.2", + "postcss-minify-params": "^4.0.2", + "postcss-minify-selectors": "^4.0.2", + "postcss-normalize-charset": "^4.0.1", + "postcss-normalize-display-values": "^4.0.2", + "postcss-normalize-positions": "^4.0.2", + "postcss-normalize-repeat-style": "^4.0.2", + "postcss-normalize-string": "^4.0.2", + "postcss-normalize-timing-functions": "^4.0.2", + "postcss-normalize-unicode": "^4.0.1", + "postcss-normalize-url": "^4.0.1", + "postcss-normalize-whitespace": "^4.0.2", + "postcss-ordered-values": "^4.1.2", + "postcss-reduce-initial": "^4.0.3", + "postcss-reduce-transforms": "^4.0.2", + "postcss-svgo": "^4.0.2", + "postcss-unique-selectors": "^4.0.1" + }, + "dependencies": { + "postcss": { + "version": "7.0.35", + "resolved": "https://registry.npmjs.org/postcss/-/postcss-7.0.35.tgz", + "integrity": "sha512-3QT8bBJeX/S5zKTTjTCIjRF3If4avAT6kqxcASlTWEtAFCb9NH0OUxNDfgZSWdP5fJnBYCMEWkIFfWeugjzYMg==", + "dev": true, + "requires": { + "chalk": "^2.4.2", + "source-map": "^0.6.1", + "supports-color": "^6.1.0" + } + }, + "supports-color": { + "version": "6.1.0", + "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-6.1.0.tgz", + "integrity": "sha512-qe1jfm1Mg7Nq/NSh6XE24gPXROEVsWHxC1LIx//XNlD9iw7YZQGjZNjYN7xGaEG6iKdA8EtNFW6R0gjnVXp+wQ==", + "dev": true, + "requires": { + "has-flag": "^3.0.0" + } + } + } + }, + "cssnano-util-get-arguments": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/cssnano-util-get-arguments/-/cssnano-util-get-arguments-4.0.0.tgz", + "integrity": "sha1-7ToIKZ8h11dBsg87gfGU7UnMFQ8=", + "dev": true + }, + "cssnano-util-get-match": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/cssnano-util-get-match/-/cssnano-util-get-match-4.0.0.tgz", + "integrity": "sha1-wOTKB/U4a7F+xeUiULT1lhNlFW0=", + "dev": true + }, + "cssnano-util-raw-cache": { + "version": "4.0.1", + "resolved": "https://registry.npmjs.org/cssnano-util-raw-cache/-/cssnano-util-raw-cache-4.0.1.tgz", + "integrity": "sha512-qLuYtWK2b2Dy55I8ZX3ky1Z16WYsx544Q0UWViebptpwn/xDBmog2TLg4f+DBMg1rJ6JDWtn96WHbOKDWt1WQA==", + "dev": true, + "requires": { + "postcss": "^7.0.0" + }, + "dependencies": { + "postcss": { + "version": "7.0.35", + "resolved": "https://registry.npmjs.org/postcss/-/postcss-7.0.35.tgz", + "integrity": "sha512-3QT8bBJeX/S5zKTTjTCIjRF3If4avAT6kqxcASlTWEtAFCb9NH0OUxNDfgZSWdP5fJnBYCMEWkIFfWeugjzYMg==", + "dev": true, + "requires": { + "chalk": "^2.4.2", + "source-map": "^0.6.1", + "supports-color": "^6.1.0" + } + }, + "supports-color": { + "version": "6.1.0", + "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-6.1.0.tgz", + "integrity": "sha512-qe1jfm1Mg7Nq/NSh6XE24gPXROEVsWHxC1LIx//XNlD9iw7YZQGjZNjYN7xGaEG6iKdA8EtNFW6R0gjnVXp+wQ==", + "dev": true, + "requires": { + "has-flag": "^3.0.0" + } + } + } + }, + "cssnano-util-same-parent": { + "version": "4.0.1", + "resolved": "https://registry.npmjs.org/cssnano-util-same-parent/-/cssnano-util-same-parent-4.0.1.tgz", + "integrity": "sha512-WcKx5OY+KoSIAxBW6UBBRay1U6vkYheCdjyVNDm85zt5K9mHoGOfsOsqIszfAqrQQFIIKgjh2+FDgIj/zsl21Q==", + "dev": true + }, + "csso": { + "version": "4.2.0", + "resolved": "https://registry.npmjs.org/csso/-/csso-4.2.0.tgz", + "integrity": "sha512-wvlcdIbf6pwKEk7vHj8/Bkc0B4ylXZruLvOgs9doS5eOsOpuodOV2zJChSpkp+pRpYQLQMeF04nr3Z68Sta9jA==", + "dev": true, + "requires": { + "css-tree": "^1.1.2" + }, + "dependencies": { + "css-tree": { + "version": "1.1.2", + "resolved": "https://registry.npmjs.org/css-tree/-/css-tree-1.1.2.tgz", + "integrity": "sha512-wCoWush5Aeo48GLhfHPbmvZs59Z+M7k5+B1xDnXbdWNcEF423DoFdqSWE0PM5aNk5nI5cp1q7ms36zGApY/sKQ==", + "dev": true, + "requires": { + "mdn-data": "2.0.14", + "source-map": "^0.6.1" + } + }, + "mdn-data": { + "version": "2.0.14", + "resolved": "https://registry.npmjs.org/mdn-data/-/mdn-data-2.0.14.tgz", + "integrity": "sha512-dn6wd0uw5GsdswPFfsgMp5NSB0/aDe6fK94YJV/AJDYXL6HVLWBsxeq7js7Ad+mU2K9LAlwpk6kN2D5mwCPVow==", + "dev": true + } + } + }, + "cssom": { + "version": "0.3.8", + "resolved": "https://registry.npmjs.org/cssom/-/cssom-0.3.8.tgz", + "integrity": "sha512-b0tGHbfegbhPJpxpiBPU2sCkigAqtM9O121le6bbOlgyV+NyGyCmVfJ6QW9eRjz8CpNfWEOYBIMIGRYkLwsIYg==", + "dev": true + }, + "cssstyle": { + "version": "1.4.0", + "resolved": "https://registry.npmjs.org/cssstyle/-/cssstyle-1.4.0.tgz", + "integrity": "sha512-GBrLZYZ4X4x6/QEoBnIrqb8B/f5l4+8me2dkom/j1Gtbxy0kBv6OGzKuAsGM75bkGwGAFkt56Iwg28S3XTZgSA==", + "dev": true, + "requires": { + "cssom": "0.3.x" + } + }, + "currently-unhandled": { + "version": "0.4.1", + "resolved": "https://registry.npmjs.org/currently-unhandled/-/currently-unhandled-0.4.1.tgz", + "integrity": "sha1-mI3zP+qxke95mmE2nddsF635V+o=", + "dev": true, + "requires": { + "array-find-index": "^1.0.1" + } + }, + "cz-conventional-changelog": { + "version": "3.2.0", + "resolved": "https://registry.npmjs.org/cz-conventional-changelog/-/cz-conventional-changelog-3.2.0.tgz", + "integrity": "sha512-yAYxeGpVi27hqIilG1nh4A9Bnx4J3Ov+eXy4koL3drrR+IO9GaWPsKjik20ht608Asqi8TQPf0mczhEeyAtMzg==", + "dev": true, + "requires": { + "@commitlint/load": ">6.1.1", + "chalk": "^2.4.1", + "commitizen": "^4.0.3", + "conventional-commit-types": "^3.0.0", + "lodash.map": "^4.5.1", + "longest": "^2.0.1", + "word-wrap": "^1.0.3" + } + }, + "dargs": { + "version": "4.1.0", + "resolved": "https://registry.npmjs.org/dargs/-/dargs-4.1.0.tgz", + "integrity": "sha1-A6nbtLXC8Tm/FK5T8LiipqhvThc=", + "dev": true, + "requires": { + "number-is-nan": "^1.0.0" + } + }, + "dashdash": { + "version": "1.14.1", + "resolved": "https://registry.npmjs.org/dashdash/-/dashdash-1.14.1.tgz", + "integrity": "sha1-hTz6D3y+L+1d4gMmuN1YEDX24vA=", + "dev": true, + "requires": { + "assert-plus": "^1.0.0" + } + }, + "data-urls": { + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/data-urls/-/data-urls-1.1.0.tgz", + "integrity": "sha512-YTWYI9se1P55u58gL5GkQHW4P6VJBJ5iBT+B5a7i2Tjadhv52paJG0qHX4A0OR6/t52odI64KP2YvFpkDOi3eQ==", + "dev": true, + "requires": { + "abab": "^2.0.0", + "whatwg-mimetype": "^2.2.0", + "whatwg-url": "^7.0.0" + } + }, + "dateformat": { + "version": "3.0.3", + "resolved": "https://registry.npmjs.org/dateformat/-/dateformat-3.0.3.tgz", + "integrity": "sha512-jyCETtSl3VMZMWeRo7iY1FL19ges1t55hMo5yaam4Jrsm5EPL89UQkoQRyiI+Yf4k8r2ZpdngkV8hr1lIdjb3Q==", + "dev": true + }, + "deasync": { + "version": "0.1.21", + "resolved": "https://registry.npmjs.org/deasync/-/deasync-0.1.21.tgz", + "integrity": "sha512-kUmM8Y+PZpMpQ+B4AuOW9k2Pfx/mSupJtxOsLzmnHY2WqZUYRFccFn2RhzPAqt3Xb+sorK/badW2D4zNzqZz5w==", + "dev": true, + "requires": { + "bindings": "^1.5.0", + "node-addon-api": "^1.7.1" + } + }, + "debug": { + "version": "4.3.1", + "resolved": "https://registry.npmjs.org/debug/-/debug-4.3.1.tgz", + "integrity": "sha512-doEwdvm4PCeK4K3RQN2ZC2BYUBaxwLARCqZmMjtF8a51J2Rb0xpVloFRnCODwqjpwnAoao4pelN8l3RJdv3gRQ==", + "dev": true, + "requires": { + "ms": "2.1.2" + } + }, + "decamelize": { + "version": "1.2.0", + "resolved": "https://registry.npmjs.org/decamelize/-/decamelize-1.2.0.tgz", + "integrity": "sha1-9lNNFRSCabIDUue+4m9QH5oZEpA=" + }, + "decamelize-keys": { + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/decamelize-keys/-/decamelize-keys-1.1.0.tgz", + "integrity": "sha1-0XGoeTMlKAfrPLYdwcFEXQeN8tk=", + "dev": true, + "requires": { + "decamelize": "^1.1.0", + "map-obj": "^1.0.0" + }, + "dependencies": { + "map-obj": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/map-obj/-/map-obj-1.0.1.tgz", + "integrity": "sha1-2TPOuSBdgr3PSIb2dCvcK03qFG0=", + "dev": true + } + } + }, + "decimal.js": { + "version": "10.2.1", + "resolved": "https://registry.npmjs.org/decimal.js/-/decimal.js-10.2.1.tgz", + "integrity": "sha512-KaL7+6Fw6i5A2XSnsbhm/6B+NuEA7TZ4vqxnd5tXz9sbKtrN9Srj8ab4vKVdK8YAqZO9P1kg45Y6YLoduPf+kw==", + "dev": true + }, + "decode-uri-component": { + "version": "0.2.0", + "resolved": "https://registry.npmjs.org/decode-uri-component/-/decode-uri-component-0.2.0.tgz", + "integrity": "sha1-6zkTMzRYd1y4TNGh+uBiEGu4dUU=", + "dev": true + }, + "decompress-response": { + "version": "3.3.0", + "resolved": "https://registry.npmjs.org/decompress-response/-/decompress-response-3.3.0.tgz", + "integrity": "sha1-gKTdMjdIOEv6JICDYirt7Jgq3/M=", + "dev": true, + "requires": { + "mimic-response": "^1.0.0" + } + }, + "dedent": { + "version": "0.7.0", + "resolved": "https://registry.npmjs.org/dedent/-/dedent-0.7.0.tgz", + "integrity": "sha1-JJXduvbrh0q7Dhvp3yLS5aVEMmw=", + "dev": true + }, + "deep-extend": { + "version": "0.6.0", + "resolved": "https://registry.npmjs.org/deep-extend/-/deep-extend-0.6.0.tgz", + "integrity": "sha512-LOHxIOaPYdHlJRtCQfDIVZtfw/ufM8+rVj649RIHzcm/vGwQRXFt6OPqIFWsm2XEMrNIEtWR64sY1LEKD2vAOA==", + "dev": true + }, + "deep-is": { + "version": "0.1.3", + "resolved": "https://registry.npmjs.org/deep-is/-/deep-is-0.1.3.tgz", + "integrity": "sha1-s2nW+128E+7PUk+RsHD+7cNXzzQ=", + "dev": true + }, + "deepmerge": { + "version": "4.2.2", + "resolved": "https://registry.npmjs.org/deepmerge/-/deepmerge-4.2.2.tgz", + "integrity": "sha512-FJ3UgI4gIl+PHZm53knsuSFpE+nESMr7M4v9QcgB7S63Kj/6WqMiFQJpBBYz1Pt+66bZpP3Q7Lye0Oo9MPKEdg==", + "dev": true + }, + "defaults": { + "version": "1.0.3", + "resolved": "https://registry.npmjs.org/defaults/-/defaults-1.0.3.tgz", + "integrity": "sha1-xlYFHpgX2f8I7YgUd/P+QBnz730=", + "dev": true, + "requires": { + "clone": "^1.0.2" + }, + "dependencies": { + "clone": { + "version": "1.0.4", + "resolved": "https://registry.npmjs.org/clone/-/clone-1.0.4.tgz", + "integrity": "sha1-2jCcwmPfFZlMaIypAheco8fNfH4=", + "dev": true + } + } + }, + "defer-to-connect": { + "version": "1.1.3", + "resolved": "https://registry.npmjs.org/defer-to-connect/-/defer-to-connect-1.1.3.tgz", + "integrity": "sha512-0ISdNousHvZT2EiFlZeZAHBUvSxmKswVCEf8hW7KWgG4a8MVEu/3Vb6uWYozkjylyCxe0JBIiRB1jV45S70WVQ==", + "dev": true + }, + "define-properties": { + "version": "1.1.3", + "resolved": "https://registry.npmjs.org/define-properties/-/define-properties-1.1.3.tgz", + "integrity": "sha512-3MqfYKj2lLzdMSf8ZIZE/V+Zuy+BgD6f164e8K2w7dgnpKArBDerGYpM46IYYcjnkdPNMjPk9A6VFB8+3SKlXQ==", + "dev": true, + "requires": { + "object-keys": "^1.0.12" + } + }, + "define-property": { + "version": "2.0.2", + "resolved": "https://registry.npmjs.org/define-property/-/define-property-2.0.2.tgz", + "integrity": "sha512-jwK2UV4cnPpbcG7+VRARKTZPUWowwXA8bzH5NP6ud0oeAxyYPuGZUAC7hMugpCdz4BeSZl2Dl9k66CHJ/46ZYQ==", + "dev": true, + "requires": { + "is-descriptor": "^1.0.2", + "isobject": "^3.0.1" + }, + "dependencies": { + "is-accessor-descriptor": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/is-accessor-descriptor/-/is-accessor-descriptor-1.0.0.tgz", + "integrity": "sha512-m5hnHTkcVsPfqx3AKlyttIPb7J+XykHvJP2B9bZDjlhLIoEq4XoK64Vg7boZlVWYK6LUY94dYPEE7Lh0ZkZKcQ==", + "dev": true, + "requires": { + "kind-of": "^6.0.0" + } + }, + "is-data-descriptor": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/is-data-descriptor/-/is-data-descriptor-1.0.0.tgz", + "integrity": "sha512-jbRXy1FmtAoCjQkVmIVYwuuqDFUbaOeDjmed1tOGPrsMhtJA4rD9tkgA0F1qJ3gRFRXcHYVkdeaP50Q5rE/jLQ==", + "dev": true, + "requires": { + "kind-of": "^6.0.0" + } + }, + "is-descriptor": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/is-descriptor/-/is-descriptor-1.0.2.tgz", + "integrity": "sha512-2eis5WqQGV7peooDyLmNEPUrps9+SXX5c9pL3xEB+4e9HnGuDa7mB7kHxHw4CbqS9k1T2hOH3miL8n8WtiYVtg==", + "dev": true, + "requires": { + "is-accessor-descriptor": "^1.0.0", + "is-data-descriptor": "^1.0.0", + "kind-of": "^6.0.2" + } + } + } + }, + "delayed-stream": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/delayed-stream/-/delayed-stream-1.0.0.tgz", + "integrity": "sha1-3zrhmayt+31ECqrgsp4icrJOxhk=", + "dev": true + }, + "depd": { + "version": "1.1.2", + "resolved": "https://registry.npmjs.org/depd/-/depd-1.1.2.tgz", + "integrity": "sha1-m81S4UwJd2PnSbJ0xDRu0uVgtak=", + "dev": true + }, + "des.js": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/des.js/-/des.js-1.0.1.tgz", + "integrity": "sha512-Q0I4pfFrv2VPd34/vfLrFOoRmlYj3OV50i7fskps1jZWK1kApMWWT9G6RRUeYedLcBDIhnSDaUvJMb3AhUlaEA==", + "dev": true, + "requires": { + "inherits": "^2.0.1", + "minimalistic-assert": "^1.0.0" + } + }, + "destroy": { + "version": "1.0.4", + "resolved": "https://registry.npmjs.org/destroy/-/destroy-1.0.4.tgz", + "integrity": "sha1-l4hXRCxEdJ5CBmE+N5RiBYJqvYA=", + "dev": true + }, + "detect-file": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/detect-file/-/detect-file-1.0.0.tgz", + "integrity": "sha1-8NZtA2cqglyxtzvbP+YjEMjlUrc=", + "dev": true + }, + "detect-newline": { + "version": "3.1.0", + "resolved": "https://registry.npmjs.org/detect-newline/-/detect-newline-3.1.0.tgz", + "integrity": "sha512-TLz+x/vEXm/Y7P7wn1EJFNLxYpUD4TgMosxY6fAVJUnJMbupHBOncxyWUG9OpTaH9EBD7uFI5LfEgmMOc54DsA==", + "dev": true + }, + "diff-sequences": { + "version": "25.2.6", + "resolved": "https://registry.npmjs.org/diff-sequences/-/diff-sequences-25.2.6.tgz", + "integrity": "sha512-Hq8o7+6GaZeoFjtpgvRBUknSXNeJiCx7V9Fr94ZMljNiCr9n9L8H8aJqgWOQiDDGdyn29fRNcDdRVJ5fdyihfg==", + "dev": true + }, + "diffie-hellman": { + "version": "5.0.3", + "resolved": "https://registry.npmjs.org/diffie-hellman/-/diffie-hellman-5.0.3.tgz", + "integrity": "sha512-kqag/Nl+f3GwyK25fhUMYj81BUOrZ9IuJsjIcDE5icNM9FJHAVm3VcUDxdLPoQtTuUylWm6ZIknYJwwaPxsUzg==", + "dev": true, + "requires": { + "bn.js": "^4.1.0", + "miller-rabin": "^4.0.0", + "randombytes": "^2.0.0" + }, + "dependencies": { + "bn.js": { + "version": "4.11.9", + "resolved": "https://registry.npmjs.org/bn.js/-/bn.js-4.11.9.tgz", + "integrity": "sha512-E6QoYqCKZfgatHTdHzs1RRKP7ip4vvm+EyRUeE2RF0NblwVvb0p6jSVeNTOFxPn26QXN2o6SMfNxKp6kU8zQaw==", + "dev": true + } + } + }, + "dir-glob": { + "version": "3.0.1", + "resolved": "https://registry.npmjs.org/dir-glob/-/dir-glob-3.0.1.tgz", + "integrity": "sha512-WkrWp9GR4KXfKGYzOLmTuGVi1UWFfws377n9cc55/tb6DuqyF6pcQ5AbiHEshaDpY9v6oaSr2XCDidGmMwdzIA==", + "dev": true, + "requires": { + "path-type": "^4.0.0" + }, + "dependencies": { + "path-type": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/path-type/-/path-type-4.0.0.tgz", + "integrity": "sha512-gDKb8aZMDeD/tZWs9P6+q0J9Mwkdl6xMV8TjnGP3qJVJ06bdMgkbBlLU8IdfOsIsFz2BW1rNVT3XuNEl8zPAvw==", + "dev": true + } + } + }, + "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-serializer": { + "version": "0.2.2", + "resolved": "https://registry.npmjs.org/dom-serializer/-/dom-serializer-0.2.2.tgz", + "integrity": "sha512-2/xPb3ORsQ42nHYiSunXkDjPLBaEj/xTwUO4B7XCZQTRk7EBtTOPaygh10YAAh2OI1Qrp6NWfpAhzswj0ydt9g==", + "dev": true, + "requires": { + "domelementtype": "^2.0.1", + "entities": "^2.0.0" + }, + "dependencies": { + "domelementtype": { + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/domelementtype/-/domelementtype-2.1.0.tgz", + "integrity": "sha512-LsTgx/L5VpD+Q8lmsXSHW2WpA+eBlZ9HPf3erD1IoPF00/3JKHZ3BknUVA2QGDNu69ZNmyFmCWBSO45XjYKC5w==", + "dev": true + }, + "entities": { + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/entities/-/entities-2.1.0.tgz", + "integrity": "sha512-hCx1oky9PFrJ611mf0ifBLBRW8lUUVRlFolb5gWRfIELabBlbp9xZvrqZLZAs+NxFnbfQoeGd8wDkygjg7U85w==", + "dev": true + } + } + }, + "domain-browser": { + "version": "1.2.0", + "resolved": "https://registry.npmjs.org/domain-browser/-/domain-browser-1.2.0.tgz", + "integrity": "sha512-jnjyiM6eRyZl2H+W8Q/zLMA481hzi0eszAaBUzIVnmYVDBbnLxVNnfu1HgEBvCbL+71FrxMl3E6lpKH7Ge3OXA==", + "dev": true + }, + "domelementtype": { + "version": "1.3.1", + "resolved": "https://registry.npmjs.org/domelementtype/-/domelementtype-1.3.1.tgz", + "integrity": "sha512-BSKB+TSpMpFI/HOxCNr1O8aMOTZ8hT3pM3GQ0w/mWRmkhEDSFJkkyzz4XQsBV44BChwGkrDfMyjVD0eA2aFV3w==", + "dev": true + }, + "domexception": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/domexception/-/domexception-1.0.1.tgz", + "integrity": "sha512-raigMkn7CJNNo6Ihro1fzG7wr3fHuYVytzquZKX5n0yizGsTcYgzdIUwj1X9pK0VvjeihV+XiclP+DjwbsSKug==", + "dev": true, + "requires": { + "webidl-conversions": "^4.0.2" + } + }, + "domhandler": { + "version": "2.4.2", + "resolved": "https://registry.npmjs.org/domhandler/-/domhandler-2.4.2.tgz", + "integrity": "sha512-JiK04h0Ht5u/80fdLMCEmV4zkNh2BcoMFBmZ/91WtYZ8qVXSKjiw7fXMgFPnHcSZgOo3XdinHvmnDUeMf5R4wA==", + "dev": true, + "requires": { + "domelementtype": "1" + } + }, + "domutils": { + "version": "1.7.0", + "resolved": "https://registry.npmjs.org/domutils/-/domutils-1.7.0.tgz", + "integrity": "sha512-Lgd2XcJ/NjEw+7tFvfKxOzCYKZsdct5lczQ2ZaQY8Djz7pfAD3Gbp8ySJWtreII/vDlMVmxwa6pHmdxIYgttDg==", + "dev": true, + "requires": { + "dom-serializer": "0", + "domelementtype": "1" + } + }, + "dot-prop": { + "version": "5.3.0", + "resolved": "https://registry.npmjs.org/dot-prop/-/dot-prop-5.3.0.tgz", + "integrity": "sha512-QM8q3zDe58hqUqjraQOmzZ1LIH9SWQJTlEKCH4kJ2oQvLZk7RbQXvtDM2XEq3fwkV9CCvvH4LA0AV+ogFsBM2Q==", + "dev": true, + "requires": { + "is-obj": "^2.0.0" + } + }, + "dotenv": { + "version": "5.0.1", + "resolved": "https://registry.npmjs.org/dotenv/-/dotenv-5.0.1.tgz", + "integrity": "sha512-4As8uPrjfwb7VXC+WnLCbXK7y+Ueb2B3zgNCePYfhxS1PYeaO1YTeplffTEcbfLhvFNGLAz90VvJs9yomG7bow==", + "dev": true + }, + "dotenv-expand": { + "version": "5.1.0", + "resolved": "https://registry.npmjs.org/dotenv-expand/-/dotenv-expand-5.1.0.tgz", + "integrity": "sha512-YXQl1DSa4/PQyRfgrv6aoNjhasp/p4qs9FjJ4q4cQk+8m4r6k4ZSiEyytKG8f8W9gi8WsQtIObNmKd+tMzNTmA==", + "dev": true + }, + "dotgitignore": { + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/dotgitignore/-/dotgitignore-2.1.0.tgz", + "integrity": "sha512-sCm11ak2oY6DglEPpCB8TixLjWAxd3kJTs6UIcSasNYxXdFPV+YKlye92c8H4kKFqV5qYMIh7d+cYecEg0dIkA==", + "dev": true, + "requires": { + "find-up": "^3.0.0", + "minimatch": "^3.0.4" + }, + "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" + } + }, + "p-try": { + "version": "2.2.0", + "resolved": "https://registry.npmjs.org/p-try/-/p-try-2.2.0.tgz", + "integrity": "sha512-R4nPAVTAU0B9D35/Gk3uJf/7XYbQcyohSKdvAxIRSNghFl4e71hVoGnBNQz9cWaXxO2I10KTC+3jMdvvoKw6dQ==", + "dev": true + } + } + }, + "duplexer": { + "version": "0.1.2", + "resolved": "https://registry.npmjs.org/duplexer/-/duplexer-0.1.2.tgz", + "integrity": "sha512-jtD6YG370ZCIi/9GTaJKQxWTZD045+4R4hTk/x1UyoqadyJ9x9CgSi1RlVDQF8U2sxLLSnFkCaMihqljHIWgMg==", + "dev": true + }, + "duplexer2": { + "version": "0.1.4", + "resolved": "https://registry.npmjs.org/duplexer2/-/duplexer2-0.1.4.tgz", + "integrity": "sha1-ixLauHjA1p4+eJEFFmKjL8a93ME=", + "dev": true, + "requires": { + "readable-stream": "^2.0.2" + } + }, + "duplexer3": { + "version": "0.1.4", + "resolved": "https://registry.npmjs.org/duplexer3/-/duplexer3-0.1.4.tgz", + "integrity": "sha1-7gHdHKwO08vH/b6jfcCo8c4ALOI=", + "dev": true + }, + "ecc-jsbn": { + "version": "0.1.2", + "resolved": "https://registry.npmjs.org/ecc-jsbn/-/ecc-jsbn-0.1.2.tgz", + "integrity": "sha1-OoOpBOVDUyh4dMVkt1SThoSamMk=", + "dev": true, + "requires": { + "jsbn": "~0.1.0", + "safer-buffer": "^2.1.0" + } + }, + "ee-first": { + "version": "1.1.1", + "resolved": "https://registry.npmjs.org/ee-first/-/ee-first-1.1.1.tgz", + "integrity": "sha1-WQxhFWsK4vTwJVcyoViyZrxWsh0=", + "dev": true + }, + "electron-to-chromium": { + "version": "1.3.629", + "resolved": "https://registry.npmjs.org/electron-to-chromium/-/electron-to-chromium-1.3.629.tgz", + "integrity": "sha512-iSPPJtPvHrMAvYOt+9cdbDmTasPqwnwz4lkP8Dn200gDNUBQOLQ96xUsWXBwXslAo5XxdoXAoQQ3RAy4uao9IQ==" + }, + "elliptic": { + "version": "6.5.3", + "resolved": "https://registry.npmjs.org/elliptic/-/elliptic-6.5.3.tgz", + "integrity": "sha512-IMqzv5wNQf+E6aHeIqATs0tOLeOTwj1QKbRcS3jBbYkl5oLAserA8yJTT7/VyHUYG91PRmPyeQDObKLPpeS4dw==", + "dev": true, + "requires": { + "bn.js": "^4.4.0", + "brorand": "^1.0.1", + "hash.js": "^1.0.0", + "hmac-drbg": "^1.0.0", + "inherits": "^2.0.1", + "minimalistic-assert": "^1.0.0", + "minimalistic-crypto-utils": "^1.0.0" + }, + "dependencies": { + "bn.js": { + "version": "4.11.9", + "resolved": "https://registry.npmjs.org/bn.js/-/bn.js-4.11.9.tgz", + "integrity": "sha512-E6QoYqCKZfgatHTdHzs1RRKP7ip4vvm+EyRUeE2RF0NblwVvb0p6jSVeNTOFxPn26QXN2o6SMfNxKp6kU8zQaw==", + "dev": true + } + } + }, + "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 + }, + "emittery": { + "version": "0.7.2", + "resolved": "https://registry.npmjs.org/emittery/-/emittery-0.7.2.tgz", + "integrity": "sha512-A8OG5SR/ij3SsJdWDJdkkSYUjQdCUx6APQXem0SaEePBSRg4eymGYwBkKo1Y6DU+af/Jn2dBQqDBvjnr9Vi8nQ==", + "dev": true + }, + "emmet-monaco-es": { + "version": "4.4.2", + "resolved": "https://registry.npmjs.org/emmet-monaco-es/-/emmet-monaco-es-4.4.2.tgz", + "integrity": "sha512-34TxxTO3/MG8Ke4+QXZfqcxLthKvmnwyxkCPUwjhDmcssKxFHDCmOCJHScnXaWkmn0ywQD9A0rSt1obYa8grYQ==", + "requires": { + "@emmetio/abbreviation": "^0.7.0", + "@emmetio/css-abbreviation": "^0.4.0", + "@emmetio/css-snippets-resolver": "^0.4.0", + "@emmetio/html-snippets-resolver": "^0.1.4", + "@emmetio/html-transform": "^0.3.10", + "@emmetio/lorem": "^1.0.2", + "@emmetio/markup-formatters": "^0.4.1", + "@emmetio/output-profile": "^0.1.6", + "@emmetio/snippets": "^0.2.12", + "@emmetio/snippets-registry": "^0.3.1", + "@emmetio/stylesheet-formatters": "^0.2.1", + "@emmetio/variable-resolver": "^0.2.1" + } + }, + "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 + }, + "encodeurl": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/encodeurl/-/encodeurl-1.0.2.tgz", + "integrity": "sha1-rT/0yG7C0CkyL1oCw6mmBslbP1k=", + "dev": true + }, + "end-of-stream": { + "version": "1.4.4", + "resolved": "https://registry.npmjs.org/end-of-stream/-/end-of-stream-1.4.4.tgz", + "integrity": "sha512-+uw1inIHVPQoaVuHzRyXd21icM+cnt4CzD5rW+NC1wjOUSTOs+Te7FOv7AhN7vS9x/oIyhLP5PR1H+phQAHu5Q==", + "dev": true, + "requires": { + "once": "^1.4.0" + } + }, + "enquirer": { + "version": "2.3.6", + "resolved": "https://registry.npmjs.org/enquirer/-/enquirer-2.3.6.tgz", + "integrity": "sha512-yjNnPr315/FjS4zIsUxYguYUPP2e1NK4d7E7ZOLiyYCcbFBiTMyID+2wvm2w6+pZ/odMA7cRkjhsPbltwBOrLg==", + "dev": true, + "requires": { + "ansi-colors": "^4.1.1" + } + }, + "entities": { + "version": "1.1.2", + "resolved": "https://registry.npmjs.org/entities/-/entities-1.1.2.tgz", + "integrity": "sha512-f2LZMYl1Fzu7YSBKg+RoROelpOaNrcGmE9AZubeDfrCEia483oW4MI4VyFd5VNHIgQ/7qm1I0wUHK1eJnn2y2w==", + "dev": true + }, + "envinfo": { + "version": "7.7.3", + "resolved": "https://registry.npmjs.org/envinfo/-/envinfo-7.7.3.tgz", + "integrity": "sha512-46+j5QxbPWza0PB1i15nZx0xQ4I/EfQxg9J8Had3b408SV63nEtor2e+oiY63amTo9KTuh2a3XLObNwduxYwwA==", + "dev": true + }, + "errno": { + "version": "0.1.8", + "resolved": "https://registry.npmjs.org/errno/-/errno-0.1.8.tgz", + "integrity": "sha512-dJ6oBr5SQ1VSd9qkk7ByRgb/1SH4JZjCHSW/mr63/QcXO9zLVxvJ6Oy13nio03rxpSnVDDjFor75SjVeZWPW/A==", + "optional": true, + "requires": { + "prr": "~1.0.1" + } + }, + "error-ex": { + "version": "1.3.2", + "resolved": "https://registry.npmjs.org/error-ex/-/error-ex-1.3.2.tgz", + "integrity": "sha512-7dFHNmqeFSEt2ZBsCriorKnn3Z2pj+fd9kmI6QoWw4//DL+icEBfc0U7qJCisqrTsKTjw4fNFy2pW9OqStD84g==", + "dev": true, + "requires": { + "is-arrayish": "^0.2.1" + } + }, + "es-abstract": { + "version": "1.18.0-next.1", + "resolved": "https://registry.npmjs.org/es-abstract/-/es-abstract-1.18.0-next.1.tgz", + "integrity": "sha512-I4UGspA0wpZXWENrdA0uHbnhte683t3qT/1VFH9aX2dA5PPSf6QW5HHXf5HImaqPmjXaVeVk4RGWnaylmV7uAA==", + "dev": true, + "requires": { + "es-to-primitive": "^1.2.1", + "function-bind": "^1.1.1", + "has": "^1.0.3", + "has-symbols": "^1.0.1", + "is-callable": "^1.2.2", + "is-negative-zero": "^2.0.0", + "is-regex": "^1.1.1", + "object-inspect": "^1.8.0", + "object-keys": "^1.1.1", + "object.assign": "^4.1.1", + "string.prototype.trimend": "^1.0.1", + "string.prototype.trimstart": "^1.0.1" + } + }, + "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" + } + }, + "esbuild": { + "version": "0.8.24", + "resolved": "https://registry.npmjs.org/esbuild/-/esbuild-0.8.24.tgz", + "integrity": "sha512-bqgEa2VemAN+YM52SM1626+/pdLp+p9NyqISB06ixcvauKIJk6akia3UTTsGAgn0oHEdReZ97gL+LYX+UjgwKA==", + "dev": true + }, + "escalade": { + "version": "3.1.1", + "resolved": "https://registry.npmjs.org/escalade/-/escalade-3.1.1.tgz", + "integrity": "sha512-k0er2gUkLf8O0zKJiAhmkTnJlTvINGv7ygDNPbeIsX/TJjGJZHuh9B2UxbsaEkmlEo9MfhrSzmhIlhRlI2GXnw==" + }, + "escape-goat": { + "version": "2.1.1", + "resolved": "https://registry.npmjs.org/escape-goat/-/escape-goat-2.1.1.tgz", + "integrity": "sha512-8/uIhbG12Csjy2JEW7D9pHbreaVaS/OpN3ycnyvElTdwM5n6GY6W6e2IPemfvGZeUMqZ9A/3GqIZMgKnBhAw/Q==", + "dev": true + }, + "escape-html": { + "version": "1.0.3", + "resolved": "https://registry.npmjs.org/escape-html/-/escape-html-1.0.3.tgz", + "integrity": "sha1-Aljq5NPQwJdN4cFpGI7wBR0dGYg=", + "dev": true + }, + "escape-string-regexp": { + "version": "1.0.5", + "resolved": "https://registry.npmjs.org/escape-string-regexp/-/escape-string-regexp-1.0.5.tgz", + "integrity": "sha1-G2HAViGQqN/2rjuyzwIAyhMLhtQ=", + "dev": true + }, + "escodegen": { + "version": "1.9.1", + "resolved": "https://registry.npmjs.org/escodegen/-/escodegen-1.9.1.tgz", + "integrity": "sha512-6hTjO1NAWkHnDk3OqQ4YrCuwwmGHL9S3nPlzBOUG/R44rda3wLNrfvQ5fkSGjyhHFKM7ALPKcKGrwvCLe0lC7Q==", + "dev": true, + "requires": { + "esprima": "^3.1.3", + "estraverse": "^4.2.0", + "esutils": "^2.0.2", + "optionator": "^0.8.1", + "source-map": "~0.6.1" + } + }, + "eslint": { + "version": "7.14.0", + "resolved": "https://registry.npmjs.org/eslint/-/eslint-7.14.0.tgz", + "integrity": "sha512-5YubdnPXrlrYAFCKybPuHIAH++PINe1pmKNc5wQRB9HSbqIK1ywAnntE3Wwua4giKu0bjligf1gLF6qxMGOYRA==", + "dev": true, + "requires": { + "@babel/code-frame": "^7.0.0", + "@eslint/eslintrc": "^0.2.1", + "ajv": "^6.10.0", + "chalk": "^4.0.0", + "cross-spawn": "^7.0.2", + "debug": "^4.0.1", + "doctrine": "^3.0.0", + "enquirer": "^2.3.5", + "eslint-scope": "^5.1.1", + "eslint-utils": "^2.1.0", + "eslint-visitor-keys": "^2.0.0", + "espree": "^7.3.0", + "esquery": "^1.2.0", + "esutils": "^2.0.2", + "file-entry-cache": "^5.0.1", + "functional-red-black-tree": "^1.0.1", + "glob-parent": "^5.0.0", + "globals": "^12.1.0", + "ignore": "^4.0.6", + "import-fresh": "^3.0.0", + "imurmurhash": "^0.1.4", + "is-glob": "^4.0.0", + "js-yaml": "^3.13.1", + "json-stable-stringify-without-jsonify": "^1.0.1", + "levn": "^0.4.1", + "lodash": "^4.17.19", + "minimatch": "^3.0.4", + "natural-compare": "^1.4.0", + "optionator": "^0.9.1", + "progress": "^2.0.0", + "regexpp": "^3.1.0", + "semver": "^7.2.1", + "strip-ansi": "^6.0.0", + "strip-json-comments": "^3.1.0", + "table": "^5.2.3", + "text-table": "^0.2.0", + "v8-compile-cache": "^2.0.3" + }, + "dependencies": { + "ansi-regex": { + "version": "5.0.0", + "resolved": "https://registry.npmjs.org/ansi-regex/-/ansi-regex-5.0.0.tgz", + "integrity": "sha512-bY6fj56OUQ0hU1KjFNDQuJFezqKdrAyFdIevADiqrWHwSlbmBNMHp5ak2f40Pm8JTFyM2mqxkG6ngkHO11f/lg==", + "dev": true + }, + "ansi-styles": { + "version": "4.3.0", + "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-4.3.0.tgz", + "integrity": "sha512-zbB9rCJAT1rbjiVDb2hqKFHNYLxgtk8NURxZ3IZwD3F6NtxbXZQCnnSi1Lkx+IDohdPlFp222wVALIheZJQSEg==", + "dev": true, + "requires": { + "color-convert": "^2.0.1" + } + }, + "chalk": { + "version": "4.1.0", + "resolved": "https://registry.npmjs.org/chalk/-/chalk-4.1.0.tgz", + "integrity": "sha512-qwx12AxXe2Q5xQ43Ac//I6v5aXTipYrSESdOgzrN+9XjgEpyjpKuvSGaN4qE93f7TQTlerQQ8S+EQ0EyDoVL1A==", + "dev": true, + "requires": { + "ansi-styles": "^4.1.0", + "supports-color": "^7.1.0" + } + }, + "color-convert": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/color-convert/-/color-convert-2.0.1.tgz", + "integrity": "sha512-RRECPsj7iu/xb5oKYcsFHSppFNnsj/52OVTRKb4zP5onXwVF3zVmmToNcOfGC+CRDpfK/U584fMg38ZHCaElKQ==", + "dev": true, + "requires": { + "color-name": "~1.1.4" + } + }, + "color-name": { + "version": "1.1.4", + "resolved": "https://registry.npmjs.org/color-name/-/color-name-1.1.4.tgz", + "integrity": "sha512-dOy+3AuW3a2wNbZHIuMZpTcgjGuLU/uBL/ubcZF9OXbDo8ff4O8yVp5Bf0efS8uEoYo5q4Fx7dY9OgQGXgAsQA==", + "dev": true + }, + "cross-spawn": { + "version": "7.0.3", + "resolved": "https://registry.npmjs.org/cross-spawn/-/cross-spawn-7.0.3.tgz", + "integrity": "sha512-iRDPJKUPVEND7dHPO8rkbOnPpyDygcDFtWjpeWNCgy8WP2rXcxXL8TskReQl6OrB2G7+UJrags1q15Fudc7G6w==", + "dev": true, + "requires": { + "path-key": "^3.1.0", + "shebang-command": "^2.0.0", + "which": "^2.0.1" + } + }, + "globals": { + "version": "12.4.0", + "resolved": "https://registry.npmjs.org/globals/-/globals-12.4.0.tgz", + "integrity": "sha512-BWICuzzDvDoH54NHKCseDanAhE3CeDorgDL5MT6LMXXj2WCnd9UC2szdk4AWLfjdgNBCXLUanXYcpBBKOSWGwg==", + "dev": true, + "requires": { + "type-fest": "^0.8.1" + } + }, + "has-flag": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/has-flag/-/has-flag-4.0.0.tgz", + "integrity": "sha512-EykJT/Q1KjTWctppgIAgfSO0tKVuZUjhgMr17kqTumMl6Afv3EISleU7qZUzoXDFTAHTDC4NOoG/ZxU3EvlMPQ==", + "dev": true + }, + "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 + }, + "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" + } + }, + "levn": { + "version": "0.4.1", + "resolved": "https://registry.npmjs.org/levn/-/levn-0.4.1.tgz", + "integrity": "sha512-+bT2uH4E5LGE7h/n3evcS/sQlJXCpIp6ym8OWJ5eV6+67Dsql/LaaT7qJBAt2rzfoa/5QBGBhxDix1dMt2kQKQ==", + "dev": true, + "requires": { + "prelude-ls": "^1.2.1", + "type-check": "~0.4.0" + } + }, + "optionator": { + "version": "0.9.1", + "resolved": "https://registry.npmjs.org/optionator/-/optionator-0.9.1.tgz", + "integrity": "sha512-74RlY5FCnhq4jRxVUPKDaRwrVNXMqsGsiW6AJw4XK8hmtm10wC0ypZBLw5IIp85NZMr91+qd1RvvENwg7jjRFw==", + "dev": true, + "requires": { + "deep-is": "^0.1.3", + "fast-levenshtein": "^2.0.6", + "levn": "^0.4.1", + "prelude-ls": "^1.2.1", + "type-check": "^0.4.0", + "word-wrap": "^1.2.3" + } + }, + "path-key": { + "version": "3.1.1", + "resolved": "https://registry.npmjs.org/path-key/-/path-key-3.1.1.tgz", + "integrity": "sha512-ojmeN0qd+y0jszEtoY48r0Peq5dwMEkIlCOu6Q5f41lfkswXuKtYrhgoTpLnyIcHm24Uhqx+5Tqm2InSwLhE6Q==", + "dev": true + }, + "prelude-ls": { + "version": "1.2.1", + "resolved": "https://registry.npmjs.org/prelude-ls/-/prelude-ls-1.2.1.tgz", + "integrity": "sha512-vkcDPrRZo1QZLbn5RLGPpg/WmIQ65qoWWhcGKf/b5eplkkarX0m9z8ppCat4mlOqUsWpyNuYgO3VRyrYHSzX5g==", + "dev": true + }, + "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 + }, + "semver": { + "version": "7.3.4", + "resolved": "https://registry.npmjs.org/semver/-/semver-7.3.4.tgz", + "integrity": "sha512-tCfb2WLjqFAtXn4KEdxIhalnRtoKFN7nAwj0B3ZXCbQloV2tq5eDbcTmT68JJD3nRJq24/XgxtQKFIpQdtvmVw==", + "dev": true, + "requires": { + "lru-cache": "^6.0.0" + } + }, + "shebang-command": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/shebang-command/-/shebang-command-2.0.0.tgz", + "integrity": "sha512-kHxr2zZpYtdmrN1qDjrrX/Z1rR1kG8Dx+gkpK1G4eXmvXswmcE1hTWBWYUzlraYw1/yZp6YuDY77YtvbN0dmDA==", + "dev": true, + "requires": { + "shebang-regex": "^3.0.0" + } + }, + "shebang-regex": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/shebang-regex/-/shebang-regex-3.0.0.tgz", + "integrity": "sha512-7++dFhtcx3353uBaq8DDR4NuxBetBzC7ZQOhmTQInHEd6bSrXdiEyzCvG07Z44UYdLShWUyXt5M/yhz8ekcb1A==", + "dev": true + }, + "strip-ansi": { + "version": "6.0.0", + "resolved": "https://registry.npmjs.org/strip-ansi/-/strip-ansi-6.0.0.tgz", + "integrity": "sha512-AuvKTrTfQNYNIctbR1K/YGTR1756GycPsg7b9bdV9Duqur4gv6aKqHXah67Z8ImS7WEz5QVcOtlfW2rZEugt6w==", + "dev": true, + "requires": { + "ansi-regex": "^5.0.0" + } + }, + "strip-json-comments": { + "version": "3.1.1", + "resolved": "https://registry.npmjs.org/strip-json-comments/-/strip-json-comments-3.1.1.tgz", + "integrity": "sha512-6fPc+R4ihwqP6N/aIv2f1gMH8lOVtWQHoqC4yK6oSDVVocumAsfCqjkXnqiYMhmMwS/mEHLp7Vehlt3ql6lEig==", + "dev": true + }, + "supports-color": { + "version": "7.2.0", + "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-7.2.0.tgz", + "integrity": "sha512-qpCAvRl9stuOHveKsn7HncJRvv501qIacKzQlO/+Lwxc9+0q2wLyv4Dfvt80/DPn2pqOBsJdDiogXGR9+OvwRw==", + "dev": true, + "requires": { + "has-flag": "^4.0.0" + } + }, + "type-check": { + "version": "0.4.0", + "resolved": "https://registry.npmjs.org/type-check/-/type-check-0.4.0.tgz", + "integrity": "sha512-XleUoc9uwGXqjWwXaUTZAmzMcFZ5858QA2vvx1Ur5xIcixXIP+8LnFDgRplU30us6teqdlskFfu+ae4K79Ooew==", + "dev": true, + "requires": { + "prelude-ls": "^1.2.1" + } + }, + "which": { + "version": "2.0.2", + "resolved": "https://registry.npmjs.org/which/-/which-2.0.2.tgz", + "integrity": "sha512-BLI3Tl1TW3Pvl70l3yq3Y64i+awpwXqsGBYWkkqMtnbXgrMD+yj7rhW0kuEDxzJaYXGjEW5ogapKNMEKNMjibA==", + "dev": true, + "requires": { + "isexe": "^2.0.0" + } + } + } + }, + "eslint-config-prettier": { + "version": "6.11.0", + "resolved": "https://registry.npmjs.org/eslint-config-prettier/-/eslint-config-prettier-6.11.0.tgz", + "integrity": "sha512-oB8cpLWSAjOVFEJhhyMZh6NOEOtBVziaqdDQ86+qhDHFbZXoRTM7pNSvFRfW/W/L/LrQ38C99J5CGuRBBzBsdA==", + "dev": true, + "requires": { + "get-stdin": "^6.0.0" + }, + "dependencies": { + "get-stdin": { + "version": "6.0.0", + "resolved": "https://registry.npmjs.org/get-stdin/-/get-stdin-6.0.0.tgz", + "integrity": "sha512-jp4tHawyV7+fkkSKyvjuLZswblUtz+SQKzSWnBbii16BuZksJlU1wuBYXY75r+duh/llF1ur6oNwi+2ZzjKZ7g==", + "dev": true + } + } + }, + "eslint-import-resolver-node": { + "version": "0.3.4", + "resolved": "https://registry.npmjs.org/eslint-import-resolver-node/-/eslint-import-resolver-node-0.3.4.tgz", + "integrity": "sha512-ogtf+5AB/O+nM6DIeBUNr2fuT7ot9Qg/1harBfBtaP13ekEWFQEEMP94BCB7zaNW3gyY+8SHYF00rnqYwXKWOA==", + "dev": true, + "requires": { + "debug": "^2.6.9", + "resolve": "^1.13.1" + }, + "dependencies": { + "debug": { + "version": "2.6.9", + "resolved": "https://registry.npmjs.org/debug/-/debug-2.6.9.tgz", + "integrity": "sha512-bC7ElrdJaJnPbAP+1EotYvqZsb3ecl5wi6Bfi6BJTUcNowp6cvspg0jXznRTKDjm/E7AdgFBVeAPVMNcKGsHMA==", + "dev": true, + "requires": { + "ms": "2.0.0" + } + }, + "ms": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/ms/-/ms-2.0.0.tgz", + "integrity": "sha1-VgiurfwAvmwpAd9fmGF4jeDVl8g=", + "dev": true + } + } + }, + "eslint-module-utils": { + "version": "2.6.0", + "resolved": "https://registry.npmjs.org/eslint-module-utils/-/eslint-module-utils-2.6.0.tgz", + "integrity": "sha512-6j9xxegbqe8/kZY8cYpcp0xhbK0EgJlg3g9mib3/miLaExuuwc3n5UEfSnU6hWMbT0FAYVvDbL9RrRgpUeQIvA==", + "dev": true, + "requires": { + "debug": "^2.6.9", + "pkg-dir": "^2.0.0" + }, + "dependencies": { + "debug": { + "version": "2.6.9", + "resolved": "https://registry.npmjs.org/debug/-/debug-2.6.9.tgz", + "integrity": "sha512-bC7ElrdJaJnPbAP+1EotYvqZsb3ecl5wi6Bfi6BJTUcNowp6cvspg0jXznRTKDjm/E7AdgFBVeAPVMNcKGsHMA==", + "dev": true, + "requires": { + "ms": "2.0.0" + } + }, + "ms": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/ms/-/ms-2.0.0.tgz", + "integrity": "sha1-VgiurfwAvmwpAd9fmGF4jeDVl8g=", + "dev": true + } + } + }, + "eslint-plugin-import": { + "version": "2.20.2", + "resolved": "https://registry.npmjs.org/eslint-plugin-import/-/eslint-plugin-import-2.20.2.tgz", + "integrity": "sha512-FObidqpXrR8OnCh4iNsxy+WACztJLXAHBO5hK79T1Hc77PgQZkyDGA5Ag9xAvRpglvLNxhH/zSmZ70/pZ31dHg==", + "dev": true, + "requires": { + "array-includes": "^3.0.3", + "array.prototype.flat": "^1.2.1", + "contains-path": "^0.1.0", + "debug": "^2.6.9", + "doctrine": "1.5.0", + "eslint-import-resolver-node": "^0.3.2", + "eslint-module-utils": "^2.4.1", + "has": "^1.0.3", + "minimatch": "^3.0.4", + "object.values": "^1.1.0", + "read-pkg-up": "^2.0.0", + "resolve": "^1.12.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": "1.5.0", + "resolved": "https://registry.npmjs.org/doctrine/-/doctrine-1.5.0.tgz", + "integrity": "sha1-N53Ocw9hZvds76TmcHoVmwLFpvo=", + "dev": true, + "requires": { + "esutils": "^2.0.2", + "isarray": "^1.0.0" + } + }, + "ms": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/ms/-/ms-2.0.0.tgz", + "integrity": "sha1-VgiurfwAvmwpAd9fmGF4jeDVl8g=", + "dev": true + } + } + }, + "eslint-plugin-jest": { + "version": "23.13.1", + "resolved": "https://registry.npmjs.org/eslint-plugin-jest/-/eslint-plugin-jest-23.13.1.tgz", + "integrity": "sha512-TRLJH6M6EDvGocD98a7yVThrAOCK9WJfo9phuUb0MJptcrOYZeCKzC9aOzZCD93sxXCsiJVZywaTHdI/mAi0FQ==", + "dev": true, + "requires": { + "@typescript-eslint/experimental-utils": "^2.5.0" + }, + "dependencies": { + "@typescript-eslint/experimental-utils": { + "version": "2.34.0", + "resolved": "https://registry.npmjs.org/@typescript-eslint/experimental-utils/-/experimental-utils-2.34.0.tgz", + "integrity": "sha512-eS6FTkq+wuMJ+sgtuNTtcqavWXqsflWcfBnlYhg/nS4aZ1leewkXGbvBhaapn1q6qf4M71bsR1tez5JTRMuqwA==", + "dev": true, + "requires": { + "@types/json-schema": "^7.0.3", + "@typescript-eslint/typescript-estree": "2.34.0", + "eslint-scope": "^5.0.0", + "eslint-utils": "^2.0.0" + } + }, + "@typescript-eslint/typescript-estree": { + "version": "2.34.0", + "resolved": "https://registry.npmjs.org/@typescript-eslint/typescript-estree/-/typescript-estree-2.34.0.tgz", + "integrity": "sha512-OMAr+nJWKdlVM9LOqCqh3pQQPwxHAN7Du8DR6dmwCrAmxtiXQnhHJ6tBNtf+cggqfo51SG/FCwnKhXCIM7hnVg==", + "dev": true, + "requires": { + "debug": "^4.1.1", + "eslint-visitor-keys": "^1.1.0", + "glob": "^7.1.6", + "is-glob": "^4.0.1", + "lodash": "^4.17.15", + "semver": "^7.3.2", + "tsutils": "^3.17.1" + } + }, + "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 + }, + "glob": { + "version": "7.1.6", + "resolved": "https://registry.npmjs.org/glob/-/glob-7.1.6.tgz", + "integrity": "sha512-LwaxwyZ72Lk7vZINtNNrywX0ZuLyStrdDtabefZKAY5ZGJhVtgdznluResxNmPitE0SAO+O26sWTHeKSI2wMBA==", + "dev": true, + "requires": { + "fs.realpath": "^1.0.0", + "inflight": "^1.0.4", + "inherits": "2", + "minimatch": "^3.0.4", + "once": "^1.3.0", + "path-is-absolute": "^1.0.0" + } + }, + "semver": { + "version": "7.3.4", + "resolved": "https://registry.npmjs.org/semver/-/semver-7.3.4.tgz", + "integrity": "sha512-tCfb2WLjqFAtXn4KEdxIhalnRtoKFN7nAwj0B3ZXCbQloV2tq5eDbcTmT68JJD3nRJq24/XgxtQKFIpQdtvmVw==", + "dev": true, + "requires": { + "lru-cache": "^6.0.0" + } + } + } + }, + "eslint-plugin-jsdoc": { + "version": "25.4.2", + "resolved": "https://registry.npmjs.org/eslint-plugin-jsdoc/-/eslint-plugin-jsdoc-25.4.2.tgz", + "integrity": "sha512-IFZnxBBt2fGYZ9yaLt+KP/jHa6u8LQPwH9QzRlhbU+WKBq7ou6XTXoxG0EZVn9ohcbJ0sM8X70iRRX/J3Wu37w==", + "dev": true, + "requires": { + "comment-parser": "^0.7.4", + "debug": "^4.1.1", + "jsdoctypeparser": "^6.1.0", + "lodash": "^4.17.15", + "regextras": "^0.7.1", + "semver": "^6.3.0", + "spdx-expression-parse": "^3.0.1" + }, + "dependencies": { + "semver": { + "version": "6.3.0", + "resolved": "https://registry.npmjs.org/semver/-/semver-6.3.0.tgz", + "integrity": "sha512-b39TBaTSfV6yBrapU89p5fKekE2m/NwnDocOVruQFS1/veMgdzuPcnOM34M6CwxW8jH/lxEa5rBoDeUwu5HHTw==", + "dev": true + } + } + }, + "eslint-plugin-prefer-arrow": { + "version": "1.2.1", + "resolved": "https://registry.npmjs.org/eslint-plugin-prefer-arrow/-/eslint-plugin-prefer-arrow-1.2.1.tgz", + "integrity": "sha512-CPAvdTGG0YbFAJrUKdRBrOJ0X1I7jTtF5VIM4m2Bw1/A2jrhfUeUAcPy4pAEB5DNaUuDqc59f3pKTeiVeamS1A==", + "dev": true + }, + "eslint-scope": { + "version": "5.1.1", + "resolved": "https://registry.npmjs.org/eslint-scope/-/eslint-scope-5.1.1.tgz", + "integrity": "sha512-2NxwbF/hZ0KpepYN0cNbo+FN6XoK7GaHlQhgx/hIZl6Va0bF45RQOOwhLIy8lQDbuCiadSLCBnH2CFYquit5bw==", + "dev": true, + "requires": { + "esrecurse": "^4.3.0", + "estraverse": "^4.1.1" + } + }, + "eslint-utils": { + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/eslint-utils/-/eslint-utils-2.1.0.tgz", + "integrity": "sha512-w94dQYoauyvlDc43XnGB8lU3Zt713vNChgt4EWwhXAP2XkBvndfxF0AgIqKOOasjPIPzj9JqgwkwbCYD0/V3Zg==", + "dev": true, + "requires": { + "eslint-visitor-keys": "^1.1.0" + }, + "dependencies": { + "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 + } + } + }, + "eslint-visitor-keys": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/eslint-visitor-keys/-/eslint-visitor-keys-2.0.0.tgz", + "integrity": "sha512-QudtT6av5WXels9WjIM7qz1XD1cWGvX4gGXvp/zBn9nXG02D0utdU3Em2m/QjTnrsk6bBjmCygl3rmj118msQQ==", + "dev": true + }, + "espree": { + "version": "7.3.1", + "resolved": "https://registry.npmjs.org/espree/-/espree-7.3.1.tgz", + "integrity": "sha512-v3JCNCE64umkFpmkFGqzVKsOT0tN1Zr+ueqLZfpV1Ob8e+CEgPWa+OxCoGH3tnhimMKIaBm4m/vaRpJ/krRz2g==", + "dev": true, + "requires": { + "acorn": "^7.4.0", + "acorn-jsx": "^5.3.1", + "eslint-visitor-keys": "^1.3.0" + }, + "dependencies": { + "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 + } + } + }, + "esprima": { + "version": "3.1.3", + "resolved": "https://registry.npmjs.org/esprima/-/esprima-3.1.3.tgz", + "integrity": "sha1-/cpRzuYTOJXjyI1TXOSdv/YqRjM=", + "dev": true + }, + "esquery": { + "version": "1.3.1", + "resolved": "https://registry.npmjs.org/esquery/-/esquery-1.3.1.tgz", + "integrity": "sha512-olpvt9QG0vniUBZspVRN6lwB7hOZoTRtT+jzR+tS4ffYx2mzbw+z0XCOk44aaLYKApNX5nMm+E+P6o25ip/DHQ==", + "dev": true, + "requires": { + "estraverse": "^5.1.0" + }, + "dependencies": { + "estraverse": { + "version": "5.2.0", + "resolved": "https://registry.npmjs.org/estraverse/-/estraverse-5.2.0.tgz", + "integrity": "sha512-BxbNGGNm0RyRYvUdHpIwv9IWzeM9XClbOxwoATuFdOE7ZE6wHL+HQ5T8hoPM+zHvmKzzsEqhgy0GrQ5X13afiQ==", + "dev": true + } + } + }, + "esrecurse": { + "version": "4.3.0", + "resolved": "https://registry.npmjs.org/esrecurse/-/esrecurse-4.3.0.tgz", + "integrity": "sha512-KmfKL3b6G+RXvP8N1vr3Tq1kL/oCFgn2NYXEtqP8/L3pKapUA4G8cFVaoF3SU323CD4XypR/ffioHmkti6/Tag==", + "dev": true, + "requires": { + "estraverse": "^5.2.0" + }, + "dependencies": { + "estraverse": { + "version": "5.2.0", + "resolved": "https://registry.npmjs.org/estraverse/-/estraverse-5.2.0.tgz", + "integrity": "sha512-BxbNGGNm0RyRYvUdHpIwv9IWzeM9XClbOxwoATuFdOE7ZE6wHL+HQ5T8hoPM+zHvmKzzsEqhgy0GrQ5X13afiQ==", + "dev": true + } + } + }, + "estraverse": { + "version": "4.3.0", + "resolved": "https://registry.npmjs.org/estraverse/-/estraverse-4.3.0.tgz", + "integrity": "sha512-39nnKffWz8xN1BU/2c79n9nB9HDzo0niYUqx6xyqUnyoAnQyyWpOTdZEeiCch8BBu515t4wp9ZmgVfVhn9EBpw==", + "dev": true + }, + "esutils": { + "version": "2.0.3", + "resolved": "https://registry.npmjs.org/esutils/-/esutils-2.0.3.tgz", + "integrity": "sha512-kVscqXk4OCp68SZ0dkgEKVi6/8ij300KBWTJq32P/dYeWTSwK41WyTxalN1eRmA5Z9UU/LX9D7FWSmV9SAYx6g==", + "dev": true + }, + "etag": { + "version": "1.8.1", + "resolved": "https://registry.npmjs.org/etag/-/etag-1.8.1.tgz", + "integrity": "sha1-Qa4u62XvpiJorr/qg6x9eSmbCIc=", + "dev": true + }, + "event-stream": { + "version": "3.3.4", + "resolved": "https://registry.npmjs.org/event-stream/-/event-stream-3.3.4.tgz", + "integrity": "sha1-SrTJoPWlTbkzi0w02Gv86PSzVXE=", + "dev": true, + "requires": { + "duplexer": "~0.1.1", + "from": "~0", + "map-stream": "~0.1.0", + "pause-stream": "0.0.11", + "split": "0.3", + "stream-combiner": "~0.0.4", + "through": "~2.3.1" + }, + "dependencies": { + "split": { + "version": "0.3.3", + "resolved": "https://registry.npmjs.org/split/-/split-0.3.3.tgz", + "integrity": "sha1-zQ7qXmOiEd//frDwkcQTPi0N0o8=", + "dev": true, + "requires": { + "through": "2" + } + } + } + }, + "events": { + "version": "3.2.0", + "resolved": "https://registry.npmjs.org/events/-/events-3.2.0.tgz", + "integrity": "sha512-/46HWwbfCX2xTawVfkKLGxMifJYQBWMwY1mjywRtb4c9x8l5NP3KoJtnIOiL1hfdRkIuYhETxQlo62IF8tcnlg==", + "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==", + "dev": true, + "requires": { + "md5.js": "^1.3.4", + "safe-buffer": "^5.1.1" + } + }, + "exec-sh": { + "version": "0.3.4", + "resolved": "https://registry.npmjs.org/exec-sh/-/exec-sh-0.3.4.tgz", + "integrity": "sha512-sEFIkc61v75sWeOe72qyrqg2Qg0OuLESziUDk/O/z2qgS15y2gWVFrI6f2Qn/qw/0/NCfCEsmNA4zOjkwEZT1A==", + "dev": true + }, + "execa": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/execa/-/execa-1.0.0.tgz", + "integrity": "sha512-adbxcyWV46qiHyvSp50TKt05tB4tK3HcmF7/nxfAdhnox83seTDbwnaqKO4sXRy7roHAIFqJP/Rw/AuEbX61LA==", + "dev": true, + "requires": { + "cross-spawn": "^6.0.0", + "get-stream": "^4.0.0", + "is-stream": "^1.1.0", + "npm-run-path": "^2.0.0", + "p-finally": "^1.0.0", + "signal-exit": "^3.0.0", + "strip-eof": "^1.0.0" + } + }, + "exit": { + "version": "0.1.2", + "resolved": "https://registry.npmjs.org/exit/-/exit-0.1.2.tgz", + "integrity": "sha1-BjJjj42HfMghB9MKD/8aF8uhzQw=", + "dev": true + }, + "expand-brackets": { + "version": "2.1.4", + "resolved": "https://registry.npmjs.org/expand-brackets/-/expand-brackets-2.1.4.tgz", + "integrity": "sha1-t3c14xXOMPa27/D4OwQVGiJEliI=", + "dev": true, + "requires": { + "debug": "^2.3.3", + "define-property": "^0.2.5", + "extend-shallow": "^2.0.1", + "posix-character-classes": "^0.1.0", + "regex-not": "^1.0.0", + "snapdragon": "^0.8.1", + "to-regex": "^3.0.1" + }, + "dependencies": { + "debug": { + "version": "2.6.9", + "resolved": "https://registry.npmjs.org/debug/-/debug-2.6.9.tgz", + "integrity": "sha512-bC7ElrdJaJnPbAP+1EotYvqZsb3ecl5wi6Bfi6BJTUcNowp6cvspg0jXznRTKDjm/E7AdgFBVeAPVMNcKGsHMA==", + "dev": true, + "requires": { + "ms": "2.0.0" + } + }, + "define-property": { + "version": "0.2.5", + "resolved": "https://registry.npmjs.org/define-property/-/define-property-0.2.5.tgz", + "integrity": "sha1-w1se+RjsPJkPmlvFe+BKrOxcgRY=", + "dev": true, + "requires": { + "is-descriptor": "^0.1.0" + } + }, + "extend-shallow": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/extend-shallow/-/extend-shallow-2.0.1.tgz", + "integrity": "sha1-Ua99YUrZqfYQ6huvu5idaxxWiQ8=", + "dev": true, + "requires": { + "is-extendable": "^0.1.0" + } + }, + "ms": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/ms/-/ms-2.0.0.tgz", + "integrity": "sha1-VgiurfwAvmwpAd9fmGF4jeDVl8g=", + "dev": true + } + } + }, + "expand-tilde": { + "version": "2.0.2", + "resolved": "https://registry.npmjs.org/expand-tilde/-/expand-tilde-2.0.2.tgz", + "integrity": "sha1-l+gBqgUt8CRU3kawK/YhZCzchQI=", + "dev": true, + "requires": { + "homedir-polyfill": "^1.0.1" + } + }, + "expect": { + "version": "26.6.2", + "resolved": "https://registry.npmjs.org/expect/-/expect-26.6.2.tgz", + "integrity": "sha512-9/hlOBkQl2l/PLHJx6JjoDF6xPKcJEsUlWKb23rKE7KzeDqUZKXKNMW27KIue5JMdBV9HgmoJPcc8HtO85t9IA==", + "dev": true, + "requires": { + "@jest/types": "^26.6.2", + "ansi-styles": "^4.0.0", + "jest-get-type": "^26.3.0", + "jest-matcher-utils": "^26.6.2", + "jest-message-util": "^26.6.2", + "jest-regex-util": "^26.0.0" + }, + "dependencies": { + "@jest/types": { + "version": "26.6.2", + "resolved": "https://registry.npmjs.org/@jest/types/-/types-26.6.2.tgz", + "integrity": "sha512-fC6QCp7Sc5sX6g8Tvbmj4XUTbyrik0akgRy03yjXbQaBWWNWGE7SGtJk98m0N8nzegD/7SggrUlivxo5ax4KWQ==", + "dev": true, + "requires": { + "@types/istanbul-lib-coverage": "^2.0.0", + "@types/istanbul-reports": "^3.0.0", + "@types/node": "*", + "@types/yargs": "^15.0.0", + "chalk": "^4.0.0" + } + }, + "@types/istanbul-reports": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/@types/istanbul-reports/-/istanbul-reports-3.0.0.tgz", + "integrity": "sha512-nwKNbvnwJ2/mndE9ItP/zc2TCzw6uuodnF4EHYWD+gCQDVBuRQL5UzbZD0/ezy1iKsFU2ZQiDqg4M9dN4+wZgA==", + "dev": true, + "requires": { + "@types/istanbul-lib-report": "*" + } + }, + "ansi-styles": { + "version": "4.3.0", + "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-4.3.0.tgz", + "integrity": "sha512-zbB9rCJAT1rbjiVDb2hqKFHNYLxgtk8NURxZ3IZwD3F6NtxbXZQCnnSi1Lkx+IDohdPlFp222wVALIheZJQSEg==", + "dev": true, + "requires": { + "color-convert": "^2.0.1" + } + }, + "chalk": { + "version": "4.1.0", + "resolved": "https://registry.npmjs.org/chalk/-/chalk-4.1.0.tgz", + "integrity": "sha512-qwx12AxXe2Q5xQ43Ac//I6v5aXTipYrSESdOgzrN+9XjgEpyjpKuvSGaN4qE93f7TQTlerQQ8S+EQ0EyDoVL1A==", + "dev": true, + "requires": { + "ansi-styles": "^4.1.0", + "supports-color": "^7.1.0" + } + }, + "color-convert": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/color-convert/-/color-convert-2.0.1.tgz", + "integrity": "sha512-RRECPsj7iu/xb5oKYcsFHSppFNnsj/52OVTRKb4zP5onXwVF3zVmmToNcOfGC+CRDpfK/U584fMg38ZHCaElKQ==", + "dev": true, + "requires": { + "color-name": "~1.1.4" + } + }, + "color-name": { + "version": "1.1.4", + "resolved": "https://registry.npmjs.org/color-name/-/color-name-1.1.4.tgz", + "integrity": "sha512-dOy+3AuW3a2wNbZHIuMZpTcgjGuLU/uBL/ubcZF9OXbDo8ff4O8yVp5Bf0efS8uEoYo5q4Fx7dY9OgQGXgAsQA==", + "dev": true + }, + "has-flag": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/has-flag/-/has-flag-4.0.0.tgz", + "integrity": "sha512-EykJT/Q1KjTWctppgIAgfSO0tKVuZUjhgMr17kqTumMl6Afv3EISleU7qZUzoXDFTAHTDC4NOoG/ZxU3EvlMPQ==", + "dev": true + }, + "jest-get-type": { + "version": "26.3.0", + "resolved": "https://registry.npmjs.org/jest-get-type/-/jest-get-type-26.3.0.tgz", + "integrity": "sha512-TpfaviN1R2pQWkIihlfEanwOXK0zcxrKEE4MlU6Tn7keoXdN6/3gK/xl0yEh8DOunn5pOVGKf8hB4R9gVh04ig==", + "dev": true + }, + "supports-color": { + "version": "7.2.0", + "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-7.2.0.tgz", + "integrity": "sha512-qpCAvRl9stuOHveKsn7HncJRvv501qIacKzQlO/+Lwxc9+0q2wLyv4Dfvt80/DPn2pqOBsJdDiogXGR9+OvwRw==", + "dev": true, + "requires": { + "has-flag": "^4.0.0" + } + } + } + }, + "extend": { + "version": "3.0.2", + "resolved": "https://registry.npmjs.org/extend/-/extend-3.0.2.tgz", + "integrity": "sha512-fjquC59cD7CyW6urNXK0FBufkZcoiGG80wTuPujX590cB5Ttln20E2UB4S/WARVqhXffZl2LNgS+gQdPIIim/g==", + "dev": true + }, + "extend-shallow": { + "version": "3.0.2", + "resolved": "https://registry.npmjs.org/extend-shallow/-/extend-shallow-3.0.2.tgz", + "integrity": "sha1-Jqcarwc7OfshJxcnRhMcJwQCjbg=", + "dev": true, + "requires": { + "assign-symbols": "^1.0.0", + "is-extendable": "^1.0.1" + }, + "dependencies": { + "is-extendable": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/is-extendable/-/is-extendable-1.0.1.tgz", + "integrity": "sha512-arnXMxT1hhoKo9k1LZdmlNyJdDDfy2v0fXjFlmok4+i8ul/6WlbVge9bhM74OpNPQPMGUToDtz+KXa1PneJxOA==", + "dev": true, + "requires": { + "is-plain-object": "^2.0.4" + } + } + } + }, + "external-editor": { + "version": "3.1.0", + "resolved": "https://registry.npmjs.org/external-editor/-/external-editor-3.1.0.tgz", + "integrity": "sha512-hMQ4CX1p1izmuLYyZqLMO/qGNw10wSv9QDCPfzXfyFrOaCSSoRfqE1Kf1s5an66J5JZC62NewG+mK49jOCtQew==", + "dev": true, + "requires": { + "chardet": "^0.7.0", + "iconv-lite": "^0.4.24", + "tmp": "^0.0.33" + } + }, + "extglob": { + "version": "2.0.4", + "resolved": "https://registry.npmjs.org/extglob/-/extglob-2.0.4.tgz", + "integrity": "sha512-Nmb6QXkELsuBr24CJSkilo6UHHgbekK5UiZgfE6UHD3Eb27YC6oD+bhcT+tJ6cl8dmsgdQxnWlcry8ksBIBLpw==", + "dev": true, + "requires": { + "array-unique": "^0.3.2", + "define-property": "^1.0.0", + "expand-brackets": "^2.1.4", + "extend-shallow": "^2.0.1", + "fragment-cache": "^0.2.1", + "regex-not": "^1.0.0", + "snapdragon": "^0.8.1", + "to-regex": "^3.0.1" + }, + "dependencies": { + "define-property": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/define-property/-/define-property-1.0.0.tgz", + "integrity": "sha1-dp66rz9KY6rTr56NMEybvnm/sOY=", + "dev": true, + "requires": { + "is-descriptor": "^1.0.0" + } + }, + "extend-shallow": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/extend-shallow/-/extend-shallow-2.0.1.tgz", + "integrity": "sha1-Ua99YUrZqfYQ6huvu5idaxxWiQ8=", + "dev": true, + "requires": { + "is-extendable": "^0.1.0" + } + }, + "is-accessor-descriptor": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/is-accessor-descriptor/-/is-accessor-descriptor-1.0.0.tgz", + "integrity": "sha512-m5hnHTkcVsPfqx3AKlyttIPb7J+XykHvJP2B9bZDjlhLIoEq4XoK64Vg7boZlVWYK6LUY94dYPEE7Lh0ZkZKcQ==", + "dev": true, + "requires": { + "kind-of": "^6.0.0" + } + }, + "is-data-descriptor": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/is-data-descriptor/-/is-data-descriptor-1.0.0.tgz", + "integrity": "sha512-jbRXy1FmtAoCjQkVmIVYwuuqDFUbaOeDjmed1tOGPrsMhtJA4rD9tkgA0F1qJ3gRFRXcHYVkdeaP50Q5rE/jLQ==", + "dev": true, + "requires": { + "kind-of": "^6.0.0" + } + }, + "is-descriptor": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/is-descriptor/-/is-descriptor-1.0.2.tgz", + "integrity": "sha512-2eis5WqQGV7peooDyLmNEPUrps9+SXX5c9pL3xEB+4e9HnGuDa7mB7kHxHw4CbqS9k1T2hOH3miL8n8WtiYVtg==", + "dev": true, + "requires": { + "is-accessor-descriptor": "^1.0.0", + "is-data-descriptor": "^1.0.0", + "kind-of": "^6.0.2" + } + } + } + }, + "extsprintf": { + "version": "1.3.0", + "resolved": "https://registry.npmjs.org/extsprintf/-/extsprintf-1.3.0.tgz", + "integrity": "sha1-lpGEQOMEGnpBT4xS48V06zw+HgU=", + "dev": true + }, + "falafel": { + "version": "2.2.4", + "resolved": "https://registry.npmjs.org/falafel/-/falafel-2.2.4.tgz", + "integrity": "sha512-0HXjo8XASWRmsS0X1EkhwEMZaD3Qvp7FfURwjLKjG1ghfRm/MGZl2r4cWUTv41KdNghTw4OUMmVtdGQp3+H+uQ==", + "dev": true, + "requires": { + "acorn": "^7.1.1", + "foreach": "^2.0.5", + "isarray": "^2.0.1", + "object-keys": "^1.0.6" + }, + "dependencies": { + "isarray": { + "version": "2.0.5", + "resolved": "https://registry.npmjs.org/isarray/-/isarray-2.0.5.tgz", + "integrity": "sha512-xHjhDr3cNBK0BzdUJSPXZntQUx/mwMS5Rw4A7lPJ90XGAO6ISP/ePDNuo0vhqOZU+UD5JoodwCAAoZQd3FeAKw==", + "dev": true + } + } + }, + "fast-deep-equal": { + "version": "3.1.3", + "resolved": "https://registry.npmjs.org/fast-deep-equal/-/fast-deep-equal-3.1.3.tgz", + "integrity": "sha512-f3qQ9oQy9j2AhBe/H9VC91wLmKBCCU/gDOnKNAYG5hswO7BLKj09Hc5HYNz9cGI++xlpDCIgDaitVs03ATR84Q==", + "dev": true + }, + "fast-glob": { + "version": "3.2.4", + "resolved": "https://registry.npmjs.org/fast-glob/-/fast-glob-3.2.4.tgz", + "integrity": "sha512-kr/Oo6PX51265qeuCYsyGypiO5uJFgBS0jksyG7FUeCyQzNwYnzrNIMR1NXfkZXsMYXYLRAHgISHBz8gQcxKHQ==", + "dev": true, + "requires": { + "@nodelib/fs.stat": "^2.0.2", + "@nodelib/fs.walk": "^1.2.3", + "glob-parent": "^5.1.0", + "merge2": "^1.3.0", + "micromatch": "^4.0.2", + "picomatch": "^2.2.1" + } + }, + "fast-json-stable-stringify": { + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/fast-json-stable-stringify/-/fast-json-stable-stringify-2.1.0.tgz", + "integrity": "sha512-lhd/wF+Lk98HZoTCtlVraHtfh5XYijIjalXck7saUtuanSDyLMxnHhSXEDJqHxD7msR8D0uCmqlkwjCV8xvwHw==", + "dev": true + }, + "fast-levenshtein": { + "version": "2.0.6", + "resolved": "https://registry.npmjs.org/fast-levenshtein/-/fast-levenshtein-2.0.6.tgz", + "integrity": "sha1-PYpcZog6FqMMqGQ+hR8Zuqd5eRc=", + "dev": true + }, + "fastparse": { + "version": "1.1.2", + "resolved": "https://registry.npmjs.org/fastparse/-/fastparse-1.1.2.tgz", + "integrity": "sha512-483XLLxTVIwWK3QTrMGRqUfUpoOs/0hbQrl2oz4J0pAcm3A3bu84wxTFqGqkJzewCLdME38xJLJAxBABfQT8sQ==", + "dev": true + }, + "fastq": { + "version": "1.10.0", + "resolved": "https://registry.npmjs.org/fastq/-/fastq-1.10.0.tgz", + "integrity": "sha512-NL2Qc5L3iQEsyYzweq7qfgy5OtXCmGzGvhElGEd/SoFWEMOEczNh5s5ocaF01HDetxz+p8ecjNPA6cZxxIHmzA==", + "dev": true, + "requires": { + "reusify": "^1.0.4" + } + }, + "faye-websocket": { + "version": "0.11.3", + "resolved": "https://registry.npmjs.org/faye-websocket/-/faye-websocket-0.11.3.tgz", + "integrity": "sha512-D2y4bovYpzziGgbHYtGCMjlJM36vAl/y+xUyn1C+FVx8szd1E+86KwVw6XvYSzOP8iMpm1X0I4xJD+QtUb36OA==", + "dev": true, + "requires": { + "websocket-driver": ">=0.5.1" + } + }, + "fb-watchman": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/fb-watchman/-/fb-watchman-2.0.1.tgz", + "integrity": "sha512-DkPJKQeY6kKwmuMretBhr7G6Vodr7bFwDYTXIkfG1gjvNpaxBTQV3PbXg6bR1c1UP4jPOX0jHUbbHANL9vRjVg==", + "dev": true, + "requires": { + "bser": "2.1.1" + } + }, + "figures": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/figures/-/figures-2.0.0.tgz", + "integrity": "sha1-OrGi0qYsi/tDGgyUy3l6L84nyWI=", + "dev": true, + "requires": { + "escape-string-regexp": "^1.0.5" + } + }, + "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-uri-to-path": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/file-uri-to-path/-/file-uri-to-path-1.0.0.tgz", + "integrity": "sha512-0Zt+s3L7Vf1biwWZ29aARiVYLx7iMGnEUl9x33fbB/j3jR81u/O2LbqK+Bm1CDSNDKVtJ/YjwY7TUd5SkeLQLw==", + "dev": true + }, + "filename-reserved-regex": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/filename-reserved-regex/-/filename-reserved-regex-1.0.0.tgz", + "integrity": "sha1-5hz4BfDeHJhFZ9A4bcXfUO5a9+Q=", + "dev": true + }, + "filenamify": { + "version": "1.2.1", + "resolved": "https://registry.npmjs.org/filenamify/-/filenamify-1.2.1.tgz", + "integrity": "sha1-qfL/0RxQO+0wABUCknI3jx8TZaU=", + "dev": true, + "requires": { + "filename-reserved-regex": "^1.0.0", + "strip-outer": "^1.0.0", + "trim-repeated": "^1.0.0" + } + }, + "filenamify-url": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/filenamify-url/-/filenamify-url-1.0.0.tgz", + "integrity": "sha1-syvYExnvWGO3MHi+1Q9GpPeXX1A=", + "dev": true, + "requires": { + "filenamify": "^1.0.0", + "humanize-url": "^1.0.0" + } + }, + "filesize": { + "version": "3.6.1", + "resolved": "https://registry.npmjs.org/filesize/-/filesize-3.6.1.tgz", + "integrity": "sha512-7KjR1vv6qnicaPMi1iiTcI85CyYwRO/PSFCu6SvqL8jN2Wjt/NIYQTFtFs7fSDCYOstUkEWIQGFUg5YZQfjlcg==", + "dev": true + }, + "fill-range": { + "version": "7.0.1", + "resolved": "https://registry.npmjs.org/fill-range/-/fill-range-7.0.1.tgz", + "integrity": "sha512-qOo9F+dMUmC2Lcb4BbVvnKJxTPjCm+RRpe4gDuGrzkL7mEVl/djYSu2OdQ2Pa302N4oqkSg9ir6jaLWJ2USVpQ==", + "dev": true, + "requires": { + "to-regex-range": "^5.0.1" + } + }, + "finalhandler": { + "version": "1.1.2", + "resolved": "https://registry.npmjs.org/finalhandler/-/finalhandler-1.1.2.tgz", + "integrity": "sha512-aAWcW57uxVNrQZqFXjITpW3sIUQmHGG3qSb9mUah9MgMC4NeWhNOlNjXEYq3HjRAvL6arUviZGGJsBg6z0zsWA==", + "dev": true, + "requires": { + "debug": "2.6.9", + "encodeurl": "~1.0.2", + "escape-html": "~1.0.3", + "on-finished": "~2.3.0", + "parseurl": "~1.3.3", + "statuses": "~1.5.0", + "unpipe": "~1.0.0" + }, + "dependencies": { + "debug": { + "version": "2.6.9", + "resolved": "https://registry.npmjs.org/debug/-/debug-2.6.9.tgz", + "integrity": "sha512-bC7ElrdJaJnPbAP+1EotYvqZsb3ecl5wi6Bfi6BJTUcNowp6cvspg0jXznRTKDjm/E7AdgFBVeAPVMNcKGsHMA==", + "dev": true, + "requires": { + "ms": "2.0.0" + } + }, + "ms": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/ms/-/ms-2.0.0.tgz", + "integrity": "sha1-VgiurfwAvmwpAd9fmGF4jeDVl8g=", + "dev": true + } + } + }, + "find-node-modules": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/find-node-modules/-/find-node-modules-2.0.0.tgz", + "integrity": "sha512-8MWIBRgJi/WpjjfVXumjPKCtmQ10B+fjx6zmSA+770GMJirLhWIzg8l763rhjl9xaeaHbnxPNRQKq2mgMhr+aw==", + "dev": true, + "requires": { + "findup-sync": "^3.0.0", + "merge": "^1.2.1" + } + }, + "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": "sha1-RdG35QbHF93UgndaK3eSCjwMV6c=", + "dev": true, + "requires": { + "locate-path": "^2.0.0" + } + }, + "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" + }, + "dependencies": { + "braces": { + "version": "2.3.2", + "resolved": "https://registry.npmjs.org/braces/-/braces-2.3.2.tgz", + "integrity": "sha512-aNdbnj9P8PjdXU4ybaWLK2IF3jc/EoDYbC7AazW6to3TRsfXxscC9UXOB5iDiEQrkyIbWp2SLQda4+QAa7nc3w==", + "dev": true, + "requires": { + "arr-flatten": "^1.1.0", + "array-unique": "^0.3.2", + "extend-shallow": "^2.0.1", + "fill-range": "^4.0.0", + "isobject": "^3.0.1", + "repeat-element": "^1.1.2", + "snapdragon": "^0.8.1", + "snapdragon-node": "^2.0.1", + "split-string": "^3.0.2", + "to-regex": "^3.0.1" + }, + "dependencies": { + "extend-shallow": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/extend-shallow/-/extend-shallow-2.0.1.tgz", + "integrity": "sha1-Ua99YUrZqfYQ6huvu5idaxxWiQ8=", + "dev": true, + "requires": { + "is-extendable": "^0.1.0" + } + } + } + }, + "fill-range": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/fill-range/-/fill-range-4.0.0.tgz", + "integrity": "sha1-1USBHUKPmOsGpj3EAtJAPDKMOPc=", + "dev": true, + "requires": { + "extend-shallow": "^2.0.1", + "is-number": "^3.0.0", + "repeat-string": "^1.6.1", + "to-regex-range": "^2.1.0" + }, + "dependencies": { + "extend-shallow": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/extend-shallow/-/extend-shallow-2.0.1.tgz", + "integrity": "sha1-Ua99YUrZqfYQ6huvu5idaxxWiQ8=", + "dev": true, + "requires": { + "is-extendable": "^0.1.0" + } + } + } + }, + "is-number": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/is-number/-/is-number-3.0.0.tgz", + "integrity": "sha1-JP1iAaR4LPUFYcgQJ2r8fRLXEZU=", + "dev": true, + "requires": { + "kind-of": "^3.0.2" + }, + "dependencies": { + "kind-of": { + "version": "3.2.2", + "resolved": "https://registry.npmjs.org/kind-of/-/kind-of-3.2.2.tgz", + "integrity": "sha1-MeohpzS6ubuw8yRm2JOupR5KPGQ=", + "dev": true, + "requires": { + "is-buffer": "^1.1.5" + } + } + } + }, + "micromatch": { + "version": "3.1.10", + "resolved": "https://registry.npmjs.org/micromatch/-/micromatch-3.1.10.tgz", + "integrity": "sha512-MWikgl9n9M3w+bpsY3He8L+w9eF9338xRl8IAO5viDizwSzziFEyUzo2xrrloB64ADbTf8uA8vRqqttDTOmccg==", + "dev": true, + "requires": { + "arr-diff": "^4.0.0", + "array-unique": "^0.3.2", + "braces": "^2.3.1", + "define-property": "^2.0.2", + "extend-shallow": "^3.0.2", + "extglob": "^2.0.4", + "fragment-cache": "^0.2.1", + "kind-of": "^6.0.2", + "nanomatch": "^1.2.9", + "object.pick": "^1.3.0", + "regex-not": "^1.0.0", + "snapdragon": "^0.8.1", + "to-regex": "^3.0.2" + } + }, + "to-regex-range": { + "version": "2.1.1", + "resolved": "https://registry.npmjs.org/to-regex-range/-/to-regex-range-2.1.1.tgz", + "integrity": "sha1-fIDBe53+vlmeJzZ+DU3VWQFB2zg=", + "dev": true, + "requires": { + "is-number": "^3.0.0", + "repeat-string": "^1.6.1" + } + } + } + }, + "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": { + "glob": { + "version": "7.1.6", + "resolved": "https://registry.npmjs.org/glob/-/glob-7.1.6.tgz", + "integrity": "sha512-LwaxwyZ72Lk7vZINtNNrywX0ZuLyStrdDtabefZKAY5ZGJhVtgdznluResxNmPitE0SAO+O26sWTHeKSI2wMBA==", + "dev": true, + "requires": { + "fs.realpath": "^1.0.0", + "inflight": "^1.0.4", + "inherits": "2", + "minimatch": "^3.0.4", + "once": "^1.3.0", + "path-is-absolute": "^1.0.0" + } + }, + "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 + }, + "for-in": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/for-in/-/for-in-1.0.2.tgz", + "integrity": "sha1-gQaNKVqBQuwKxybG4iAMMPttXoA=", + "dev": true + }, + "foreach": { + "version": "2.0.5", + "resolved": "https://registry.npmjs.org/foreach/-/foreach-2.0.5.tgz", + "integrity": "sha1-C+4AUBiusmDQo6865ljdATbsG5k=", + "dev": true + }, + "forever-agent": { + "version": "0.6.1", + "resolved": "https://registry.npmjs.org/forever-agent/-/forever-agent-0.6.1.tgz", + "integrity": "sha1-+8cfDEGt6zf5bFd60e1C2P2sypE=", + "dev": true + }, + "form-data": { + "version": "2.3.3", + "resolved": "https://registry.npmjs.org/form-data/-/form-data-2.3.3.tgz", + "integrity": "sha512-1lLKB2Mu3aGP1Q/2eCOx0fNbRMe7XdwktwOruhfqqd0rIJWwN4Dh+E3hrPSlDCXnSR7UtZ1N38rVXm+6+MEhJQ==", + "dev": true, + "requires": { + "asynckit": "^0.4.0", + "combined-stream": "^1.0.6", + "mime-types": "^2.1.12" + } + }, + "fraction.js": { + "version": "4.0.13", + "resolved": "https://registry.npmjs.org/fraction.js/-/fraction.js-4.0.13.tgz", + "integrity": "sha512-E1fz2Xs9ltlUp+qbiyx9wmt2n9dRzPsS11Jtdb8D2o+cC7wr9xkkKsVKJuBX0ST+LVS+LhLO+SbLJNtfWcJvXA==" + }, + "fragment-cache": { + "version": "0.2.1", + "resolved": "https://registry.npmjs.org/fragment-cache/-/fragment-cache-0.2.1.tgz", + "integrity": "sha1-QpD60n8T6Jvn8zeZxrxaCr//DRk=", + "dev": true, + "requires": { + "map-cache": "^0.2.2" + } + }, + "fresh": { + "version": "0.5.2", + "resolved": "https://registry.npmjs.org/fresh/-/fresh-0.5.2.tgz", + "integrity": "sha1-PYyt2Q2XZWn6g1qx+OSyOhBWBac=", + "dev": true + }, + "from": { + "version": "0.1.7", + "resolved": "https://registry.npmjs.org/from/-/from-0.1.7.tgz", + "integrity": "sha1-g8YK/Fi5xWmXAH7Rp2izqzA6RP4=", + "dev": true + }, + "fs-access": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/fs-access/-/fs-access-1.0.1.tgz", + "integrity": "sha1-1qh/JiJxzv6+wwxVNAf7mV2od3o=", + "dev": true, + "requires": { + "null-check": "^1.0.0" + } + }, + "fs-extra": { + "version": "7.0.1", + "resolved": "https://registry.npmjs.org/fs-extra/-/fs-extra-7.0.1.tgz", + "integrity": "sha512-YJDaCJZEnBmcbw13fvdAM9AwNOJwOzrE4pqMqBq5nFiEqXUqHwlK4B+3pUw6JNvfSPtX05xFHtYy/1ni01eGCw==", + "dev": true, + "requires": { + "graceful-fs": "^4.1.2", + "jsonfile": "^4.0.0", + "universalify": "^0.1.0" + } + }, + "fs.realpath": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/fs.realpath/-/fs.realpath-1.0.0.tgz", + "integrity": "sha1-FQStJSMVjKpA20onh8sBQRmU6k8=" + }, + "fsevents": { + "version": "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" + } + }, + "function-bind": { + "version": "1.1.1", + "resolved": "https://registry.npmjs.org/function-bind/-/function-bind-1.1.1.tgz", + "integrity": "sha512-yIovAzMX49sF8Yl58fSCWJ5svSLuaibPxXQJFLmBObTuCr0Mf1KiPopGM9NiFjiYBCbfaa2Fh6breQ6ANVTI0A==", + "dev": true + }, + "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": "sha1-GwqzvVU7Kg1jmdKcDj6gslIHgyc=", + "dev": true + }, + "gensync": { + "version": "1.0.0-beta.2", + "resolved": "https://registry.npmjs.org/gensync/-/gensync-1.0.0-beta.2.tgz", + "integrity": "sha512-3hN7NaskYvMDLQY55gnW3NQ+mesEAepTqlg+VEbj7zzqEMBVNhzcGYYeqFo/TlYz6eQiFcp1HcsCZO+nGgS8zg==", + "dev": true + }, + "get-caller-file": { + "version": "2.0.5", + "resolved": "https://registry.npmjs.org/get-caller-file/-/get-caller-file-2.0.5.tgz", + "integrity": "sha512-DyFP3BM/3YHTQOCUL/w0OZHR0lpKeGrxotcHWcqNEdnltqFwXVfhEBQ94eIo34AfQpo0rGki4cyIiftY06h2Fg==" + }, + "get-intrinsic": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/get-intrinsic/-/get-intrinsic-1.0.1.tgz", + "integrity": "sha512-ZnWP+AmS1VUaLgTRy47+zKtjTxz+0xMpx3I52i+aalBK1QP19ggLF3Db89KJX7kjfOfP2eoa01qc++GwPgufPg==", + "dev": true, + "requires": { + "function-bind": "^1.1.1", + "has": "^1.0.3", + "has-symbols": "^1.0.1" + } + }, + "get-package-type": { + "version": "0.1.0", + "resolved": "https://registry.npmjs.org/get-package-type/-/get-package-type-0.1.0.tgz", + "integrity": "sha512-pjzuKtY64GYfWizNAJ0fr9VqttZkNiK2iS430LtIHzjBEr6bX8Am2zm4sW4Ro5wjWW5cAlRL1qAMTcXbjNAO2Q==", + "dev": true + }, + "get-pkg-repo": { + "version": "1.4.0", + "resolved": "https://registry.npmjs.org/get-pkg-repo/-/get-pkg-repo-1.4.0.tgz", + "integrity": "sha1-xztInAbYDMVTbCyFP54FIyBWly0=", + "dev": true, + "requires": { + "hosted-git-info": "^2.1.4", + "meow": "^3.3.0", + "normalize-package-data": "^2.3.0", + "parse-github-repo-url": "^1.3.0", + "through2": "^2.0.0" + }, + "dependencies": { + "camelcase": { + "version": "2.1.1", + "resolved": "https://registry.npmjs.org/camelcase/-/camelcase-2.1.1.tgz", + "integrity": "sha1-fB0W1nmhu+WcoCys7PsBHiAfWh8=", + "dev": true + }, + "camelcase-keys": { + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/camelcase-keys/-/camelcase-keys-2.1.0.tgz", + "integrity": "sha1-MIvur/3ygRkFHvodkyITyRuPkuc=", + "dev": true, + "requires": { + "camelcase": "^2.0.0", + "map-obj": "^1.0.0" + } + }, + "find-up": { + "version": "1.1.2", + "resolved": "https://registry.npmjs.org/find-up/-/find-up-1.1.2.tgz", + "integrity": "sha1-ay6YIrGizgpgq2TWEOzK1TyyTQ8=", + "dev": true, + "requires": { + "path-exists": "^2.0.0", + "pinkie-promise": "^2.0.0" + } + }, + "get-stdin": { + "version": "4.0.1", + "resolved": "https://registry.npmjs.org/get-stdin/-/get-stdin-4.0.1.tgz", + "integrity": "sha1-uWjGsKBDhDJJAui/Gl3zJXmkUP4=", + "dev": true + }, + "indent-string": { + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/indent-string/-/indent-string-2.1.0.tgz", + "integrity": "sha1-ji1INIdCEhtKghi3oTfppSBJ3IA=", + "dev": true, + "requires": { + "repeating": "^2.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": "sha1-lWkFcI1YtLq0wiYbBPWfMcmTdMA=", + "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" + } + }, + "map-obj": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/map-obj/-/map-obj-1.0.1.tgz", + "integrity": "sha1-2TPOuSBdgr3PSIb2dCvcK03qFG0=", + "dev": true + }, + "meow": { + "version": "3.7.0", + "resolved": "https://registry.npmjs.org/meow/-/meow-3.7.0.tgz", + "integrity": "sha1-cstmi0JSKCkKu/qFaJJYcwioAfs=", + "dev": true, + "requires": { + "camelcase-keys": "^2.0.0", + "decamelize": "^1.1.2", + "loud-rejection": "^1.0.0", + "map-obj": "^1.0.1", + "minimist": "^1.1.3", + "normalize-package-data": "^2.3.4", + "object-assign": "^4.0.1", + "read-pkg-up": "^1.0.1", + "redent": "^1.0.0", + "trim-newlines": "^1.0.0" + } + }, + "minimist": { + "version": "1.2.5", + "resolved": "https://registry.npmjs.org/minimist/-/minimist-1.2.5.tgz", + "integrity": "sha512-FM9nNUYrRBAELZQT3xeZQ7fmMOBg6nWNmJKTcgsJeaLstP/UODVpGsr5OhXhhXg6f+qtJ8uiZ+PUxkDWcgIXLw==", + "dev": true + }, + "parse-json": { + "version": "2.2.0", + "resolved": "https://registry.npmjs.org/parse-json/-/parse-json-2.2.0.tgz", + "integrity": "sha1-9ID0BDTvgHQfhGkJn43qGPVaTck=", + "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": "sha1-D+tsZPD8UY2adU3V77YscCJ2H0s=", + "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": "sha1-WcRPfuSR2nBNpBXaWkBwuk+P5EE=", + "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": "sha1-7RQaasBDqEnqWISY59yosVMw6Qw=", + "dev": true + }, + "read-pkg": { + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/read-pkg/-/read-pkg-1.1.0.tgz", + "integrity": "sha1-9f+qXs0pyzHAR0vKfXVra7KePyg=", + "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": "sha1-nWPBMnbAZZGNV/ACpX9AobZD+wI=", + "dev": true, + "requires": { + "find-up": "^1.0.0", + "read-pkg": "^1.0.0" + } + }, + "redent": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/redent/-/redent-1.0.0.tgz", + "integrity": "sha1-z5Fqsf1fHxbfsggi3W7H9zDCr94=", + "dev": true, + "requires": { + "indent-string": "^2.1.0", + "strip-indent": "^1.0.1" + } + }, + "strip-bom": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/strip-bom/-/strip-bom-2.0.0.tgz", + "integrity": "sha1-YhmoVhZSBJHzV4i9vxRHqZx+aw4=", + "dev": true, + "requires": { + "is-utf8": "^0.2.0" + } + }, + "strip-indent": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/strip-indent/-/strip-indent-1.0.1.tgz", + "integrity": "sha1-DHlipq3vp7vUrDZkYKY4VSrhoKI=", + "dev": true, + "requires": { + "get-stdin": "^4.0.1" + } + }, + "trim-newlines": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/trim-newlines/-/trim-newlines-1.0.0.tgz", + "integrity": "sha1-WIeWa7WCpFA6QetST301ARgVphM=", + "dev": true + } + } + }, + "get-port": { + "version": "3.2.0", + "resolved": "https://registry.npmjs.org/get-port/-/get-port-3.2.0.tgz", + "integrity": "sha1-3Xzn3hh8Bsi/NTeWrHHgmfCYDrw=", + "dev": true + }, + "get-stream": { + "version": "4.1.0", + "resolved": "https://registry.npmjs.org/get-stream/-/get-stream-4.1.0.tgz", + "integrity": "sha512-GMat4EJ5161kIy2HevLlr4luNjBgvmj413KaQA7jt4V8B4RDsfpHk7WQ9GVqfYyyx8OS/L66Kox+rJRNklLK7w==", + "dev": true, + "requires": { + "pump": "^3.0.0" + } + }, + "get-value": { + "version": "2.0.6", + "resolved": "https://registry.npmjs.org/get-value/-/get-value-2.0.6.tgz", + "integrity": "sha1-3BXKHGcjh8p2vTesCjlbogQqLCg=", + "dev": true + }, + "getpass": { + "version": "0.1.7", + "resolved": "https://registry.npmjs.org/getpass/-/getpass-0.1.7.tgz", + "integrity": "sha1-Xv+OPmhNVprkyysSgmBOi6YhSfo=", + "dev": true, + "requires": { + "assert-plus": "^1.0.0" + } + }, + "gh-pages": { + "version": "2.2.0", + "resolved": "https://registry.npmjs.org/gh-pages/-/gh-pages-2.2.0.tgz", + "integrity": "sha512-c+yPkNOPMFGNisYg9r4qvsMIjVYikJv7ImFOhPIVPt0+AcRUamZ7zkGRLHz7FKB0xrlZ+ddSOJsZv9XAFVXLmA==", + "dev": true, + "requires": { + "async": "^2.6.1", + "commander": "^2.18.0", + "email-addresses": "^3.0.1", + "filenamify-url": "^1.0.0", + "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": "sha1-mjRBDk9OPaI96jdb5b5w8kd47Dk=", + "dev": true, + "requires": { + "array-uniq": "^1.0.1" + } + }, + "fs-extra": { + "version": "8.1.0", + "resolved": "https://registry.npmjs.org/fs-extra/-/fs-extra-8.1.0.tgz", + "integrity": "sha512-yhlQgA6mnOJUKOsRUFsgJdQCvkKhcz8tlZG5HBQfReYZy46OwLcY+Zia0mtdHsOo9y/hP+CxMN0TU9QxoOtG4g==", + "dev": true, + "requires": { + "graceful-fs": "^4.2.0", + "jsonfile": "^4.0.0", + "universalify": "^0.1.0" + } + }, + "glob": { + "version": "7.1.6", + "resolved": "https://registry.npmjs.org/glob/-/glob-7.1.6.tgz", + "integrity": "sha512-LwaxwyZ72Lk7vZINtNNrywX0ZuLyStrdDtabefZKAY5ZGJhVtgdznluResxNmPitE0SAO+O26sWTHeKSI2wMBA==", + "dev": true, + "requires": { + "fs.realpath": "^1.0.0", + "inflight": "^1.0.4", + "inherits": "2", + "minimatch": "^3.0.4", + "once": "^1.3.0", + "path-is-absolute": "^1.0.0" + } + }, + "globby": { + "version": "6.1.0", + "resolved": "https://registry.npmjs.org/globby/-/globby-6.1.0.tgz", + "integrity": "sha1-9abXDoOV4hyFj7BInWTfAkJNUGw=", + "dev": true, + "requires": { + "array-union": "^1.0.1", + "glob": "^7.0.3", + "object-assign": "^4.0.1", + "pify": "^2.0.0", + "pinkie-promise": "^2.0.0" + } + }, + "pify": { + "version": "2.3.0", + "resolved": "https://registry.npmjs.org/pify/-/pify-2.3.0.tgz", + "integrity": "sha1-7RQaasBDqEnqWISY59yosVMw6Qw=", + "dev": true + } + } + }, + "git-raw-commits": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/git-raw-commits/-/git-raw-commits-2.0.0.tgz", + "integrity": "sha512-w4jFEJFgKXMQJ0H0ikBk2S+4KP2VEjhCvLCNqbNRQC8BgGWgLKNCO7a9K9LI+TVT7Gfoloje502sEnctibffgg==", + "dev": true, + "requires": { + "dargs": "^4.0.1", + "lodash.template": "^4.0.2", + "meow": "^4.0.0", + "split2": "^2.0.0", + "through2": "^2.0.0" + }, + "dependencies": { + "camelcase": { + "version": "4.1.0", + "resolved": "https://registry.npmjs.org/camelcase/-/camelcase-4.1.0.tgz", + "integrity": "sha1-1UVjW+HjPFQmScaRc+Xeas+uNN0=", + "dev": true + }, + "camelcase-keys": { + "version": "4.2.0", + "resolved": "https://registry.npmjs.org/camelcase-keys/-/camelcase-keys-4.2.0.tgz", + "integrity": "sha1-oqpfsa9oh1glnDLBQUJteJI7m3c=", + "dev": true, + "requires": { + "camelcase": "^4.1.0", + "map-obj": "^2.0.0", + "quick-lru": "^1.0.0" + } + }, + "indent-string": { + "version": "3.2.0", + "resolved": "https://registry.npmjs.org/indent-string/-/indent-string-3.2.0.tgz", + "integrity": "sha1-Sl/W0nzDMvN+VBmlBNu4NxBckok=", + "dev": true + }, + "map-obj": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/map-obj/-/map-obj-2.0.0.tgz", + "integrity": "sha1-plzSkIepJZi4eRJXpSPgISIqwfk=", + "dev": true + }, + "meow": { + "version": "4.0.1", + "resolved": "https://registry.npmjs.org/meow/-/meow-4.0.1.tgz", + "integrity": "sha512-xcSBHD5Z86zaOc+781KrupuHAzeGXSLtiAOmBsiLDiPSaYSB6hdew2ng9EBAnZ62jagG9MHAOdxpDi/lWBFJ/A==", + "dev": true, + "requires": { + "camelcase-keys": "^4.0.0", + "decamelize-keys": "^1.0.0", + "loud-rejection": "^1.0.0", + "minimist": "^1.1.3", + "minimist-options": "^3.0.1", + "normalize-package-data": "^2.3.4", + "read-pkg-up": "^3.0.0", + "redent": "^2.0.0", + "trim-newlines": "^2.0.0" + } + }, + "minimist": { + "version": "1.2.5", + "resolved": "https://registry.npmjs.org/minimist/-/minimist-1.2.5.tgz", + "integrity": "sha512-FM9nNUYrRBAELZQT3xeZQ7fmMOBg6nWNmJKTcgsJeaLstP/UODVpGsr5OhXhhXg6f+qtJ8uiZ+PUxkDWcgIXLw==", + "dev": true + }, + "minimist-options": { + "version": "3.0.2", + "resolved": "https://registry.npmjs.org/minimist-options/-/minimist-options-3.0.2.tgz", + "integrity": "sha512-FyBrT/d0d4+uiZRbqznPXqw3IpZZG3gl3wKWiX784FycUKVwBt0uLBFkQrtE4tZOrgo78nZp2jnKz3L65T5LdQ==", + "dev": true, + "requires": { + "arrify": "^1.0.1", + "is-plain-obj": "^1.1.0" + } + }, + "quick-lru": { + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/quick-lru/-/quick-lru-1.1.0.tgz", + "integrity": "sha1-Q2CxfGETatOAeDl/8RQW4Ybc+7g=", + "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": "sha1-PtSWaF26D4/hGNBpHcUfSh/5bwc=", + "dev": true, + "requires": { + "find-up": "^2.0.0", + "read-pkg": "^3.0.0" + } + }, + "redent": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/redent/-/redent-2.0.0.tgz", + "integrity": "sha1-wbIAe0LVfrE4kHmzyDM2OdXhzKo=", + "dev": true, + "requires": { + "indent-string": "^3.0.0", + "strip-indent": "^2.0.0" + } + }, + "strip-indent": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/strip-indent/-/strip-indent-2.0.0.tgz", + "integrity": "sha1-XvjbKV0B5u1sv3qrlpmNeCJSe2g=", + "dev": true + }, + "trim-newlines": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/trim-newlines/-/trim-newlines-2.0.0.tgz", + "integrity": "sha1-tAPQuRvlDDMd/EuC7s6yLD3hbSA=", + "dev": true + } + } + }, + "git-remote-origin-url": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/git-remote-origin-url/-/git-remote-origin-url-2.0.0.tgz", + "integrity": "sha1-UoJlna4hBxRaERJhEq0yFuxfpl8=", + "dev": true, + "requires": { + "gitconfiglocal": "^1.0.0", + "pify": "^2.3.0" + }, + "dependencies": { + "pify": { + "version": "2.3.0", + "resolved": "https://registry.npmjs.org/pify/-/pify-2.3.0.tgz", + "integrity": "sha1-7RQaasBDqEnqWISY59yosVMw6Qw=", + "dev": true + } + } + }, + "gitconfiglocal": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/gitconfiglocal/-/gitconfiglocal-1.0.0.tgz", + "integrity": "sha1-QdBF84UaXqiPA/JMocYXgRRGS5s=", + "dev": true, + "requires": { + "ini": "^1.3.2" + } + }, + "github-markdown-css": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/github-markdown-css/-/github-markdown-css-4.0.0.tgz", + "integrity": "sha512-mH0bcIKv4XAN0mQVokfTdKo2OD5K8WJE9+lbMdM32/q0Ie5tXgVN/2o+zvToRMxSTUuiTRcLg5hzkFfOyBYreg==" + }, + "glob-parent": { + "version": "5.1.1", + "resolved": "https://registry.npmjs.org/glob-parent/-/glob-parent-5.1.1.tgz", + "integrity": "sha512-FnI+VGOpnlGHWZxthPGR+QhR78fuiK0sNLkHQv+bL9fQi57lNNdquIbna/WrfROrolq8GK5Ek6BiMwqL/voRYQ==", + "dev": true, + "requires": { + "is-glob": "^4.0.1" + } + }, + "glob-to-regexp": { + "version": "0.3.0", + "resolved": "https://registry.npmjs.org/glob-to-regexp/-/glob-to-regexp-0.3.0.tgz", + "integrity": "sha1-jFoUlNIGbFcMw7/kSWF1rMTVAqs=", + "dev": true + }, + "global-dirs": { + "version": "0.1.1", + "resolved": "https://registry.npmjs.org/global-dirs/-/global-dirs-0.1.1.tgz", + "integrity": "sha1-sxnA3UYH81PzvpzKTHL8FIxJ9EU=", + "dev": true, + "optional": true, + "requires": { + "ini": "^1.3.4" + } + }, + "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": "sha1-2/dDxsFJklk8ZVVoy2btMsASLr4=", + "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" + } + }, + "globals": { + "version": "11.12.0", + "resolved": "https://registry.npmjs.org/globals/-/globals-11.12.0.tgz", + "integrity": "sha512-WOBp/EEGUiIsJSp7wcv/y6MO+lV9UoncWqxuFfm8eBwzWNgyfBd6Gz+IeKQ9jCmyhoH99g15M3T+QaVHFjizVA==", + "dev": true + }, + "globby": { + "version": "11.0.1", + "resolved": "https://registry.npmjs.org/globby/-/globby-11.0.1.tgz", + "integrity": "sha512-iH9RmgwCmUJHi2z5o2l3eTtGBtXek1OYlHrbcxOYugyHLmAsZrPj43OtHThd62Buh/Vv6VyCBD2bdyWcGNQqoQ==", + "dev": true, + "requires": { + "array-union": "^2.1.0", + "dir-glob": "^3.0.1", + "fast-glob": "^3.1.1", + "ignore": "^5.1.4", + "merge2": "^1.3.0", + "slash": "^3.0.0" + } + }, + "got": { + "version": "9.6.0", + "resolved": "https://registry.npmjs.org/got/-/got-9.6.0.tgz", + "integrity": "sha512-R7eWptXuGYxwijs0eV+v3o6+XH1IqVK8dJOEecQfTmkncw9AV4dcw/Dhxi8MdlqPthxxpZyizMzyg8RTmEsG+Q==", + "dev": true, + "requires": { + "@sindresorhus/is": "^0.14.0", + "@szmarczak/http-timer": "^1.1.2", + "cacheable-request": "^6.0.0", + "decompress-response": "^3.3.0", + "duplexer3": "^0.1.4", + "get-stream": "^4.1.0", + "lowercase-keys": "^1.0.1", + "mimic-response": "^1.0.1", + "p-cancelable": "^1.0.0", + "to-readable-stream": "^1.0.0", + "url-parse-lax": "^3.0.0" + } + }, + "graceful-fs": { + "version": "4.2.4", + "resolved": "https://registry.npmjs.org/graceful-fs/-/graceful-fs-4.2.4.tgz", + "integrity": "sha512-WjKPNJF79dtJAVniUlGGWHYGz2jWxT6VhN/4m1NdkbZ2nOsEF+cI1Edgql5zCRhs/VsQYRvrXctxktVXZUkixw==" + }, + "grapheme-breaker": { + "version": "0.3.2", + "resolved": "https://registry.npmjs.org/grapheme-breaker/-/grapheme-breaker-0.3.2.tgz", + "integrity": "sha1-W55reMODJFLSuiuxy4MPlidkEKw=", + "dev": true, + "requires": { + "brfs": "^1.2.0", + "unicode-trie": "^0.3.1" + } + }, + "growly": { + "version": "1.3.0", + "resolved": "https://registry.npmjs.org/growly/-/growly-1.3.0.tgz", + "integrity": "sha1-8QdIy+dq+WS3yWyTxrzCivEgwIE=", + "dev": true, + "optional": true + }, + "handlebars": { + "version": "4.7.6", + "resolved": "https://registry.npmjs.org/handlebars/-/handlebars-4.7.6.tgz", + "integrity": "sha512-1f2BACcBfiwAfStCKZNrUCgqNZkGsAT7UM3kkYtXuLo0KnaVfjKOyf7PRzB6++aK9STyT1Pd2ZCPe3EGOXleXA==", + "dev": true, + "requires": { + "minimist": "^1.2.5", + "neo-async": "^2.6.0", + "source-map": "^0.6.1", + "uglify-js": "^3.1.4", + "wordwrap": "^1.0.0" + }, + "dependencies": { + "minimist": { + "version": "1.2.5", + "resolved": "https://registry.npmjs.org/minimist/-/minimist-1.2.5.tgz", + "integrity": "sha512-FM9nNUYrRBAELZQT3xeZQ7fmMOBg6nWNmJKTcgsJeaLstP/UODVpGsr5OhXhhXg6f+qtJ8uiZ+PUxkDWcgIXLw==", + "dev": true + } + } + }, + "har-schema": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/har-schema/-/har-schema-2.0.0.tgz", + "integrity": "sha1-qUwiJOvKwEeCoNkDVSHyRzW37JI=", + "dev": true + }, + "har-validator": { + "version": "5.1.5", + "resolved": "https://registry.npmjs.org/har-validator/-/har-validator-5.1.5.tgz", + "integrity": "sha512-nmT2T0lljbxdQZfspsno9hgrG3Uir6Ks5afism62poxqBM6sDnMEuPmzTq8XN0OEwqKLLdh1jQI3qyE66Nzb3w==", + "dev": true, + "requires": { + "ajv": "^6.12.3", + "har-schema": "^2.0.0" + } + }, + "hard-rejection": { + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/hard-rejection/-/hard-rejection-2.1.0.tgz", + "integrity": "sha512-VIZB+ibDhx7ObhAe7OVtoEbuP4h/MuOTHJ+J8h/eBXotJYl0fBgR72xDFCKgIh22OJZIOVNxBMWuhAr10r8HdA==", + "dev": true + }, + "has": { + "version": "1.0.3", + "resolved": "https://registry.npmjs.org/has/-/has-1.0.3.tgz", + "integrity": "sha512-f2dvO0VU6Oej7RkWJGrehjbzMAjFp5/VKPp5tTpWIV4JHHZK1/BxbFRtf/siA2SWTe09caDmVtYYzWEIbBS4zw==", + "dev": true, + "requires": { + "function-bind": "^1.1.1" + } + }, + "has-ansi": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/has-ansi/-/has-ansi-2.0.0.tgz", + "integrity": "sha1-NPUEnOHs3ysGSa8+8k5F7TVBbZE=", + "dev": true, + "requires": { + "ansi-regex": "^2.0.0" + }, + "dependencies": { + "ansi-regex": { + "version": "2.1.1", + "resolved": "https://registry.npmjs.org/ansi-regex/-/ansi-regex-2.1.1.tgz", + "integrity": "sha1-w7M6te42DYbg5ijwRorn7yfWVN8=", + "dev": true + } + } + }, + "has-flag": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/has-flag/-/has-flag-3.0.0.tgz", + "integrity": "sha1-tdRU3CGZriJWmfNGfloH87lVuv0=", + "dev": true + }, + "has-symbols": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/has-symbols/-/has-symbols-1.0.1.tgz", + "integrity": "sha512-PLcsoqu++dmEIZB+6totNFKq/7Do+Z0u4oT0zKOJNl3lYK6vGwwu2hjHs+68OEZbTjiUE9bgOABXbP/GvrS0Kg==", + "dev": true + }, + "has-value": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/has-value/-/has-value-1.0.0.tgz", + "integrity": "sha1-GLKB2lhbHFxR3vJMkw7SmgvmsXc=", + "dev": true, + "requires": { + "get-value": "^2.0.6", + "has-values": "^1.0.0", + "isobject": "^3.0.0" + } + }, + "has-values": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/has-values/-/has-values-1.0.0.tgz", + "integrity": "sha1-lbC2P+whRmGab+V/51Yo1aOe/k8=", + "dev": true, + "requires": { + "is-number": "^3.0.0", + "kind-of": "^4.0.0" + }, + "dependencies": { + "is-number": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/is-number/-/is-number-3.0.0.tgz", + "integrity": "sha1-JP1iAaR4LPUFYcgQJ2r8fRLXEZU=", + "dev": true, + "requires": { + "kind-of": "^3.0.2" + }, + "dependencies": { + "kind-of": { + "version": "3.2.2", + "resolved": "https://registry.npmjs.org/kind-of/-/kind-of-3.2.2.tgz", + "integrity": "sha1-MeohpzS6ubuw8yRm2JOupR5KPGQ=", + "dev": true, + "requires": { + "is-buffer": "^1.1.5" + } + } + } + }, + "kind-of": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/kind-of/-/kind-of-4.0.0.tgz", + "integrity": "sha1-IIE989cSkosgc3hpGkUGb65y3Vc=", + "dev": true, + "requires": { + "is-buffer": "^1.1.5" + } + } + } + }, + "has-yarn": { + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/has-yarn/-/has-yarn-2.1.0.tgz", + "integrity": "sha512-UqBRqi4ju7T+TqGNdqAO0PaSVGsDGJUBQvk9eUWNGRY1CFGDzYhLWoM7JQEemnlvVcv/YEmc2wNW8BC24EnUsw==", + "dev": true + }, + "hash-base": { + "version": "3.1.0", + "resolved": "https://registry.npmjs.org/hash-base/-/hash-base-3.1.0.tgz", + "integrity": "sha512-1nmYp/rhMDiE7AYkDw+lLwlAzz0AntGIe51F3RfFfEqyQ3feY2eI/NcwC6umIQVOASPMsWJLJScWKSSvzL9IVA==", + "dev": true, + "requires": { + "inherits": "^2.0.4", + "readable-stream": "^3.6.0", + "safe-buffer": "^5.2.0" + }, + "dependencies": { + "readable-stream": { + "version": "3.6.0", + "resolved": "https://registry.npmjs.org/readable-stream/-/readable-stream-3.6.0.tgz", + "integrity": "sha512-BViHy7LKeTz4oNnkcLJ+lVSL6vpiFeX6/d3oSH8zCW7UxP2onchk+vTGB143xuFjHS3deTgkKoXXymXqymiIdA==", + "dev": true, + "requires": { + "inherits": "^2.0.3", + "string_decoder": "^1.1.1", + "util-deprecate": "^1.0.1" + } + }, + "safe-buffer": { + "version": "5.2.1", + "resolved": "https://registry.npmjs.org/safe-buffer/-/safe-buffer-5.2.1.tgz", + "integrity": "sha512-rp3So07KcdmmKbGvgaNxQSJr7bGVSVk5S9Eq1F+ppbRo70+YeaDxkw5Dd8NPN+GD6bjnYm2VuPuCXmpuYvmCXQ==", + "dev": true + } + } + }, + "hash.js": { + "version": "1.1.7", + "resolved": "https://registry.npmjs.org/hash.js/-/hash.js-1.1.7.tgz", + "integrity": "sha512-taOaskGt4z4SOANNseOviYDvjEJinIkRgmp7LbKP2YTTmVxWBl87s/uzK9r+44BclBSp2X7K1hqeNfz9JbBeXA==", + "dev": true, + "requires": { + "inherits": "^2.0.3", + "minimalistic-assert": "^1.0.1" + } + }, + "hex-color-regex": { + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/hex-color-regex/-/hex-color-regex-1.1.0.tgz", + "integrity": "sha512-l9sfDFsuqtOqKDsQdqrMRk0U85RZc0RtOR9yPI7mRVOa4FsR/BVnZ0shmQRM96Ji99kYZP/7hn1cedc1+ApsTQ==", + "dev": true + }, + "highlight.js": { + "version": "9.18.5", + "resolved": "https://registry.npmjs.org/highlight.js/-/highlight.js-9.18.5.tgz", + "integrity": "sha512-a5bFyofd/BHCX52/8i8uJkjr9DYwXIPnM/plwI6W7ezItLGqzt7X2G2nXuYSfsIJdkwwj/g9DG1LkcGJI/dDoA==", + "dev": true + }, + "hmac-drbg": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/hmac-drbg/-/hmac-drbg-1.0.1.tgz", + "integrity": "sha1-0nRXAQJabHdabFRXk+1QL8DGSaE=", + "dev": true, + "requires": { + "hash.js": "^1.0.3", + "minimalistic-assert": "^1.0.0", + "minimalistic-crypto-utils": "^1.0.1" + } + }, + "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.8", + "resolved": "https://registry.npmjs.org/hosted-git-info/-/hosted-git-info-2.8.8.tgz", + "integrity": "sha512-f/wzC2QaWBs7t9IYqB4T3sR1xviIViXJRJTWBlx2Gf3g0Xi5vI7Yy4koXQ1c9OYDGHN9sBy1DQ2AB8fqZBWhUg==", + "dev": true + }, + "hsl-regex": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/hsl-regex/-/hsl-regex-1.0.0.tgz", + "integrity": "sha1-1JMwx4ntgZ4nakwNJy3/owsY/m4=", + "dev": true + }, + "hsla-regex": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/hsla-regex/-/hsla-regex-1.0.0.tgz", + "integrity": "sha1-wc56MWjIxmFAM6S194d/OyJfnDg=", + "dev": true + }, + "html-comment-regex": { + "version": "1.1.2", + "resolved": "https://registry.npmjs.org/html-comment-regex/-/html-comment-regex-1.1.2.tgz", + "integrity": "sha512-P+M65QY2JQ5Y0G9KKdlDpo0zK+/OHptU5AaBwUfAIDJZk1MYf32Frm84EcOytfJE0t5JvkAnKlmjsXDnWzCJmQ==", + "dev": true + }, + "html-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" + } + }, + "html-escaper": { + "version": "2.0.2", + "resolved": "https://registry.npmjs.org/html-escaper/-/html-escaper-2.0.2.tgz", + "integrity": "sha512-H2iMtd0I4Mt5eYiapRdIDjp+XzelXQ0tFE4JS7YFwFevXXMmOp9myNrUvCg0D6ws8iqkRPBfKHgbwig1SmlLfg==", + "dev": true + }, + "html-tags": { + "version": "1.2.0", + "resolved": "https://registry.npmjs.org/html-tags/-/html-tags-1.2.0.tgz", + "integrity": "sha1-x43mW1Zjqll5id0rerSSANfk25g=", + "dev": true + }, + "htmlnano": { + "version": "0.2.8", + "resolved": "https://registry.npmjs.org/htmlnano/-/htmlnano-0.2.8.tgz", + "integrity": "sha512-q5gbo4SIDAE5sfJ5V0UD6uu+n1dcO/Mpr0B6SlDlJBoV7xKPne4uG4UwrT8vUWjdjIPJl95TY8EDuEbBW2TG0A==", + "dev": true, + "requires": { + "cssnano": "^4.1.10", + "posthtml": "^0.13.4", + "posthtml-render": "^1.3.0", + "purgecss": "^2.3.0", + "relateurl": "^0.2.7", + "srcset": "^3.0.0", + "svgo": "^1.3.2", + "terser": "^4.8.0", + "timsort": "^0.3.0", + "uncss": "^0.17.3" + }, + "dependencies": { + "posthtml": { + "version": "0.13.4", + "resolved": "https://registry.npmjs.org/posthtml/-/posthtml-0.13.4.tgz", + "integrity": "sha512-i2oTo/+dwXGC6zaAQSF6WZEQSbEqu10hsvg01DWzGAfZmy31Iiy9ktPh9nnXDfZiYytjxTIvxoK4TI0uk4QWpw==", + "dev": true, + "requires": { + "posthtml-parser": "^0.5.0", + "posthtml-render": "^1.2.3" + } + }, + "posthtml-parser": { + "version": "0.5.3", + "resolved": "https://registry.npmjs.org/posthtml-parser/-/posthtml-parser-0.5.3.tgz", + "integrity": "sha512-uHosRn0y+1wbnlYKrqMjBPoo/kK5LPYImLtiETszNFYfFwAD3cQdD1R2E13Mh5icBxkHj+yKtlIHozCsmVWD/Q==", + "dev": true, + "requires": { + "htmlparser2": "^3.9.2" + } + } + } + }, + "htmlparser2": { + "version": "3.10.1", + "resolved": "https://registry.npmjs.org/htmlparser2/-/htmlparser2-3.10.1.tgz", + "integrity": "sha512-IgieNijUMbkDovyoKObU1DUhm1iwNYE/fuifEoEHfd1oZKZDaONBSkal7Y01shxsM49R4XaMdGez3WnF9UfiCQ==", + "dev": true, + "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" + }, + "dependencies": { + "readable-stream": { + "version": "3.6.0", + "resolved": "https://registry.npmjs.org/readable-stream/-/readable-stream-3.6.0.tgz", + "integrity": "sha512-BViHy7LKeTz4oNnkcLJ+lVSL6vpiFeX6/d3oSH8zCW7UxP2onchk+vTGB143xuFjHS3deTgkKoXXymXqymiIdA==", + "dev": true, + "requires": { + "inherits": "^2.0.3", + "string_decoder": "^1.1.1", + "util-deprecate": "^1.0.1" + } + } + } + }, + "http-auth": { + "version": "3.1.3", + "resolved": "https://registry.npmjs.org/http-auth/-/http-auth-3.1.3.tgz", + "integrity": "sha1-lFz63WZSHq+PfISRPTd9exXyTjE=", + "dev": true, + "requires": { + "apache-crypt": "^1.1.2", + "apache-md5": "^1.0.6", + "bcryptjs": "^2.3.0", + "uuid": "^3.0.0" + } + }, + "http-errors": { + "version": "1.7.3", + "resolved": "https://registry.npmjs.org/http-errors/-/http-errors-1.7.3.tgz", + "integrity": "sha512-ZTTX0MWrsQ2ZAhA1cejAwDLycFsd7I7nVtnkT3Ol0aqodaKW+0CTZDQ1uBv5whptCnc8e8HeRRJxRs0kmm/Qfw==", + "dev": true, + "requires": { + "depd": "~1.1.2", + "inherits": "2.0.4", + "setprototypeof": "1.1.1", + "statuses": ">= 1.5.0 < 2", + "toidentifier": "1.0.0" + } + }, + "http-parser-js": { + "version": "0.5.2", + "resolved": "https://registry.npmjs.org/http-parser-js/-/http-parser-js-0.5.2.tgz", + "integrity": "sha512-opCO9ASqg5Wy2FNo7A0sxy71yGbbkJJXLdgMK04Tcypw9jr2MgWbyubb0+WdmDmGnFflO7fRbqbaihh/ENDlRQ==", + "dev": true + }, + "http-proxy-agent": { + "version": "4.0.1", + "resolved": "https://registry.npmjs.org/http-proxy-agent/-/http-proxy-agent-4.0.1.tgz", + "integrity": "sha512-k0zdNgqWTGA6aeIRVpvfVob4fL52dTfaehylg0Y4UvSySvOq/Y+BOyPrgpUrA7HylqvU8vIZGsRuXmspskV0Tg==", + "dev": true, + "requires": { + "@tootallnate/once": "1", + "agent-base": "6", + "debug": "4" + } + }, + "http-signature": { + "version": "1.2.0", + "resolved": "https://registry.npmjs.org/http-signature/-/http-signature-1.2.0.tgz", + "integrity": "sha1-muzZJRFHcvPZW2WmCruPfBj7rOE=", + "dev": true, + "requires": { + "assert-plus": "^1.0.0", + "jsprim": "^1.2.2", + "sshpk": "^1.7.0" + } + }, + "https-browserify": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/https-browserify/-/https-browserify-1.0.0.tgz", + "integrity": "sha1-7AbBDgo0wPL68Zn3/X/Hj//QPHM=", + "dev": true + }, + "https-proxy-agent": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/https-proxy-agent/-/https-proxy-agent-4.0.0.tgz", + "integrity": "sha512-zoDhWrkR3of1l9QAL8/scJZyLu8j/gBkcwcaQOZh7Gyh/+uJQzGVETdgT30akuwkpL8HTRfssqI3BZuV18teDg==", + "dev": true, + "requires": { + "agent-base": "5", + "debug": "4" + }, + "dependencies": { + "agent-base": { + "version": "5.1.1", + "resolved": "https://registry.npmjs.org/agent-base/-/agent-base-5.1.1.tgz", + "integrity": "sha512-TMeqbNl2fMW0nMjTEPOwe3J/PRFP4vqeoNuQMG0HlMrtm5QxKqdvAkZ1pRBQ/ulIyDD5Yq0nJ7YbdD8ey0TO3g==", + "dev": true + } + } + }, + "human-signals": { + "version": "1.1.1", + "resolved": "https://registry.npmjs.org/human-signals/-/human-signals-1.1.1.tgz", + "integrity": "sha512-SEQu7vl8KjNL2eoGBLF3+wAjpsNfA9XMlXAYj/3EdaNfAlxKthD1xjEQfGOUhllCGGJVNY34bRr6lPINhNjyZw==", + "dev": true + }, + "humanize-url": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/humanize-url/-/humanize-url-1.0.1.tgz", + "integrity": "sha1-9KuZ4NKIF0yk4eUEB8VfuuRk7/8=", + "dev": true, + "requires": { + "normalize-url": "^1.0.0", + "strip-url-auth": "^1.0.0" + }, + "dependencies": { + "normalize-url": { + "version": "1.9.1", + "resolved": "https://registry.npmjs.org/normalize-url/-/normalize-url-1.9.1.tgz", + "integrity": "sha1-LMDWazHqIwNkWENuNiDYWVTGbDw=", + "dev": true, + "requires": { + "object-assign": "^4.0.1", + "prepend-http": "^1.0.0", + "query-string": "^4.1.0", + "sort-keys": "^1.0.0" + } + } + } + }, + "iconv-lite": { + "version": "0.4.24", + "resolved": "https://registry.npmjs.org/iconv-lite/-/iconv-lite-0.4.24.tgz", + "integrity": "sha512-v3MXnZAcvnywkTUEZomIActle7RXXeedOR31wwl7VlyoXO4Qi9arvSenNQWne1TcRwhCL1HwLI21bEqdpj8/rA==", + "dev": true, + "requires": { + "safer-buffer": ">= 2.1.2 < 3" + } + }, + "icss-replace-symbols": { + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/icss-replace-symbols/-/icss-replace-symbols-1.1.0.tgz", + "integrity": "sha1-Bupvg2ead0njhs/h/oEq5dsiPe0=", + "dev": true + }, + "ieee754": { + "version": "1.2.1", + "resolved": "https://registry.npmjs.org/ieee754/-/ieee754-1.2.1.tgz", + "integrity": "sha512-dcyqhDvX1C46lXZcVqCpK+FtMRQVdIMN6/Df5js2zouUsqG7I6sFxitIC+7KYK29KdXOLHdu9zL4sFnoVQnqaA==", + "dev": true + }, + "ignore": { + "version": "5.1.8", + "resolved": "https://registry.npmjs.org/ignore/-/ignore-5.1.8.tgz", + "integrity": "sha512-BMpfD7PpiETpBl/A6S498BaIJ6Y/ABT93ETbby2fP00v4EbvPBXWEoaR1UBPKs3iR53pJY7EtZk5KACI57i1Uw==", + "dev": true + }, + "ignore-by-default": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/ignore-by-default/-/ignore-by-default-1.0.1.tgz", + "integrity": "sha1-SMptcvbGo68Aqa1K5odr44ieKwk=", + "dev": true + }, + "ignore-walk": { + "version": "3.0.3", + "resolved": "https://registry.npmjs.org/ignore-walk/-/ignore-walk-3.0.3.tgz", + "integrity": "sha512-m7o6xuOaT1aqheYHKf8W6J5pYH85ZI9w077erOzLje3JsB1gkafkAhHHY19dqjulgIZHFm32Cp5uNZgcQqdJKw==", + "dev": true, + "requires": { + "minimatch": "^3.0.4" + } + }, + "image-size": { + "version": "0.5.5", + "resolved": "https://registry.npmjs.org/image-size/-/image-size-0.5.5.tgz", + "integrity": "sha1-Cd/Uq50g4p6xw+gLiZA3jfnjy5w=", + "optional": true + }, + "import-fresh": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/import-fresh/-/import-fresh-2.0.0.tgz", + "integrity": "sha1-2BNVwVYS04bGH53dOSLUMEgipUY=", + "dev": true, + "requires": { + "caller-path": "^2.0.0", + "resolve-from": "^3.0.0" + } + }, + "import-lazy": { + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/import-lazy/-/import-lazy-2.1.0.tgz", + "integrity": "sha1-BWmOPUXIjo1+nZLLBYTnfwlvPkM=", + "dev": true + }, + "import-local": { + "version": "3.0.2", + "resolved": "https://registry.npmjs.org/import-local/-/import-local-3.0.2.tgz", + "integrity": "sha512-vjL3+w0oulAVZ0hBHnxa/Nm5TAurf9YLQJDhqRZyqb+VKGOB6LU8t9H1Nr5CIo16vh9XfJTOoHwU0B71S557gA==", + "dev": true, + "requires": { + "pkg-dir": "^4.2.0", + "resolve-cwd": "^3.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==", + "dev": true, + "requires": { + "locate-path": "^5.0.0", + "path-exists": "^4.0.0" + } + }, + "locate-path": { + "version": "5.0.0", + "resolved": "https://registry.npmjs.org/locate-path/-/locate-path-5.0.0.tgz", + "integrity": "sha512-t7hw9pI+WvuwNJXwk5zVHpyhIqzg2qTlklJOf0mVxGSbe3Fp2VieZcduNYjaLDoy6p9uGpQEGWG87WpMKlNq8g==", + "dev": true, + "requires": { + "p-locate": "^4.1.0" + } + }, + "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": "4.1.0", + "resolved": "https://registry.npmjs.org/p-locate/-/p-locate-4.1.0.tgz", + "integrity": "sha512-R79ZZ/0wAxKGu3oYMlz8jy/kbhsNrS7SKZ7PxEHBgJ5+F2mtFW2fK2cOtBh1cHYkQsbzFV7I+EoRKe6Yt0oK7A==", + "dev": true, + "requires": { + "p-limit": "^2.2.0" + } + }, + "p-try": { + "version": "2.2.0", + "resolved": "https://registry.npmjs.org/p-try/-/p-try-2.2.0.tgz", + "integrity": "sha512-R4nPAVTAU0B9D35/Gk3uJf/7XYbQcyohSKdvAxIRSNghFl4e71hVoGnBNQz9cWaXxO2I10KTC+3jMdvvoKw6dQ==", + "dev": true + }, + "path-exists": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/path-exists/-/path-exists-4.0.0.tgz", + "integrity": "sha512-ak9Qy5Q7jYb2Wwcey5Fpvg2KoAc/ZIhLSLOSBmRmygPsGwkVVt0fZa0qrtMz+m6tJTAHfZQ8FnmB4MG4LWy7/w==", + "dev": true + }, + "pkg-dir": { + "version": "4.2.0", + "resolved": "https://registry.npmjs.org/pkg-dir/-/pkg-dir-4.2.0.tgz", + "integrity": "sha512-HRDzbaKjC+AOWVXxAU/x54COGeIv9eb+6CkDSQoNTt4XyWoIJvuPsXizxu/Fr23EiekbtZwmh1IcIG/l/a10GQ==", + "dev": true, + "requires": { + "find-up": "^4.0.0" + } + } + } + }, + "imurmurhash": { + "version": "0.1.4", + "resolved": "https://registry.npmjs.org/imurmurhash/-/imurmurhash-0.1.4.tgz", + "integrity": "sha1-khi5srkoojixPcT7a21XbyMUU+o=", + "dev": true + }, + "indent-string": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/indent-string/-/indent-string-4.0.0.tgz", + "integrity": "sha512-EdDDZu4A2OyIK7Lr/2zG+w5jmbuk1DVBnEwREQvBzspBJkCEbRa8GxU1lghYcaGJCnRWibjDXlq779X1/y5xwg==", + "dev": true + }, + "indexes-of": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/indexes-of/-/indexes-of-1.0.1.tgz", + "integrity": "sha1-8w9xbI4r00bHtn0985FVZqfAVgc=", + "dev": true + }, + "inflight": { + "version": "1.0.6", + "resolved": "https://registry.npmjs.org/inflight/-/inflight-1.0.6.tgz", + "integrity": "sha1-Sb1jMdfQLQwJvJEKEHW6gWW1bfk=", + "requires": { + "once": "^1.3.0", + "wrappy": "1" + } + }, + "inherits": { + "version": "2.0.4", + "resolved": "https://registry.npmjs.org/inherits/-/inherits-2.0.4.tgz", + "integrity": "sha512-k/vGaX4/Yla3WzyMCvTQOXYeIHvqOKtnqBduzTHpzpQZzAskKMhZ2K+EnBiSM9zGSoIFeMpXKxa4dYeZIQqewQ==" + }, + "ini": { + "version": "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.0", + "resolved": "https://registry.npmjs.org/ansi-regex/-/ansi-regex-4.1.0.tgz", + "integrity": "sha512-1apePfXM1UOSqw0o9IiFAovVz9M5S1Dg+4TrDwfMewQ6p/rmMueb7tWZjQ1rx4Loy1ArBggoqGpfqqdI4rondg==", + "dev": true + }, + "strip-ansi": { + "version": "5.2.0", + "resolved": "https://registry.npmjs.org/strip-ansi/-/strip-ansi-5.2.0.tgz", + "integrity": "sha512-DuRs1gKbBqsMKIZlrffwlug8MHkcnpjs5VPmL1PAh+mA30U0DTotfDZ0d2UUsXpPmPmMMJ6W773MaA3J+lbiWA==", + "dev": true, + "requires": { + "ansi-regex": "^4.1.0" + } + } + } + }, + "interpret": { + "version": "1.4.0", + "resolved": "https://registry.npmjs.org/interpret/-/interpret-1.4.0.tgz", + "integrity": "sha512-agE4QfB2Lkp9uICn7BAqoscw4SZP9kTE2hxiFI3jBPmXJfdqiahTbUuKGsMoN2GtqL9AxhYioAcVvgsb1HvRbA==", + "dev": true + }, + "ip-regex": { + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/ip-regex/-/ip-regex-2.1.0.tgz", + "integrity": "sha1-+ni/XS5pE8kRzp+BnuUUa7bYROk=", + "dev": true + }, + "is-absolute-url": { + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/is-absolute-url/-/is-absolute-url-2.1.0.tgz", + "integrity": "sha1-UFMN+4T8yap9vnhS6Do3uTufKqY=", + "dev": true + }, + "is-accessor-descriptor": { + "version": "0.1.6", + "resolved": "https://registry.npmjs.org/is-accessor-descriptor/-/is-accessor-descriptor-0.1.6.tgz", + "integrity": "sha1-qeEss66Nh2cn7u84Q/igiXtcmNY=", + "dev": true, + "requires": { + "kind-of": "^3.0.2" + }, + "dependencies": { + "kind-of": { + "version": "3.2.2", + "resolved": "https://registry.npmjs.org/kind-of/-/kind-of-3.2.2.tgz", + "integrity": "sha1-MeohpzS6ubuw8yRm2JOupR5KPGQ=", + "dev": true, + "requires": { + "is-buffer": "^1.1.5" + } + } + } + }, + "is-arrayish": { + "version": "0.2.1", + "resolved": "https://registry.npmjs.org/is-arrayish/-/is-arrayish-0.2.1.tgz", + "integrity": "sha1-d8mYQFJ6qOyxqLppe4BkWnqSap0=", + "dev": true + }, + "is-binary-path": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/is-binary-path/-/is-binary-path-1.0.1.tgz", + "integrity": "sha1-dfFmQrSA8YenEcgUFh/TpKdlWJg=", + "dev": true, + "requires": { + "binary-extensions": "^1.0.0" + } + }, + "is-buffer": { + "version": "1.1.6", + "resolved": "https://registry.npmjs.org/is-buffer/-/is-buffer-1.1.6.tgz", + "integrity": "sha512-NcdALwpXkTm5Zvvbk7owOUSvVvBKDgKP5/ewfXEznmQFfs4ZRmanOeKBTjRVjka3QFoN6XJ+9F3USqfHqTaU5w==", + "dev": true + }, + "is-callable": { + "version": "1.2.2", + "resolved": "https://registry.npmjs.org/is-callable/-/is-callable-1.2.2.tgz", + "integrity": "sha512-dnMqspv5nU3LoewK2N/y7KLtxtakvTuaCsU9FU50/QDmdbHNy/4/JuRtMHqRU22o3q+W89YQndQEeCVwK+3qrA==", + "dev": true + }, + "is-ci": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/is-ci/-/is-ci-2.0.0.tgz", + "integrity": "sha512-YfJT7rkpQB0updsdHLGWrvhBJfcfzNNawYDNIyQXJz0IViGf75O8EBPKSdvw2rF+LGCsX4FZ8tcr3b19LcZq4w==", + "dev": true, + "requires": { + "ci-info": "^2.0.0" + } + }, + "is-color-stop": { + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/is-color-stop/-/is-color-stop-1.1.0.tgz", + "integrity": "sha1-z/9HGu5N1cnhWFmPvhKWe1za00U=", + "dev": true, + "requires": { + "css-color-names": "^0.0.4", + "hex-color-regex": "^1.1.0", + "hsl-regex": "^1.0.0", + "hsla-regex": "^1.0.0", + "rgb-regex": "^1.0.1", + "rgba-regex": "^1.0.0" + } + }, + "is-core-module": { + "version": "2.2.0", + "resolved": "https://registry.npmjs.org/is-core-module/-/is-core-module-2.2.0.tgz", + "integrity": "sha512-XRAfAdyyY5F5cOXn7hYQDqh2Xmii+DEfIcQGxK/uNwMHhIkPWO0g8msXcbzLe+MpGoR951MlqM/2iIlU4vKDdQ==", + "dev": true, + "requires": { + "has": "^1.0.3" + } + }, + "is-data-descriptor": { + "version": "0.1.4", + "resolved": "https://registry.npmjs.org/is-data-descriptor/-/is-data-descriptor-0.1.4.tgz", + "integrity": "sha1-C17mSDiOLIYCgueT8YVv7D8wG1Y=", + "dev": true, + "requires": { + "kind-of": "^3.0.2" + }, + "dependencies": { + "kind-of": { + "version": "3.2.2", + "resolved": "https://registry.npmjs.org/kind-of/-/kind-of-3.2.2.tgz", + "integrity": "sha1-MeohpzS6ubuw8yRm2JOupR5KPGQ=", + "dev": true, + "requires": { + "is-buffer": "^1.1.5" + } + } + } + }, + "is-date-object": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/is-date-object/-/is-date-object-1.0.2.tgz", + "integrity": "sha512-USlDT524woQ08aoZFzh3/Z6ch9Y/EWXEHQ/AaRN0SkKq4t2Jw2R2339tSXmwuVoY7LLlBCbOIlx2myP/L5zk0g==", + "dev": true + }, + "is-descriptor": { + "version": "0.1.6", + "resolved": "https://registry.npmjs.org/is-descriptor/-/is-descriptor-0.1.6.tgz", + "integrity": "sha512-avDYr0SB3DwO9zsMov0gKCESFYqCnE4hq/4z3TdUlukEy5t9C0YRq7HLrsN52NAcqXKaepeCD0n+B0arnVG3Hg==", + "dev": true, + "requires": { + "is-accessor-descriptor": "^0.1.6", + "is-data-descriptor": "^0.1.4", + "kind-of": "^5.0.0" + }, + "dependencies": { + "kind-of": { + "version": "5.1.0", + "resolved": "https://registry.npmjs.org/kind-of/-/kind-of-5.1.0.tgz", + "integrity": "sha512-NGEErnH6F2vUuXDh+OlbcKW7/wOcfdRHaZ7VWtqCztfHri/++YKmP51OdWeGPuqCOba6kk2OTe5d02VmTB80Pw==", + "dev": true + } + } + }, + "is-directory": { + "version": "0.3.1", + "resolved": "https://registry.npmjs.org/is-directory/-/is-directory-0.3.1.tgz", + "integrity": "sha1-YTObbyR1/Hcv2cnYP1yFddwVSuE=", + "dev": true + }, + "is-docker": { + "version": "2.1.1", + "resolved": "https://registry.npmjs.org/is-docker/-/is-docker-2.1.1.tgz", + "integrity": "sha512-ZOoqiXfEwtGknTiuDEy8pN2CfE3TxMHprvNer1mXiqwkOT77Rw3YVrUQ52EqAOU3QAWDQ+bQdx7HJzrv7LS2Hw==", + "dev": true, + "optional": true + }, + "is-extendable": { + "version": "0.1.1", + "resolved": "https://registry.npmjs.org/is-extendable/-/is-extendable-0.1.1.tgz", + "integrity": "sha1-YrEQ4omkcUGOPsNqYX1HLjAd/Ik=", + "dev": true + }, + "is-extglob": { + "version": "2.1.1", + "resolved": "https://registry.npmjs.org/is-extglob/-/is-extglob-2.1.1.tgz", + "integrity": "sha1-qIwCU1eR8C7TfHahueqXc8gz+MI=", + "dev": true + }, + "is-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": "sha1-o7MKXE8ZkYMWeqq5O+764937ZU8=", + "dev": true + }, + "is-generator-fn": { + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/is-generator-fn/-/is-generator-fn-2.1.0.tgz", + "integrity": "sha512-cTIB4yPYL/Grw0EaSzASzg6bBy9gqCofvWN8okThAYIxKJZC+udlRAmGbM0XLeniEJSs8uEgHPGuHSe1XsOLSQ==", + "dev": true + }, + "is-glob": { + "version": "4.0.1", + "resolved": "https://registry.npmjs.org/is-glob/-/is-glob-4.0.1.tgz", + "integrity": "sha512-5G0tKtBTFImOqDnLB2hG6Bp2qcKEFduo4tZu9MT/H6NQv/ghhy30o55ufafxJ/LdH79LLs2Kfrn85TLKyA7BUg==", + "dev": true, + "requires": { + "is-extglob": "^2.1.1" + } + }, + "is-html": { + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/is-html/-/is-html-1.1.0.tgz", + "integrity": "sha1-4E8cGNOUhRETlvmgJz6rUa8hhGQ=", + "dev": true, + "requires": { + "html-tags": "^1.0.0" + } + }, + "is-installed-globally": { + "version": "0.3.2", + "resolved": "https://registry.npmjs.org/is-installed-globally/-/is-installed-globally-0.3.2.tgz", + "integrity": "sha512-wZ8x1js7Ia0kecP/CHM/3ABkAmujX7WPvQk6uu3Fly/Mk44pySulQpnHG46OMjHGXApINnV4QhY3SWnECO2z5g==", + "dev": true, + "requires": { + "global-dirs": "^2.0.1", + "is-path-inside": "^3.0.1" + }, + "dependencies": { + "global-dirs": { + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/global-dirs/-/global-dirs-2.1.0.tgz", + "integrity": "sha512-MG6kdOUh/xBnyo9cJFeIKkLEc1AyFq42QTU4XiX51i2NEdxLxLWXIjEjmqKeSuKR7pAZjTqUVoT2b2huxVLgYQ==", + "dev": true, + "requires": { + "ini": "1.3.7" + } + }, + "ini": { + "version": "1.3.7", + "resolved": "https://registry.npmjs.org/ini/-/ini-1.3.7.tgz", + "integrity": "sha512-iKpRpXP+CrP2jyrxvg1kMUpXDyRUFDWurxbnVT1vQPx+Wz9uCYsMIqYuSBLV+PAaZG/d7kRLKRFc9oDMsH+mFQ==", + "dev": true + } + } + }, + "is-negative-zero": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/is-negative-zero/-/is-negative-zero-2.0.1.tgz", + "integrity": "sha512-2z6JzQvZRa9A2Y7xC6dQQm4FSTSTNWjKIYYTt4246eMTJmIo0Q+ZyOsU66X8lxK1AbB92dFeglPLrhwpeRKO6w==", + "dev": true + }, + "is-npm": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/is-npm/-/is-npm-4.0.0.tgz", + "integrity": "sha512-96ECIfh9xtDDlPylNPXhzjsykHsMJZ18ASpaWzQyBr4YRTcVjUvzaHayDAES2oU/3KpljhHUjtSRNiDwi0F0ig==", + "dev": true + }, + "is-number": { + "version": "7.0.0", + "resolved": "https://registry.npmjs.org/is-number/-/is-number-7.0.0.tgz", + "integrity": "sha512-41Cifkg6e8TylSpdtTpeLVMqvSBEVzTttHvERD741+pnZ8ANv0004MRL43QKPDlK9cGvNp6NZWZUBlbGXYxxng==", + "dev": true + }, + "is-obj": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/is-obj/-/is-obj-2.0.0.tgz", + "integrity": "sha512-drqDG3cbczxxEJRoOXcOjtdp1J/lyp1mNn0xaznRs8+muBhgQcrnbspox5X5fOw0HnMnbfDzvnEMEtqDEJEo8w==", + "dev": true + }, + "is-path-inside": { + "version": "3.0.2", + "resolved": "https://registry.npmjs.org/is-path-inside/-/is-path-inside-3.0.2.tgz", + "integrity": "sha512-/2UGPSgmtqwo1ktx8NDHjuPwZWmHhO+gj0f93EkhLB5RgW9RZevWYYlIkS6zePc6U2WpOdQYIwHe9YC4DWEBVg==", + "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": "sha1-caUMhCnfync8kqOQpKA7OfzVHT4=", + "dev": true + }, + "is-plain-object": { + "version": "2.0.4", + "resolved": "https://registry.npmjs.org/is-plain-object/-/is-plain-object-2.0.4.tgz", + "integrity": "sha512-h5PpgXkWitc38BBMYawTYMWJHFZJVnBquFE57xFpjB8pJFiF6gZ+bU+WyI/yqXiFR5mdLsgYNaPe8uao6Uv9Og==", + "dev": true, + "requires": { + "isobject": "^3.0.1" + } + }, + "is-potential-custom-element-name": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/is-potential-custom-element-name/-/is-potential-custom-element-name-1.0.0.tgz", + "integrity": "sha1-DFLlS8yjkbssSUsh6GJtczbG45c=", + "dev": true + }, + "is-regex": { + "version": "1.1.1", + "resolved": "https://registry.npmjs.org/is-regex/-/is-regex-1.1.1.tgz", + "integrity": "sha512-1+QkEcxiLlB7VEyFtyBg94e08OAsvq7FUBgApTq/w2ymCLyKJgDPsybBENVtA7XCQEgEXxKPonG+mvYRxh/LIg==", + "dev": true, + "requires": { + "has-symbols": "^1.0.1" + } + }, + "is-resolvable": { + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/is-resolvable/-/is-resolvable-1.1.0.tgz", + "integrity": "sha512-qgDYXFSR5WvEfuS5dMj6oTMEbrrSaM0CrFk2Yiq/gXnBvD9pMa2jGXxyhGLfvhZpuMZe18CJpFxAt3CRs42NMg==", + "dev": true + }, + "is-stream": { + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/is-stream/-/is-stream-1.1.0.tgz", + "integrity": "sha1-EtSj3U5o4Lec6428hBc66A2RykQ=", + "dev": true + }, + "is-string": { + "version": "1.0.5", + "resolved": "https://registry.npmjs.org/is-string/-/is-string-1.0.5.tgz", + "integrity": "sha512-buY6VNRjhQMiF1qWDouloZlQbRhDPCebwxSjxMjxgemYT46YMd2NR0/H+fBhEfWX4A/w9TBJ+ol+okqJKFE6vQ==", + "dev": true + }, + "is-svg": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/is-svg/-/is-svg-3.0.0.tgz", + "integrity": "sha512-gi4iHK53LR2ujhLVVj+37Ykh9GLqYHX6JOVXbLAucaG/Cqw9xwdFOjDM2qeifLs1sF1npXXFvDu0r5HNgCMrzQ==", + "dev": true, + "requires": { + "html-comment-regex": "^1.1.0" + } + }, + "is-symbol": { + "version": "1.0.3", + "resolved": "https://registry.npmjs.org/is-symbol/-/is-symbol-1.0.3.tgz", + "integrity": "sha512-OwijhaRSgqvhm/0ZdAcXNZt9lYdKFpcRDT5ULUuYXPoT794UNOdU+gpT6Rzo7b4V2HUl/op6GqY894AZwv9faQ==", + "dev": true, + "requires": { + "has-symbols": "^1.0.1" + } + }, + "is-text-path": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/is-text-path/-/is-text-path-1.0.1.tgz", + "integrity": "sha1-Thqg+1G/vLPpJogAE5cgLBd1tm4=", + "dev": true, + "requires": { + "text-extensions": "^1.0.0" + } + }, + "is-typedarray": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/is-typedarray/-/is-typedarray-1.0.0.tgz", + "integrity": "sha1-5HnICFjfDBsR3dppQPlgEfzaSpo=", + "dev": true + }, + "is-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": "sha1-Sw2hRCEE0bM2NA6AeX6GXPOffXI=", + "dev": true + }, + "is-what": { + "version": "3.12.0", + "resolved": "https://registry.npmjs.org/is-what/-/is-what-3.12.0.tgz", + "integrity": "sha512-2ilQz5/f/o9V7WRWJQmpFYNmQFZ9iM+OXRonZKcYgTkCzjb949Vi4h282PD1UfmgHk666rcWonbRJ++KI41VGw==" + }, + "is-windows": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/is-windows/-/is-windows-1.0.2.tgz", + "integrity": "sha512-eXK1UInq2bPmjyX6e3VHIzMLobc4J94i4AWn+Hpq3OU5KkrRC96OAcR3PRJ/pGu6m8TRnBHP9dkXQVsT/COVIA==", + "dev": true + }, + "is-wsl": { + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/is-wsl/-/is-wsl-1.1.0.tgz", + "integrity": "sha1-HxbkqiKwTRM2tmGIpmrzxgDDpm0=", + "dev": true + }, + "is-yarn-global": { + "version": "0.3.0", + "resolved": "https://registry.npmjs.org/is-yarn-global/-/is-yarn-global-0.3.0.tgz", + "integrity": "sha512-VjSeb/lHmkoyd8ryPVIKvOCn4D1koMqY+vqyjjUfc3xyKtP4dYOxM44sZrnqQSzSds3xyOrUTLTC9LVCVgLngw==", + "dev": true + }, + "isarray": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/isarray/-/isarray-1.0.0.tgz", + "integrity": "sha1-u5NdSFgsuhaMBoNJV6VKPgcSTxE=", + "dev": true + }, + "isexe": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/isexe/-/isexe-2.0.0.tgz", + "integrity": "sha1-6PvzdNxVb/iUehDcsFctYz8s+hA=", + "dev": true + }, + "isobject": { + "version": "3.0.1", + "resolved": "https://registry.npmjs.org/isobject/-/isobject-3.0.1.tgz", + "integrity": "sha1-TkMekrEalzFjaqH5yNHMvP2reN8=", + "dev": true + }, + "isstream": { + "version": "0.1.2", + "resolved": "https://registry.npmjs.org/isstream/-/isstream-0.1.2.tgz", + "integrity": "sha1-R+Y/evVa+m+S4VAOaQ64uFKcCZo=", + "dev": true + }, + "istanbul-lib-coverage": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/istanbul-lib-coverage/-/istanbul-lib-coverage-3.0.0.tgz", + "integrity": "sha512-UiUIqxMgRDET6eR+o5HbfRYP1l0hqkWOs7vNxC/mggutCMUIhWMm8gAHb8tHlyfD3/l6rlgNA5cKdDzEAf6hEg==", + "dev": true + }, + "istanbul-lib-instrument": { + "version": "4.0.3", + "resolved": "https://registry.npmjs.org/istanbul-lib-instrument/-/istanbul-lib-instrument-4.0.3.tgz", + "integrity": "sha512-BXgQl9kf4WTCPCCpmFGoJkz/+uhvm7h7PFKUYxh7qarQd3ER33vHG//qaE8eN25l07YqZPpHXU9I09l/RD5aGQ==", + "dev": true, + "requires": { + "@babel/core": "^7.7.5", + "@istanbuljs/schema": "^0.1.2", + "istanbul-lib-coverage": "^3.0.0", + "semver": "^6.3.0" + }, + "dependencies": { + "semver": { + "version": "6.3.0", + "resolved": "https://registry.npmjs.org/semver/-/semver-6.3.0.tgz", + "integrity": "sha512-b39TBaTSfV6yBrapU89p5fKekE2m/NwnDocOVruQFS1/veMgdzuPcnOM34M6CwxW8jH/lxEa5rBoDeUwu5HHTw==", + "dev": true + } + } + }, + "istanbul-lib-report": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/istanbul-lib-report/-/istanbul-lib-report-3.0.0.tgz", + "integrity": "sha512-wcdi+uAKzfiGT2abPpKZ0hSU1rGQjUQnLvtY5MpQ7QCTahD3VODhcu4wcfY1YtkGaDD5yuydOLINXsfbus9ROw==", + "dev": true, + "requires": { + "istanbul-lib-coverage": "^3.0.0", + "make-dir": "^3.0.0", + "supports-color": "^7.1.0" + }, + "dependencies": { + "has-flag": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/has-flag/-/has-flag-4.0.0.tgz", + "integrity": "sha512-EykJT/Q1KjTWctppgIAgfSO0tKVuZUjhgMr17kqTumMl6Afv3EISleU7qZUzoXDFTAHTDC4NOoG/ZxU3EvlMPQ==", + "dev": true + }, + "supports-color": { + "version": "7.2.0", + "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-7.2.0.tgz", + "integrity": "sha512-qpCAvRl9stuOHveKsn7HncJRvv501qIacKzQlO/+Lwxc9+0q2wLyv4Dfvt80/DPn2pqOBsJdDiogXGR9+OvwRw==", + "dev": true, + "requires": { + "has-flag": "^4.0.0" + } + } + } + }, + "istanbul-lib-source-maps": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/istanbul-lib-source-maps/-/istanbul-lib-source-maps-4.0.0.tgz", + "integrity": "sha512-c16LpFRkR8vQXyHZ5nLpY35JZtzj1PQY1iZmesUbf1FZHbIupcWfjgOXBY9YHkLEQ6puz1u4Dgj6qmU/DisrZg==", + "dev": true, + "requires": { + "debug": "^4.1.1", + "istanbul-lib-coverage": "^3.0.0", + "source-map": "^0.6.1" + } + }, + "istanbul-reports": { + "version": "3.0.2", + "resolved": "https://registry.npmjs.org/istanbul-reports/-/istanbul-reports-3.0.2.tgz", + "integrity": "sha512-9tZvz7AiR3PEDNGiV9vIouQ/EAcqMXFmkcA1CDFTwOB98OZVDL0PH9glHotf5Ugp6GCOTypfzGWI/OqjWNCRUw==", + "dev": true, + "requires": { + "html-escaper": "^2.0.0", + "istanbul-lib-report": "^3.0.0" + } + }, + "jest": { + "version": "26.0.1", + "resolved": "https://registry.npmjs.org/jest/-/jest-26.0.1.tgz", + "integrity": "sha512-29Q54kn5Bm7ZGKIuH2JRmnKl85YRigp0o0asTc6Sb6l2ch1DCXIeZTLLFy9ultJvhkTqbswF5DEx4+RlkmCxWg==", + "dev": true, + "requires": { + "@jest/core": "^26.0.1", + "import-local": "^3.0.2", + "jest-cli": "^26.0.1" + }, + "dependencies": { + "@jest/types": { + "version": "26.6.2", + "resolved": "https://registry.npmjs.org/@jest/types/-/types-26.6.2.tgz", + "integrity": "sha512-fC6QCp7Sc5sX6g8Tvbmj4XUTbyrik0akgRy03yjXbQaBWWNWGE7SGtJk98m0N8nzegD/7SggrUlivxo5ax4KWQ==", + "dev": true, + "requires": { + "@types/istanbul-lib-coverage": "^2.0.0", + "@types/istanbul-reports": "^3.0.0", + "@types/node": "*", + "@types/yargs": "^15.0.0", + "chalk": "^4.0.0" + } + }, + "@types/istanbul-reports": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/@types/istanbul-reports/-/istanbul-reports-3.0.0.tgz", + "integrity": "sha512-nwKNbvnwJ2/mndE9ItP/zc2TCzw6uuodnF4EHYWD+gCQDVBuRQL5UzbZD0/ezy1iKsFU2ZQiDqg4M9dN4+wZgA==", + "dev": true, + "requires": { + "@types/istanbul-lib-report": "*" + } + }, + "ansi-styles": { + "version": "4.3.0", + "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-4.3.0.tgz", + "integrity": "sha512-zbB9rCJAT1rbjiVDb2hqKFHNYLxgtk8NURxZ3IZwD3F6NtxbXZQCnnSi1Lkx+IDohdPlFp222wVALIheZJQSEg==", + "dev": true, + "requires": { + "color-convert": "^2.0.1" + } + }, + "chalk": { + "version": "4.1.0", + "resolved": "https://registry.npmjs.org/chalk/-/chalk-4.1.0.tgz", + "integrity": "sha512-qwx12AxXe2Q5xQ43Ac//I6v5aXTipYrSESdOgzrN+9XjgEpyjpKuvSGaN4qE93f7TQTlerQQ8S+EQ0EyDoVL1A==", + "dev": true, + "requires": { + "ansi-styles": "^4.1.0", + "supports-color": "^7.1.0" + } + }, + "color-convert": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/color-convert/-/color-convert-2.0.1.tgz", + "integrity": "sha512-RRECPsj7iu/xb5oKYcsFHSppFNnsj/52OVTRKb4zP5onXwVF3zVmmToNcOfGC+CRDpfK/U584fMg38ZHCaElKQ==", + "dev": true, + "requires": { + "color-name": "~1.1.4" + } + }, + "color-name": { + "version": "1.1.4", + "resolved": "https://registry.npmjs.org/color-name/-/color-name-1.1.4.tgz", + "integrity": "sha512-dOy+3AuW3a2wNbZHIuMZpTcgjGuLU/uBL/ubcZF9OXbDo8ff4O8yVp5Bf0efS8uEoYo5q4Fx7dY9OgQGXgAsQA==", + "dev": true + }, + "has-flag": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/has-flag/-/has-flag-4.0.0.tgz", + "integrity": "sha512-EykJT/Q1KjTWctppgIAgfSO0tKVuZUjhgMr17kqTumMl6Afv3EISleU7qZUzoXDFTAHTDC4NOoG/ZxU3EvlMPQ==", + "dev": true + }, + "jest-cli": { + "version": "26.6.3", + "resolved": "https://registry.npmjs.org/jest-cli/-/jest-cli-26.6.3.tgz", + "integrity": "sha512-GF9noBSa9t08pSyl3CY4frMrqp+aQXFGFkf5hEPbh/pIUFYWMK6ZLTfbmadxJVcJrdRoChlWQsA2VkJcDFK8hg==", + "dev": true, + "requires": { + "@jest/core": "^26.6.3", + "@jest/test-result": "^26.6.2", + "@jest/types": "^26.6.2", + "chalk": "^4.0.0", + "exit": "^0.1.2", + "graceful-fs": "^4.2.4", + "import-local": "^3.0.2", + "is-ci": "^2.0.0", + "jest-config": "^26.6.3", + "jest-util": "^26.6.2", + "jest-validate": "^26.6.2", + "prompts": "^2.0.1", + "yargs": "^15.4.1" + } + }, + "supports-color": { + "version": "7.2.0", + "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-7.2.0.tgz", + "integrity": "sha512-qpCAvRl9stuOHveKsn7HncJRvv501qIacKzQlO/+Lwxc9+0q2wLyv4Dfvt80/DPn2pqOBsJdDiogXGR9+OvwRw==", + "dev": true, + "requires": { + "has-flag": "^4.0.0" + } + } + } + }, + "jest-changed-files": { + "version": "26.6.2", + "resolved": "https://registry.npmjs.org/jest-changed-files/-/jest-changed-files-26.6.2.tgz", + "integrity": "sha512-fDS7szLcY9sCtIip8Fjry9oGf3I2ht/QT21bAHm5Dmf0mD4X3ReNUf17y+bO6fR8WgbIZTlbyG1ak/53cbRzKQ==", + "dev": true, + "requires": { + "@jest/types": "^26.6.2", + "execa": "^4.0.0", + "throat": "^5.0.0" + }, + "dependencies": { + "@jest/types": { + "version": "26.6.2", + "resolved": "https://registry.npmjs.org/@jest/types/-/types-26.6.2.tgz", + "integrity": "sha512-fC6QCp7Sc5sX6g8Tvbmj4XUTbyrik0akgRy03yjXbQaBWWNWGE7SGtJk98m0N8nzegD/7SggrUlivxo5ax4KWQ==", + "dev": true, + "requires": { + "@types/istanbul-lib-coverage": "^2.0.0", + "@types/istanbul-reports": "^3.0.0", + "@types/node": "*", + "@types/yargs": "^15.0.0", + "chalk": "^4.0.0" + } + }, + "@types/istanbul-reports": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/@types/istanbul-reports/-/istanbul-reports-3.0.0.tgz", + "integrity": "sha512-nwKNbvnwJ2/mndE9ItP/zc2TCzw6uuodnF4EHYWD+gCQDVBuRQL5UzbZD0/ezy1iKsFU2ZQiDqg4M9dN4+wZgA==", + "dev": true, + "requires": { + "@types/istanbul-lib-report": "*" + } + }, + "ansi-styles": { + "version": "4.3.0", + "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-4.3.0.tgz", + "integrity": "sha512-zbB9rCJAT1rbjiVDb2hqKFHNYLxgtk8NURxZ3IZwD3F6NtxbXZQCnnSi1Lkx+IDohdPlFp222wVALIheZJQSEg==", + "dev": true, + "requires": { + "color-convert": "^2.0.1" + } + }, + "chalk": { + "version": "4.1.0", + "resolved": "https://registry.npmjs.org/chalk/-/chalk-4.1.0.tgz", + "integrity": "sha512-qwx12AxXe2Q5xQ43Ac//I6v5aXTipYrSESdOgzrN+9XjgEpyjpKuvSGaN4qE93f7TQTlerQQ8S+EQ0EyDoVL1A==", + "dev": true, + "requires": { + "ansi-styles": "^4.1.0", + "supports-color": "^7.1.0" + } + }, + "color-convert": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/color-convert/-/color-convert-2.0.1.tgz", + "integrity": "sha512-RRECPsj7iu/xb5oKYcsFHSppFNnsj/52OVTRKb4zP5onXwVF3zVmmToNcOfGC+CRDpfK/U584fMg38ZHCaElKQ==", + "dev": true, + "requires": { + "color-name": "~1.1.4" + } + }, + "color-name": { + "version": "1.1.4", + "resolved": "https://registry.npmjs.org/color-name/-/color-name-1.1.4.tgz", + "integrity": "sha512-dOy+3AuW3a2wNbZHIuMZpTcgjGuLU/uBL/ubcZF9OXbDo8ff4O8yVp5Bf0efS8uEoYo5q4Fx7dY9OgQGXgAsQA==", + "dev": true + }, + "cross-spawn": { + "version": "7.0.3", + "resolved": "https://registry.npmjs.org/cross-spawn/-/cross-spawn-7.0.3.tgz", + "integrity": "sha512-iRDPJKUPVEND7dHPO8rkbOnPpyDygcDFtWjpeWNCgy8WP2rXcxXL8TskReQl6OrB2G7+UJrags1q15Fudc7G6w==", + "dev": true, + "requires": { + "path-key": "^3.1.0", + "shebang-command": "^2.0.0", + "which": "^2.0.1" + } + }, + "execa": { + "version": "4.1.0", + "resolved": "https://registry.npmjs.org/execa/-/execa-4.1.0.tgz", + "integrity": "sha512-j5W0//W7f8UxAn8hXVnwG8tLwdiUy4FJLcSupCg6maBYZDpyBvTApK7KyuI4bKj8KOh1r2YH+6ucuYtJv1bTZA==", + "dev": true, + "requires": { + "cross-spawn": "^7.0.0", + "get-stream": "^5.0.0", + "human-signals": "^1.1.1", + "is-stream": "^2.0.0", + "merge-stream": "^2.0.0", + "npm-run-path": "^4.0.0", + "onetime": "^5.1.0", + "signal-exit": "^3.0.2", + "strip-final-newline": "^2.0.0" + } + }, + "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" + } + }, + "has-flag": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/has-flag/-/has-flag-4.0.0.tgz", + "integrity": "sha512-EykJT/Q1KjTWctppgIAgfSO0tKVuZUjhgMr17kqTumMl6Afv3EISleU7qZUzoXDFTAHTDC4NOoG/ZxU3EvlMPQ==", + "dev": true + }, + "is-stream": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/is-stream/-/is-stream-2.0.0.tgz", + "integrity": "sha512-XCoy+WlUr7d1+Z8GgSuXmpuUFC9fOhRXglJMx+dwLKTkL44Cjd4W1Z5P+BQZpr+cR93aGP4S/s7Ftw6Nd/kiEw==", + "dev": true + }, + "mimic-fn": { + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/mimic-fn/-/mimic-fn-2.1.0.tgz", + "integrity": "sha512-OqbOk5oEQeAZ8WXWydlu9HJjz9WVdEIvamMCcXmuqUYjTknH/sqsWvhQ3vgwKFRR1HpjvNBKQ37nbJgYzGqGcg==", + "dev": true + }, + "npm-run-path": { + "version": "4.0.1", + "resolved": "https://registry.npmjs.org/npm-run-path/-/npm-run-path-4.0.1.tgz", + "integrity": "sha512-S48WzZW777zhNIrn7gxOlISNAqi9ZC/uQFnRdbeIHhZhCA6UqpkOT8T1G7BvfdgP4Er8gF4sUbaS0i7QvIfCWw==", + "dev": true, + "requires": { + "path-key": "^3.0.0" + } + }, + "onetime": { + "version": "5.1.2", + "resolved": "https://registry.npmjs.org/onetime/-/onetime-5.1.2.tgz", + "integrity": "sha512-kbpaSSGJTWdAY5KPVeMOKXSrPtr8C8C7wodJbcsd51jRnmD+GZu8Y0VoU6Dm5Z4vWr0Ig/1NKuWRKf7j5aaYSg==", + "dev": true, + "requires": { + "mimic-fn": "^2.1.0" + } + }, + "path-key": { + "version": "3.1.1", + "resolved": "https://registry.npmjs.org/path-key/-/path-key-3.1.1.tgz", + "integrity": "sha512-ojmeN0qd+y0jszEtoY48r0Peq5dwMEkIlCOu6Q5f41lfkswXuKtYrhgoTpLnyIcHm24Uhqx+5Tqm2InSwLhE6Q==", + "dev": true + }, + "shebang-command": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/shebang-command/-/shebang-command-2.0.0.tgz", + "integrity": "sha512-kHxr2zZpYtdmrN1qDjrrX/Z1rR1kG8Dx+gkpK1G4eXmvXswmcE1hTWBWYUzlraYw1/yZp6YuDY77YtvbN0dmDA==", + "dev": true, + "requires": { + "shebang-regex": "^3.0.0" + } + }, + "shebang-regex": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/shebang-regex/-/shebang-regex-3.0.0.tgz", + "integrity": "sha512-7++dFhtcx3353uBaq8DDR4NuxBetBzC7ZQOhmTQInHEd6bSrXdiEyzCvG07Z44UYdLShWUyXt5M/yhz8ekcb1A==", + "dev": true + }, + "supports-color": { + "version": "7.2.0", + "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-7.2.0.tgz", + "integrity": "sha512-qpCAvRl9stuOHveKsn7HncJRvv501qIacKzQlO/+Lwxc9+0q2wLyv4Dfvt80/DPn2pqOBsJdDiogXGR9+OvwRw==", + "dev": true, + "requires": { + "has-flag": "^4.0.0" + } + }, + "which": { + "version": "2.0.2", + "resolved": "https://registry.npmjs.org/which/-/which-2.0.2.tgz", + "integrity": "sha512-BLI3Tl1TW3Pvl70l3yq3Y64i+awpwXqsGBYWkkqMtnbXgrMD+yj7rhW0kuEDxzJaYXGjEW5ogapKNMEKNMjibA==", + "dev": true, + "requires": { + "isexe": "^2.0.0" + } + } + } + }, + "jest-config": { + "version": "26.6.3", + "resolved": "https://registry.npmjs.org/jest-config/-/jest-config-26.6.3.tgz", + "integrity": "sha512-t5qdIj/bCj2j7NFVHb2nFB4aUdfucDn3JRKgrZnplb8nieAirAzRSHP8uDEd+qV6ygzg9Pz4YG7UTJf94LPSyg==", + "dev": true, + "requires": { + "@babel/core": "^7.1.0", + "@jest/test-sequencer": "^26.6.3", + "@jest/types": "^26.6.2", + "babel-jest": "^26.6.3", + "chalk": "^4.0.0", + "deepmerge": "^4.2.2", + "glob": "^7.1.1", + "graceful-fs": "^4.2.4", + "jest-environment-jsdom": "^26.6.2", + "jest-environment-node": "^26.6.2", + "jest-get-type": "^26.3.0", + "jest-jasmine2": "^26.6.3", + "jest-regex-util": "^26.0.0", + "jest-resolve": "^26.6.2", + "jest-util": "^26.6.2", + "jest-validate": "^26.6.2", + "micromatch": "^4.0.2", + "pretty-format": "^26.6.2" + }, + "dependencies": { + "@jest/types": { + "version": "26.6.2", + "resolved": "https://registry.npmjs.org/@jest/types/-/types-26.6.2.tgz", + "integrity": "sha512-fC6QCp7Sc5sX6g8Tvbmj4XUTbyrik0akgRy03yjXbQaBWWNWGE7SGtJk98m0N8nzegD/7SggrUlivxo5ax4KWQ==", + "dev": true, + "requires": { + "@types/istanbul-lib-coverage": "^2.0.0", + "@types/istanbul-reports": "^3.0.0", + "@types/node": "*", + "@types/yargs": "^15.0.0", + "chalk": "^4.0.0" + } + }, + "@types/istanbul-reports": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/@types/istanbul-reports/-/istanbul-reports-3.0.0.tgz", + "integrity": "sha512-nwKNbvnwJ2/mndE9ItP/zc2TCzw6uuodnF4EHYWD+gCQDVBuRQL5UzbZD0/ezy1iKsFU2ZQiDqg4M9dN4+wZgA==", + "dev": true, + "requires": { + "@types/istanbul-lib-report": "*" + } + }, + "ansi-regex": { + "version": "5.0.0", + "resolved": "https://registry.npmjs.org/ansi-regex/-/ansi-regex-5.0.0.tgz", + "integrity": "sha512-bY6fj56OUQ0hU1KjFNDQuJFezqKdrAyFdIevADiqrWHwSlbmBNMHp5ak2f40Pm8JTFyM2mqxkG6ngkHO11f/lg==", + "dev": true + }, + "ansi-styles": { + "version": "4.3.0", + "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-4.3.0.tgz", + "integrity": "sha512-zbB9rCJAT1rbjiVDb2hqKFHNYLxgtk8NURxZ3IZwD3F6NtxbXZQCnnSi1Lkx+IDohdPlFp222wVALIheZJQSEg==", + "dev": true, + "requires": { + "color-convert": "^2.0.1" + } + }, + "chalk": { + "version": "4.1.0", + "resolved": "https://registry.npmjs.org/chalk/-/chalk-4.1.0.tgz", + "integrity": "sha512-qwx12AxXe2Q5xQ43Ac//I6v5aXTipYrSESdOgzrN+9XjgEpyjpKuvSGaN4qE93f7TQTlerQQ8S+EQ0EyDoVL1A==", + "dev": true, + "requires": { + "ansi-styles": "^4.1.0", + "supports-color": "^7.1.0" + } + }, + "color-convert": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/color-convert/-/color-convert-2.0.1.tgz", + "integrity": "sha512-RRECPsj7iu/xb5oKYcsFHSppFNnsj/52OVTRKb4zP5onXwVF3zVmmToNcOfGC+CRDpfK/U584fMg38ZHCaElKQ==", + "dev": true, + "requires": { + "color-name": "~1.1.4" + } + }, + "color-name": { + "version": "1.1.4", + "resolved": "https://registry.npmjs.org/color-name/-/color-name-1.1.4.tgz", + "integrity": "sha512-dOy+3AuW3a2wNbZHIuMZpTcgjGuLU/uBL/ubcZF9OXbDo8ff4O8yVp5Bf0efS8uEoYo5q4Fx7dY9OgQGXgAsQA==", + "dev": true + }, + "glob": { + "version": "7.1.6", + "resolved": "https://registry.npmjs.org/glob/-/glob-7.1.6.tgz", + "integrity": "sha512-LwaxwyZ72Lk7vZINtNNrywX0ZuLyStrdDtabefZKAY5ZGJhVtgdznluResxNmPitE0SAO+O26sWTHeKSI2wMBA==", + "dev": true, + "requires": { + "fs.realpath": "^1.0.0", + "inflight": "^1.0.4", + "inherits": "2", + "minimatch": "^3.0.4", + "once": "^1.3.0", + "path-is-absolute": "^1.0.0" + } + }, + "has-flag": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/has-flag/-/has-flag-4.0.0.tgz", + "integrity": "sha512-EykJT/Q1KjTWctppgIAgfSO0tKVuZUjhgMr17kqTumMl6Afv3EISleU7qZUzoXDFTAHTDC4NOoG/ZxU3EvlMPQ==", + "dev": true + }, + "jest-get-type": { + "version": "26.3.0", + "resolved": "https://registry.npmjs.org/jest-get-type/-/jest-get-type-26.3.0.tgz", + "integrity": "sha512-TpfaviN1R2pQWkIihlfEanwOXK0zcxrKEE4MlU6Tn7keoXdN6/3gK/xl0yEh8DOunn5pOVGKf8hB4R9gVh04ig==", + "dev": true + }, + "pretty-format": { + "version": "26.6.2", + "resolved": "https://registry.npmjs.org/pretty-format/-/pretty-format-26.6.2.tgz", + "integrity": "sha512-7AeGuCYNGmycyQbCqd/3PWH4eOoX/OiCa0uphp57NVTeAGdJGaAliecxwBDHYQCIvrW7aDBZCYeNTP/WX69mkg==", + "dev": true, + "requires": { + "@jest/types": "^26.6.2", + "ansi-regex": "^5.0.0", + "ansi-styles": "^4.0.0", + "react-is": "^17.0.1" + } + }, + "react-is": { + "version": "17.0.1", + "resolved": "https://registry.npmjs.org/react-is/-/react-is-17.0.1.tgz", + "integrity": "sha512-NAnt2iGDXohE5LI7uBnLnqvLQMtzhkiAOLXTmv+qnF9Ky7xAPcX8Up/xWIhxvLVGJvuLiNc4xQLtuqDRzb4fSA==", + "dev": true + }, + "supports-color": { + "version": "7.2.0", + "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-7.2.0.tgz", + "integrity": "sha512-qpCAvRl9stuOHveKsn7HncJRvv501qIacKzQlO/+Lwxc9+0q2wLyv4Dfvt80/DPn2pqOBsJdDiogXGR9+OvwRw==", + "dev": true, + "requires": { + "has-flag": "^4.0.0" + } + } + } + }, + "jest-diff": { + "version": "25.5.0", + "resolved": "https://registry.npmjs.org/jest-diff/-/jest-diff-25.5.0.tgz", + "integrity": "sha512-z1kygetuPiREYdNIumRpAHY6RXiGmp70YHptjdaxTWGmA085W3iCnXNx0DhflK3vwrKmrRWyY1wUpkPMVxMK7A==", + "dev": true, + "requires": { + "chalk": "^3.0.0", + "diff-sequences": "^25.2.6", + "jest-get-type": "^25.2.6", + "pretty-format": "^25.5.0" + }, + "dependencies": { + "ansi-styles": { + "version": "4.3.0", + "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-4.3.0.tgz", + "integrity": "sha512-zbB9rCJAT1rbjiVDb2hqKFHNYLxgtk8NURxZ3IZwD3F6NtxbXZQCnnSi1Lkx+IDohdPlFp222wVALIheZJQSEg==", + "dev": true, + "requires": { + "color-convert": "^2.0.1" + } + }, + "chalk": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/chalk/-/chalk-3.0.0.tgz", + "integrity": "sha512-4D3B6Wf41KOYRFdszmDqMCGq5VV/uMAB273JILmO+3jAlh8X4qDtdtgCR3fxtbLEMzSx22QdhnDcJvu2u1fVwg==", + "dev": true, + "requires": { + "ansi-styles": "^4.1.0", + "supports-color": "^7.1.0" + } + }, + "color-convert": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/color-convert/-/color-convert-2.0.1.tgz", + "integrity": "sha512-RRECPsj7iu/xb5oKYcsFHSppFNnsj/52OVTRKb4zP5onXwVF3zVmmToNcOfGC+CRDpfK/U584fMg38ZHCaElKQ==", + "dev": true, + "requires": { + "color-name": "~1.1.4" + } + }, + "color-name": { + "version": "1.1.4", + "resolved": "https://registry.npmjs.org/color-name/-/color-name-1.1.4.tgz", + "integrity": "sha512-dOy+3AuW3a2wNbZHIuMZpTcgjGuLU/uBL/ubcZF9OXbDo8ff4O8yVp5Bf0efS8uEoYo5q4Fx7dY9OgQGXgAsQA==", + "dev": true + }, + "has-flag": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/has-flag/-/has-flag-4.0.0.tgz", + "integrity": "sha512-EykJT/Q1KjTWctppgIAgfSO0tKVuZUjhgMr17kqTumMl6Afv3EISleU7qZUzoXDFTAHTDC4NOoG/ZxU3EvlMPQ==", + "dev": true + }, + "supports-color": { + "version": "7.2.0", + "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-7.2.0.tgz", + "integrity": "sha512-qpCAvRl9stuOHveKsn7HncJRvv501qIacKzQlO/+Lwxc9+0q2wLyv4Dfvt80/DPn2pqOBsJdDiogXGR9+OvwRw==", + "dev": true, + "requires": { + "has-flag": "^4.0.0" + } + } + } + }, + "jest-docblock": { + "version": "26.0.0", + "resolved": "https://registry.npmjs.org/jest-docblock/-/jest-docblock-26.0.0.tgz", + "integrity": "sha512-RDZ4Iz3QbtRWycd8bUEPxQsTlYazfYn/h5R65Fc6gOfwozFhoImx+affzky/FFBuqISPTqjXomoIGJVKBWoo0w==", + "dev": true, + "requires": { + "detect-newline": "^3.0.0" + } + }, + "jest-each": { + "version": "26.6.2", + "resolved": "https://registry.npmjs.org/jest-each/-/jest-each-26.6.2.tgz", + "integrity": "sha512-Mer/f0KaATbjl8MCJ+0GEpNdqmnVmDYqCTJYTvoo7rqmRiDllmp2AYN+06F93nXcY3ur9ShIjS+CO/uD+BbH4A==", + "dev": true, + "requires": { + "@jest/types": "^26.6.2", + "chalk": "^4.0.0", + "jest-get-type": "^26.3.0", + "jest-util": "^26.6.2", + "pretty-format": "^26.6.2" + }, + "dependencies": { + "@jest/types": { + "version": "26.6.2", + "resolved": "https://registry.npmjs.org/@jest/types/-/types-26.6.2.tgz", + "integrity": "sha512-fC6QCp7Sc5sX6g8Tvbmj4XUTbyrik0akgRy03yjXbQaBWWNWGE7SGtJk98m0N8nzegD/7SggrUlivxo5ax4KWQ==", + "dev": true, + "requires": { + "@types/istanbul-lib-coverage": "^2.0.0", + "@types/istanbul-reports": "^3.0.0", + "@types/node": "*", + "@types/yargs": "^15.0.0", + "chalk": "^4.0.0" + } + }, + "@types/istanbul-reports": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/@types/istanbul-reports/-/istanbul-reports-3.0.0.tgz", + "integrity": "sha512-nwKNbvnwJ2/mndE9ItP/zc2TCzw6uuodnF4EHYWD+gCQDVBuRQL5UzbZD0/ezy1iKsFU2ZQiDqg4M9dN4+wZgA==", + "dev": true, + "requires": { + "@types/istanbul-lib-report": "*" + } + }, + "ansi-regex": { + "version": "5.0.0", + "resolved": "https://registry.npmjs.org/ansi-regex/-/ansi-regex-5.0.0.tgz", + "integrity": "sha512-bY6fj56OUQ0hU1KjFNDQuJFezqKdrAyFdIevADiqrWHwSlbmBNMHp5ak2f40Pm8JTFyM2mqxkG6ngkHO11f/lg==", + "dev": true + }, + "ansi-styles": { + "version": "4.3.0", + "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-4.3.0.tgz", + "integrity": "sha512-zbB9rCJAT1rbjiVDb2hqKFHNYLxgtk8NURxZ3IZwD3F6NtxbXZQCnnSi1Lkx+IDohdPlFp222wVALIheZJQSEg==", + "dev": true, + "requires": { + "color-convert": "^2.0.1" + } + }, + "chalk": { + "version": "4.1.0", + "resolved": "https://registry.npmjs.org/chalk/-/chalk-4.1.0.tgz", + "integrity": "sha512-qwx12AxXe2Q5xQ43Ac//I6v5aXTipYrSESdOgzrN+9XjgEpyjpKuvSGaN4qE93f7TQTlerQQ8S+EQ0EyDoVL1A==", + "dev": true, + "requires": { + "ansi-styles": "^4.1.0", + "supports-color": "^7.1.0" + } + }, + "color-convert": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/color-convert/-/color-convert-2.0.1.tgz", + "integrity": "sha512-RRECPsj7iu/xb5oKYcsFHSppFNnsj/52OVTRKb4zP5onXwVF3zVmmToNcOfGC+CRDpfK/U584fMg38ZHCaElKQ==", + "dev": true, + "requires": { + "color-name": "~1.1.4" + } + }, + "color-name": { + "version": "1.1.4", + "resolved": "https://registry.npmjs.org/color-name/-/color-name-1.1.4.tgz", + "integrity": "sha512-dOy+3AuW3a2wNbZHIuMZpTcgjGuLU/uBL/ubcZF9OXbDo8ff4O8yVp5Bf0efS8uEoYo5q4Fx7dY9OgQGXgAsQA==", + "dev": true + }, + "has-flag": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/has-flag/-/has-flag-4.0.0.tgz", + "integrity": "sha512-EykJT/Q1KjTWctppgIAgfSO0tKVuZUjhgMr17kqTumMl6Afv3EISleU7qZUzoXDFTAHTDC4NOoG/ZxU3EvlMPQ==", + "dev": true + }, + "jest-get-type": { + "version": "26.3.0", + "resolved": "https://registry.npmjs.org/jest-get-type/-/jest-get-type-26.3.0.tgz", + "integrity": "sha512-TpfaviN1R2pQWkIihlfEanwOXK0zcxrKEE4MlU6Tn7keoXdN6/3gK/xl0yEh8DOunn5pOVGKf8hB4R9gVh04ig==", + "dev": true + }, + "pretty-format": { + "version": "26.6.2", + "resolved": "https://registry.npmjs.org/pretty-format/-/pretty-format-26.6.2.tgz", + "integrity": "sha512-7AeGuCYNGmycyQbCqd/3PWH4eOoX/OiCa0uphp57NVTeAGdJGaAliecxwBDHYQCIvrW7aDBZCYeNTP/WX69mkg==", + "dev": true, + "requires": { + "@jest/types": "^26.6.2", + "ansi-regex": "^5.0.0", + "ansi-styles": "^4.0.0", + "react-is": "^17.0.1" + } + }, + "react-is": { + "version": "17.0.1", + "resolved": "https://registry.npmjs.org/react-is/-/react-is-17.0.1.tgz", + "integrity": "sha512-NAnt2iGDXohE5LI7uBnLnqvLQMtzhkiAOLXTmv+qnF9Ky7xAPcX8Up/xWIhxvLVGJvuLiNc4xQLtuqDRzb4fSA==", + "dev": true + }, + "supports-color": { + "version": "7.2.0", + "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-7.2.0.tgz", + "integrity": "sha512-qpCAvRl9stuOHveKsn7HncJRvv501qIacKzQlO/+Lwxc9+0q2wLyv4Dfvt80/DPn2pqOBsJdDiogXGR9+OvwRw==", + "dev": true, + "requires": { + "has-flag": "^4.0.0" + } + } + } + }, + "jest-environment-jsdom": { + "version": "26.6.2", + "resolved": "https://registry.npmjs.org/jest-environment-jsdom/-/jest-environment-jsdom-26.6.2.tgz", + "integrity": "sha512-jgPqCruTlt3Kwqg5/WVFyHIOJHsiAvhcp2qiR2QQstuG9yWox5+iHpU3ZrcBxW14T4fe5Z68jAfLRh7joCSP2Q==", + "dev": true, + "requires": { + "@jest/environment": "^26.6.2", + "@jest/fake-timers": "^26.6.2", + "@jest/types": "^26.6.2", + "@types/node": "*", + "jest-mock": "^26.6.2", + "jest-util": "^26.6.2", + "jsdom": "^16.4.0" + }, + "dependencies": { + "@jest/types": { + "version": "26.6.2", + "resolved": "https://registry.npmjs.org/@jest/types/-/types-26.6.2.tgz", + "integrity": "sha512-fC6QCp7Sc5sX6g8Tvbmj4XUTbyrik0akgRy03yjXbQaBWWNWGE7SGtJk98m0N8nzegD/7SggrUlivxo5ax4KWQ==", + "dev": true, + "requires": { + "@types/istanbul-lib-coverage": "^2.0.0", + "@types/istanbul-reports": "^3.0.0", + "@types/node": "*", + "@types/yargs": "^15.0.0", + "chalk": "^4.0.0" + } + }, + "@types/istanbul-reports": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/@types/istanbul-reports/-/istanbul-reports-3.0.0.tgz", + "integrity": "sha512-nwKNbvnwJ2/mndE9ItP/zc2TCzw6uuodnF4EHYWD+gCQDVBuRQL5UzbZD0/ezy1iKsFU2ZQiDqg4M9dN4+wZgA==", + "dev": true, + "requires": { + "@types/istanbul-lib-report": "*" + } + }, + "acorn-globals": { + "version": "6.0.0", + "resolved": "https://registry.npmjs.org/acorn-globals/-/acorn-globals-6.0.0.tgz", + "integrity": "sha512-ZQl7LOWaF5ePqqcX4hLuv/bLXYQNfNWw2c0/yX/TsPRKamzHcTGQnlCjHT3TsmkOUVEPS3crCxiPfdzE/Trlhg==", + "dev": true, + "requires": { + "acorn": "^7.1.1", + "acorn-walk": "^7.1.1" + } + }, + "acorn-walk": { + "version": "7.2.0", + "resolved": "https://registry.npmjs.org/acorn-walk/-/acorn-walk-7.2.0.tgz", + "integrity": "sha512-OPdCF6GsMIP+Az+aWfAAOEt2/+iVDKE7oy6lJ098aoe59oAmK76qV6Gw60SbZ8jHuG2wH058GF4pLFbYamYrVA==", + "dev": true + }, + "ansi-styles": { + "version": "4.3.0", + "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-4.3.0.tgz", + "integrity": "sha512-zbB9rCJAT1rbjiVDb2hqKFHNYLxgtk8NURxZ3IZwD3F6NtxbXZQCnnSi1Lkx+IDohdPlFp222wVALIheZJQSEg==", + "dev": true, + "requires": { + "color-convert": "^2.0.1" + } + }, + "chalk": { + "version": "4.1.0", + "resolved": "https://registry.npmjs.org/chalk/-/chalk-4.1.0.tgz", + "integrity": "sha512-qwx12AxXe2Q5xQ43Ac//I6v5aXTipYrSESdOgzrN+9XjgEpyjpKuvSGaN4qE93f7TQTlerQQ8S+EQ0EyDoVL1A==", + "dev": true, + "requires": { + "ansi-styles": "^4.1.0", + "supports-color": "^7.1.0" + } + }, + "color-convert": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/color-convert/-/color-convert-2.0.1.tgz", + "integrity": "sha512-RRECPsj7iu/xb5oKYcsFHSppFNnsj/52OVTRKb4zP5onXwVF3zVmmToNcOfGC+CRDpfK/U584fMg38ZHCaElKQ==", + "dev": true, + "requires": { + "color-name": "~1.1.4" + } + }, + "color-name": { + "version": "1.1.4", + "resolved": "https://registry.npmjs.org/color-name/-/color-name-1.1.4.tgz", + "integrity": "sha512-dOy+3AuW3a2wNbZHIuMZpTcgjGuLU/uBL/ubcZF9OXbDo8ff4O8yVp5Bf0efS8uEoYo5q4Fx7dY9OgQGXgAsQA==", + "dev": true + }, + "cssom": { + "version": "0.4.4", + "resolved": "https://registry.npmjs.org/cssom/-/cssom-0.4.4.tgz", + "integrity": "sha512-p3pvU7r1MyyqbTk+WbNJIgJjG2VmTIaB10rI93LzVPrmDJKkzKYMtxxyAvQXR/NS6otuzveI7+7BBq3SjBS2mw==", + "dev": true + }, + "cssstyle": { + "version": "2.3.0", + "resolved": "https://registry.npmjs.org/cssstyle/-/cssstyle-2.3.0.tgz", + "integrity": "sha512-AZL67abkUzIuvcHqk7c09cezpGNcxUxU4Ioi/05xHk4DQeTkWmGYftIE6ctU6AEt+Gn4n1lDStOtj7FKycP71A==", + "dev": true, + "requires": { + "cssom": "~0.3.6" + }, + "dependencies": { + "cssom": { + "version": "0.3.8", + "resolved": "https://registry.npmjs.org/cssom/-/cssom-0.3.8.tgz", + "integrity": "sha512-b0tGHbfegbhPJpxpiBPU2sCkigAqtM9O121le6bbOlgyV+NyGyCmVfJ6QW9eRjz8CpNfWEOYBIMIGRYkLwsIYg==", + "dev": true + } + } + }, + "data-urls": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/data-urls/-/data-urls-2.0.0.tgz", + "integrity": "sha512-X5eWTSXO/BJmpdIKCRuKUgSCgAN0OwliVK3yPKbwIWU1Tdw5BRajxlzMidvh+gwko9AfQ9zIj52pzF91Q3YAvQ==", + "dev": true, + "requires": { + "abab": "^2.0.3", + "whatwg-mimetype": "^2.3.0", + "whatwg-url": "^8.0.0" + } + }, + "domexception": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/domexception/-/domexception-2.0.1.tgz", + "integrity": "sha512-yxJ2mFy/sibVQlu5qHjOkf9J3K6zgmCxgJ94u2EdvDOV09H+32LtRswEcUsmUWN72pVLOEnTSRaIVVzVQgS0dg==", + "dev": true, + "requires": { + "webidl-conversions": "^5.0.0" + }, + "dependencies": { + "webidl-conversions": { + "version": "5.0.0", + "resolved": "https://registry.npmjs.org/webidl-conversions/-/webidl-conversions-5.0.0.tgz", + "integrity": "sha512-VlZwKPCkYKxQgeSbH5EyngOmRp7Ww7I9rQLERETtf5ofd9pGeswWiOtogpEO850jziPRarreGxn5QIiTqpb2wA==", + "dev": true + } + } + }, + "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" + } + }, + "esprima": { + "version": "4.0.1", + "resolved": "https://registry.npmjs.org/esprima/-/esprima-4.0.1.tgz", + "integrity": "sha512-eGuFFw7Upda+g4p+QHvnW0RyTX/SVeJBDM/gCtMARO0cLuT2HcEKnTPvhjV6aGeqrCB/sbNop0Kszm0jsaWU4A==", + "dev": true + }, + "has-flag": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/has-flag/-/has-flag-4.0.0.tgz", + "integrity": "sha512-EykJT/Q1KjTWctppgIAgfSO0tKVuZUjhgMr17kqTumMl6Afv3EISleU7qZUzoXDFTAHTDC4NOoG/ZxU3EvlMPQ==", + "dev": true + }, + "html-encoding-sniffer": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/html-encoding-sniffer/-/html-encoding-sniffer-2.0.1.tgz", + "integrity": "sha512-D5JbOMBIR/TVZkubHT+OyT2705QvogUW4IBn6nHd756OwieSF9aDYFj4dv6HHEVGYbHaLETa3WggZYWWMyy3ZQ==", + "dev": true, + "requires": { + "whatwg-encoding": "^1.0.5" + } + }, + "jsdom": { + "version": "16.4.0", + "resolved": "https://registry.npmjs.org/jsdom/-/jsdom-16.4.0.tgz", + "integrity": "sha512-lYMm3wYdgPhrl7pDcRmvzPhhrGVBeVhPIqeHjzeiHN3DFmD1RBpbExbi8vU7BJdH8VAZYovR8DMt0PNNDM7k8w==", + "dev": true, + "requires": { + "abab": "^2.0.3", + "acorn": "^7.1.1", + "acorn-globals": "^6.0.0", + "cssom": "^0.4.4", + "cssstyle": "^2.2.0", + "data-urls": "^2.0.0", + "decimal.js": "^10.2.0", + "domexception": "^2.0.1", + "escodegen": "^1.14.1", + "html-encoding-sniffer": "^2.0.1", + "is-potential-custom-element-name": "^1.0.0", + "nwsapi": "^2.2.0", + "parse5": "5.1.1", + "request": "^2.88.2", + "request-promise-native": "^1.0.8", + "saxes": "^5.0.0", + "symbol-tree": "^3.2.4", + "tough-cookie": "^3.0.1", + "w3c-hr-time": "^1.0.2", + "w3c-xmlserializer": "^2.0.0", + "webidl-conversions": "^6.1.0", + "whatwg-encoding": "^1.0.5", + "whatwg-mimetype": "^2.3.0", + "whatwg-url": "^8.0.0", + "ws": "^7.2.3", + "xml-name-validator": "^3.0.0" + } + }, + "parse5": { + "version": "5.1.1", + "resolved": "https://registry.npmjs.org/parse5/-/parse5-5.1.1.tgz", + "integrity": "sha512-ugq4DFI0Ptb+WWjAdOK16+u/nHfiIrcE+sh8kZMaM0WllQKLI9rOUq6c2b7cwPkXdzfQESqvoqK6ug7U/Yyzug==", + "dev": true + }, + "saxes": { + "version": "5.0.1", + "resolved": "https://registry.npmjs.org/saxes/-/saxes-5.0.1.tgz", + "integrity": "sha512-5LBh1Tls8c9xgGjw3QrMwETmTMVk0oFgvrFSvWx62llR2hcEInrKNZ2GZCCuuy2lvWrdl5jhbpeqc5hRYKFOcw==", + "dev": true, + "requires": { + "xmlchars": "^2.2.0" + } + }, + "supports-color": { + "version": "7.2.0", + "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-7.2.0.tgz", + "integrity": "sha512-qpCAvRl9stuOHveKsn7HncJRvv501qIacKzQlO/+Lwxc9+0q2wLyv4Dfvt80/DPn2pqOBsJdDiogXGR9+OvwRw==", + "dev": true, + "requires": { + "has-flag": "^4.0.0" + } + }, + "tough-cookie": { + "version": "3.0.1", + "resolved": "https://registry.npmjs.org/tough-cookie/-/tough-cookie-3.0.1.tgz", + "integrity": "sha512-yQyJ0u4pZsv9D4clxO69OEjLWYw+jbgspjTue4lTQZLfV0c5l1VmK2y1JK8E9ahdpltPOaAThPcp5nKPUgSnsg==", + "dev": true, + "requires": { + "ip-regex": "^2.1.0", + "psl": "^1.1.28", + "punycode": "^2.1.1" + } + }, + "tr46": { + "version": "2.0.2", + "resolved": "https://registry.npmjs.org/tr46/-/tr46-2.0.2.tgz", + "integrity": "sha512-3n1qG+/5kg+jrbTzwAykB5yRYtQCTqOGKq5U5PE3b0a1/mzo6snDhjGS0zJVJunO0NrT3Dg1MLy5TjWP/UJppg==", + "dev": true, + "requires": { + "punycode": "^2.1.1" + } + }, + "w3c-xmlserializer": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/w3c-xmlserializer/-/w3c-xmlserializer-2.0.0.tgz", + "integrity": "sha512-4tzD0mF8iSiMiNs30BiLO3EpfGLZUT2MSX/G+o7ZywDzliWQ3OPtTZ0PTC3B3ca1UAf4cJMHB+2Bf56EriJuRA==", + "dev": true, + "requires": { + "xml-name-validator": "^3.0.0" + } + }, + "webidl-conversions": { + "version": "6.1.0", + "resolved": "https://registry.npmjs.org/webidl-conversions/-/webidl-conversions-6.1.0.tgz", + "integrity": "sha512-qBIvFLGiBpLjfwmYAaHPXsn+ho5xZnGvyGvsarywGNc8VyQJUMHJ8OBKGGrPER0okBeMDaan4mNBlgBROxuI8w==", + "dev": true + }, + "whatwg-url": { + "version": "8.4.0", + "resolved": "https://registry.npmjs.org/whatwg-url/-/whatwg-url-8.4.0.tgz", + "integrity": "sha512-vwTUFf6V4zhcPkWp/4CQPr1TW9Ml6SF4lVyaIMBdJw5i6qUUJ1QWM4Z6YYVkfka0OUIzVo/0aNtGVGk256IKWw==", + "dev": true, + "requires": { + "lodash.sortby": "^4.7.0", + "tr46": "^2.0.2", + "webidl-conversions": "^6.1.0" + } + }, + "ws": { + "version": "7.4.1", + "resolved": "https://registry.npmjs.org/ws/-/ws-7.4.1.tgz", + "integrity": "sha512-pTsP8UAfhy3sk1lSk/O/s4tjD0CRwvMnzvwr4OKGX7ZvqZtUyx4KIJB5JWbkykPoc55tixMGgTNoh3k4FkNGFQ==", + "dev": true + } + } + }, + "jest-environment-node": { + "version": "26.6.2", + "resolved": "https://registry.npmjs.org/jest-environment-node/-/jest-environment-node-26.6.2.tgz", + "integrity": "sha512-zhtMio3Exty18dy8ee8eJ9kjnRyZC1N4C1Nt/VShN1apyXc8rWGtJ9lI7vqiWcyyXS4BVSEn9lxAM2D+07/Tag==", + "dev": true, + "requires": { + "@jest/environment": "^26.6.2", + "@jest/fake-timers": "^26.6.2", + "@jest/types": "^26.6.2", + "@types/node": "*", + "jest-mock": "^26.6.2", + "jest-util": "^26.6.2" + }, + "dependencies": { + "@jest/types": { + "version": "26.6.2", + "resolved": "https://registry.npmjs.org/@jest/types/-/types-26.6.2.tgz", + "integrity": "sha512-fC6QCp7Sc5sX6g8Tvbmj4XUTbyrik0akgRy03yjXbQaBWWNWGE7SGtJk98m0N8nzegD/7SggrUlivxo5ax4KWQ==", + "dev": true, + "requires": { + "@types/istanbul-lib-coverage": "^2.0.0", + "@types/istanbul-reports": "^3.0.0", + "@types/node": "*", + "@types/yargs": "^15.0.0", + "chalk": "^4.0.0" + } + }, + "@types/istanbul-reports": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/@types/istanbul-reports/-/istanbul-reports-3.0.0.tgz", + "integrity": "sha512-nwKNbvnwJ2/mndE9ItP/zc2TCzw6uuodnF4EHYWD+gCQDVBuRQL5UzbZD0/ezy1iKsFU2ZQiDqg4M9dN4+wZgA==", + "dev": true, + "requires": { + "@types/istanbul-lib-report": "*" + } + }, + "ansi-styles": { + "version": "4.3.0", + "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-4.3.0.tgz", + "integrity": "sha512-zbB9rCJAT1rbjiVDb2hqKFHNYLxgtk8NURxZ3IZwD3F6NtxbXZQCnnSi1Lkx+IDohdPlFp222wVALIheZJQSEg==", + "dev": true, + "requires": { + "color-convert": "^2.0.1" + } + }, + "chalk": { + "version": "4.1.0", + "resolved": "https://registry.npmjs.org/chalk/-/chalk-4.1.0.tgz", + "integrity": "sha512-qwx12AxXe2Q5xQ43Ac//I6v5aXTipYrSESdOgzrN+9XjgEpyjpKuvSGaN4qE93f7TQTlerQQ8S+EQ0EyDoVL1A==", + "dev": true, + "requires": { + "ansi-styles": "^4.1.0", + "supports-color": "^7.1.0" + } + }, + "color-convert": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/color-convert/-/color-convert-2.0.1.tgz", + "integrity": "sha512-RRECPsj7iu/xb5oKYcsFHSppFNnsj/52OVTRKb4zP5onXwVF3zVmmToNcOfGC+CRDpfK/U584fMg38ZHCaElKQ==", + "dev": true, + "requires": { + "color-name": "~1.1.4" + } + }, + "color-name": { + "version": "1.1.4", + "resolved": "https://registry.npmjs.org/color-name/-/color-name-1.1.4.tgz", + "integrity": "sha512-dOy+3AuW3a2wNbZHIuMZpTcgjGuLU/uBL/ubcZF9OXbDo8ff4O8yVp5Bf0efS8uEoYo5q4Fx7dY9OgQGXgAsQA==", + "dev": true + }, + "has-flag": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/has-flag/-/has-flag-4.0.0.tgz", + "integrity": "sha512-EykJT/Q1KjTWctppgIAgfSO0tKVuZUjhgMr17kqTumMl6Afv3EISleU7qZUzoXDFTAHTDC4NOoG/ZxU3EvlMPQ==", + "dev": true + }, + "supports-color": { + "version": "7.2.0", + "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-7.2.0.tgz", + "integrity": "sha512-qpCAvRl9stuOHveKsn7HncJRvv501qIacKzQlO/+Lwxc9+0q2wLyv4Dfvt80/DPn2pqOBsJdDiogXGR9+OvwRw==", + "dev": true, + "requires": { + "has-flag": "^4.0.0" + } + } + } + }, + "jest-get-type": { + "version": "25.2.6", + "resolved": "https://registry.npmjs.org/jest-get-type/-/jest-get-type-25.2.6.tgz", + "integrity": "sha512-DxjtyzOHjObRM+sM1knti6or+eOgcGU4xVSb2HNP1TqO4ahsT+rqZg+nyqHWJSvWgKC5cG3QjGFBqxLghiF/Ig==", + "dev": true + }, + "jest-haste-map": { + "version": "26.6.2", + "resolved": "https://registry.npmjs.org/jest-haste-map/-/jest-haste-map-26.6.2.tgz", + "integrity": "sha512-easWIJXIw71B2RdR8kgqpjQrbMRWQBgiBwXYEhtGUTaX+doCjBheluShdDMeR8IMfJiTqH4+zfhtg29apJf/8w==", + "dev": true, + "requires": { + "@jest/types": "^26.6.2", + "@types/graceful-fs": "^4.1.2", + "@types/node": "*", + "anymatch": "^3.0.3", + "fb-watchman": "^2.0.0", + "fsevents": "^2.1.2", + "graceful-fs": "^4.2.4", + "jest-regex-util": "^26.0.0", + "jest-serializer": "^26.6.2", + "jest-util": "^26.6.2", + "jest-worker": "^26.6.2", + "micromatch": "^4.0.2", + "sane": "^4.0.3", + "walker": "^1.0.7" + }, + "dependencies": { + "@jest/types": { + "version": "26.6.2", + "resolved": "https://registry.npmjs.org/@jest/types/-/types-26.6.2.tgz", + "integrity": "sha512-fC6QCp7Sc5sX6g8Tvbmj4XUTbyrik0akgRy03yjXbQaBWWNWGE7SGtJk98m0N8nzegD/7SggrUlivxo5ax4KWQ==", + "dev": true, + "requires": { + "@types/istanbul-lib-coverage": "^2.0.0", + "@types/istanbul-reports": "^3.0.0", + "@types/node": "*", + "@types/yargs": "^15.0.0", + "chalk": "^4.0.0" + } + }, + "@types/istanbul-reports": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/@types/istanbul-reports/-/istanbul-reports-3.0.0.tgz", + "integrity": "sha512-nwKNbvnwJ2/mndE9ItP/zc2TCzw6uuodnF4EHYWD+gCQDVBuRQL5UzbZD0/ezy1iKsFU2ZQiDqg4M9dN4+wZgA==", + "dev": true, + "requires": { + "@types/istanbul-lib-report": "*" + } + }, + "ansi-styles": { + "version": "4.3.0", + "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-4.3.0.tgz", + "integrity": "sha512-zbB9rCJAT1rbjiVDb2hqKFHNYLxgtk8NURxZ3IZwD3F6NtxbXZQCnnSi1Lkx+IDohdPlFp222wVALIheZJQSEg==", + "dev": true, + "requires": { + "color-convert": "^2.0.1" + } + }, + "anymatch": { + "version": "3.1.1", + "resolved": "https://registry.npmjs.org/anymatch/-/anymatch-3.1.1.tgz", + "integrity": "sha512-mM8522psRCqzV+6LhomX5wgp25YVibjh8Wj23I5RPkPppSVSjyKD2A2mBJmWGa+KN7f2D6LNh9jkBCeyLktzjg==", + "dev": true, + "requires": { + "normalize-path": "^3.0.0", + "picomatch": "^2.0.4" + } + }, + "chalk": { + "version": "4.1.0", + "resolved": "https://registry.npmjs.org/chalk/-/chalk-4.1.0.tgz", + "integrity": "sha512-qwx12AxXe2Q5xQ43Ac//I6v5aXTipYrSESdOgzrN+9XjgEpyjpKuvSGaN4qE93f7TQTlerQQ8S+EQ0EyDoVL1A==", + "dev": true, + "requires": { + "ansi-styles": "^4.1.0", + "supports-color": "^7.1.0" + } + }, + "color-convert": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/color-convert/-/color-convert-2.0.1.tgz", + "integrity": "sha512-RRECPsj7iu/xb5oKYcsFHSppFNnsj/52OVTRKb4zP5onXwVF3zVmmToNcOfGC+CRDpfK/U584fMg38ZHCaElKQ==", + "dev": true, + "requires": { + "color-name": "~1.1.4" + } + }, + "color-name": { + "version": "1.1.4", + "resolved": "https://registry.npmjs.org/color-name/-/color-name-1.1.4.tgz", + "integrity": "sha512-dOy+3AuW3a2wNbZHIuMZpTcgjGuLU/uBL/ubcZF9OXbDo8ff4O8yVp5Bf0efS8uEoYo5q4Fx7dY9OgQGXgAsQA==", + "dev": true + }, + "fsevents": { + "version": "2.2.1", + "resolved": "https://registry.npmjs.org/fsevents/-/fsevents-2.2.1.tgz", + "integrity": "sha512-bTLYHSeC0UH/EFXS9KqWnXuOl/wHK5Z/d+ghd5AsFMYN7wIGkUCOJyzy88+wJKkZPGON8u4Z9f6U4FdgURE9qA==", + "dev": true, + "optional": true + }, + "has-flag": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/has-flag/-/has-flag-4.0.0.tgz", + "integrity": "sha512-EykJT/Q1KjTWctppgIAgfSO0tKVuZUjhgMr17kqTumMl6Afv3EISleU7qZUzoXDFTAHTDC4NOoG/ZxU3EvlMPQ==", + "dev": true + }, + "supports-color": { + "version": "7.2.0", + "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-7.2.0.tgz", + "integrity": "sha512-qpCAvRl9stuOHveKsn7HncJRvv501qIacKzQlO/+Lwxc9+0q2wLyv4Dfvt80/DPn2pqOBsJdDiogXGR9+OvwRw==", + "dev": true, + "requires": { + "has-flag": "^4.0.0" + } + } + } + }, + "jest-jasmine2": { + "version": "26.6.3", + "resolved": "https://registry.npmjs.org/jest-jasmine2/-/jest-jasmine2-26.6.3.tgz", + "integrity": "sha512-kPKUrQtc8aYwBV7CqBg5pu+tmYXlvFlSFYn18ev4gPFtrRzB15N2gW/Roew3187q2w2eHuu0MU9TJz6w0/nPEg==", + "dev": true, + "requires": { + "@babel/traverse": "^7.1.0", + "@jest/environment": "^26.6.2", + "@jest/source-map": "^26.6.2", + "@jest/test-result": "^26.6.2", + "@jest/types": "^26.6.2", + "@types/node": "*", + "chalk": "^4.0.0", + "co": "^4.6.0", + "expect": "^26.6.2", + "is-generator-fn": "^2.0.0", + "jest-each": "^26.6.2", + "jest-matcher-utils": "^26.6.2", + "jest-message-util": "^26.6.2", + "jest-runtime": "^26.6.3", + "jest-snapshot": "^26.6.2", + "jest-util": "^26.6.2", + "pretty-format": "^26.6.2", + "throat": "^5.0.0" + }, + "dependencies": { + "@jest/types": { + "version": "26.6.2", + "resolved": "https://registry.npmjs.org/@jest/types/-/types-26.6.2.tgz", + "integrity": "sha512-fC6QCp7Sc5sX6g8Tvbmj4XUTbyrik0akgRy03yjXbQaBWWNWGE7SGtJk98m0N8nzegD/7SggrUlivxo5ax4KWQ==", + "dev": true, + "requires": { + "@types/istanbul-lib-coverage": "^2.0.0", + "@types/istanbul-reports": "^3.0.0", + "@types/node": "*", + "@types/yargs": "^15.0.0", + "chalk": "^4.0.0" + } + }, + "@types/istanbul-reports": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/@types/istanbul-reports/-/istanbul-reports-3.0.0.tgz", + "integrity": "sha512-nwKNbvnwJ2/mndE9ItP/zc2TCzw6uuodnF4EHYWD+gCQDVBuRQL5UzbZD0/ezy1iKsFU2ZQiDqg4M9dN4+wZgA==", + "dev": true, + "requires": { + "@types/istanbul-lib-report": "*" + } + }, + "ansi-regex": { + "version": "5.0.0", + "resolved": "https://registry.npmjs.org/ansi-regex/-/ansi-regex-5.0.0.tgz", + "integrity": "sha512-bY6fj56OUQ0hU1KjFNDQuJFezqKdrAyFdIevADiqrWHwSlbmBNMHp5ak2f40Pm8JTFyM2mqxkG6ngkHO11f/lg==", + "dev": true + }, + "ansi-styles": { + "version": "4.3.0", + "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-4.3.0.tgz", + "integrity": "sha512-zbB9rCJAT1rbjiVDb2hqKFHNYLxgtk8NURxZ3IZwD3F6NtxbXZQCnnSi1Lkx+IDohdPlFp222wVALIheZJQSEg==", + "dev": true, + "requires": { + "color-convert": "^2.0.1" + } + }, + "chalk": { + "version": "4.1.0", + "resolved": "https://registry.npmjs.org/chalk/-/chalk-4.1.0.tgz", + "integrity": "sha512-qwx12AxXe2Q5xQ43Ac//I6v5aXTipYrSESdOgzrN+9XjgEpyjpKuvSGaN4qE93f7TQTlerQQ8S+EQ0EyDoVL1A==", + "dev": true, + "requires": { + "ansi-styles": "^4.1.0", + "supports-color": "^7.1.0" + } + }, + "color-convert": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/color-convert/-/color-convert-2.0.1.tgz", + "integrity": "sha512-RRECPsj7iu/xb5oKYcsFHSppFNnsj/52OVTRKb4zP5onXwVF3zVmmToNcOfGC+CRDpfK/U584fMg38ZHCaElKQ==", + "dev": true, + "requires": { + "color-name": "~1.1.4" + } + }, + "color-name": { + "version": "1.1.4", + "resolved": "https://registry.npmjs.org/color-name/-/color-name-1.1.4.tgz", + "integrity": "sha512-dOy+3AuW3a2wNbZHIuMZpTcgjGuLU/uBL/ubcZF9OXbDo8ff4O8yVp5Bf0efS8uEoYo5q4Fx7dY9OgQGXgAsQA==", + "dev": true + }, + "has-flag": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/has-flag/-/has-flag-4.0.0.tgz", + "integrity": "sha512-EykJT/Q1KjTWctppgIAgfSO0tKVuZUjhgMr17kqTumMl6Afv3EISleU7qZUzoXDFTAHTDC4NOoG/ZxU3EvlMPQ==", + "dev": true + }, + "pretty-format": { + "version": "26.6.2", + "resolved": "https://registry.npmjs.org/pretty-format/-/pretty-format-26.6.2.tgz", + "integrity": "sha512-7AeGuCYNGmycyQbCqd/3PWH4eOoX/OiCa0uphp57NVTeAGdJGaAliecxwBDHYQCIvrW7aDBZCYeNTP/WX69mkg==", + "dev": true, + "requires": { + "@jest/types": "^26.6.2", + "ansi-regex": "^5.0.0", + "ansi-styles": "^4.0.0", + "react-is": "^17.0.1" + } + }, + "react-is": { + "version": "17.0.1", + "resolved": "https://registry.npmjs.org/react-is/-/react-is-17.0.1.tgz", + "integrity": "sha512-NAnt2iGDXohE5LI7uBnLnqvLQMtzhkiAOLXTmv+qnF9Ky7xAPcX8Up/xWIhxvLVGJvuLiNc4xQLtuqDRzb4fSA==", + "dev": true + }, + "supports-color": { + "version": "7.2.0", + "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-7.2.0.tgz", + "integrity": "sha512-qpCAvRl9stuOHveKsn7HncJRvv501qIacKzQlO/+Lwxc9+0q2wLyv4Dfvt80/DPn2pqOBsJdDiogXGR9+OvwRw==", + "dev": true, + "requires": { + "has-flag": "^4.0.0" + } + } + } + }, + "jest-leak-detector": { + "version": "26.6.2", + "resolved": "https://registry.npmjs.org/jest-leak-detector/-/jest-leak-detector-26.6.2.tgz", + "integrity": "sha512-i4xlXpsVSMeKvg2cEKdfhh0H39qlJlP5Ex1yQxwF9ubahboQYMgTtz5oML35AVA3B4Eu+YsmwaiKVev9KCvLxg==", + "dev": true, + "requires": { + "jest-get-type": "^26.3.0", + "pretty-format": "^26.6.2" + }, + "dependencies": { + "@jest/types": { + "version": "26.6.2", + "resolved": "https://registry.npmjs.org/@jest/types/-/types-26.6.2.tgz", + "integrity": "sha512-fC6QCp7Sc5sX6g8Tvbmj4XUTbyrik0akgRy03yjXbQaBWWNWGE7SGtJk98m0N8nzegD/7SggrUlivxo5ax4KWQ==", + "dev": true, + "requires": { + "@types/istanbul-lib-coverage": "^2.0.0", + "@types/istanbul-reports": "^3.0.0", + "@types/node": "*", + "@types/yargs": "^15.0.0", + "chalk": "^4.0.0" + } + }, + "@types/istanbul-reports": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/@types/istanbul-reports/-/istanbul-reports-3.0.0.tgz", + "integrity": "sha512-nwKNbvnwJ2/mndE9ItP/zc2TCzw6uuodnF4EHYWD+gCQDVBuRQL5UzbZD0/ezy1iKsFU2ZQiDqg4M9dN4+wZgA==", + "dev": true, + "requires": { + "@types/istanbul-lib-report": "*" + } + }, + "ansi-regex": { + "version": "5.0.0", + "resolved": "https://registry.npmjs.org/ansi-regex/-/ansi-regex-5.0.0.tgz", + "integrity": "sha512-bY6fj56OUQ0hU1KjFNDQuJFezqKdrAyFdIevADiqrWHwSlbmBNMHp5ak2f40Pm8JTFyM2mqxkG6ngkHO11f/lg==", + "dev": true + }, + "ansi-styles": { + "version": "4.3.0", + "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-4.3.0.tgz", + "integrity": "sha512-zbB9rCJAT1rbjiVDb2hqKFHNYLxgtk8NURxZ3IZwD3F6NtxbXZQCnnSi1Lkx+IDohdPlFp222wVALIheZJQSEg==", + "dev": true, + "requires": { + "color-convert": "^2.0.1" + } + }, + "chalk": { + "version": "4.1.0", + "resolved": "https://registry.npmjs.org/chalk/-/chalk-4.1.0.tgz", + "integrity": "sha512-qwx12AxXe2Q5xQ43Ac//I6v5aXTipYrSESdOgzrN+9XjgEpyjpKuvSGaN4qE93f7TQTlerQQ8S+EQ0EyDoVL1A==", + "dev": true, + "requires": { + "ansi-styles": "^4.1.0", + "supports-color": "^7.1.0" + } + }, + "color-convert": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/color-convert/-/color-convert-2.0.1.tgz", + "integrity": "sha512-RRECPsj7iu/xb5oKYcsFHSppFNnsj/52OVTRKb4zP5onXwVF3zVmmToNcOfGC+CRDpfK/U584fMg38ZHCaElKQ==", + "dev": true, + "requires": { + "color-name": "~1.1.4" + } + }, + "color-name": { + "version": "1.1.4", + "resolved": "https://registry.npmjs.org/color-name/-/color-name-1.1.4.tgz", + "integrity": "sha512-dOy+3AuW3a2wNbZHIuMZpTcgjGuLU/uBL/ubcZF9OXbDo8ff4O8yVp5Bf0efS8uEoYo5q4Fx7dY9OgQGXgAsQA==", + "dev": true + }, + "has-flag": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/has-flag/-/has-flag-4.0.0.tgz", + "integrity": "sha512-EykJT/Q1KjTWctppgIAgfSO0tKVuZUjhgMr17kqTumMl6Afv3EISleU7qZUzoXDFTAHTDC4NOoG/ZxU3EvlMPQ==", + "dev": true + }, + "jest-get-type": { + "version": "26.3.0", + "resolved": "https://registry.npmjs.org/jest-get-type/-/jest-get-type-26.3.0.tgz", + "integrity": "sha512-TpfaviN1R2pQWkIihlfEanwOXK0zcxrKEE4MlU6Tn7keoXdN6/3gK/xl0yEh8DOunn5pOVGKf8hB4R9gVh04ig==", + "dev": true + }, + "pretty-format": { + "version": "26.6.2", + "resolved": "https://registry.npmjs.org/pretty-format/-/pretty-format-26.6.2.tgz", + "integrity": "sha512-7AeGuCYNGmycyQbCqd/3PWH4eOoX/OiCa0uphp57NVTeAGdJGaAliecxwBDHYQCIvrW7aDBZCYeNTP/WX69mkg==", + "dev": true, + "requires": { + "@jest/types": "^26.6.2", + "ansi-regex": "^5.0.0", + "ansi-styles": "^4.0.0", + "react-is": "^17.0.1" + } + }, + "react-is": { + "version": "17.0.1", + "resolved": "https://registry.npmjs.org/react-is/-/react-is-17.0.1.tgz", + "integrity": "sha512-NAnt2iGDXohE5LI7uBnLnqvLQMtzhkiAOLXTmv+qnF9Ky7xAPcX8Up/xWIhxvLVGJvuLiNc4xQLtuqDRzb4fSA==", + "dev": true + }, + "supports-color": { + "version": "7.2.0", + "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-7.2.0.tgz", + "integrity": "sha512-qpCAvRl9stuOHveKsn7HncJRvv501qIacKzQlO/+Lwxc9+0q2wLyv4Dfvt80/DPn2pqOBsJdDiogXGR9+OvwRw==", + "dev": true, + "requires": { + "has-flag": "^4.0.0" + } + } + } + }, + "jest-matcher-utils": { + "version": "26.6.2", + "resolved": "https://registry.npmjs.org/jest-matcher-utils/-/jest-matcher-utils-26.6.2.tgz", + "integrity": "sha512-llnc8vQgYcNqDrqRDXWwMr9i7rS5XFiCwvh6DTP7Jqa2mqpcCBBlpCbn+trkG0KNhPu/h8rzyBkriOtBstvWhw==", + "dev": true, + "requires": { + "chalk": "^4.0.0", + "jest-diff": "^26.6.2", + "jest-get-type": "^26.3.0", + "pretty-format": "^26.6.2" + }, + "dependencies": { + "@jest/types": { + "version": "26.6.2", + "resolved": "https://registry.npmjs.org/@jest/types/-/types-26.6.2.tgz", + "integrity": "sha512-fC6QCp7Sc5sX6g8Tvbmj4XUTbyrik0akgRy03yjXbQaBWWNWGE7SGtJk98m0N8nzegD/7SggrUlivxo5ax4KWQ==", + "dev": true, + "requires": { + "@types/istanbul-lib-coverage": "^2.0.0", + "@types/istanbul-reports": "^3.0.0", + "@types/node": "*", + "@types/yargs": "^15.0.0", + "chalk": "^4.0.0" + } + }, + "@types/istanbul-reports": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/@types/istanbul-reports/-/istanbul-reports-3.0.0.tgz", + "integrity": "sha512-nwKNbvnwJ2/mndE9ItP/zc2TCzw6uuodnF4EHYWD+gCQDVBuRQL5UzbZD0/ezy1iKsFU2ZQiDqg4M9dN4+wZgA==", + "dev": true, + "requires": { + "@types/istanbul-lib-report": "*" + } + }, + "ansi-regex": { + "version": "5.0.0", + "resolved": "https://registry.npmjs.org/ansi-regex/-/ansi-regex-5.0.0.tgz", + "integrity": "sha512-bY6fj56OUQ0hU1KjFNDQuJFezqKdrAyFdIevADiqrWHwSlbmBNMHp5ak2f40Pm8JTFyM2mqxkG6ngkHO11f/lg==", + "dev": true + }, + "ansi-styles": { + "version": "4.3.0", + "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-4.3.0.tgz", + "integrity": "sha512-zbB9rCJAT1rbjiVDb2hqKFHNYLxgtk8NURxZ3IZwD3F6NtxbXZQCnnSi1Lkx+IDohdPlFp222wVALIheZJQSEg==", + "dev": true, + "requires": { + "color-convert": "^2.0.1" + } + }, + "chalk": { + "version": "4.1.0", + "resolved": "https://registry.npmjs.org/chalk/-/chalk-4.1.0.tgz", + "integrity": "sha512-qwx12AxXe2Q5xQ43Ac//I6v5aXTipYrSESdOgzrN+9XjgEpyjpKuvSGaN4qE93f7TQTlerQQ8S+EQ0EyDoVL1A==", + "dev": true, + "requires": { + "ansi-styles": "^4.1.0", + "supports-color": "^7.1.0" + } + }, + "color-convert": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/color-convert/-/color-convert-2.0.1.tgz", + "integrity": "sha512-RRECPsj7iu/xb5oKYcsFHSppFNnsj/52OVTRKb4zP5onXwVF3zVmmToNcOfGC+CRDpfK/U584fMg38ZHCaElKQ==", + "dev": true, + "requires": { + "color-name": "~1.1.4" + } + }, + "color-name": { + "version": "1.1.4", + "resolved": "https://registry.npmjs.org/color-name/-/color-name-1.1.4.tgz", + "integrity": "sha512-dOy+3AuW3a2wNbZHIuMZpTcgjGuLU/uBL/ubcZF9OXbDo8ff4O8yVp5Bf0efS8uEoYo5q4Fx7dY9OgQGXgAsQA==", + "dev": true + }, + "diff-sequences": { + "version": "26.6.2", + "resolved": "https://registry.npmjs.org/diff-sequences/-/diff-sequences-26.6.2.tgz", + "integrity": "sha512-Mv/TDa3nZ9sbc5soK+OoA74BsS3mL37yixCvUAQkiuA4Wz6YtwP/K47n2rv2ovzHZvoiQeA5FTQOschKkEwB0Q==", + "dev": true + }, + "has-flag": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/has-flag/-/has-flag-4.0.0.tgz", + "integrity": "sha512-EykJT/Q1KjTWctppgIAgfSO0tKVuZUjhgMr17kqTumMl6Afv3EISleU7qZUzoXDFTAHTDC4NOoG/ZxU3EvlMPQ==", + "dev": true + }, + "jest-diff": { + "version": "26.6.2", + "resolved": "https://registry.npmjs.org/jest-diff/-/jest-diff-26.6.2.tgz", + "integrity": "sha512-6m+9Z3Gv9wN0WFVasqjCL/06+EFCMTqDEUl/b87HYK2rAPTyfz4ZIuSlPhY51PIQRWx5TaxeF1qmXKe9gfN3sA==", + "dev": true, + "requires": { + "chalk": "^4.0.0", + "diff-sequences": "^26.6.2", + "jest-get-type": "^26.3.0", + "pretty-format": "^26.6.2" + } + }, + "jest-get-type": { + "version": "26.3.0", + "resolved": "https://registry.npmjs.org/jest-get-type/-/jest-get-type-26.3.0.tgz", + "integrity": "sha512-TpfaviN1R2pQWkIihlfEanwOXK0zcxrKEE4MlU6Tn7keoXdN6/3gK/xl0yEh8DOunn5pOVGKf8hB4R9gVh04ig==", + "dev": true + }, + "pretty-format": { + "version": "26.6.2", + "resolved": "https://registry.npmjs.org/pretty-format/-/pretty-format-26.6.2.tgz", + "integrity": "sha512-7AeGuCYNGmycyQbCqd/3PWH4eOoX/OiCa0uphp57NVTeAGdJGaAliecxwBDHYQCIvrW7aDBZCYeNTP/WX69mkg==", + "dev": true, + "requires": { + "@jest/types": "^26.6.2", + "ansi-regex": "^5.0.0", + "ansi-styles": "^4.0.0", + "react-is": "^17.0.1" + } + }, + "react-is": { + "version": "17.0.1", + "resolved": "https://registry.npmjs.org/react-is/-/react-is-17.0.1.tgz", + "integrity": "sha512-NAnt2iGDXohE5LI7uBnLnqvLQMtzhkiAOLXTmv+qnF9Ky7xAPcX8Up/xWIhxvLVGJvuLiNc4xQLtuqDRzb4fSA==", + "dev": true + }, + "supports-color": { + "version": "7.2.0", + "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-7.2.0.tgz", + "integrity": "sha512-qpCAvRl9stuOHveKsn7HncJRvv501qIacKzQlO/+Lwxc9+0q2wLyv4Dfvt80/DPn2pqOBsJdDiogXGR9+OvwRw==", + "dev": true, + "requires": { + "has-flag": "^4.0.0" + } + } + } + }, + "jest-message-util": { + "version": "26.6.2", + "resolved": "https://registry.npmjs.org/jest-message-util/-/jest-message-util-26.6.2.tgz", + "integrity": "sha512-rGiLePzQ3AzwUshu2+Rn+UMFk0pHN58sOG+IaJbk5Jxuqo3NYO1U2/MIR4S1sKgsoYSXSzdtSa0TgrmtUwEbmA==", + "dev": true, + "requires": { + "@babel/code-frame": "^7.0.0", + "@jest/types": "^26.6.2", + "@types/stack-utils": "^2.0.0", + "chalk": "^4.0.0", + "graceful-fs": "^4.2.4", + "micromatch": "^4.0.2", + "pretty-format": "^26.6.2", + "slash": "^3.0.0", + "stack-utils": "^2.0.2" + }, + "dependencies": { + "@jest/types": { + "version": "26.6.2", + "resolved": "https://registry.npmjs.org/@jest/types/-/types-26.6.2.tgz", + "integrity": "sha512-fC6QCp7Sc5sX6g8Tvbmj4XUTbyrik0akgRy03yjXbQaBWWNWGE7SGtJk98m0N8nzegD/7SggrUlivxo5ax4KWQ==", + "dev": true, + "requires": { + "@types/istanbul-lib-coverage": "^2.0.0", + "@types/istanbul-reports": "^3.0.0", + "@types/node": "*", + "@types/yargs": "^15.0.0", + "chalk": "^4.0.0" + } + }, + "@types/istanbul-reports": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/@types/istanbul-reports/-/istanbul-reports-3.0.0.tgz", + "integrity": "sha512-nwKNbvnwJ2/mndE9ItP/zc2TCzw6uuodnF4EHYWD+gCQDVBuRQL5UzbZD0/ezy1iKsFU2ZQiDqg4M9dN4+wZgA==", + "dev": true, + "requires": { + "@types/istanbul-lib-report": "*" + } + }, + "ansi-regex": { + "version": "5.0.0", + "resolved": "https://registry.npmjs.org/ansi-regex/-/ansi-regex-5.0.0.tgz", + "integrity": "sha512-bY6fj56OUQ0hU1KjFNDQuJFezqKdrAyFdIevADiqrWHwSlbmBNMHp5ak2f40Pm8JTFyM2mqxkG6ngkHO11f/lg==", + "dev": true + }, + "ansi-styles": { + "version": "4.3.0", + "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-4.3.0.tgz", + "integrity": "sha512-zbB9rCJAT1rbjiVDb2hqKFHNYLxgtk8NURxZ3IZwD3F6NtxbXZQCnnSi1Lkx+IDohdPlFp222wVALIheZJQSEg==", + "dev": true, + "requires": { + "color-convert": "^2.0.1" + } + }, + "chalk": { + "version": "4.1.0", + "resolved": "https://registry.npmjs.org/chalk/-/chalk-4.1.0.tgz", + "integrity": "sha512-qwx12AxXe2Q5xQ43Ac//I6v5aXTipYrSESdOgzrN+9XjgEpyjpKuvSGaN4qE93f7TQTlerQQ8S+EQ0EyDoVL1A==", + "dev": true, + "requires": { + "ansi-styles": "^4.1.0", + "supports-color": "^7.1.0" + } + }, + "color-convert": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/color-convert/-/color-convert-2.0.1.tgz", + "integrity": "sha512-RRECPsj7iu/xb5oKYcsFHSppFNnsj/52OVTRKb4zP5onXwVF3zVmmToNcOfGC+CRDpfK/U584fMg38ZHCaElKQ==", + "dev": true, + "requires": { + "color-name": "~1.1.4" + } + }, + "color-name": { + "version": "1.1.4", + "resolved": "https://registry.npmjs.org/color-name/-/color-name-1.1.4.tgz", + "integrity": "sha512-dOy+3AuW3a2wNbZHIuMZpTcgjGuLU/uBL/ubcZF9OXbDo8ff4O8yVp5Bf0efS8uEoYo5q4Fx7dY9OgQGXgAsQA==", + "dev": true + }, + "has-flag": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/has-flag/-/has-flag-4.0.0.tgz", + "integrity": "sha512-EykJT/Q1KjTWctppgIAgfSO0tKVuZUjhgMr17kqTumMl6Afv3EISleU7qZUzoXDFTAHTDC4NOoG/ZxU3EvlMPQ==", + "dev": true + }, + "pretty-format": { + "version": "26.6.2", + "resolved": "https://registry.npmjs.org/pretty-format/-/pretty-format-26.6.2.tgz", + "integrity": "sha512-7AeGuCYNGmycyQbCqd/3PWH4eOoX/OiCa0uphp57NVTeAGdJGaAliecxwBDHYQCIvrW7aDBZCYeNTP/WX69mkg==", + "dev": true, + "requires": { + "@jest/types": "^26.6.2", + "ansi-regex": "^5.0.0", + "ansi-styles": "^4.0.0", + "react-is": "^17.0.1" + } + }, + "react-is": { + "version": "17.0.1", + "resolved": "https://registry.npmjs.org/react-is/-/react-is-17.0.1.tgz", + "integrity": "sha512-NAnt2iGDXohE5LI7uBnLnqvLQMtzhkiAOLXTmv+qnF9Ky7xAPcX8Up/xWIhxvLVGJvuLiNc4xQLtuqDRzb4fSA==", + "dev": true + }, + "supports-color": { + "version": "7.2.0", + "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-7.2.0.tgz", + "integrity": "sha512-qpCAvRl9stuOHveKsn7HncJRvv501qIacKzQlO/+Lwxc9+0q2wLyv4Dfvt80/DPn2pqOBsJdDiogXGR9+OvwRw==", + "dev": true, + "requires": { + "has-flag": "^4.0.0" + } + } + } + }, + "jest-mock": { + "version": "26.6.2", + "resolved": "https://registry.npmjs.org/jest-mock/-/jest-mock-26.6.2.tgz", + "integrity": "sha512-YyFjePHHp1LzpzYcmgqkJ0nm0gg/lJx2aZFzFy1S6eUqNjXsOqTK10zNRff2dNfssgokjkG65OlWNcIlgd3zew==", + "dev": true, + "requires": { + "@jest/types": "^26.6.2", + "@types/node": "*" + }, + "dependencies": { + "@jest/types": { + "version": "26.6.2", + "resolved": "https://registry.npmjs.org/@jest/types/-/types-26.6.2.tgz", + "integrity": "sha512-fC6QCp7Sc5sX6g8Tvbmj4XUTbyrik0akgRy03yjXbQaBWWNWGE7SGtJk98m0N8nzegD/7SggrUlivxo5ax4KWQ==", + "dev": true, + "requires": { + "@types/istanbul-lib-coverage": "^2.0.0", + "@types/istanbul-reports": "^3.0.0", + "@types/node": "*", + "@types/yargs": "^15.0.0", + "chalk": "^4.0.0" + } + }, + "@types/istanbul-reports": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/@types/istanbul-reports/-/istanbul-reports-3.0.0.tgz", + "integrity": "sha512-nwKNbvnwJ2/mndE9ItP/zc2TCzw6uuodnF4EHYWD+gCQDVBuRQL5UzbZD0/ezy1iKsFU2ZQiDqg4M9dN4+wZgA==", + "dev": true, + "requires": { + "@types/istanbul-lib-report": "*" + } + }, + "ansi-styles": { + "version": "4.3.0", + "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-4.3.0.tgz", + "integrity": "sha512-zbB9rCJAT1rbjiVDb2hqKFHNYLxgtk8NURxZ3IZwD3F6NtxbXZQCnnSi1Lkx+IDohdPlFp222wVALIheZJQSEg==", + "dev": true, + "requires": { + "color-convert": "^2.0.1" + } + }, + "chalk": { + "version": "4.1.0", + "resolved": "https://registry.npmjs.org/chalk/-/chalk-4.1.0.tgz", + "integrity": "sha512-qwx12AxXe2Q5xQ43Ac//I6v5aXTipYrSESdOgzrN+9XjgEpyjpKuvSGaN4qE93f7TQTlerQQ8S+EQ0EyDoVL1A==", + "dev": true, + "requires": { + "ansi-styles": "^4.1.0", + "supports-color": "^7.1.0" + } + }, + "color-convert": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/color-convert/-/color-convert-2.0.1.tgz", + "integrity": "sha512-RRECPsj7iu/xb5oKYcsFHSppFNnsj/52OVTRKb4zP5onXwVF3zVmmToNcOfGC+CRDpfK/U584fMg38ZHCaElKQ==", + "dev": true, + "requires": { + "color-name": "~1.1.4" + } + }, + "color-name": { + "version": "1.1.4", + "resolved": "https://registry.npmjs.org/color-name/-/color-name-1.1.4.tgz", + "integrity": "sha512-dOy+3AuW3a2wNbZHIuMZpTcgjGuLU/uBL/ubcZF9OXbDo8ff4O8yVp5Bf0efS8uEoYo5q4Fx7dY9OgQGXgAsQA==", + "dev": true + }, + "has-flag": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/has-flag/-/has-flag-4.0.0.tgz", + "integrity": "sha512-EykJT/Q1KjTWctppgIAgfSO0tKVuZUjhgMr17kqTumMl6Afv3EISleU7qZUzoXDFTAHTDC4NOoG/ZxU3EvlMPQ==", + "dev": true + }, + "supports-color": { + "version": "7.2.0", + "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-7.2.0.tgz", + "integrity": "sha512-qpCAvRl9stuOHveKsn7HncJRvv501qIacKzQlO/+Lwxc9+0q2wLyv4Dfvt80/DPn2pqOBsJdDiogXGR9+OvwRw==", + "dev": true, + "requires": { + "has-flag": "^4.0.0" + } + } + } + }, + "jest-pnp-resolver": { + "version": "1.2.2", + "resolved": "https://registry.npmjs.org/jest-pnp-resolver/-/jest-pnp-resolver-1.2.2.tgz", + "integrity": "sha512-olV41bKSMm8BdnuMsewT4jqlZ8+3TCARAXjZGT9jcoSnrfUnRCqnMoF9XEeoWjbzObpqF9dRhHQj0Xb9QdF6/w==", + "dev": true + }, + "jest-regex-util": { + "version": "26.0.0", + "resolved": "https://registry.npmjs.org/jest-regex-util/-/jest-regex-util-26.0.0.tgz", + "integrity": "sha512-Gv3ZIs/nA48/Zvjrl34bf+oD76JHiGDUxNOVgUjh3j890sblXryjY4rss71fPtD/njchl6PSE2hIhvyWa1eT0A==", + "dev": true + }, + "jest-resolve": { + "version": "26.6.2", + "resolved": "https://registry.npmjs.org/jest-resolve/-/jest-resolve-26.6.2.tgz", + "integrity": "sha512-sOxsZOq25mT1wRsfHcbtkInS+Ek7Q8jCHUB0ZUTP0tc/c41QHriU/NunqMfCUWsL4H3MHpvQD4QR9kSYhS7UvQ==", + "dev": true, + "requires": { + "@jest/types": "^26.6.2", + "chalk": "^4.0.0", + "graceful-fs": "^4.2.4", + "jest-pnp-resolver": "^1.2.2", + "jest-util": "^26.6.2", + "read-pkg-up": "^7.0.1", + "resolve": "^1.18.1", + "slash": "^3.0.0" + }, + "dependencies": { + "@jest/types": { + "version": "26.6.2", + "resolved": "https://registry.npmjs.org/@jest/types/-/types-26.6.2.tgz", + "integrity": "sha512-fC6QCp7Sc5sX6g8Tvbmj4XUTbyrik0akgRy03yjXbQaBWWNWGE7SGtJk98m0N8nzegD/7SggrUlivxo5ax4KWQ==", + "dev": true, + "requires": { + "@types/istanbul-lib-coverage": "^2.0.0", + "@types/istanbul-reports": "^3.0.0", + "@types/node": "*", + "@types/yargs": "^15.0.0", + "chalk": "^4.0.0" + } + }, + "@types/istanbul-reports": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/@types/istanbul-reports/-/istanbul-reports-3.0.0.tgz", + "integrity": "sha512-nwKNbvnwJ2/mndE9ItP/zc2TCzw6uuodnF4EHYWD+gCQDVBuRQL5UzbZD0/ezy1iKsFU2ZQiDqg4M9dN4+wZgA==", + "dev": true, + "requires": { + "@types/istanbul-lib-report": "*" + } + }, + "ansi-styles": { + "version": "4.3.0", + "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-4.3.0.tgz", + "integrity": "sha512-zbB9rCJAT1rbjiVDb2hqKFHNYLxgtk8NURxZ3IZwD3F6NtxbXZQCnnSi1Lkx+IDohdPlFp222wVALIheZJQSEg==", + "dev": true, + "requires": { + "color-convert": "^2.0.1" + } + }, + "chalk": { + "version": "4.1.0", + "resolved": "https://registry.npmjs.org/chalk/-/chalk-4.1.0.tgz", + "integrity": "sha512-qwx12AxXe2Q5xQ43Ac//I6v5aXTipYrSESdOgzrN+9XjgEpyjpKuvSGaN4qE93f7TQTlerQQ8S+EQ0EyDoVL1A==", + "dev": true, + "requires": { + "ansi-styles": "^4.1.0", + "supports-color": "^7.1.0" + } + }, + "color-convert": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/color-convert/-/color-convert-2.0.1.tgz", + "integrity": "sha512-RRECPsj7iu/xb5oKYcsFHSppFNnsj/52OVTRKb4zP5onXwVF3zVmmToNcOfGC+CRDpfK/U584fMg38ZHCaElKQ==", + "dev": true, + "requires": { + "color-name": "~1.1.4" + } + }, + "color-name": { + "version": "1.1.4", + "resolved": "https://registry.npmjs.org/color-name/-/color-name-1.1.4.tgz", + "integrity": "sha512-dOy+3AuW3a2wNbZHIuMZpTcgjGuLU/uBL/ubcZF9OXbDo8ff4O8yVp5Bf0efS8uEoYo5q4Fx7dY9OgQGXgAsQA==", + "dev": true + }, + "find-up": { + "version": "4.1.0", + "resolved": "https://registry.npmjs.org/find-up/-/find-up-4.1.0.tgz", + "integrity": "sha512-PpOwAdQ/YlXQ2vj8a3h8IipDuYRi3wceVQQGYWxNINccq40Anw7BlsEXCMbt1Zt+OLA6Fq9suIpIWD0OsnISlw==", + "dev": true, + "requires": { + "locate-path": "^5.0.0", + "path-exists": "^4.0.0" + } + }, + "has-flag": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/has-flag/-/has-flag-4.0.0.tgz", + "integrity": "sha512-EykJT/Q1KjTWctppgIAgfSO0tKVuZUjhgMr17kqTumMl6Afv3EISleU7qZUzoXDFTAHTDC4NOoG/ZxU3EvlMPQ==", + "dev": true + }, + "locate-path": { + "version": "5.0.0", + "resolved": "https://registry.npmjs.org/locate-path/-/locate-path-5.0.0.tgz", + "integrity": "sha512-t7hw9pI+WvuwNJXwk5zVHpyhIqzg2qTlklJOf0mVxGSbe3Fp2VieZcduNYjaLDoy6p9uGpQEGWG87WpMKlNq8g==", + "dev": true, + "requires": { + "p-locate": "^4.1.0" + } + }, + "p-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": "4.1.0", + "resolved": "https://registry.npmjs.org/p-locate/-/p-locate-4.1.0.tgz", + "integrity": "sha512-R79ZZ/0wAxKGu3oYMlz8jy/kbhsNrS7SKZ7PxEHBgJ5+F2mtFW2fK2cOtBh1cHYkQsbzFV7I+EoRKe6Yt0oK7A==", + "dev": true, + "requires": { + "p-limit": "^2.2.0" + } + }, + "p-try": { + "version": "2.2.0", + "resolved": "https://registry.npmjs.org/p-try/-/p-try-2.2.0.tgz", + "integrity": "sha512-R4nPAVTAU0B9D35/Gk3uJf/7XYbQcyohSKdvAxIRSNghFl4e71hVoGnBNQz9cWaXxO2I10KTC+3jMdvvoKw6dQ==", + "dev": true + }, + "parse-json": { + "version": "5.1.0", + "resolved": "https://registry.npmjs.org/parse-json/-/parse-json-5.1.0.tgz", + "integrity": "sha512-+mi/lmVVNKFNVyLXV31ERiy2CY5E1/F6QtJFEzoChPRwwngMNXRDQ9GJ5WdE2Z2P4AujsOi0/+2qHID68KwfIQ==", + "dev": true, + "requires": { + "@babel/code-frame": "^7.0.0", + "error-ex": "^1.3.1", + "json-parse-even-better-errors": "^2.3.0", + "lines-and-columns": "^1.1.6" + } + }, + "path-exists": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/path-exists/-/path-exists-4.0.0.tgz", + "integrity": "sha512-ak9Qy5Q7jYb2Wwcey5Fpvg2KoAc/ZIhLSLOSBmRmygPsGwkVVt0fZa0qrtMz+m6tJTAHfZQ8FnmB4MG4LWy7/w==", + "dev": true + }, + "read-pkg": { + "version": "5.2.0", + "resolved": "https://registry.npmjs.org/read-pkg/-/read-pkg-5.2.0.tgz", + "integrity": "sha512-Ug69mNOpfvKDAc2Q8DRpMjjzdtrnv9HcSMX+4VsZxD1aZ6ZzrIE7rlzXBtWTyhULSMKg076AW6WR5iZpD0JiOg==", + "dev": true, + "requires": { + "@types/normalize-package-data": "^2.4.0", + "normalize-package-data": "^2.5.0", + "parse-json": "^5.0.0", + "type-fest": "^0.6.0" + }, + "dependencies": { + "type-fest": { + "version": "0.6.0", + "resolved": "https://registry.npmjs.org/type-fest/-/type-fest-0.6.0.tgz", + "integrity": "sha512-q+MB8nYR1KDLrgr4G5yemftpMC7/QLqVndBmEEdqzmNj5dcFOO4Oo8qlwZE3ULT3+Zim1F8Kq4cBnikNhlCMlg==", + "dev": true + } + } + }, + "read-pkg-up": { + "version": "7.0.1", + "resolved": "https://registry.npmjs.org/read-pkg-up/-/read-pkg-up-7.0.1.tgz", + "integrity": "sha512-zK0TB7Xd6JpCLmlLmufqykGE+/TlOePD6qKClNW7hHDKFh/J7/7gCWGR7joEQEW1bKq3a3yUZSObOoWLFQ4ohg==", + "dev": true, + "requires": { + "find-up": "^4.1.0", + "read-pkg": "^5.2.0", + "type-fest": "^0.8.1" + } + }, + "supports-color": { + "version": "7.2.0", + "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-7.2.0.tgz", + "integrity": "sha512-qpCAvRl9stuOHveKsn7HncJRvv501qIacKzQlO/+Lwxc9+0q2wLyv4Dfvt80/DPn2pqOBsJdDiogXGR9+OvwRw==", + "dev": true, + "requires": { + "has-flag": "^4.0.0" + } + } + } + }, + "jest-resolve-dependencies": { + "version": "26.6.3", + "resolved": "https://registry.npmjs.org/jest-resolve-dependencies/-/jest-resolve-dependencies-26.6.3.tgz", + "integrity": "sha512-pVwUjJkxbhe4RY8QEWzN3vns2kqyuldKpxlxJlzEYfKSvY6/bMvxoFrYYzUO1Gx28yKWN37qyV7rIoIp2h8fTg==", + "dev": true, + "requires": { + "@jest/types": "^26.6.2", + "jest-regex-util": "^26.0.0", + "jest-snapshot": "^26.6.2" + }, + "dependencies": { + "@jest/types": { + "version": "26.6.2", + "resolved": "https://registry.npmjs.org/@jest/types/-/types-26.6.2.tgz", + "integrity": "sha512-fC6QCp7Sc5sX6g8Tvbmj4XUTbyrik0akgRy03yjXbQaBWWNWGE7SGtJk98m0N8nzegD/7SggrUlivxo5ax4KWQ==", + "dev": true, + "requires": { + "@types/istanbul-lib-coverage": "^2.0.0", + "@types/istanbul-reports": "^3.0.0", + "@types/node": "*", + "@types/yargs": "^15.0.0", + "chalk": "^4.0.0" + } + }, + "@types/istanbul-reports": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/@types/istanbul-reports/-/istanbul-reports-3.0.0.tgz", + "integrity": "sha512-nwKNbvnwJ2/mndE9ItP/zc2TCzw6uuodnF4EHYWD+gCQDVBuRQL5UzbZD0/ezy1iKsFU2ZQiDqg4M9dN4+wZgA==", + "dev": true, + "requires": { + "@types/istanbul-lib-report": "*" + } + }, + "ansi-styles": { + "version": "4.3.0", + "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-4.3.0.tgz", + "integrity": "sha512-zbB9rCJAT1rbjiVDb2hqKFHNYLxgtk8NURxZ3IZwD3F6NtxbXZQCnnSi1Lkx+IDohdPlFp222wVALIheZJQSEg==", + "dev": true, + "requires": { + "color-convert": "^2.0.1" + } + }, + "chalk": { + "version": "4.1.0", + "resolved": "https://registry.npmjs.org/chalk/-/chalk-4.1.0.tgz", + "integrity": "sha512-qwx12AxXe2Q5xQ43Ac//I6v5aXTipYrSESdOgzrN+9XjgEpyjpKuvSGaN4qE93f7TQTlerQQ8S+EQ0EyDoVL1A==", + "dev": true, + "requires": { + "ansi-styles": "^4.1.0", + "supports-color": "^7.1.0" + } + }, + "color-convert": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/color-convert/-/color-convert-2.0.1.tgz", + "integrity": "sha512-RRECPsj7iu/xb5oKYcsFHSppFNnsj/52OVTRKb4zP5onXwVF3zVmmToNcOfGC+CRDpfK/U584fMg38ZHCaElKQ==", + "dev": true, + "requires": { + "color-name": "~1.1.4" + } + }, + "color-name": { + "version": "1.1.4", + "resolved": "https://registry.npmjs.org/color-name/-/color-name-1.1.4.tgz", + "integrity": "sha512-dOy+3AuW3a2wNbZHIuMZpTcgjGuLU/uBL/ubcZF9OXbDo8ff4O8yVp5Bf0efS8uEoYo5q4Fx7dY9OgQGXgAsQA==", + "dev": true + }, + "has-flag": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/has-flag/-/has-flag-4.0.0.tgz", + "integrity": "sha512-EykJT/Q1KjTWctppgIAgfSO0tKVuZUjhgMr17kqTumMl6Afv3EISleU7qZUzoXDFTAHTDC4NOoG/ZxU3EvlMPQ==", + "dev": true + }, + "supports-color": { + "version": "7.2.0", + "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-7.2.0.tgz", + "integrity": "sha512-qpCAvRl9stuOHveKsn7HncJRvv501qIacKzQlO/+Lwxc9+0q2wLyv4Dfvt80/DPn2pqOBsJdDiogXGR9+OvwRw==", + "dev": true, + "requires": { + "has-flag": "^4.0.0" + } + } + } + }, + "jest-runner": { + "version": "26.6.3", + "resolved": "https://registry.npmjs.org/jest-runner/-/jest-runner-26.6.3.tgz", + "integrity": "sha512-atgKpRHnaA2OvByG/HpGA4g6CSPS/1LK0jK3gATJAoptC1ojltpmVlYC3TYgdmGp+GLuhzpH30Gvs36szSL2JQ==", + "dev": true, + "requires": { + "@jest/console": "^26.6.2", + "@jest/environment": "^26.6.2", + "@jest/test-result": "^26.6.2", + "@jest/types": "^26.6.2", + "@types/node": "*", + "chalk": "^4.0.0", + "emittery": "^0.7.1", + "exit": "^0.1.2", + "graceful-fs": "^4.2.4", + "jest-config": "^26.6.3", + "jest-docblock": "^26.0.0", + "jest-haste-map": "^26.6.2", + "jest-leak-detector": "^26.6.2", + "jest-message-util": "^26.6.2", + "jest-resolve": "^26.6.2", + "jest-runtime": "^26.6.3", + "jest-util": "^26.6.2", + "jest-worker": "^26.6.2", + "source-map-support": "^0.5.6", + "throat": "^5.0.0" + }, + "dependencies": { + "@jest/types": { + "version": "26.6.2", + "resolved": "https://registry.npmjs.org/@jest/types/-/types-26.6.2.tgz", + "integrity": "sha512-fC6QCp7Sc5sX6g8Tvbmj4XUTbyrik0akgRy03yjXbQaBWWNWGE7SGtJk98m0N8nzegD/7SggrUlivxo5ax4KWQ==", + "dev": true, + "requires": { + "@types/istanbul-lib-coverage": "^2.0.0", + "@types/istanbul-reports": "^3.0.0", + "@types/node": "*", + "@types/yargs": "^15.0.0", + "chalk": "^4.0.0" + } + }, + "@types/istanbul-reports": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/@types/istanbul-reports/-/istanbul-reports-3.0.0.tgz", + "integrity": "sha512-nwKNbvnwJ2/mndE9ItP/zc2TCzw6uuodnF4EHYWD+gCQDVBuRQL5UzbZD0/ezy1iKsFU2ZQiDqg4M9dN4+wZgA==", + "dev": true, + "requires": { + "@types/istanbul-lib-report": "*" + } + }, + "ansi-styles": { + "version": "4.3.0", + "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-4.3.0.tgz", + "integrity": "sha512-zbB9rCJAT1rbjiVDb2hqKFHNYLxgtk8NURxZ3IZwD3F6NtxbXZQCnnSi1Lkx+IDohdPlFp222wVALIheZJQSEg==", + "dev": true, + "requires": { + "color-convert": "^2.0.1" + } + }, + "chalk": { + "version": "4.1.0", + "resolved": "https://registry.npmjs.org/chalk/-/chalk-4.1.0.tgz", + "integrity": "sha512-qwx12AxXe2Q5xQ43Ac//I6v5aXTipYrSESdOgzrN+9XjgEpyjpKuvSGaN4qE93f7TQTlerQQ8S+EQ0EyDoVL1A==", + "dev": true, + "requires": { + "ansi-styles": "^4.1.0", + "supports-color": "^7.1.0" + } + }, + "color-convert": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/color-convert/-/color-convert-2.0.1.tgz", + "integrity": "sha512-RRECPsj7iu/xb5oKYcsFHSppFNnsj/52OVTRKb4zP5onXwVF3zVmmToNcOfGC+CRDpfK/U584fMg38ZHCaElKQ==", + "dev": true, + "requires": { + "color-name": "~1.1.4" + } + }, + "color-name": { + "version": "1.1.4", + "resolved": "https://registry.npmjs.org/color-name/-/color-name-1.1.4.tgz", + "integrity": "sha512-dOy+3AuW3a2wNbZHIuMZpTcgjGuLU/uBL/ubcZF9OXbDo8ff4O8yVp5Bf0efS8uEoYo5q4Fx7dY9OgQGXgAsQA==", + "dev": true + }, + "has-flag": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/has-flag/-/has-flag-4.0.0.tgz", + "integrity": "sha512-EykJT/Q1KjTWctppgIAgfSO0tKVuZUjhgMr17kqTumMl6Afv3EISleU7qZUzoXDFTAHTDC4NOoG/ZxU3EvlMPQ==", + "dev": true + }, + "supports-color": { + "version": "7.2.0", + "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-7.2.0.tgz", + "integrity": "sha512-qpCAvRl9stuOHveKsn7HncJRvv501qIacKzQlO/+Lwxc9+0q2wLyv4Dfvt80/DPn2pqOBsJdDiogXGR9+OvwRw==", + "dev": true, + "requires": { + "has-flag": "^4.0.0" + } + } + } + }, + "jest-runtime": { + "version": "26.6.3", + "resolved": "https://registry.npmjs.org/jest-runtime/-/jest-runtime-26.6.3.tgz", + "integrity": "sha512-lrzyR3N8sacTAMeonbqpnSka1dHNux2uk0qqDXVkMv2c/A3wYnvQ4EXuI013Y6+gSKSCxdaczvf4HF0mVXHRdw==", + "dev": true, + "requires": { + "@jest/console": "^26.6.2", + "@jest/environment": "^26.6.2", + "@jest/fake-timers": "^26.6.2", + "@jest/globals": "^26.6.2", + "@jest/source-map": "^26.6.2", + "@jest/test-result": "^26.6.2", + "@jest/transform": "^26.6.2", + "@jest/types": "^26.6.2", + "@types/yargs": "^15.0.0", + "chalk": "^4.0.0", + "cjs-module-lexer": "^0.6.0", + "collect-v8-coverage": "^1.0.0", + "exit": "^0.1.2", + "glob": "^7.1.3", + "graceful-fs": "^4.2.4", + "jest-config": "^26.6.3", + "jest-haste-map": "^26.6.2", + "jest-message-util": "^26.6.2", + "jest-mock": "^26.6.2", + "jest-regex-util": "^26.0.0", + "jest-resolve": "^26.6.2", + "jest-snapshot": "^26.6.2", + "jest-util": "^26.6.2", + "jest-validate": "^26.6.2", + "slash": "^3.0.0", + "strip-bom": "^4.0.0", + "yargs": "^15.4.1" + }, + "dependencies": { + "@jest/types": { + "version": "26.6.2", + "resolved": "https://registry.npmjs.org/@jest/types/-/types-26.6.2.tgz", + "integrity": "sha512-fC6QCp7Sc5sX6g8Tvbmj4XUTbyrik0akgRy03yjXbQaBWWNWGE7SGtJk98m0N8nzegD/7SggrUlivxo5ax4KWQ==", + "dev": true, + "requires": { + "@types/istanbul-lib-coverage": "^2.0.0", + "@types/istanbul-reports": "^3.0.0", + "@types/node": "*", + "@types/yargs": "^15.0.0", + "chalk": "^4.0.0" + } + }, + "@types/istanbul-reports": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/@types/istanbul-reports/-/istanbul-reports-3.0.0.tgz", + "integrity": "sha512-nwKNbvnwJ2/mndE9ItP/zc2TCzw6uuodnF4EHYWD+gCQDVBuRQL5UzbZD0/ezy1iKsFU2ZQiDqg4M9dN4+wZgA==", + "dev": true, + "requires": { + "@types/istanbul-lib-report": "*" + } + }, + "ansi-styles": { + "version": "4.3.0", + "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-4.3.0.tgz", + "integrity": "sha512-zbB9rCJAT1rbjiVDb2hqKFHNYLxgtk8NURxZ3IZwD3F6NtxbXZQCnnSi1Lkx+IDohdPlFp222wVALIheZJQSEg==", + "dev": true, + "requires": { + "color-convert": "^2.0.1" + } + }, + "chalk": { + "version": "4.1.0", + "resolved": "https://registry.npmjs.org/chalk/-/chalk-4.1.0.tgz", + "integrity": "sha512-qwx12AxXe2Q5xQ43Ac//I6v5aXTipYrSESdOgzrN+9XjgEpyjpKuvSGaN4qE93f7TQTlerQQ8S+EQ0EyDoVL1A==", + "dev": true, + "requires": { + "ansi-styles": "^4.1.0", + "supports-color": "^7.1.0" + } + }, + "color-convert": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/color-convert/-/color-convert-2.0.1.tgz", + "integrity": "sha512-RRECPsj7iu/xb5oKYcsFHSppFNnsj/52OVTRKb4zP5onXwVF3zVmmToNcOfGC+CRDpfK/U584fMg38ZHCaElKQ==", + "dev": true, + "requires": { + "color-name": "~1.1.4" + } + }, + "color-name": { + "version": "1.1.4", + "resolved": "https://registry.npmjs.org/color-name/-/color-name-1.1.4.tgz", + "integrity": "sha512-dOy+3AuW3a2wNbZHIuMZpTcgjGuLU/uBL/ubcZF9OXbDo8ff4O8yVp5Bf0efS8uEoYo5q4Fx7dY9OgQGXgAsQA==", + "dev": true + }, + "glob": { + "version": "7.1.6", + "resolved": "https://registry.npmjs.org/glob/-/glob-7.1.6.tgz", + "integrity": "sha512-LwaxwyZ72Lk7vZINtNNrywX0ZuLyStrdDtabefZKAY5ZGJhVtgdznluResxNmPitE0SAO+O26sWTHeKSI2wMBA==", + "dev": true, + "requires": { + "fs.realpath": "^1.0.0", + "inflight": "^1.0.4", + "inherits": "2", + "minimatch": "^3.0.4", + "once": "^1.3.0", + "path-is-absolute": "^1.0.0" + } + }, + "has-flag": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/has-flag/-/has-flag-4.0.0.tgz", + "integrity": "sha512-EykJT/Q1KjTWctppgIAgfSO0tKVuZUjhgMr17kqTumMl6Afv3EISleU7qZUzoXDFTAHTDC4NOoG/ZxU3EvlMPQ==", + "dev": true + }, + "strip-bom": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/strip-bom/-/strip-bom-4.0.0.tgz", + "integrity": "sha512-3xurFv5tEgii33Zi8Jtp55wEIILR9eh34FAW00PZf+JnSsTmV/ioewSgQl97JHvgjoRGwPShsWm+IdrxB35d0w==", + "dev": true + }, + "supports-color": { + "version": "7.2.0", + "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-7.2.0.tgz", + "integrity": "sha512-qpCAvRl9stuOHveKsn7HncJRvv501qIacKzQlO/+Lwxc9+0q2wLyv4Dfvt80/DPn2pqOBsJdDiogXGR9+OvwRw==", + "dev": true, + "requires": { + "has-flag": "^4.0.0" + } + } + } + }, + "jest-serializer": { + "version": "26.6.2", + "resolved": "https://registry.npmjs.org/jest-serializer/-/jest-serializer-26.6.2.tgz", + "integrity": "sha512-S5wqyz0DXnNJPd/xfIzZ5Xnp1HrJWBczg8mMfMpN78OJ5eDxXyf+Ygld9wX1DnUWbIbhM1YDY95NjR4CBXkb2g==", + "dev": true, + "requires": { + "@types/node": "*", + "graceful-fs": "^4.2.4" + } + }, + "jest-snapshot": { + "version": "26.6.2", + "resolved": "https://registry.npmjs.org/jest-snapshot/-/jest-snapshot-26.6.2.tgz", + "integrity": "sha512-OLhxz05EzUtsAmOMzuupt1lHYXCNib0ECyuZ/PZOx9TrZcC8vL0x+DUG3TL+GLX3yHG45e6YGjIm0XwDc3q3og==", + "dev": true, + "requires": { + "@babel/types": "^7.0.0", + "@jest/types": "^26.6.2", + "@types/babel__traverse": "^7.0.4", + "@types/prettier": "^2.0.0", + "chalk": "^4.0.0", + "expect": "^26.6.2", + "graceful-fs": "^4.2.4", + "jest-diff": "^26.6.2", + "jest-get-type": "^26.3.0", + "jest-haste-map": "^26.6.2", + "jest-matcher-utils": "^26.6.2", + "jest-message-util": "^26.6.2", + "jest-resolve": "^26.6.2", + "natural-compare": "^1.4.0", + "pretty-format": "^26.6.2", + "semver": "^7.3.2" + }, + "dependencies": { + "@jest/types": { + "version": "26.6.2", + "resolved": "https://registry.npmjs.org/@jest/types/-/types-26.6.2.tgz", + "integrity": "sha512-fC6QCp7Sc5sX6g8Tvbmj4XUTbyrik0akgRy03yjXbQaBWWNWGE7SGtJk98m0N8nzegD/7SggrUlivxo5ax4KWQ==", + "dev": true, + "requires": { + "@types/istanbul-lib-coverage": "^2.0.0", + "@types/istanbul-reports": "^3.0.0", + "@types/node": "*", + "@types/yargs": "^15.0.0", + "chalk": "^4.0.0" + } + }, + "@types/istanbul-reports": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/@types/istanbul-reports/-/istanbul-reports-3.0.0.tgz", + "integrity": "sha512-nwKNbvnwJ2/mndE9ItP/zc2TCzw6uuodnF4EHYWD+gCQDVBuRQL5UzbZD0/ezy1iKsFU2ZQiDqg4M9dN4+wZgA==", + "dev": true, + "requires": { + "@types/istanbul-lib-report": "*" + } + }, + "ansi-regex": { + "version": "5.0.0", + "resolved": "https://registry.npmjs.org/ansi-regex/-/ansi-regex-5.0.0.tgz", + "integrity": "sha512-bY6fj56OUQ0hU1KjFNDQuJFezqKdrAyFdIevADiqrWHwSlbmBNMHp5ak2f40Pm8JTFyM2mqxkG6ngkHO11f/lg==", + "dev": true + }, + "ansi-styles": { + "version": "4.3.0", + "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-4.3.0.tgz", + "integrity": "sha512-zbB9rCJAT1rbjiVDb2hqKFHNYLxgtk8NURxZ3IZwD3F6NtxbXZQCnnSi1Lkx+IDohdPlFp222wVALIheZJQSEg==", + "dev": true, + "requires": { + "color-convert": "^2.0.1" + } + }, + "chalk": { + "version": "4.1.0", + "resolved": "https://registry.npmjs.org/chalk/-/chalk-4.1.0.tgz", + "integrity": "sha512-qwx12AxXe2Q5xQ43Ac//I6v5aXTipYrSESdOgzrN+9XjgEpyjpKuvSGaN4qE93f7TQTlerQQ8S+EQ0EyDoVL1A==", + "dev": true, + "requires": { + "ansi-styles": "^4.1.0", + "supports-color": "^7.1.0" + } + }, + "color-convert": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/color-convert/-/color-convert-2.0.1.tgz", + "integrity": "sha512-RRECPsj7iu/xb5oKYcsFHSppFNnsj/52OVTRKb4zP5onXwVF3zVmmToNcOfGC+CRDpfK/U584fMg38ZHCaElKQ==", + "dev": true, + "requires": { + "color-name": "~1.1.4" + } + }, + "color-name": { + "version": "1.1.4", + "resolved": "https://registry.npmjs.org/color-name/-/color-name-1.1.4.tgz", + "integrity": "sha512-dOy+3AuW3a2wNbZHIuMZpTcgjGuLU/uBL/ubcZF9OXbDo8ff4O8yVp5Bf0efS8uEoYo5q4Fx7dY9OgQGXgAsQA==", + "dev": true + }, + "diff-sequences": { + "version": "26.6.2", + "resolved": "https://registry.npmjs.org/diff-sequences/-/diff-sequences-26.6.2.tgz", + "integrity": "sha512-Mv/TDa3nZ9sbc5soK+OoA74BsS3mL37yixCvUAQkiuA4Wz6YtwP/K47n2rv2ovzHZvoiQeA5FTQOschKkEwB0Q==", + "dev": true + }, + "has-flag": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/has-flag/-/has-flag-4.0.0.tgz", + "integrity": "sha512-EykJT/Q1KjTWctppgIAgfSO0tKVuZUjhgMr17kqTumMl6Afv3EISleU7qZUzoXDFTAHTDC4NOoG/ZxU3EvlMPQ==", + "dev": true + }, + "jest-diff": { + "version": "26.6.2", + "resolved": "https://registry.npmjs.org/jest-diff/-/jest-diff-26.6.2.tgz", + "integrity": "sha512-6m+9Z3Gv9wN0WFVasqjCL/06+EFCMTqDEUl/b87HYK2rAPTyfz4ZIuSlPhY51PIQRWx5TaxeF1qmXKe9gfN3sA==", + "dev": true, + "requires": { + "chalk": "^4.0.0", + "diff-sequences": "^26.6.2", + "jest-get-type": "^26.3.0", + "pretty-format": "^26.6.2" + } + }, + "jest-get-type": { + "version": "26.3.0", + "resolved": "https://registry.npmjs.org/jest-get-type/-/jest-get-type-26.3.0.tgz", + "integrity": "sha512-TpfaviN1R2pQWkIihlfEanwOXK0zcxrKEE4MlU6Tn7keoXdN6/3gK/xl0yEh8DOunn5pOVGKf8hB4R9gVh04ig==", + "dev": true + }, + "pretty-format": { + "version": "26.6.2", + "resolved": "https://registry.npmjs.org/pretty-format/-/pretty-format-26.6.2.tgz", + "integrity": "sha512-7AeGuCYNGmycyQbCqd/3PWH4eOoX/OiCa0uphp57NVTeAGdJGaAliecxwBDHYQCIvrW7aDBZCYeNTP/WX69mkg==", + "dev": true, + "requires": { + "@jest/types": "^26.6.2", + "ansi-regex": "^5.0.0", + "ansi-styles": "^4.0.0", + "react-is": "^17.0.1" + } + }, + "react-is": { + "version": "17.0.1", + "resolved": "https://registry.npmjs.org/react-is/-/react-is-17.0.1.tgz", + "integrity": "sha512-NAnt2iGDXohE5LI7uBnLnqvLQMtzhkiAOLXTmv+qnF9Ky7xAPcX8Up/xWIhxvLVGJvuLiNc4xQLtuqDRzb4fSA==", + "dev": true + }, + "semver": { + "version": "7.3.4", + "resolved": "https://registry.npmjs.org/semver/-/semver-7.3.4.tgz", + "integrity": "sha512-tCfb2WLjqFAtXn4KEdxIhalnRtoKFN7nAwj0B3ZXCbQloV2tq5eDbcTmT68JJD3nRJq24/XgxtQKFIpQdtvmVw==", + "dev": true, + "requires": { + "lru-cache": "^6.0.0" + } + }, + "supports-color": { + "version": "7.2.0", + "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-7.2.0.tgz", + "integrity": "sha512-qpCAvRl9stuOHveKsn7HncJRvv501qIacKzQlO/+Lwxc9+0q2wLyv4Dfvt80/DPn2pqOBsJdDiogXGR9+OvwRw==", + "dev": true, + "requires": { + "has-flag": "^4.0.0" + } + } + } + }, + "jest-util": { + "version": "26.6.2", + "resolved": "https://registry.npmjs.org/jest-util/-/jest-util-26.6.2.tgz", + "integrity": "sha512-MDW0fKfsn0OI7MS7Euz6h8HNDXVQ0gaM9uW6RjfDmd1DAFcaxX9OqIakHIqhbnmF08Cf2DLDG+ulq8YQQ0Lp0Q==", + "dev": true, + "requires": { + "@jest/types": "^26.6.2", + "@types/node": "*", + "chalk": "^4.0.0", + "graceful-fs": "^4.2.4", + "is-ci": "^2.0.0", + "micromatch": "^4.0.2" + }, + "dependencies": { + "@jest/types": { + "version": "26.6.2", + "resolved": "https://registry.npmjs.org/@jest/types/-/types-26.6.2.tgz", + "integrity": "sha512-fC6QCp7Sc5sX6g8Tvbmj4XUTbyrik0akgRy03yjXbQaBWWNWGE7SGtJk98m0N8nzegD/7SggrUlivxo5ax4KWQ==", + "dev": true, + "requires": { + "@types/istanbul-lib-coverage": "^2.0.0", + "@types/istanbul-reports": "^3.0.0", + "@types/node": "*", + "@types/yargs": "^15.0.0", + "chalk": "^4.0.0" + } + }, + "@types/istanbul-reports": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/@types/istanbul-reports/-/istanbul-reports-3.0.0.tgz", + "integrity": "sha512-nwKNbvnwJ2/mndE9ItP/zc2TCzw6uuodnF4EHYWD+gCQDVBuRQL5UzbZD0/ezy1iKsFU2ZQiDqg4M9dN4+wZgA==", + "dev": true, + "requires": { + "@types/istanbul-lib-report": "*" + } + }, + "ansi-styles": { + "version": "4.3.0", + "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-4.3.0.tgz", + "integrity": "sha512-zbB9rCJAT1rbjiVDb2hqKFHNYLxgtk8NURxZ3IZwD3F6NtxbXZQCnnSi1Lkx+IDohdPlFp222wVALIheZJQSEg==", + "dev": true, + "requires": { + "color-convert": "^2.0.1" + } + }, + "chalk": { + "version": "4.1.0", + "resolved": "https://registry.npmjs.org/chalk/-/chalk-4.1.0.tgz", + "integrity": "sha512-qwx12AxXe2Q5xQ43Ac//I6v5aXTipYrSESdOgzrN+9XjgEpyjpKuvSGaN4qE93f7TQTlerQQ8S+EQ0EyDoVL1A==", + "dev": true, + "requires": { + "ansi-styles": "^4.1.0", + "supports-color": "^7.1.0" + } + }, + "color-convert": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/color-convert/-/color-convert-2.0.1.tgz", + "integrity": "sha512-RRECPsj7iu/xb5oKYcsFHSppFNnsj/52OVTRKb4zP5onXwVF3zVmmToNcOfGC+CRDpfK/U584fMg38ZHCaElKQ==", + "dev": true, + "requires": { + "color-name": "~1.1.4" + } + }, + "color-name": { + "version": "1.1.4", + "resolved": "https://registry.npmjs.org/color-name/-/color-name-1.1.4.tgz", + "integrity": "sha512-dOy+3AuW3a2wNbZHIuMZpTcgjGuLU/uBL/ubcZF9OXbDo8ff4O8yVp5Bf0efS8uEoYo5q4Fx7dY9OgQGXgAsQA==", + "dev": true + }, + "has-flag": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/has-flag/-/has-flag-4.0.0.tgz", + "integrity": "sha512-EykJT/Q1KjTWctppgIAgfSO0tKVuZUjhgMr17kqTumMl6Afv3EISleU7qZUzoXDFTAHTDC4NOoG/ZxU3EvlMPQ==", + "dev": true + }, + "supports-color": { + "version": "7.2.0", + "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-7.2.0.tgz", + "integrity": "sha512-qpCAvRl9stuOHveKsn7HncJRvv501qIacKzQlO/+Lwxc9+0q2wLyv4Dfvt80/DPn2pqOBsJdDiogXGR9+OvwRw==", + "dev": true, + "requires": { + "has-flag": "^4.0.0" + } + } + } + }, + "jest-validate": { + "version": "26.6.2", + "resolved": "https://registry.npmjs.org/jest-validate/-/jest-validate-26.6.2.tgz", + "integrity": "sha512-NEYZ9Aeyj0i5rQqbq+tpIOom0YS1u2MVu6+euBsvpgIme+FOfRmoC4R5p0JiAUpaFvFy24xgrpMknarR/93XjQ==", + "dev": true, + "requires": { + "@jest/types": "^26.6.2", + "camelcase": "^6.0.0", + "chalk": "^4.0.0", + "jest-get-type": "^26.3.0", + "leven": "^3.1.0", + "pretty-format": "^26.6.2" + }, + "dependencies": { + "@jest/types": { + "version": "26.6.2", + "resolved": "https://registry.npmjs.org/@jest/types/-/types-26.6.2.tgz", + "integrity": "sha512-fC6QCp7Sc5sX6g8Tvbmj4XUTbyrik0akgRy03yjXbQaBWWNWGE7SGtJk98m0N8nzegD/7SggrUlivxo5ax4KWQ==", + "dev": true, + "requires": { + "@types/istanbul-lib-coverage": "^2.0.0", + "@types/istanbul-reports": "^3.0.0", + "@types/node": "*", + "@types/yargs": "^15.0.0", + "chalk": "^4.0.0" + } + }, + "@types/istanbul-reports": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/@types/istanbul-reports/-/istanbul-reports-3.0.0.tgz", + "integrity": "sha512-nwKNbvnwJ2/mndE9ItP/zc2TCzw6uuodnF4EHYWD+gCQDVBuRQL5UzbZD0/ezy1iKsFU2ZQiDqg4M9dN4+wZgA==", + "dev": true, + "requires": { + "@types/istanbul-lib-report": "*" + } + }, + "ansi-regex": { + "version": "5.0.0", + "resolved": "https://registry.npmjs.org/ansi-regex/-/ansi-regex-5.0.0.tgz", + "integrity": "sha512-bY6fj56OUQ0hU1KjFNDQuJFezqKdrAyFdIevADiqrWHwSlbmBNMHp5ak2f40Pm8JTFyM2mqxkG6ngkHO11f/lg==", + "dev": true + }, + "ansi-styles": { + "version": "4.3.0", + "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-4.3.0.tgz", + "integrity": "sha512-zbB9rCJAT1rbjiVDb2hqKFHNYLxgtk8NURxZ3IZwD3F6NtxbXZQCnnSi1Lkx+IDohdPlFp222wVALIheZJQSEg==", + "dev": true, + "requires": { + "color-convert": "^2.0.1" + } + }, + "camelcase": { + "version": "6.2.0", + "resolved": "https://registry.npmjs.org/camelcase/-/camelcase-6.2.0.tgz", + "integrity": "sha512-c7wVvbw3f37nuobQNtgsgG9POC9qMbNuMQmTCqZv23b6MIz0fcYpBiOlv9gEN/hdLdnZTDQhg6e9Dq5M1vKvfg==", + "dev": true + }, + "chalk": { + "version": "4.1.0", + "resolved": "https://registry.npmjs.org/chalk/-/chalk-4.1.0.tgz", + "integrity": "sha512-qwx12AxXe2Q5xQ43Ac//I6v5aXTipYrSESdOgzrN+9XjgEpyjpKuvSGaN4qE93f7TQTlerQQ8S+EQ0EyDoVL1A==", + "dev": true, + "requires": { + "ansi-styles": "^4.1.0", + "supports-color": "^7.1.0" + } + }, + "color-convert": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/color-convert/-/color-convert-2.0.1.tgz", + "integrity": "sha512-RRECPsj7iu/xb5oKYcsFHSppFNnsj/52OVTRKb4zP5onXwVF3zVmmToNcOfGC+CRDpfK/U584fMg38ZHCaElKQ==", + "dev": true, + "requires": { + "color-name": "~1.1.4" + } + }, + "color-name": { + "version": "1.1.4", + "resolved": "https://registry.npmjs.org/color-name/-/color-name-1.1.4.tgz", + "integrity": "sha512-dOy+3AuW3a2wNbZHIuMZpTcgjGuLU/uBL/ubcZF9OXbDo8ff4O8yVp5Bf0efS8uEoYo5q4Fx7dY9OgQGXgAsQA==", + "dev": true + }, + "has-flag": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/has-flag/-/has-flag-4.0.0.tgz", + "integrity": "sha512-EykJT/Q1KjTWctppgIAgfSO0tKVuZUjhgMr17kqTumMl6Afv3EISleU7qZUzoXDFTAHTDC4NOoG/ZxU3EvlMPQ==", + "dev": true + }, + "jest-get-type": { + "version": "26.3.0", + "resolved": "https://registry.npmjs.org/jest-get-type/-/jest-get-type-26.3.0.tgz", + "integrity": "sha512-TpfaviN1R2pQWkIihlfEanwOXK0zcxrKEE4MlU6Tn7keoXdN6/3gK/xl0yEh8DOunn5pOVGKf8hB4R9gVh04ig==", + "dev": true + }, + "pretty-format": { + "version": "26.6.2", + "resolved": "https://registry.npmjs.org/pretty-format/-/pretty-format-26.6.2.tgz", + "integrity": "sha512-7AeGuCYNGmycyQbCqd/3PWH4eOoX/OiCa0uphp57NVTeAGdJGaAliecxwBDHYQCIvrW7aDBZCYeNTP/WX69mkg==", + "dev": true, + "requires": { + "@jest/types": "^26.6.2", + "ansi-regex": "^5.0.0", + "ansi-styles": "^4.0.0", + "react-is": "^17.0.1" + } + }, + "react-is": { + "version": "17.0.1", + "resolved": "https://registry.npmjs.org/react-is/-/react-is-17.0.1.tgz", + "integrity": "sha512-NAnt2iGDXohE5LI7uBnLnqvLQMtzhkiAOLXTmv+qnF9Ky7xAPcX8Up/xWIhxvLVGJvuLiNc4xQLtuqDRzb4fSA==", + "dev": true + }, + "supports-color": { + "version": "7.2.0", + "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-7.2.0.tgz", + "integrity": "sha512-qpCAvRl9stuOHveKsn7HncJRvv501qIacKzQlO/+Lwxc9+0q2wLyv4Dfvt80/DPn2pqOBsJdDiogXGR9+OvwRw==", + "dev": true, + "requires": { + "has-flag": "^4.0.0" + } + } + } + }, + "jest-watcher": { + "version": "26.6.2", + "resolved": "https://registry.npmjs.org/jest-watcher/-/jest-watcher-26.6.2.tgz", + "integrity": "sha512-WKJob0P/Em2csiVthsI68p6aGKTIcsfjH9Gsx1f0A3Italz43e3ho0geSAVsmj09RWOELP1AZ/DXyJgOgDKxXQ==", + "dev": true, + "requires": { + "@jest/test-result": "^26.6.2", + "@jest/types": "^26.6.2", + "@types/node": "*", + "ansi-escapes": "^4.2.1", + "chalk": "^4.0.0", + "jest-util": "^26.6.2", + "string-length": "^4.0.1" + }, + "dependencies": { + "@jest/types": { + "version": "26.6.2", + "resolved": "https://registry.npmjs.org/@jest/types/-/types-26.6.2.tgz", + "integrity": "sha512-fC6QCp7Sc5sX6g8Tvbmj4XUTbyrik0akgRy03yjXbQaBWWNWGE7SGtJk98m0N8nzegD/7SggrUlivxo5ax4KWQ==", + "dev": true, + "requires": { + "@types/istanbul-lib-coverage": "^2.0.0", + "@types/istanbul-reports": "^3.0.0", + "@types/node": "*", + "@types/yargs": "^15.0.0", + "chalk": "^4.0.0" + } + }, + "@types/istanbul-reports": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/@types/istanbul-reports/-/istanbul-reports-3.0.0.tgz", + "integrity": "sha512-nwKNbvnwJ2/mndE9ItP/zc2TCzw6uuodnF4EHYWD+gCQDVBuRQL5UzbZD0/ezy1iKsFU2ZQiDqg4M9dN4+wZgA==", + "dev": true, + "requires": { + "@types/istanbul-lib-report": "*" + } + }, + "ansi-escapes": { + "version": "4.3.1", + "resolved": "https://registry.npmjs.org/ansi-escapes/-/ansi-escapes-4.3.1.tgz", + "integrity": "sha512-JWF7ocqNrp8u9oqpgV+wH5ftbt+cfvv+PTjOvKLT3AdYly/LmORARfEVT1iyjwN+4MqE5UmVKoAdIBqeoCHgLA==", + "dev": true, + "requires": { + "type-fest": "^0.11.0" + } + }, + "ansi-styles": { + "version": "4.3.0", + "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-4.3.0.tgz", + "integrity": "sha512-zbB9rCJAT1rbjiVDb2hqKFHNYLxgtk8NURxZ3IZwD3F6NtxbXZQCnnSi1Lkx+IDohdPlFp222wVALIheZJQSEg==", + "dev": true, + "requires": { + "color-convert": "^2.0.1" + } + }, + "chalk": { + "version": "4.1.0", + "resolved": "https://registry.npmjs.org/chalk/-/chalk-4.1.0.tgz", + "integrity": "sha512-qwx12AxXe2Q5xQ43Ac//I6v5aXTipYrSESdOgzrN+9XjgEpyjpKuvSGaN4qE93f7TQTlerQQ8S+EQ0EyDoVL1A==", + "dev": true, + "requires": { + "ansi-styles": "^4.1.0", + "supports-color": "^7.1.0" + } + }, + "color-convert": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/color-convert/-/color-convert-2.0.1.tgz", + "integrity": "sha512-RRECPsj7iu/xb5oKYcsFHSppFNnsj/52OVTRKb4zP5onXwVF3zVmmToNcOfGC+CRDpfK/U584fMg38ZHCaElKQ==", + "dev": true, + "requires": { + "color-name": "~1.1.4" + } + }, + "color-name": { + "version": "1.1.4", + "resolved": "https://registry.npmjs.org/color-name/-/color-name-1.1.4.tgz", + "integrity": "sha512-dOy+3AuW3a2wNbZHIuMZpTcgjGuLU/uBL/ubcZF9OXbDo8ff4O8yVp5Bf0efS8uEoYo5q4Fx7dY9OgQGXgAsQA==", + "dev": true + }, + "has-flag": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/has-flag/-/has-flag-4.0.0.tgz", + "integrity": "sha512-EykJT/Q1KjTWctppgIAgfSO0tKVuZUjhgMr17kqTumMl6Afv3EISleU7qZUzoXDFTAHTDC4NOoG/ZxU3EvlMPQ==", + "dev": true + }, + "supports-color": { + "version": "7.2.0", + "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-7.2.0.tgz", + "integrity": "sha512-qpCAvRl9stuOHveKsn7HncJRvv501qIacKzQlO/+Lwxc9+0q2wLyv4Dfvt80/DPn2pqOBsJdDiogXGR9+OvwRw==", + "dev": true, + "requires": { + "has-flag": "^4.0.0" + } + }, + "type-fest": { + "version": "0.11.0", + "resolved": "https://registry.npmjs.org/type-fest/-/type-fest-0.11.0.tgz", + "integrity": "sha512-OdjXJxnCN1AvyLSzeKIgXTXxV+99ZuXl3Hpo9XpJAv9MBcHrrJOQ5kV7ypXOuQie+AmWG25hLbiKdwYTifzcfQ==", + "dev": true + } + } + }, + "jest-worker": { + "version": "26.6.2", + "resolved": "https://registry.npmjs.org/jest-worker/-/jest-worker-26.6.2.tgz", + "integrity": "sha512-KWYVV1c4i+jbMpaBC+U++4Va0cp8OisU185o73T1vo99hqi7w8tSJfUXYswwqqrjzwxa6KpRK54WhPvwf5w6PQ==", + "dev": true, + "requires": { + "@types/node": "*", + "merge-stream": "^2.0.0", + "supports-color": "^7.0.0" + }, + "dependencies": { + "has-flag": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/has-flag/-/has-flag-4.0.0.tgz", + "integrity": "sha512-EykJT/Q1KjTWctppgIAgfSO0tKVuZUjhgMr17kqTumMl6Afv3EISleU7qZUzoXDFTAHTDC4NOoG/ZxU3EvlMPQ==", + "dev": true + }, + "supports-color": { + "version": "7.2.0", + "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-7.2.0.tgz", + "integrity": "sha512-qpCAvRl9stuOHveKsn7HncJRvv501qIacKzQlO/+Lwxc9+0q2wLyv4Dfvt80/DPn2pqOBsJdDiogXGR9+OvwRw==", + "dev": true, + "requires": { + "has-flag": "^4.0.0" + } + } + } + }, + "jquery": { + "version": "3.5.1", + "resolved": "https://registry.npmjs.org/jquery/-/jquery-3.5.1.tgz", + "integrity": "sha512-XwIBPqcMn57FxfT+Go5pzySnm4KWkT1Tv7gjrpT1srtf8Weynl6R273VJ5GjkRb51IzMp5nbaPjJXMWeju2MKg==", + "dev": true + }, + "js-tokens": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/js-tokens/-/js-tokens-4.0.0.tgz", + "integrity": "sha512-RdJUflcE3cUzKiMqQgsCu06FPu9UdIJO0beYbPhHN4k6apgJtifcoCtT9bcxOpYBtpD2kCM6Sbzg4CausW/PKQ==", + "dev": true + }, + "js-yaml": { + "version": "3.14.1", + "resolved": "https://registry.npmjs.org/js-yaml/-/js-yaml-3.14.1.tgz", + "integrity": "sha512-okMH7OXXJ7YrN9Ok3/SXrnu4iX9yOk+25nqX4imS2npuvTYDmo/QEZoqwZkYaIDk3jVvBOTOIEgEhaLOynBS9g==", + "dev": true, + "requires": { + "argparse": "^1.0.7", + "esprima": "^4.0.0" + }, + "dependencies": { + "esprima": { + "version": "4.0.1", + "resolved": "https://registry.npmjs.org/esprima/-/esprima-4.0.1.tgz", + "integrity": "sha512-eGuFFw7Upda+g4p+QHvnW0RyTX/SVeJBDM/gCtMARO0cLuT2HcEKnTPvhjV6aGeqrCB/sbNop0Kszm0jsaWU4A==", + "dev": true + } + } + }, + "jsbn": { + "version": "0.1.1", + "resolved": "https://registry.npmjs.org/jsbn/-/jsbn-0.1.1.tgz", + "integrity": "sha1-peZUwuWi3rXyAdls77yoDA7y9RM=", + "dev": true + }, + "jsdoctypeparser": { + "version": "6.1.0", + "resolved": "https://registry.npmjs.org/jsdoctypeparser/-/jsdoctypeparser-6.1.0.tgz", + "integrity": "sha512-UCQBZ3xCUBv/PLfwKAJhp6jmGOSLFNKzrotXGNgbKhWvz27wPsCsVeP7gIcHPElQw2agBmynAitXqhxR58XAmA==", + "dev": true + }, + "jsdom": { + "version": "14.1.0", + "resolved": "https://registry.npmjs.org/jsdom/-/jsdom-14.1.0.tgz", + "integrity": "sha512-O901mfJSuTdwU2w3Sn+74T+RnDVP+FuV5fH8tcPWyqrseRAb0s5xOtPgCFiPOtLcyK7CLIJwPyD83ZqQWvA5ng==", + "dev": true, + "requires": { + "abab": "^2.0.0", + "acorn": "^6.0.4", + "acorn-globals": "^4.3.0", + "array-equal": "^1.0.0", + "cssom": "^0.3.4", + "cssstyle": "^1.1.1", + "data-urls": "^1.1.0", + "domexception": "^1.0.1", + "escodegen": "^1.11.0", + "html-encoding-sniffer": "^1.0.2", + "nwsapi": "^2.1.3", + "parse5": "5.1.0", + "pn": "^1.1.0", + "request": "^2.88.0", + "request-promise-native": "^1.0.5", + "saxes": "^3.1.9", + "symbol-tree": "^3.2.2", + "tough-cookie": "^2.5.0", + "w3c-hr-time": "^1.0.1", + "w3c-xmlserializer": "^1.1.2", + "webidl-conversions": "^4.0.2", + "whatwg-encoding": "^1.0.5", + "whatwg-mimetype": "^2.3.0", + "whatwg-url": "^7.0.0", + "ws": "^6.1.2", + "xml-name-validator": "^3.0.0" + }, + "dependencies": { + "acorn": { + "version": "6.4.2", + "resolved": "https://registry.npmjs.org/acorn/-/acorn-6.4.2.tgz", + "integrity": "sha512-XtGIhXwF8YM8bJhGxG5kXgjkEuNGLTkoYqVE+KMR+aspr4KGYmKYg7yUe3KghyQ9yheNwLnjmzh/7+gfDBmHCQ==", + "dev": true + }, + "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" + } + }, + "esprima": { + "version": "4.0.1", + "resolved": "https://registry.npmjs.org/esprima/-/esprima-4.0.1.tgz", + "integrity": "sha512-eGuFFw7Upda+g4p+QHvnW0RyTX/SVeJBDM/gCtMARO0cLuT2HcEKnTPvhjV6aGeqrCB/sbNop0Kszm0jsaWU4A==", + "dev": true + }, + "ws": { + "version": "6.2.1", + "resolved": "https://registry.npmjs.org/ws/-/ws-6.2.1.tgz", + "integrity": "sha512-GIyAXC2cB7LjvpgMt9EKS2ldqr0MTrORaleiOno6TweZ6r3TKtoFQWay/2PceJ3RuBasOHzXNn5Lrw1X0bEjqA==", + "dev": true, + "requires": { + "async-limiter": "~1.0.0" + } + } + } + }, + "jsesc": { + "version": "2.5.2", + "resolved": "https://registry.npmjs.org/jsesc/-/jsesc-2.5.2.tgz", + "integrity": "sha512-OYu7XEzjkCQ3C5Ps3QIZsQfNpqoJyZZA99wd9aWd05NCtC5pWOkShK2mkL6HXQR6/Cy2lbNdPlZBpuQHXE63gA==", + "dev": true + }, + "json-buffer": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/json-buffer/-/json-buffer-3.0.0.tgz", + "integrity": "sha1-Wx85evx11ne96Lz8Dkfh+aPZqJg=", + "dev": true + }, + "json-parse-better-errors": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/json-parse-better-errors/-/json-parse-better-errors-1.0.2.tgz", + "integrity": "sha512-mrqyZKfX5EhL7hvqcV6WG1yYjnjeuYDzDhhcAAUrq8Po85NBQBJP+ZDUT75qZQ98IkUoBqdkExkukOU7Ts2wrw==", + "dev": true + }, + "json-parse-even-better-errors": { + "version": "2.3.1", + "resolved": "https://registry.npmjs.org/json-parse-even-better-errors/-/json-parse-even-better-errors-2.3.1.tgz", + "integrity": "sha512-xyFwyhro/JEof6Ghe2iz2NcXoj2sloNsWr/XsERDK/oiPCfaNhl5ONfp+jQdAZRQQ0IJWNzH9zIZF7li91kh2w==", + "dev": true + }, + "json-schema": { + "version": "0.2.3", + "resolved": "https://registry.npmjs.org/json-schema/-/json-schema-0.2.3.tgz", + "integrity": "sha1-tIDIkuWaLwWVTOcnvT8qTogvnhM=", + "dev": true + }, + "json-schema-traverse": { + "version": "0.4.1", + "resolved": "https://registry.npmjs.org/json-schema-traverse/-/json-schema-traverse-0.4.1.tgz", + "integrity": "sha512-xbbCH5dCYU5T8LcEhhuh7HJ88HXuW3qsI3Y0zOZFKfZEHcpWiHU/Jxzk629Brsab/mMiHQti9wMP+845RPe3Vg==", + "dev": true + }, + "json-stable-stringify-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": "sha1-nbe1lJatPzz+8wp1FC0tkwrXJlE=", + "dev": true + }, + "json-stringify-safe": { + "version": "5.0.1", + "resolved": "https://registry.npmjs.org/json-stringify-safe/-/json-stringify-safe-5.0.1.tgz", + "integrity": "sha1-Epai1Y/UXxmg9s4B1lcB4sc1tus=", + "dev": true + }, + "json5": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/json5/-/json5-1.0.1.tgz", + "integrity": "sha512-aKS4WQjPenRxiQsC93MNfjx+nbF4PAdYzmd/1JIj8HYzqfbu86beTuNgXDzPknWk0n0uARlyewZo4s++ES36Ow==", + "dev": true, + "requires": { + "minimist": "^1.2.0" + }, + "dependencies": { + "minimist": { + "version": "1.2.5", + "resolved": "https://registry.npmjs.org/minimist/-/minimist-1.2.5.tgz", + "integrity": "sha512-FM9nNUYrRBAELZQT3xeZQ7fmMOBg6nWNmJKTcgsJeaLstP/UODVpGsr5OhXhhXg6f+qtJ8uiZ+PUxkDWcgIXLw==", + "dev": true + } + } + }, + "jsonfile": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/jsonfile/-/jsonfile-4.0.0.tgz", + "integrity": "sha1-h3Gq4HmbZAdrdmQPygWPnBDjPss=", + "dev": true, + "requires": { + "graceful-fs": "^4.1.6" + } + }, + "jsonparse": { + "version": "1.3.1", + "resolved": "https://registry.npmjs.org/jsonparse/-/jsonparse-1.3.1.tgz", + "integrity": "sha1-P02uSpH6wxX3EGL4UhzCOfE2YoA=", + "dev": true + }, + "jsprim": { + "version": "1.4.1", + "resolved": "https://registry.npmjs.org/jsprim/-/jsprim-1.4.1.tgz", + "integrity": "sha1-MT5mvB5cwG5Di8G3SZwuXFastqI=", + "dev": true, + "requires": { + "assert-plus": "1.0.0", + "extsprintf": "1.3.0", + "json-schema": "0.2.3", + "verror": "1.10.0" + } + }, + "keyv": { + "version": "3.1.0", + "resolved": "https://registry.npmjs.org/keyv/-/keyv-3.1.0.tgz", + "integrity": "sha512-9ykJ/46SN/9KPM/sichzQ7OvXyGDYKGTaDlKMGCAlg2UK8KRy4jb0d8sFc+0Tt0YYnThq8X2RZgCg74RPxgcVA==", + "dev": true, + "requires": { + "json-buffer": "3.0.0" + } + }, + "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 + }, + "kleur": { + "version": "3.0.3", + "resolved": "https://registry.npmjs.org/kleur/-/kleur-3.0.3.tgz", + "integrity": "sha512-eTIzlVOSUR+JxdDFepEYcBMtZ9Qqdef+rnzWdRZuMbOywu5tO2w2N7rqjoANZ5k9vywhL6Br1VRjUIgTQx4E8w==", + "dev": true + }, + "latest-version": { + "version": "5.1.0", + "resolved": "https://registry.npmjs.org/latest-version/-/latest-version-5.1.0.tgz", + "integrity": "sha512-weT+r0kTkRQdCdYCNtkMwWXQTMEswKrFBkm4ckQOMVhhqhIMI1UT2hMj+1iigIhgSZm5gTmrRXBNoGUgaTY1xA==", + "dev": true, + "requires": { + "package-json": "^6.3.0" + } + }, + "less": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/less/-/less-4.0.0.tgz", + "integrity": "sha512-av1eEa2D0xZfF7fjLJS/Dld7zAYSLU7EOEJvuOELeaNI3i6L/81AdjbK5/pytaRkBwi7ZEa0433IDvMLskKCOw==", + "requires": { + "copy-anything": "^2.0.1", + "errno": "^0.1.1", + "graceful-fs": "^4.1.2", + "image-size": "~0.5.0", + "make-dir": "^2.1.0", + "mime": "^1.4.1", + "native-request": "^1.0.5", + "parse-node-version": "^1.0.1", + "source-map": "~0.6.0", + "tslib": "^1.10.0" + }, + "dependencies": { + "make-dir": { + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/make-dir/-/make-dir-2.1.0.tgz", + "integrity": "sha512-LS9X+dc8KLxXCb8dni79fLIIUA5VyZoyjSMCwTluaXA0o27cCK0bhXkpgw+sTXVpPy/lSO57ilRixqk0vDmtRA==", + "optional": true, + "requires": { + "pify": "^4.0.1", + "semver": "^5.6.0" + } + }, + "pify": { + "version": "4.0.1", + "resolved": "https://registry.npmjs.org/pify/-/pify-4.0.1.tgz", + "integrity": "sha512-uB80kBFb/tfd68bVleG9T5GGsGPjJrLAUpR5PZIrhBnIaRTQRjqdJSsIKkOP6OAIFbj7GOrcudc5pNjZ+geV2g==", + "optional": true + } + } + }, + "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 + }, + "levn": { + "version": "0.3.0", + "resolved": "https://registry.npmjs.org/levn/-/levn-0.3.0.tgz", + "integrity": "sha1-OwmSTt+fCDwEkP3UwLxEIeBHZO4=", + "dev": true, + "requires": { + "prelude-ls": "~1.1.2", + "type-check": "~0.3.2" + } + }, + "lines-and-columns": { + "version": "1.1.6", + "resolved": "https://registry.npmjs.org/lines-and-columns/-/lines-and-columns-1.1.6.tgz", + "integrity": "sha1-HADHQ7QzzQpOgHWPe2SldEDZ/wA=", + "dev": true + }, + "live-server": { + "version": "1.2.1", + "resolved": "https://registry.npmjs.org/live-server/-/live-server-1.2.1.tgz", + "integrity": "sha512-Yn2XCVjErTkqnM3FfTmM7/kWy3zP7+cEtC7x6u+wUzlQ+1UW3zEYbbyJrc0jNDwiMDZI0m4a0i3dxlGHVyXczw==", + "dev": true, + "requires": { + "chokidar": "^2.0.4", + "colors": "^1.4.0", + "connect": "^3.6.6", + "cors": "^2.8.5", + "event-stream": "3.3.4", + "faye-websocket": "0.11.x", + "http-auth": "3.1.x", + "morgan": "^1.9.1", + "object-assign": "^4.1.1", + "opn": "^6.0.0", + "proxy-middleware": "^0.15.0", + "send": "^0.17.1", + "serve-index": "^1.9.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": "sha1-VgiurfwAvmwpAd9fmGF4jeDVl8g=", + "dev": true + } + } + }, + "ms": { + "version": "2.1.1", + "resolved": "https://registry.npmjs.org/ms/-/ms-2.1.1.tgz", + "integrity": "sha512-tgp+dl5cGk28utYktBsrFqA7HKgrhgPsg6Z/EfhWI4gl1Hwq8B/GmY/0oXZ6nF8hDVesS/FpnYaD/kOWhYQvyg==", + "dev": true + }, + "object-assign": { + "version": "4.1.1", + "resolved": "https://registry.npmjs.org/object-assign/-/object-assign-4.1.1.tgz", + "integrity": "sha1-IQmtx5ZYh8/AXLvUQsrIv7s2CGM=", + "dev": true + }, + "opn": { + "version": "6.0.0", + "resolved": "https://registry.npmjs.org/opn/-/opn-6.0.0.tgz", + "integrity": "sha512-I9PKfIZC+e4RXZ/qr1RhgyCnGgYX0UEIlXgWnCOVACIvFgaC9rz6Won7xbdhoHrd8IIhV7YEpHjreNUNkqCGkQ==", + "dev": true, + "requires": { + "is-wsl": "^1.1.0" + } + }, + "send": { + "version": "0.17.1", + "resolved": "https://registry.npmjs.org/send/-/send-0.17.1.tgz", + "integrity": "sha512-BsVKsiGcQMFwT8UxypobUKyv7irCNRHk1T0G680vk88yf6LBByGcZJOTJCrTP2xVN6yI+XjPJcNuE3V4fT9sAg==", + "dev": true, + "requires": { + "debug": "2.6.9", + "depd": "~1.1.2", + "destroy": "~1.0.4", + "encodeurl": "~1.0.2", + "escape-html": "~1.0.3", + "etag": "~1.8.1", + "fresh": "0.5.2", + "http-errors": "~1.7.2", + "mime": "1.6.0", + "ms": "2.1.1", + "on-finished": "~2.3.0", + "range-parser": "~1.2.1", + "statuses": "~1.5.0" + } + } + } + }, + "load-json-file": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/load-json-file/-/load-json-file-4.0.0.tgz", + "integrity": "sha1-L19Fq5HjMhYjT9U62rZo607AmTs=", + "dev": true, + "requires": { + "graceful-fs": "^4.1.2", + "parse-json": "^4.0.0", + "pify": "^3.0.0", + "strip-bom": "^3.0.0" + } + }, + "locate-path": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/locate-path/-/locate-path-2.0.0.tgz", + "integrity": "sha1-K1aLJl7slExtnA3pw9u7ygNUzY4=", + "dev": true, + "requires": { + "p-locate": "^2.0.0", + "path-exists": "^3.0.0" + } + }, + "lodash": { + "version": "4.17.20", + "resolved": "https://registry.npmjs.org/lodash/-/lodash-4.17.20.tgz", + "integrity": "sha512-PlhdFcillOINfeV7Ni6oF1TAEayyZBoZ8bcshTHqOYJYlrqzRK5hagpagky5o4HfCzzd1TRkXPMFq6cKk9rGmA==", + "dev": true + }, + "lodash._reinterpolate": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/lodash._reinterpolate/-/lodash._reinterpolate-3.0.0.tgz", + "integrity": "sha1-DM8tiRZq8Ds2Y8eWU4t1rG4RTZ0=", + "dev": true + }, + "lodash.clone": { + "version": "4.5.0", + "resolved": "https://registry.npmjs.org/lodash.clone/-/lodash.clone-4.5.0.tgz", + "integrity": "sha1-GVhwRQ9aExkkeN9Lw9I9LeoZB7Y=", + "dev": true + }, + "lodash.ismatch": { + "version": "4.4.0", + "resolved": "https://registry.npmjs.org/lodash.ismatch/-/lodash.ismatch-4.4.0.tgz", + "integrity": "sha1-dWy1FQyjum8RCFp4hJZF8Yj4Xzc=", + "dev": true + }, + "lodash.map": { + "version": "4.6.0", + "resolved": "https://registry.npmjs.org/lodash.map/-/lodash.map-4.6.0.tgz", + "integrity": "sha1-dx7Hg540c9nEzeKLGTlMNWL09tM=", + "dev": true + }, + "lodash.memoize": { + "version": "4.1.2", + "resolved": "https://registry.npmjs.org/lodash.memoize/-/lodash.memoize-4.1.2.tgz", + "integrity": "sha1-vMbEmkKihA7Zl/Mj6tpezRguC/4=", + "dev": true + }, + "lodash.sortby": { + "version": "4.7.0", + "resolved": "https://registry.npmjs.org/lodash.sortby/-/lodash.sortby-4.7.0.tgz", + "integrity": "sha1-7dFMgk4sycHgsKG0K7UhBRakJDg=", + "dev": true + }, + "lodash.template": { + "version": "4.5.0", + "resolved": "https://registry.npmjs.org/lodash.template/-/lodash.template-4.5.0.tgz", + "integrity": "sha512-84vYFxIkmidUiFxidA/KjjH9pAycqW+h980j7Fuz5qxRtO9pgB7MDFTdys1N7A5mcucRiDyEq4fusljItR1T/A==", + "dev": true, + "requires": { + "lodash._reinterpolate": "^3.0.0", + "lodash.templatesettings": "^4.0.0" + } + }, + "lodash.templatesettings": { + "version": "4.2.0", + "resolved": "https://registry.npmjs.org/lodash.templatesettings/-/lodash.templatesettings-4.2.0.tgz", + "integrity": "sha512-stgLz+i3Aa9mZgnjr/O+v9ruKZsPsndy7qPZOchbqk2cnTU1ZaldKK+v7m54WoKIyxiuMZTKT2H81F8BeAc3ZQ==", + "dev": true, + "requires": { + "lodash._reinterpolate": "^3.0.0" + } + }, + "lodash.uniq": { + "version": "4.5.0", + "resolved": "https://registry.npmjs.org/lodash.uniq/-/lodash.uniq-4.5.0.tgz", + "integrity": "sha1-0CJTc662Uq3BvILklFM5qEJ1R3M=", + "dev": true + }, + "log-symbols": { + "version": "2.2.0", + "resolved": "https://registry.npmjs.org/log-symbols/-/log-symbols-2.2.0.tgz", + "integrity": "sha512-VeIAFslyIerEJLXHziedo2basKbMKtTw3vfn5IzG0XTjhAVEJyNHnL2p7vc+wBDSdQuUpNw3M2u6xb9QsAY5Eg==", + "dev": true, + "requires": { + "chalk": "^2.0.1" + } + }, + "longest": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/longest/-/longest-2.0.1.tgz", + "integrity": "sha1-eB4YMpaqlPbU2RbcM10NF676I/g=", + "dev": true + }, + "loud-rejection": { + "version": "1.6.0", + "resolved": "https://registry.npmjs.org/loud-rejection/-/loud-rejection-1.6.0.tgz", + "integrity": "sha1-W0b4AUft7leIcPCG0Eghz5mOVR8=", + "dev": true, + "requires": { + "currently-unhandled": "^0.4.1", + "signal-exit": "^3.0.0" + } + }, + "lowercase-keys": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/lowercase-keys/-/lowercase-keys-1.0.1.tgz", + "integrity": "sha512-G2Lj61tXDnVFFOi8VZds+SoQjtQC3dgokKdDG2mTm1tx4m50NUHBOZSBwQQHyy0V12A0JTG4icfZQH+xPyh8VA==", + "dev": true + }, + "lru-cache": { + "version": "6.0.0", + "resolved": "https://registry.npmjs.org/lru-cache/-/lru-cache-6.0.0.tgz", + "integrity": "sha512-Jo6dJ04CmSjuznwJSS3pUeWmd/H0ffTlkXXgwZi+eq1UCmqQwCh+eLsYOYCwY991i2Fah4h1BEMCx4qThGbsiA==", + "dev": true, + "requires": { + "yallist": "^4.0.0" + } + }, + "lunr": { + "version": "2.3.9", + "resolved": "https://registry.npmjs.org/lunr/-/lunr-2.3.9.tgz", + "integrity": "sha512-zTU3DaZaF3Rt9rhN3uBMGQD3dD2/vFQqnvZCDv4dl5iOzq2IZQqTxu90r4E5J+nP70J3ilqVCrbho2eWaeW8Ow==", + "dev": true + }, + "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==", + "dev": true, + "requires": { + "vlq": "^0.2.2" + } + }, + "make-dir": { + "version": "3.1.0", + "resolved": "https://registry.npmjs.org/make-dir/-/make-dir-3.1.0.tgz", + "integrity": "sha512-g3FeP20LNwhALb/6Cz6Dd4F2ngze0jz7tbzrD2wAV+o9FeNHe4rL+yK2md0J/fiSf1sa1ADhXqi5+oVwOM/eGw==", + "dev": true, + "requires": { + "semver": "^6.0.0" + }, + "dependencies": { + "semver": { + "version": "6.3.0", + "resolved": "https://registry.npmjs.org/semver/-/semver-6.3.0.tgz", + "integrity": "sha512-b39TBaTSfV6yBrapU89p5fKekE2m/NwnDocOVruQFS1/veMgdzuPcnOM34M6CwxW8jH/lxEa5rBoDeUwu5HHTw==", + "dev": true + } + } + }, + "make-error": { + "version": "1.3.6", + "resolved": "https://registry.npmjs.org/make-error/-/make-error-1.3.6.tgz", + "integrity": "sha512-s8UhlNe7vPKomQhC1qFelMokr/Sc3AgNbso3n74mVPA5LTZwkB9NlXf4XPamLxJE8h0gh73rM94xvwRT2CVInw==", + "dev": true + }, + "makeerror": { + "version": "1.0.11", + "resolved": "https://registry.npmjs.org/makeerror/-/makeerror-1.0.11.tgz", + "integrity": "sha1-4BpckQnyr3lmDk6LlYd5AYT1qWw=", + "dev": true, + "requires": { + "tmpl": "1.0.x" + } + }, + "map-cache": { + "version": "0.2.2", + "resolved": "https://registry.npmjs.org/map-cache/-/map-cache-0.2.2.tgz", + "integrity": "sha1-wyq9C9ZSXZsFFkW7TyasXcmKDb8=", + "dev": true + }, + "map-obj": { + "version": "4.1.0", + "resolved": "https://registry.npmjs.org/map-obj/-/map-obj-4.1.0.tgz", + "integrity": "sha512-glc9y00wgtwcDmp7GaE/0b0OnxpNJsVf3ael/An6Fe2Q51LLwN1er6sdomLRzz5h0+yMpiYLhWYF5R7HeqVd4g==", + "dev": true + }, + "map-stream": { + "version": "0.1.0", + "resolved": "https://registry.npmjs.org/map-stream/-/map-stream-0.1.0.tgz", + "integrity": "sha1-5WqpTEyAVaFkBKBnS3jyFffI4ZQ=", + "dev": true + }, + "map-visit": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/map-visit/-/map-visit-1.0.0.tgz", + "integrity": "sha1-7Nyo8TFE5mDxtb1B8S80edmN+48=", + "dev": true, + "requires": { + "object-visit": "^1.0.0" + } + }, + "marked": { + "version": "1.2.7", + "resolved": "https://registry.npmjs.org/marked/-/marked-1.2.7.tgz", + "integrity": "sha512-No11hFYcXr/zkBvL6qFmAp1z6BKY3zqLMHny/JN/ey+al7qwCM2+CMBL9BOgqMxZU36fz4cCWfn2poWIf7QRXA==" + }, + "md5.js": { + "version": "1.3.5", + "resolved": "https://registry.npmjs.org/md5.js/-/md5.js-1.3.5.tgz", + "integrity": "sha512-xitP+WxNPcTTOgnTJcrhM0xvdPepipPSf3I8EIpGKeFLjt3PlJLIDG3u8EX53ZIubkb+5U2+3rELYpEhHhzdkg==", + "dev": true, + "requires": { + "hash-base": "^3.0.0", + "inherits": "^2.0.1", + "safe-buffer": "^5.1.2" + } + }, + "mdn-data": { + "version": "2.0.4", + "resolved": "https://registry.npmjs.org/mdn-data/-/mdn-data-2.0.4.tgz", + "integrity": "sha512-iV3XNKw06j5Q7mi6h+9vbx23Tv7JkjEVgKHW4pimwyDGWm0OIQntJJ+u1C6mg6mK1EaTv42XQ7w76yuzH7M2cA==", + "dev": true + }, + "memorystream": { + "version": "0.3.1", + "resolved": "https://registry.npmjs.org/memorystream/-/memorystream-0.3.1.tgz", + "integrity": "sha1-htcJCzDORV1j+64S3aUaR93K+bI=", + "dev": true + }, + "meow": { + "version": "8.0.0", + "resolved": "https://registry.npmjs.org/meow/-/meow-8.0.0.tgz", + "integrity": "sha512-nbsTRz2fwniJBFgUkcdISq8y/q9n9VbiHYbfwklFh5V4V2uAcxtKQkDc0yCLPM/kP0d+inZBewn3zJqewHE7kg==", + "dev": true, + "requires": { + "@types/minimist": "^1.2.0", + "camelcase-keys": "^6.2.2", + "decamelize-keys": "^1.1.0", + "hard-rejection": "^2.1.0", + "minimist-options": "4.1.0", + "normalize-package-data": "^3.0.0", + "read-pkg-up": "^7.0.1", + "redent": "^3.0.0", + "trim-newlines": "^3.0.0", + "type-fest": "^0.18.0", + "yargs-parser": "^20.2.3" + }, + "dependencies": { + "find-up": { + "version": "4.1.0", + "resolved": "https://registry.npmjs.org/find-up/-/find-up-4.1.0.tgz", + "integrity": "sha512-PpOwAdQ/YlXQ2vj8a3h8IipDuYRi3wceVQQGYWxNINccq40Anw7BlsEXCMbt1Zt+OLA6Fq9suIpIWD0OsnISlw==", + "dev": true, + "requires": { + "locate-path": "^5.0.0", + "path-exists": "^4.0.0" + } + }, + "hosted-git-info": { + "version": "3.0.7", + "resolved": "https://registry.npmjs.org/hosted-git-info/-/hosted-git-info-3.0.7.tgz", + "integrity": "sha512-fWqc0IcuXs+BmE9orLDyVykAG9GJtGLGuZAAqgcckPgv5xad4AcXGIv8galtQvlwutxSlaMcdw7BUtq2EIvqCQ==", + "dev": true, + "requires": { + "lru-cache": "^6.0.0" + } + }, + "locate-path": { + "version": "5.0.0", + "resolved": "https://registry.npmjs.org/locate-path/-/locate-path-5.0.0.tgz", + "integrity": "sha512-t7hw9pI+WvuwNJXwk5zVHpyhIqzg2qTlklJOf0mVxGSbe3Fp2VieZcduNYjaLDoy6p9uGpQEGWG87WpMKlNq8g==", + "dev": true, + "requires": { + "p-locate": "^4.1.0" + } + }, + "normalize-package-data": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/normalize-package-data/-/normalize-package-data-3.0.0.tgz", + "integrity": "sha512-6lUjEI0d3v6kFrtgA/lOx4zHCWULXsFNIjHolnZCKCTLA6m/G625cdn3O7eNmT0iD3jfo6HZ9cdImGZwf21prw==", + "dev": true, + "requires": { + "hosted-git-info": "^3.0.6", + "resolve": "^1.17.0", + "semver": "^7.3.2", + "validate-npm-package-license": "^3.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": "4.1.0", + "resolved": "https://registry.npmjs.org/p-locate/-/p-locate-4.1.0.tgz", + "integrity": "sha512-R79ZZ/0wAxKGu3oYMlz8jy/kbhsNrS7SKZ7PxEHBgJ5+F2mtFW2fK2cOtBh1cHYkQsbzFV7I+EoRKe6Yt0oK7A==", + "dev": true, + "requires": { + "p-limit": "^2.2.0" + } + }, + "p-try": { + "version": "2.2.0", + "resolved": "https://registry.npmjs.org/p-try/-/p-try-2.2.0.tgz", + "integrity": "sha512-R4nPAVTAU0B9D35/Gk3uJf/7XYbQcyohSKdvAxIRSNghFl4e71hVoGnBNQz9cWaXxO2I10KTC+3jMdvvoKw6dQ==", + "dev": true + }, + "parse-json": { + "version": "5.1.0", + "resolved": "https://registry.npmjs.org/parse-json/-/parse-json-5.1.0.tgz", + "integrity": "sha512-+mi/lmVVNKFNVyLXV31ERiy2CY5E1/F6QtJFEzoChPRwwngMNXRDQ9GJ5WdE2Z2P4AujsOi0/+2qHID68KwfIQ==", + "dev": true, + "requires": { + "@babel/code-frame": "^7.0.0", + "error-ex": "^1.3.1", + "json-parse-even-better-errors": "^2.3.0", + "lines-and-columns": "^1.1.6" + } + }, + "path-exists": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/path-exists/-/path-exists-4.0.0.tgz", + "integrity": "sha512-ak9Qy5Q7jYb2Wwcey5Fpvg2KoAc/ZIhLSLOSBmRmygPsGwkVVt0fZa0qrtMz+m6tJTAHfZQ8FnmB4MG4LWy7/w==", + "dev": true + }, + "read-pkg": { + "version": "5.2.0", + "resolved": "https://registry.npmjs.org/read-pkg/-/read-pkg-5.2.0.tgz", + "integrity": "sha512-Ug69mNOpfvKDAc2Q8DRpMjjzdtrnv9HcSMX+4VsZxD1aZ6ZzrIE7rlzXBtWTyhULSMKg076AW6WR5iZpD0JiOg==", + "dev": true, + "requires": { + "@types/normalize-package-data": "^2.4.0", + "normalize-package-data": "^2.5.0", + "parse-json": "^5.0.0", + "type-fest": "^0.6.0" + }, + "dependencies": { + "hosted-git-info": { + "version": "2.8.8", + "resolved": "https://registry.npmjs.org/hosted-git-info/-/hosted-git-info-2.8.8.tgz", + "integrity": "sha512-f/wzC2QaWBs7t9IYqB4T3sR1xviIViXJRJTWBlx2Gf3g0Xi5vI7Yy4koXQ1c9OYDGHN9sBy1DQ2AB8fqZBWhUg==", + "dev": true + }, + "normalize-package-data": { + "version": "2.5.0", + "resolved": "https://registry.npmjs.org/normalize-package-data/-/normalize-package-data-2.5.0.tgz", + "integrity": "sha512-/5CMN3T0R4XTj4DcGaexo+roZSdSFW/0AOOTROrjxzCG1wrWXEsGbRKevjlIL+ZDE4sZlJr5ED4YW0yqmkK+eA==", + "dev": true, + "requires": { + "hosted-git-info": "^2.1.4", + "resolve": "^1.10.0", + "semver": "2 || 3 || 4 || 5", + "validate-npm-package-license": "^3.0.1" + } + }, + "semver": { + "version": "5.7.1", + "resolved": "https://registry.npmjs.org/semver/-/semver-5.7.1.tgz", + "integrity": "sha512-sauaDf/PZdVgrLTNYHRtpXa1iRiKcaebiKQ1BJdpQlWH2lCvexQdX55snPFyK7QzpudqbCI0qXFfOasHdyNDGQ==", + "dev": true + }, + "type-fest": { + "version": "0.6.0", + "resolved": "https://registry.npmjs.org/type-fest/-/type-fest-0.6.0.tgz", + "integrity": "sha512-q+MB8nYR1KDLrgr4G5yemftpMC7/QLqVndBmEEdqzmNj5dcFOO4Oo8qlwZE3ULT3+Zim1F8Kq4cBnikNhlCMlg==", + "dev": true + } + } + }, + "read-pkg-up": { + "version": "7.0.1", + "resolved": "https://registry.npmjs.org/read-pkg-up/-/read-pkg-up-7.0.1.tgz", + "integrity": "sha512-zK0TB7Xd6JpCLmlLmufqykGE+/TlOePD6qKClNW7hHDKFh/J7/7gCWGR7joEQEW1bKq3a3yUZSObOoWLFQ4ohg==", + "dev": true, + "requires": { + "find-up": "^4.1.0", + "read-pkg": "^5.2.0", + "type-fest": "^0.8.1" + }, + "dependencies": { + "type-fest": { + "version": "0.8.1", + "resolved": "https://registry.npmjs.org/type-fest/-/type-fest-0.8.1.tgz", + "integrity": "sha512-4dbzIzqvjtgiM5rw1k5rEHtBANKmdudhGyBEajN01fEyhaAIhsoKNy6y7+IN93IfpFtwY9iqi7kD+xwKhQsNJA==", + "dev": true + } + } + }, + "semver": { + "version": "7.3.4", + "resolved": "https://registry.npmjs.org/semver/-/semver-7.3.4.tgz", + "integrity": "sha512-tCfb2WLjqFAtXn4KEdxIhalnRtoKFN7nAwj0B3ZXCbQloV2tq5eDbcTmT68JJD3nRJq24/XgxtQKFIpQdtvmVw==", + "dev": true, + "requires": { + "lru-cache": "^6.0.0" + } + }, + "type-fest": { + "version": "0.18.1", + "resolved": "https://registry.npmjs.org/type-fest/-/type-fest-0.18.1.tgz", + "integrity": "sha512-OIAYXk8+ISY+qTOwkHtKqzAuxchoMiD9Udx+FSGQDuiRR+PJKJHc2NJAXlbhkGwTt/4/nKZxELY1w3ReWOL8mw==", + "dev": true + }, + "yargs-parser": { + "version": "20.2.4", + "resolved": "https://registry.npmjs.org/yargs-parser/-/yargs-parser-20.2.4.tgz", + "integrity": "sha512-WOkpgNhPTlE73h4VFAFsOnomJVaovO8VqLDzy5saChRBFQFBoMYirowyW+Q9HB4HFF4Z7VZTiG3iSzJJA29yRA==", + "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-source-map": { + "version": "1.0.4", + "resolved": "https://registry.npmjs.org/merge-source-map/-/merge-source-map-1.0.4.tgz", + "integrity": "sha1-pd5GU42uhNQRTMXqArR3KmNGcB8=", + "dev": true, + "requires": { + "source-map": "^0.5.6" + }, + "dependencies": { + "source-map": { + "version": "0.5.7", + "resolved": "https://registry.npmjs.org/source-map/-/source-map-0.5.7.tgz", + "integrity": "sha1-igOdLRAh0i0eoUyA2OpGi6LvP8w=", + "dev": true + } + } + }, + "merge-stream": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/merge-stream/-/merge-stream-2.0.0.tgz", + "integrity": "sha512-abv/qOcuPfk3URPfDzmZU1LKmuw8kT+0nIHvKrKgFrwifol/doWcdA4ZqsWQ8ENrFKkd67Mfpo/LovbIUsbt3w==", + "dev": true + }, + "merge2": { + "version": "1.4.1", + "resolved": "https://registry.npmjs.org/merge2/-/merge2-1.4.1.tgz", + "integrity": "sha512-8q7VEgMJW4J8tcfVPy8g09NcQwZdbwFEqhe/WZkoIzjn/3TGDwtOCYtXGxA3O8tPzpczCCDgv+P2P5y00ZJOOg==", + "dev": true + }, + "micromatch": { + "version": "4.0.2", + "resolved": "https://registry.npmjs.org/micromatch/-/micromatch-4.0.2.tgz", + "integrity": "sha512-y7FpHSbMUMoyPbYUSzO6PaZ6FyRnQOpHuKwbo1G+Knck95XVU4QAiKdGEnj5wwoS7PlOgthX/09u5iFJ+aYf5Q==", + "dev": true, + "requires": { + "braces": "^3.0.1", + "picomatch": "^2.0.5" + } + }, + "miller-rabin": { + "version": "4.0.1", + "resolved": "https://registry.npmjs.org/miller-rabin/-/miller-rabin-4.0.1.tgz", + "integrity": "sha512-115fLhvZVqWwHPbClyntxEVfVDfl9DLLTuJvq3g2O/Oxi8AiNouAHvDSzHS0viUJc+V5vm3eq91Xwqn9dp4jRA==", + "dev": true, + "requires": { + "bn.js": "^4.0.0", + "brorand": "^1.0.1" + }, + "dependencies": { + "bn.js": { + "version": "4.11.9", + "resolved": "https://registry.npmjs.org/bn.js/-/bn.js-4.11.9.tgz", + "integrity": "sha512-E6QoYqCKZfgatHTdHzs1RRKP7ip4vvm+EyRUeE2RF0NblwVvb0p6jSVeNTOFxPn26QXN2o6SMfNxKp6kU8zQaw==", + "dev": true + } + } + }, + "mime": { + "version": "1.6.0", + "resolved": "https://registry.npmjs.org/mime/-/mime-1.6.0.tgz", + "integrity": "sha512-x0Vn8spI+wuJ1O6S7gnbaQg8Pxh4NNHb7KSINmEWKiPE4RKOplvijn+NkmYmmRgP68mc70j2EbeTFRsrswaQeg==" + }, + "mime-db": { + "version": "1.44.0", + "resolved": "https://registry.npmjs.org/mime-db/-/mime-db-1.44.0.tgz", + "integrity": "sha512-/NOTfLrsPBVeH7YtFPgsVWveuL+4SjjYxaQ1xtM1KMFj7HdxlBlxeyNLzhyJVx7r4rZGJAZ/6lkKCitSc/Nmpg==", + "dev": true + }, + "mime-types": { + "version": "2.1.27", + "resolved": "https://registry.npmjs.org/mime-types/-/mime-types-2.1.27.tgz", + "integrity": "sha512-JIhqnCasI9yD+SsmkquHBxTSEuZdQX5BuQnS2Vc7puQQQ+8yiP5AY5uWhpdv4YL4VM5c6iliiYWPgJ/nJQLp7w==", + "dev": true, + "requires": { + "mime-db": "1.44.0" + } + }, + "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==", + "dev": true + }, + "min-indent": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/min-indent/-/min-indent-1.0.1.tgz", + "integrity": "sha512-I9jwMn07Sy/IwOj3zVkVik2JTvgpaykDZEigL6Rx6N9LbMywwUSMtxET+7lVoDLLd3O3IXwJwvuuns8UB/HeAg==", + "dev": true + }, + "minimalistic-assert": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/minimalistic-assert/-/minimalistic-assert-1.0.1.tgz", + "integrity": "sha512-UtJcAD4yEaGtjPezWuO9wC4nwUnVH/8/Im3yEHQP4b67cXlD/Qr9hdITCU1xDbSEXg2XKNaP8jsReV7vQd00/A==", + "dev": true + }, + "minimalistic-crypto-utils": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/minimalistic-crypto-utils/-/minimalistic-crypto-utils-1.0.1.tgz", + "integrity": "sha1-9sAMHAsIIkblxNmd+4x8CDsrWCo=", + "dev": true + }, + "minimatch": { + "version": "3.0.4", + "resolved": "https://registry.npmjs.org/minimatch/-/minimatch-3.0.4.tgz", + "integrity": "sha512-yJHVQEhyqPLUTgt9B83PXu6W3rx4MvvHvSUvToogpwoGDOUQ+yDrR0HRot+yOCdCO7u4hX3pWft6kWBBcqh0UA==", + "requires": { + "brace-expansion": "^1.1.7" + } + }, + "minimist-options": { + "version": "4.1.0", + "resolved": "https://registry.npmjs.org/minimist-options/-/minimist-options-4.1.0.tgz", + "integrity": "sha512-Q4r8ghd80yhO/0j1O3B2BjweX3fiHg9cdOwjJd2J76Q135c+NDxGCqdYKQ1SKBuFfgWbAUzBfvYjPUEeNgqN1A==", + "dev": true, + "requires": { + "arrify": "^1.0.1", + "is-plain-obj": "^1.1.0", + "kind-of": "^6.0.3" + } + }, + "mixin-deep": { + "version": "1.3.2", + "resolved": "https://registry.npmjs.org/mixin-deep/-/mixin-deep-1.3.2.tgz", + "integrity": "sha512-WRoDn//mXBiJ1H40rqa3vH0toePwSsGb45iInWlTySa+Uu4k3tYUSxa2v1KqAiLtvlrSzaExqS1gtk96A9zvEA==", + "dev": true, + "requires": { + "for-in": "^1.0.2", + "is-extendable": "^1.0.1" + }, + "dependencies": { + "is-extendable": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/is-extendable/-/is-extendable-1.0.1.tgz", + "integrity": "sha512-arnXMxT1hhoKo9k1LZdmlNyJdDDfy2v0fXjFlmok4+i8ul/6WlbVge9bhM74OpNPQPMGUToDtz+KXa1PneJxOA==", + "dev": true, + "requires": { + "is-plain-object": "^2.0.4" + } + } + } + }, + "mkdirp": { + "version": "1.0.4", + "resolved": "https://registry.npmjs.org/mkdirp/-/mkdirp-1.0.4.tgz", + "integrity": "sha512-vVqVZQyf3WLx2Shd0qJ9xuvqgAyKPLAiqITEtqW0oIUjzo3PePDd6fW9iFz30ef7Ysp/oiWqbhszeGWW2T6Gzw==", + "dev": true + }, + "modify-values": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/modify-values/-/modify-values-1.0.1.tgz", + "integrity": "sha512-xV2bxeN6F7oYjZWTe/YPAy6MN2M+sL4u/Rlm2AHCIVGfo2p1yGmBHQ6vHehl4bRTZBdHu3TSkWdYgkwpYzAGSw==", + "dev": true + }, + "monaco-editor": { + "version": "0.21.2", + "resolved": "https://registry.npmjs.org/monaco-editor/-/monaco-editor-0.21.2.tgz", + "integrity": "sha512-jS51RLuzMaoJpYbu7F6TPuWpnWTLD4kjRW0+AZzcryvbxrTwhNy1KC9yboyKpgMTahpUbDUsuQULoo0GV1EPqg==" + }, + "morgan": { + "version": "1.10.0", + "resolved": "https://registry.npmjs.org/morgan/-/morgan-1.10.0.tgz", + "integrity": "sha512-AbegBVI4sh6El+1gNwvD5YIck7nSA36weD7xvIxG4in80j/UoK8AEGaWnnz8v1GxonMCltmlNs5ZKbGvl9b1XQ==", + "dev": true, + "requires": { + "basic-auth": "~2.0.1", + "debug": "2.6.9", + "depd": "~2.0.0", + "on-finished": "~2.3.0", + "on-headers": "~1.0.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": "2.0.0", + "resolved": "https://registry.npmjs.org/depd/-/depd-2.0.0.tgz", + "integrity": "sha512-g7nH6P6dyDioJogAAGprGpCtVImJhpPk/roCzdb3fIh61/s/nPsfR6onyMwkCAR/OlC3yBC0lESvUoQEAssIrw==", + "dev": true + }, + "ms": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/ms/-/ms-2.0.0.tgz", + "integrity": "sha1-VgiurfwAvmwpAd9fmGF4jeDVl8g=", + "dev": true + } + } + }, + "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 + }, + "mute-stream": { + "version": "0.0.7", + "resolved": "https://registry.npmjs.org/mute-stream/-/mute-stream-0.0.7.tgz", + "integrity": "sha1-MHXOk7whuPq0PhvE2n6BFe0ee6s=", + "dev": true + }, + "nan": { + "version": "2.14.2", + "resolved": "https://registry.npmjs.org/nan/-/nan-2.14.2.tgz", + "integrity": "sha512-M2ufzIiINKCuDfBSAUr1vWQ+vuVcA9kqx8JJUsbQi6yf1uGRyb7HfpdfUr5qLXf3B/t8dPvcjhKMmlfnP47EzQ==", + "dev": true, + "optional": true + }, + "nanoid": { + "version": "3.1.20", + "resolved": "https://registry.npmjs.org/nanoid/-/nanoid-3.1.20.tgz", + "integrity": "sha512-a1cQNyczgKbLX9jwbS/+d7W8fX/RfgYR7lVWwWOGIPNgK2m0MWvrGF6/m4kk6U3QcFMnZf3RIhL0v2Jgh/0Uxw==" + }, + "nanomatch": { + "version": "1.2.13", + "resolved": "https://registry.npmjs.org/nanomatch/-/nanomatch-1.2.13.tgz", + "integrity": "sha512-fpoe2T0RbHwBTBUOftAfBPaDEi06ufaUai0mE6Yn1kacc3SnTErfb/h+X94VXzI64rKFHYImXSvdwGGCmwOqCA==", + "dev": true, + "requires": { + "arr-diff": "^4.0.0", + "array-unique": "^0.3.2", + "define-property": "^2.0.2", + "extend-shallow": "^3.0.2", + "fragment-cache": "^0.2.1", + "is-windows": "^1.0.2", + "kind-of": "^6.0.2", + "object.pick": "^1.3.0", + "regex-not": "^1.0.0", + "snapdragon": "^0.8.1", + "to-regex": "^3.0.1" + } + }, + "native-request": { + "version": "1.0.8", + "resolved": "https://registry.npmjs.org/native-request/-/native-request-1.0.8.tgz", + "integrity": "sha512-vU2JojJVelUGp6jRcLwToPoWGxSx23z/0iX+I77J3Ht17rf2INGjrhOoQnjVo60nQd8wVsgzKkPfRXBiVdD2ag==", + "optional": true + }, + "natural-compare": { + "version": "1.4.0", + "resolved": "https://registry.npmjs.org/natural-compare/-/natural-compare-1.4.0.tgz", + "integrity": "sha1-Sr6/7tdUHywnrPspvbvRXI1bpPc=", + "dev": true + }, + "negotiator": { + "version": "0.6.2", + "resolved": "https://registry.npmjs.org/negotiator/-/negotiator-0.6.2.tgz", + "integrity": "sha512-hZXc7K2e+PgeI1eDBe/10Ard4ekbfrrqG8Ep+8Jmf4JID2bNg7NvCPOZN+kfF574pFQI7mum2AUqDidoKqcTOw==", + "dev": true + }, + "neo-async": { + "version": "2.6.2", + "resolved": "https://registry.npmjs.org/neo-async/-/neo-async-2.6.2.tgz", + "integrity": "sha512-Yd3UES5mWCSqR+qNT93S3UoYUkqAZ9lLg8a7g9rimsWmYGK8cVToA4/sF3RrshdyV3sAGMXVUmpMYOw+dLpOuw==", + "dev": true + }, + "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-addon-api": { + "version": "1.7.2", + "resolved": "https://registry.npmjs.org/node-addon-api/-/node-addon-api-1.7.2.tgz", + "integrity": "sha512-ibPK3iA+vaY1eEjESkQkM0BbCqFOaZMiXRTtdB0u7b4djtY6JnsjvPdUHVMg6xQt3B8fpTTWHI9A+ADjM9frzg==", + "dev": true + }, + "node-fetch": { + "version": "2.6.1", + "resolved": "https://registry.npmjs.org/node-fetch/-/node-fetch-2.6.1.tgz", + "integrity": "sha512-V4aYg89jEoVRxRb2fJdAg8FHvI7cEyYdVAh94HH0UIK8oJxUfkjlDQN9RbMx+bEjP7+ggMiFRprSti032Oipxw==", + "dev": true + }, + "node-forge": { + "version": "0.7.6", + "resolved": "https://registry.npmjs.org/node-forge/-/node-forge-0.7.6.tgz", + "integrity": "sha512-sol30LUpz1jQFBjOKwbjxijiE3b6pjd74YwfD0fJOKPjF+fONKb2Yg8rYgS6+bK6VDl+/wfr4IYpC7jDzLUIfw==", + "dev": true + }, + "node-int64": { + "version": "0.4.0", + "resolved": "https://registry.npmjs.org/node-int64/-/node-int64-0.4.0.tgz", + "integrity": "sha1-h6kGXNs1XTGC2PlM4RGIuCXGijs=", + "dev": true + }, + "node-libs-browser": { + "version": "2.2.1", + "resolved": "https://registry.npmjs.org/node-libs-browser/-/node-libs-browser-2.2.1.tgz", + "integrity": "sha512-h/zcD8H9kaDZ9ALUWwlBUDo6TKF8a7qBSCSEGfjTVIYeqsioSKaAX+BN7NgiMGp6iSIXZ3PxgCu8KS3b71YK5Q==", + "dev": true, + "requires": { + "assert": "^1.1.1", + "browserify-zlib": "^0.2.0", + "buffer": "^4.3.0", + "console-browserify": "^1.1.0", + "constants-browserify": "^1.0.0", + "crypto-browserify": "^3.11.0", + "domain-browser": "^1.1.1", + "events": "^3.0.0", + "https-browserify": "^1.0.0", + "os-browserify": "^0.3.0", + "path-browserify": "0.0.1", + "process": "^0.11.10", + "punycode": "^1.2.4", + "querystring-es3": "^0.2.0", + "readable-stream": "^2.3.3", + "stream-browserify": "^2.0.1", + "stream-http": "^2.7.2", + "string_decoder": "^1.0.0", + "timers-browserify": "^2.0.4", + "tty-browserify": "0.0.0", + "url": "^0.11.0", + "util": "^0.11.0", + "vm-browserify": "^1.0.1" + }, + "dependencies": { + "punycode": { + "version": "1.4.1", + "resolved": "https://registry.npmjs.org/punycode/-/punycode-1.4.1.tgz", + "integrity": "sha1-wNWmOycYgArY4esPpSachN1BhF4=", + "dev": true + } + } + }, + "node-modules-regexp": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/node-modules-regexp/-/node-modules-regexp-1.0.0.tgz", + "integrity": "sha1-jZ2+KJZKSsVxLpExZCEHxx6Q7EA=", + "dev": true + }, + "node-notifier": { + "version": "8.0.1", + "resolved": "https://registry.npmjs.org/node-notifier/-/node-notifier-8.0.1.tgz", + "integrity": "sha512-BvEXF+UmsnAfYfoapKM9nGxnP+Wn7P91YfXmrKnfcYCx6VBeoN5Ez5Ogck6I8Bi5k4RlpqRYaw75pAwzX9OphA==", + "dev": true, + "optional": true, + "requires": { + "growly": "^1.3.0", + "is-wsl": "^2.2.0", + "semver": "^7.3.2", + "shellwords": "^0.1.1", + "uuid": "^8.3.0", + "which": "^2.0.2" + }, + "dependencies": { + "is-wsl": { + "version": "2.2.0", + "resolved": "https://registry.npmjs.org/is-wsl/-/is-wsl-2.2.0.tgz", + "integrity": "sha512-fKzAra0rGJUUBwGBgNkHZuToZcn+TtXHpeCgmkMJMMYx1sQDYaCSyjJBSCa2nH1DGm7s3n1oBnohoVTBaN7Lww==", + "dev": true, + "optional": true, + "requires": { + "is-docker": "^2.0.0" + } + }, + "semver": { + "version": "7.3.4", + "resolved": "https://registry.npmjs.org/semver/-/semver-7.3.4.tgz", + "integrity": "sha512-tCfb2WLjqFAtXn4KEdxIhalnRtoKFN7nAwj0B3ZXCbQloV2tq5eDbcTmT68JJD3nRJq24/XgxtQKFIpQdtvmVw==", + "dev": true, + "optional": true, + "requires": { + "lru-cache": "^6.0.0" + } + }, + "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, + "optional": true + }, + "which": { + "version": "2.0.2", + "resolved": "https://registry.npmjs.org/which/-/which-2.0.2.tgz", + "integrity": "sha512-BLI3Tl1TW3Pvl70l3yq3Y64i+awpwXqsGBYWkkqMtnbXgrMD+yj7rhW0kuEDxzJaYXGjEW5ogapKNMEKNMjibA==", + "dev": true, + "optional": true, + "requires": { + "isexe": "^2.0.0" + } + } + } + }, + "node-releases": { + "version": "1.1.67", + "resolved": "https://registry.npmjs.org/node-releases/-/node-releases-1.1.67.tgz", + "integrity": "sha512-V5QF9noGFl3EymEwUYzO+3NTDpGfQB4ve6Qfnzf3UNydMhjQRVPR1DZTuvWiLzaFJYw2fmDwAfnRNEVb64hSIg==" + }, + "nodemon": { + "version": "2.0.6", + "resolved": "https://registry.npmjs.org/nodemon/-/nodemon-2.0.6.tgz", + "integrity": "sha512-4I3YDSKXg6ltYpcnZeHompqac4E6JeAMpGm8tJnB9Y3T0ehasLa4139dJOcCrB93HHrUMsCrKtoAlXTqT5n4AQ==", + "dev": true, + "requires": { + "chokidar": "^3.2.2", + "debug": "^3.2.6", + "ignore-by-default": "^1.0.1", + "minimatch": "^3.0.4", + "pstree.remy": "^1.1.7", + "semver": "^5.7.1", + "supports-color": "^5.5.0", + "touch": "^3.1.0", + "undefsafe": "^2.0.3", + "update-notifier": "^4.1.0" + }, + "dependencies": { + "anymatch": { + "version": "3.1.1", + "resolved": "https://registry.npmjs.org/anymatch/-/anymatch-3.1.1.tgz", + "integrity": "sha512-mM8522psRCqzV+6LhomX5wgp25YVibjh8Wj23I5RPkPppSVSjyKD2A2mBJmWGa+KN7f2D6LNh9jkBCeyLktzjg==", + "dev": true, + "requires": { + "normalize-path": "^3.0.0", + "picomatch": "^2.0.4" + } + }, + "binary-extensions": { + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/binary-extensions/-/binary-extensions-2.1.0.tgz", + "integrity": "sha512-1Yj8h9Q+QDF5FzhMs/c9+6UntbD5MkRfRwac8DoEm9ZfUBZ7tZ55YcGVAzEe4bXsdQHEk+s9S5wsOKVdZrw0tQ==", + "dev": true + }, + "chokidar": { + "version": "3.4.3", + "resolved": "https://registry.npmjs.org/chokidar/-/chokidar-3.4.3.tgz", + "integrity": "sha512-DtM3g7juCXQxFVSNPNByEC2+NImtBuxQQvWlHunpJIS5Ocr0lG306cC7FCi7cEA0fzmybPUIl4txBIobk1gGOQ==", + "dev": true, + "requires": { + "anymatch": "~3.1.1", + "braces": "~3.0.2", + "fsevents": "~2.1.2", + "glob-parent": "~5.1.0", + "is-binary-path": "~2.1.0", + "is-glob": "~4.0.1", + "normalize-path": "~3.0.0", + "readdirp": "~3.5.0" + } + }, + "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" + } + }, + "fsevents": { + "version": "2.1.3", + "resolved": "https://registry.npmjs.org/fsevents/-/fsevents-2.1.3.tgz", + "integrity": "sha512-Auw9a4AxqWpa9GUfj370BMPzzyncfBABW8Mab7BGWBYDj4Isgq+cDKtx0i6u9jcX9pQDnswsaaOTgTmA5pEjuQ==", + "dev": true, + "optional": true + }, + "is-binary-path": { + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/is-binary-path/-/is-binary-path-2.1.0.tgz", + "integrity": "sha512-ZMERYes6pDydyuGidse7OsHxtbI7WVeUEozgR/g7rd0xUimYNlvZRE/K2MgZTjWy725IfelLeVcEM97mmtRGXw==", + "dev": true, + "requires": { + "binary-extensions": "^2.0.0" + } + }, + "readdirp": { + "version": "3.5.0", + "resolved": "https://registry.npmjs.org/readdirp/-/readdirp-3.5.0.tgz", + "integrity": "sha512-cMhu7c/8rdhkHXWsY+osBhfSy0JikwpHK/5+imo+LpeasTF8ouErHrlYkwT0++njiyuDvc7OFY5T3ukvZ8qmFQ==", + "dev": true, + "requires": { + "picomatch": "^2.2.1" + } + } + } + }, + "normalize-package-data": { + "version": "2.5.0", + "resolved": "https://registry.npmjs.org/normalize-package-data/-/normalize-package-data-2.5.0.tgz", + "integrity": "sha512-/5CMN3T0R4XTj4DcGaexo+roZSdSFW/0AOOTROrjxzCG1wrWXEsGbRKevjlIL+ZDE4sZlJr5ED4YW0yqmkK+eA==", + "dev": true, + "requires": { + "hosted-git-info": "^2.1.4", + "resolve": "^1.10.0", + "semver": "2 || 3 || 4 || 5", + "validate-npm-package-license": "^3.0.1" + } + }, + "normalize-path": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/normalize-path/-/normalize-path-3.0.0.tgz", + "integrity": "sha512-6eZs5Ls3WtCisHWp9S2GUy8dqkpGi4BVSz3GaqiE6ezub0512ESztXUwUB6C6IKbQkY2Pnb/mD4WYojCRwcwLA==", + "dev": true + }, + "normalize-range": { + "version": "0.1.2", + "resolved": "https://registry.npmjs.org/normalize-range/-/normalize-range-0.1.2.tgz", + "integrity": "sha1-LRDAa9/TEuqXd2laTShDlFa3WUI=" + }, + "normalize-url": { + "version": "3.3.0", + "resolved": "https://registry.npmjs.org/normalize-url/-/normalize-url-3.3.0.tgz", + "integrity": "sha512-U+JJi7duF1o+u2pynbp2zXDW2/PADgC30f0GsHZtRh+HOcXHnw137TrNlyxxRvWW5fjKd3bcLHPxofWuCjaeZg==", + "dev": true + }, + "npm-run-all": { + "version": "4.1.5", + "resolved": "https://registry.npmjs.org/npm-run-all/-/npm-run-all-4.1.5.tgz", + "integrity": "sha512-Oo82gJDAVcaMdi3nuoKFavkIHBRVqQ1qvMb+9LHk/cF4P6B2m8aP04hGf7oL6wZ9BuGwX1onlLhpuoofSyoQDQ==", + "dev": true, + "requires": { + "ansi-styles": "^3.2.1", + "chalk": "^2.4.1", + "cross-spawn": "^6.0.5", + "memorystream": "^0.3.1", + "minimatch": "^3.0.4", + "pidtree": "^0.3.0", + "read-pkg": "^3.0.0", + "shell-quote": "^1.6.1", + "string.prototype.padend": "^3.0.0" + } + }, + "npm-run-path": { + "version": "2.0.2", + "resolved": "https://registry.npmjs.org/npm-run-path/-/npm-run-path-2.0.2.tgz", + "integrity": "sha1-NakjLfo11wZ7TLLd8jV7GHFTbF8=", + "dev": true, + "requires": { + "path-key": "^2.0.0" + } + }, + "nth-check": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/nth-check/-/nth-check-1.0.2.tgz", + "integrity": "sha512-WeBOdju8SnzPN5vTUJYxYUxLeXpCaVP5i5e0LF8fg7WORF2Wd7wFX/pk0tYZk7s8T+J7VLy0Da6J1+wCT0AtHg==", + "dev": true, + "requires": { + "boolbase": "~1.0.0" + } + }, + "null-check": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/null-check/-/null-check-1.0.0.tgz", + "integrity": "sha1-l33/1xdgErnsMNKjnbXPcqBDnt0=", + "dev": true + }, + "number-is-nan": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/number-is-nan/-/number-is-nan-1.0.1.tgz", + "integrity": "sha1-CXtgK1NCKlIsGvuHkDGDNpQaAR0=", + "dev": true + }, + "nwsapi": { + "version": "2.2.0", + "resolved": "https://registry.npmjs.org/nwsapi/-/nwsapi-2.2.0.tgz", + "integrity": "sha512-h2AatdwYH+JHiZpv7pt/gSX1XoRGb7L/qSIeuqA6GwYoF9w1vP1cw42TO0aI2pNyshRK5893hNSl+1//vHK7hQ==", + "dev": true + }, + "oauth-sign": { + "version": "0.9.0", + "resolved": "https://registry.npmjs.org/oauth-sign/-/oauth-sign-0.9.0.tgz", + "integrity": "sha512-fexhUFFPTGV8ybAtSIGbV6gOkSv8UtRbDBnAyLQw4QPKkgNlsH2ByPGtMUqdWkos6YCRmAqViwgZrJc/mRDzZQ==", + "dev": true + }, + "object-assign": { + "version": "4.1.1", + "resolved": "https://registry.npmjs.org/object-assign/-/object-assign-4.1.1.tgz", + "integrity": "sha1-IQmtx5ZYh8/AXLvUQsrIv7s2CGM=", + "dev": true + }, + "object-copy": { + "version": "0.1.0", + "resolved": "https://registry.npmjs.org/object-copy/-/object-copy-0.1.0.tgz", + "integrity": "sha1-fn2Fi3gb18mRpBupde04EnVOmYw=", + "dev": true, + "requires": { + "copy-descriptor": "^0.1.0", + "define-property": "^0.2.5", + "kind-of": "^3.0.3" + }, + "dependencies": { + "define-property": { + "version": "0.2.5", + "resolved": "https://registry.npmjs.org/define-property/-/define-property-0.2.5.tgz", + "integrity": "sha1-w1se+RjsPJkPmlvFe+BKrOxcgRY=", + "dev": true, + "requires": { + "is-descriptor": "^0.1.0" + } + }, + "kind-of": { + "version": "3.2.2", + "resolved": "https://registry.npmjs.org/kind-of/-/kind-of-3.2.2.tgz", + "integrity": "sha1-MeohpzS6ubuw8yRm2JOupR5KPGQ=", + "dev": true, + "requires": { + "is-buffer": "^1.1.5" + } + } + } + }, + "object-inspect": { + "version": "1.9.0", + "resolved": "https://registry.npmjs.org/object-inspect/-/object-inspect-1.9.0.tgz", + "integrity": "sha512-i3Bp9iTqwhaLZBxGkRfo5ZbE07BQRT7MGu8+nNgwW9ItGp1TzCTw2DLEoWwjClxBjOFI/hWljTAmYGCEwmtnOw==", + "dev": true + }, + "object-keys": { + "version": "1.1.1", + "resolved": "https://registry.npmjs.org/object-keys/-/object-keys-1.1.1.tgz", + "integrity": "sha512-NuAESUOUMrlIXOfHKzD6bpPu3tYt3xvjNdRIQ+FeT0lNb4K8WR70CaDxhuNguS2XG+GjkyMwOzsN5ZktImfhLA==", + "dev": true + }, + "object-visit": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/object-visit/-/object-visit-1.0.1.tgz", + "integrity": "sha1-95xEk68MU3e1n+OdOV5BBC3QRbs=", + "dev": true, + "requires": { + "isobject": "^3.0.0" + } + }, + "object.assign": { + "version": "4.1.2", + "resolved": "https://registry.npmjs.org/object.assign/-/object.assign-4.1.2.tgz", + "integrity": "sha512-ixT2L5THXsApyiUPYKmW+2EHpXXe5Ii3M+f4e+aJFAHao5amFRW6J0OO6c/LU8Be47utCx2GL89hxGB6XSmKuQ==", + "dev": true, + "requires": { + "call-bind": "^1.0.0", + "define-properties": "^1.1.3", + "has-symbols": "^1.0.1", + "object-keys": "^1.1.1" + } + }, + "object.getownpropertydescriptors": { + "version": "2.1.1", + "resolved": "https://registry.npmjs.org/object.getownpropertydescriptors/-/object.getownpropertydescriptors-2.1.1.tgz", + "integrity": "sha512-6DtXgZ/lIZ9hqx4GtZETobXLR/ZLaa0aqV0kzbn80Rf8Z2e/XFnhA0I7p07N2wH8bBBltr2xQPi6sbKWAY2Eng==", + "dev": true, + "requires": { + "call-bind": "^1.0.0", + "define-properties": "^1.1.3", + "es-abstract": "^1.18.0-next.1" + } + }, + "object.pick": { + "version": "1.3.0", + "resolved": "https://registry.npmjs.org/object.pick/-/object.pick-1.3.0.tgz", + "integrity": "sha1-h6EKxMFpS9Lhy/U1kaZhQftd10c=", + "dev": true, + "requires": { + "isobject": "^3.0.1" + } + }, + "object.values": { + "version": "1.1.2", + "resolved": "https://registry.npmjs.org/object.values/-/object.values-1.1.2.tgz", + "integrity": "sha512-MYC0jvJopr8EK6dPBiO8Nb9mvjdypOachO5REGk6MXzujbBrAisKo3HmdEI6kZDL6fC31Mwee/5YbtMebixeag==", + "dev": true, + "requires": { + "call-bind": "^1.0.0", + "define-properties": "^1.1.3", + "es-abstract": "^1.18.0-next.1", + "has": "^1.0.3" + } + }, + "on-finished": { + "version": "2.3.0", + "resolved": "https://registry.npmjs.org/on-finished/-/on-finished-2.3.0.tgz", + "integrity": "sha1-IPEzZIGwg811M3mSoWlxqi2QaUc=", + "dev": true, + "requires": { + "ee-first": "1.1.1" + } + }, + "on-headers": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/on-headers/-/on-headers-1.0.2.tgz", + "integrity": "sha512-pZAE+FJLoyITytdqK0U5s+FIpjN0JP3OzFi/u8Rx+EV5/W+JTWGXG8xFzevE7AjBfDqHv/8vL8qQsIhHnqRkrA==", + "dev": true + }, + "once": { + "version": "1.4.0", + "resolved": "https://registry.npmjs.org/once/-/once-1.4.0.tgz", + "integrity": "sha1-WDsap3WWHUsROsF9nFC6753Xa9E=", + "requires": { + "wrappy": "1" + } + }, + "onetime": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/onetime/-/onetime-2.0.1.tgz", + "integrity": "sha1-BnQoIw/WdEOyeUsiu6UotoZ5YtQ=", + "dev": true, + "requires": { + "mimic-fn": "^1.0.0" + } + }, + "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==", + "dev": true, + "requires": { + "deep-is": "~0.1.3", + "fast-levenshtein": "~2.0.6", + "levn": "~0.3.0", + "prelude-ls": "~1.1.2", + "type-check": "~0.3.2", + "word-wrap": "~1.2.3" + } + }, + "ora": { + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/ora/-/ora-2.1.0.tgz", + "integrity": "sha512-hNNlAd3gfv/iPmsNxYoAPLvxg7HuPozww7fFonMZvL84tP6Ox5igfk5j/+a9rtJJwqMgKK+JgWsAQik5o0HTLA==", + "dev": true, + "requires": { + "chalk": "^2.3.1", + "cli-cursor": "^2.1.0", + "cli-spinners": "^1.1.0", + "log-symbols": "^2.2.0", + "strip-ansi": "^4.0.0", + "wcwidth": "^1.0.1" + } + }, + "os-browserify": { + "version": "0.3.0", + "resolved": "https://registry.npmjs.org/os-browserify/-/os-browserify-0.3.0.tgz", + "integrity": "sha1-hUNzx/XCMVkU/Jv8a9gjj92h7Cc=", + "dev": true + }, + "os-tmpdir": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/os-tmpdir/-/os-tmpdir-1.0.2.tgz", + "integrity": "sha1-u+Z0BseaqFxc/sdm/lc0VV36EnQ=", + "dev": true + }, + "p-cancelable": { + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/p-cancelable/-/p-cancelable-1.1.0.tgz", + "integrity": "sha512-s73XxOZ4zpt1edZYZzvhqFa6uvQc1vwUa0K0BdtIZgQMAJj9IbebH+JkgKZc9h+B05PKHLOTl4ajG1BmNrVZlw==", + "dev": true + }, + "p-each-series": { + "version": "2.2.0", + "resolved": "https://registry.npmjs.org/p-each-series/-/p-each-series-2.2.0.tgz", + "integrity": "sha512-ycIL2+1V32th+8scbpTvyHNaHe02z0sjgh91XXjAk+ZeXoPN4Z46DVUnzdso0aX4KckKw0FNNFHdjZ2UsZvxiA==", + "dev": true + }, + "p-finally": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/p-finally/-/p-finally-1.0.0.tgz", + "integrity": "sha1-P7z7FbiZpEEjs0ttzBi3JDNqLK4=", + "dev": true + }, + "p-limit": { + "version": "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-locate": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/p-locate/-/p-locate-2.0.0.tgz", + "integrity": "sha1-IKAQOyIqcMj9OcwuWAaA893l7EM=", + "dev": true, + "requires": { + "p-limit": "^1.1.0" + } + }, + "p-try": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/p-try/-/p-try-1.0.0.tgz", + "integrity": "sha1-y8ec26+P1CKOE/Yh8rGiN8GyB7M=", + "dev": true + }, + "package-json": { + "version": "6.5.0", + "resolved": "https://registry.npmjs.org/package-json/-/package-json-6.5.0.tgz", + "integrity": "sha512-k3bdm2n25tkyxcjSKzB5x8kfVxlMdgsbPr0GkZcwHsLpba6cBjqCt1KlcChKEvxHIcTB1FVMuwoijZ26xex5MQ==", + "dev": true, + "requires": { + "got": "^9.6.0", + "registry-auth-token": "^4.0.0", + "registry-url": "^5.0.0", + "semver": "^6.2.0" + }, + "dependencies": { + "semver": { + "version": "6.3.0", + "resolved": "https://registry.npmjs.org/semver/-/semver-6.3.0.tgz", + "integrity": "sha512-b39TBaTSfV6yBrapU89p5fKekE2m/NwnDocOVruQFS1/veMgdzuPcnOM34M6CwxW8jH/lxEa5rBoDeUwu5HHTw==", + "dev": true + } + } + }, + "pako": { + "version": "0.2.9", + "resolved": "https://registry.npmjs.org/pako/-/pako-0.2.9.tgz", + "integrity": "sha1-8/dSL073gjSNqBYbrZ7P1Rv4OnU=", + "dev": true + }, + "parcel-bundler": { + "version": "1.12.4", + "resolved": "https://registry.npmjs.org/parcel-bundler/-/parcel-bundler-1.12.4.tgz", + "integrity": "sha512-G+iZGGiPEXcRzw0fiRxWYCKxdt/F7l9a0xkiU4XbcVRJCSlBnioWEwJMutOCCpoQmaQtjB4RBHDGIHN85AIhLQ==", + "dev": true, + "requires": { + "@babel/code-frame": "^7.0.0", + "@babel/core": "^7.4.4", + "@babel/generator": "^7.4.4", + "@babel/parser": "^7.4.4", + "@babel/plugin-transform-flow-strip-types": "^7.4.4", + "@babel/plugin-transform-modules-commonjs": "^7.4.4", + "@babel/plugin-transform-react-jsx": "^7.0.0", + "@babel/preset-env": "^7.4.4", + "@babel/runtime": "^7.4.4", + "@babel/template": "^7.4.4", + "@babel/traverse": "^7.4.4", + "@babel/types": "^7.4.4", + "@iarna/toml": "^2.2.0", + "@parcel/fs": "^1.11.0", + "@parcel/logger": "^1.11.1", + "@parcel/utils": "^1.11.0", + "@parcel/watcher": "^1.12.1", + "@parcel/workers": "^1.11.0", + "ansi-to-html": "^0.6.4", + "babylon-walk": "^1.0.2", + "browserslist": "^4.1.0", + "chalk": "^2.1.0", + "clone": "^2.1.1", + "command-exists": "^1.2.6", + "commander": "^2.11.0", + "core-js": "^2.6.5", + "cross-spawn": "^6.0.4", + "css-modules-loader-core": "^1.1.0", + "cssnano": "^4.0.0", + "deasync": "^0.1.14", + "dotenv": "^5.0.0", + "dotenv-expand": "^5.1.0", + "envinfo": "^7.3.1", + "fast-glob": "^2.2.2", + "filesize": "^3.6.0", + "get-port": "^3.2.0", + "htmlnano": "^0.2.2", + "is-glob": "^4.0.0", + "is-url": "^1.2.2", + "js-yaml": "^3.10.0", + "json5": "^1.0.1", + "micromatch": "^3.0.4", + "mkdirp": "^0.5.1", + "node-forge": "^0.7.1", + "node-libs-browser": "^2.0.0", + "opn": "^5.1.0", + "postcss": "^7.0.11", + "postcss-value-parser": "^3.3.1", + "posthtml": "^0.11.2", + "posthtml-parser": "^0.4.0", + "posthtml-render": "^1.1.3", + "resolve": "^1.4.0", + "semver": "^5.4.1", + "serialize-to-js": "^3.0.0", + "serve-static": "^1.12.4", + "source-map": "0.6.1", + "terser": "^3.7.3", + "v8-compile-cache": "^2.0.0", + "ws": "^5.1.1" + }, + "dependencies": { + "@nodelib/fs.stat": { + "version": "1.1.3", + "resolved": "https://registry.npmjs.org/@nodelib/fs.stat/-/fs.stat-1.1.3.tgz", + "integrity": "sha512-shAmDyaQC4H92APFoIaVDHCx5bStIocgvbwQyxPRrbUY20V1EYTbSDchWbuwlMG3V17cprZhA6+78JfB+3DTPw==", + "dev": true + }, + "braces": { + "version": "2.3.2", + "resolved": "https://registry.npmjs.org/braces/-/braces-2.3.2.tgz", + "integrity": "sha512-aNdbnj9P8PjdXU4ybaWLK2IF3jc/EoDYbC7AazW6to3TRsfXxscC9UXOB5iDiEQrkyIbWp2SLQda4+QAa7nc3w==", + "dev": true, + "requires": { + "arr-flatten": "^1.1.0", + "array-unique": "^0.3.2", + "extend-shallow": "^2.0.1", + "fill-range": "^4.0.0", + "isobject": "^3.0.1", + "repeat-element": "^1.1.2", + "snapdragon": "^0.8.1", + "snapdragon-node": "^2.0.1", + "split-string": "^3.0.2", + "to-regex": "^3.0.1" + }, + "dependencies": { + "extend-shallow": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/extend-shallow/-/extend-shallow-2.0.1.tgz", + "integrity": "sha1-Ua99YUrZqfYQ6huvu5idaxxWiQ8=", + "dev": true, + "requires": { + "is-extendable": "^0.1.0" + } + } + } + }, + "fast-glob": { + "version": "2.2.7", + "resolved": "https://registry.npmjs.org/fast-glob/-/fast-glob-2.2.7.tgz", + "integrity": "sha512-g1KuQwHOZAmOZMuBtHdxDtju+T2RT8jgCC9aANsbpdiDDTSnjgfuVsIBNKbUeJI3oKMRExcfNDtJl4OhbffMsw==", + "dev": true, + "requires": { + "@mrmlnc/readdir-enhanced": "^2.2.1", + "@nodelib/fs.stat": "^1.1.2", + "glob-parent": "^3.1.0", + "is-glob": "^4.0.0", + "merge2": "^1.2.3", + "micromatch": "^3.1.10" + } + }, + "fill-range": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/fill-range/-/fill-range-4.0.0.tgz", + "integrity": "sha1-1USBHUKPmOsGpj3EAtJAPDKMOPc=", + "dev": true, + "requires": { + "extend-shallow": "^2.0.1", + "is-number": "^3.0.0", + "repeat-string": "^1.6.1", + "to-regex-range": "^2.1.0" + }, + "dependencies": { + "extend-shallow": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/extend-shallow/-/extend-shallow-2.0.1.tgz", + "integrity": "sha1-Ua99YUrZqfYQ6huvu5idaxxWiQ8=", + "dev": true, + "requires": { + "is-extendable": "^0.1.0" + } + } + } + }, + "glob-parent": { + "version": "3.1.0", + "resolved": "https://registry.npmjs.org/glob-parent/-/glob-parent-3.1.0.tgz", + "integrity": "sha1-nmr2KZ2NO9K9QEMIMr0RPfkGxa4=", + "dev": true, + "requires": { + "is-glob": "^3.1.0", + "path-dirname": "^1.0.0" + }, + "dependencies": { + "is-glob": { + "version": "3.1.0", + "resolved": "https://registry.npmjs.org/is-glob/-/is-glob-3.1.0.tgz", + "integrity": "sha1-e6WuJCF4BKxwcHuWkiVnSGzD6Eo=", + "dev": true, + "requires": { + "is-extglob": "^2.1.0" + } + } + } + }, + "is-number": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/is-number/-/is-number-3.0.0.tgz", + "integrity": "sha1-JP1iAaR4LPUFYcgQJ2r8fRLXEZU=", + "dev": true, + "requires": { + "kind-of": "^3.0.2" + }, + "dependencies": { + "kind-of": { + "version": "3.2.2", + "resolved": "https://registry.npmjs.org/kind-of/-/kind-of-3.2.2.tgz", + "integrity": "sha1-MeohpzS6ubuw8yRm2JOupR5KPGQ=", + "dev": true, + "requires": { + "is-buffer": "^1.1.5" + } + } + } + }, + "micromatch": { + "version": "3.1.10", + "resolved": "https://registry.npmjs.org/micromatch/-/micromatch-3.1.10.tgz", + "integrity": "sha512-MWikgl9n9M3w+bpsY3He8L+w9eF9338xRl8IAO5viDizwSzziFEyUzo2xrrloB64ADbTf8uA8vRqqttDTOmccg==", + "dev": true, + "requires": { + "arr-diff": "^4.0.0", + "array-unique": "^0.3.2", + "braces": "^2.3.1", + "define-property": "^2.0.2", + "extend-shallow": "^3.0.2", + "extglob": "^2.0.4", + "fragment-cache": "^0.2.1", + "kind-of": "^6.0.2", + "nanomatch": "^1.2.9", + "object.pick": "^1.3.0", + "regex-not": "^1.0.0", + "snapdragon": "^0.8.1", + "to-regex": "^3.0.2" + } + }, + "minimist": { + "version": "1.2.5", + "resolved": "https://registry.npmjs.org/minimist/-/minimist-1.2.5.tgz", + "integrity": "sha512-FM9nNUYrRBAELZQT3xeZQ7fmMOBg6nWNmJKTcgsJeaLstP/UODVpGsr5OhXhhXg6f+qtJ8uiZ+PUxkDWcgIXLw==", + "dev": true + }, + "mkdirp": { + "version": "0.5.5", + "resolved": "https://registry.npmjs.org/mkdirp/-/mkdirp-0.5.5.tgz", + "integrity": "sha512-NKmAlESf6jMGym1++R0Ra7wvhV+wFW63FaSOFPwRahvea0gMUcGUhVeAg/0BC0wiv9ih5NYPB1Wn1UEI1/L+xQ==", + "dev": true, + "requires": { + "minimist": "^1.2.5" + } + }, + "postcss": { + "version": "7.0.35", + "resolved": "https://registry.npmjs.org/postcss/-/postcss-7.0.35.tgz", + "integrity": "sha512-3QT8bBJeX/S5zKTTjTCIjRF3If4avAT6kqxcASlTWEtAFCb9NH0OUxNDfgZSWdP5fJnBYCMEWkIFfWeugjzYMg==", + "dev": true, + "requires": { + "chalk": "^2.4.2", + "source-map": "^0.6.1", + "supports-color": "^6.1.0" + } + }, + "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" + } + }, + "terser": { + "version": "3.17.0", + "resolved": "https://registry.npmjs.org/terser/-/terser-3.17.0.tgz", + "integrity": "sha512-/FQzzPJmCpjAH9Xvk2paiWrFq+5M6aVOf+2KRbwhByISDX/EujxsK+BAvrhb6H+2rtrLCHK9N01wO014vrIwVQ==", + "dev": true, + "requires": { + "commander": "^2.19.0", + "source-map": "~0.6.1", + "source-map-support": "~0.5.10" + } + }, + "to-regex-range": { + "version": "2.1.1", + "resolved": "https://registry.npmjs.org/to-regex-range/-/to-regex-range-2.1.1.tgz", + "integrity": "sha1-fIDBe53+vlmeJzZ+DU3VWQFB2zg=", + "dev": true, + "requires": { + "is-number": "^3.0.0", + "repeat-string": "^1.6.1" + } + } + } + }, + "parent-module": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/parent-module/-/parent-module-1.0.1.tgz", + "integrity": "sha512-GQ2EWRpQV8/o+Aw8YqtfZZPfNRWZYkbidE9k5rpl/hC3vtHHBfGm2Ifi6qWV+coDGkrUKZAxE3Lot5kcsRlh+g==", + "dev": true, + "requires": { + "callsites": "^3.0.0" + }, + "dependencies": { + "callsites": { + "version": "3.1.0", + "resolved": "https://registry.npmjs.org/callsites/-/callsites-3.1.0.tgz", + "integrity": "sha512-P8BjAsXvZS+VIDUI11hHCQEv74YT67YUi5JJFNWIqL235sBmjX4+qx9Muvls5ivyNENctx46xQLQ3aTuE7ssaQ==", + "dev": true + } + } + }, + "parse-asn1": { + "version": "5.1.6", + "resolved": "https://registry.npmjs.org/parse-asn1/-/parse-asn1-5.1.6.tgz", + "integrity": "sha512-RnZRo1EPU6JBnra2vGHj0yhp6ebyjBZpmUCLHWiFhxlzvBCCpAuZ7elsBp1PVAbQN0/04VD/19rfzlBSwLstMw==", + "dev": true, + "requires": { + "asn1.js": "^5.2.0", + "browserify-aes": "^1.0.0", + "evp_bytestokey": "^1.0.0", + "pbkdf2": "^3.0.3", + "safe-buffer": "^5.1.1" + } + }, + "parse-github-repo-url": { + "version": "1.4.1", + "resolved": "https://registry.npmjs.org/parse-github-repo-url/-/parse-github-repo-url-1.4.1.tgz", + "integrity": "sha1-nn2LslKmy2ukJZUGC3v23z28H1A=", + "dev": true + }, + "parse-json": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/parse-json/-/parse-json-4.0.0.tgz", + "integrity": "sha1-vjX1Qlvh9/bHRxhPmKeIy5lHfuA=", + "dev": true, + "requires": { + "error-ex": "^1.3.1", + "json-parse-better-errors": "^1.0.1" + } + }, + "parse-node-version": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/parse-node-version/-/parse-node-version-1.0.1.tgz", + "integrity": "sha512-3YHlOa/JgH6Mnpr05jP9eDG254US9ek25LyIxZlDItp2iJtwyaXQb57lBYLdT3MowkUFYEV2XXNAYIPlESvJlA==" + }, + "parse-passwd": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/parse-passwd/-/parse-passwd-1.0.0.tgz", + "integrity": "sha1-bVuTSkVpk7I9N/QKOC1vFmao5cY=", + "dev": true + }, + "parse5": { + "version": "5.1.0", + "resolved": "https://registry.npmjs.org/parse5/-/parse5-5.1.0.tgz", + "integrity": "sha512-fxNG2sQjHvlVAYmzBZS9YlDp6PTSSDwa98vkD4QgVDDCAo84z5X1t5XyJQ62ImdLXx5NdIIfihey6xpum9/gRQ==", + "dev": true + }, + "parseurl": { + "version": "1.3.3", + "resolved": "https://registry.npmjs.org/parseurl/-/parseurl-1.3.3.tgz", + "integrity": "sha512-CiyeOxFT/JZyN5m0z9PfXw4SCBJ6Sygz1Dpl0wqjlhDEGGBP1GnsUVEL0p63hoG1fcj3fHynXi9NYO4nWOL+qQ==", + "dev": true + }, + "pascalcase": { + "version": "0.1.1", + "resolved": "https://registry.npmjs.org/pascalcase/-/pascalcase-0.1.1.tgz", + "integrity": "sha1-s2PlXoAGym/iF4TS2yK9FdeRfxQ=", + "dev": true + }, + "path-browserify": { + "version": "0.0.1", + "resolved": "https://registry.npmjs.org/path-browserify/-/path-browserify-0.0.1.tgz", + "integrity": "sha512-BapA40NHICOS+USX9SN4tyhq+A2RrN/Ws5F0Z5aMHDp98Fl86lX8Oti8B7uN93L4Ifv4fHOEA+pQw87gmMO/lQ==", + "dev": true + }, + "path-dirname": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/path-dirname/-/path-dirname-1.0.2.tgz", + "integrity": "sha1-zDPSTVJeCZpTiMAzbG4yuRYGCeA=", + "dev": true + }, + "path-exists": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/path-exists/-/path-exists-3.0.0.tgz", + "integrity": "sha1-zg6+ql94yxiSXqfYENe1mwEP1RU=", + "dev": true + }, + "path-is-absolute": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/path-is-absolute/-/path-is-absolute-1.0.1.tgz", + "integrity": "sha1-F0uSaHNVNP+8es5r9TpanhtcX18=" + }, + "path-key": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/path-key/-/path-key-2.0.1.tgz", + "integrity": "sha1-QRyttXTFoUDTpLGRDUDYDMn0C0A=", + "dev": true + }, + "path-parse": { + "version": "1.0.6", + "resolved": "https://registry.npmjs.org/path-parse/-/path-parse-1.0.6.tgz", + "integrity": "sha512-GSmOT2EbHrINBf9SR7CDELwlJ8AENk3Qn7OikK4nFYAu3Ote2+JYNVvkpAEQm3/TLNEJFD/xZJjzyxg3KBWOzw==", + "dev": true + }, + "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" + } + }, + "pause-stream": { + "version": "0.0.11", + "resolved": "https://registry.npmjs.org/pause-stream/-/pause-stream-0.0.11.tgz", + "integrity": "sha1-/lo0sMvOErWqaitAPuLnO2AvFEU=", + "dev": true, + "requires": { + "through": "~2.3" + } + }, + "pbkdf2": { + "version": "3.1.1", + "resolved": "https://registry.npmjs.org/pbkdf2/-/pbkdf2-3.1.1.tgz", + "integrity": "sha512-4Ejy1OPxi9f2tt1rRV7Go7zmfDQ+ZectEQz3VGUQhgq62HtIRPDyG/JtnwIxs6x3uNMwo2V7q1fMvKjb+Tnpqg==", + "dev": true, + "requires": { + "create-hash": "^1.1.2", + "create-hmac": "^1.1.4", + "ripemd160": "^2.0.1", + "safe-buffer": "^5.0.1", + "sha.js": "^2.4.8" + } + }, + "performance-now": { + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/performance-now/-/performance-now-2.1.0.tgz", + "integrity": "sha1-Ywn04OX6kT7BxpMHrjZLSzd8nns=", + "dev": true + }, + "physical-cpu-count": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/physical-cpu-count/-/physical-cpu-count-2.0.0.tgz", + "integrity": "sha1-GN4vl+S/epVRrXURlCtUlverpmA=", + "dev": true + }, + "picomatch": { + "version": "2.2.2", + "resolved": "https://registry.npmjs.org/picomatch/-/picomatch-2.2.2.tgz", + "integrity": "sha512-q0M/9eZHzmr0AulXyPwNfZjtwZ/RBZlbN3K3CErVrk50T2ASYI7Bye0EvekFY3IP1Nt2DHu0re+V2ZHIpMkuWg==", + "dev": true + }, + "pidtree": { + "version": "0.3.1", + "resolved": "https://registry.npmjs.org/pidtree/-/pidtree-0.3.1.tgz", + "integrity": "sha512-qQbW94hLHEqCg7nhby4yRC7G2+jYHY4Rguc2bjw7Uug4GIJuu1tvf2uHaZv5Q8zdt+WKJ6qK1FOI6amaWUo5FA==", + "dev": true + }, + "pify": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/pify/-/pify-3.0.0.tgz", + "integrity": "sha1-5aSs0sEB/fPZpNB/DbxNtJ3SgXY=", + "dev": true + }, + "pinkie": { + "version": "2.0.4", + "resolved": "https://registry.npmjs.org/pinkie/-/pinkie-2.0.4.tgz", + "integrity": "sha1-clVrgM+g1IqXToDnckjoDtT3+HA=", + "dev": true + }, + "pinkie-promise": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/pinkie-promise/-/pinkie-promise-2.0.1.tgz", + "integrity": "sha1-ITXW36ejWMBprJsXh3YogihFD/o=", + "dev": true, + "requires": { + "pinkie": "^2.0.0" + } + }, + "pirates": { + "version": "4.0.1", + "resolved": "https://registry.npmjs.org/pirates/-/pirates-4.0.1.tgz", + "integrity": "sha512-WuNqLTbMI3tmfef2TKxlQmAiLHKtFhlsCZnPIpuv2Ow0RDVO8lfy1Opf4NUzlMXLjPl+Men7AuVdX6TA+s+uGA==", + "dev": true, + "requires": { + "node-modules-regexp": "^1.0.0" + } + }, + "pkg-dir": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/pkg-dir/-/pkg-dir-2.0.0.tgz", + "integrity": "sha1-9tXREJ4Z1j7fQo4L1X4Sd3YVM0s=", + "dev": true, + "requires": { + "find-up": "^2.1.0" + } + }, + "pn": { + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/pn/-/pn-1.1.0.tgz", + "integrity": "sha512-2qHaIQr2VLRFoxe2nASzsV6ef4yOOH+Fi9FBOVH6cqeSgUnoyySPZkxzLuzd+RYOQTRpROA0ztTMqxROKSb/nA==", + "dev": true + }, + "posix-character-classes": { + "version": "0.1.1", + "resolved": "https://registry.npmjs.org/posix-character-classes/-/posix-character-classes-0.1.1.tgz", + "integrity": "sha1-AerA/jta9xoqbAL+q7jB/vfgDqs=", + "dev": true + }, + "postcss": { + "version": "8.2.2", + "resolved": "https://registry.npmjs.org/postcss/-/postcss-8.2.2.tgz", + "integrity": "sha512-HM1NDNWLgglJPQQMNwvLxgH2KcrKZklKLi/xXYIOaqQB57p/pDWEJNS83PVICYsn1Dg/9C26TiejNr422/ePaQ==", + "requires": { + "colorette": "^1.2.1", + "nanoid": "^3.1.20", + "source-map": "^0.6.1" + } + }, + "postcss-calc": { + "version": "7.0.5", + "resolved": "https://registry.npmjs.org/postcss-calc/-/postcss-calc-7.0.5.tgz", + "integrity": "sha512-1tKHutbGtLtEZF6PT4JSihCHfIVldU72mZ8SdZHIYriIZ9fh9k9aWSppaT8rHsyI3dX+KSR+W+Ix9BMY3AODrg==", + "dev": true, + "requires": { + "postcss": "^7.0.27", + "postcss-selector-parser": "^6.0.2", + "postcss-value-parser": "^4.0.2" + }, + "dependencies": { + "postcss": { + "version": "7.0.35", + "resolved": "https://registry.npmjs.org/postcss/-/postcss-7.0.35.tgz", + "integrity": "sha512-3QT8bBJeX/S5zKTTjTCIjRF3If4avAT6kqxcASlTWEtAFCb9NH0OUxNDfgZSWdP5fJnBYCMEWkIFfWeugjzYMg==", + "dev": true, + "requires": { + "chalk": "^2.4.2", + "source-map": "^0.6.1", + "supports-color": "^6.1.0" + } + }, + "postcss-value-parser": { + "version": "4.1.0", + "resolved": "https://registry.npmjs.org/postcss-value-parser/-/postcss-value-parser-4.1.0.tgz", + "integrity": "sha512-97DXOFbQJhk71ne5/Mt6cOu6yxsSfM0QGQyl0L25Gca4yGWEGJaig7l7gbCX623VqTBNGLRLaVUCnNkcedlRSQ==", + "dev": true + }, + "supports-color": { + "version": "6.1.0", + "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-6.1.0.tgz", + "integrity": "sha512-qe1jfm1Mg7Nq/NSh6XE24gPXROEVsWHxC1LIx//XNlD9iw7YZQGjZNjYN7xGaEG6iKdA8EtNFW6R0gjnVXp+wQ==", + "dev": true, + "requires": { + "has-flag": "^3.0.0" + } + } + } + }, + "postcss-colormin": { + "version": "4.0.3", + "resolved": "https://registry.npmjs.org/postcss-colormin/-/postcss-colormin-4.0.3.tgz", + "integrity": "sha512-WyQFAdDZpExQh32j0U0feWisZ0dmOtPl44qYmJKkq9xFWY3p+4qnRzCHeNrkeRhwPHz9bQ3mo0/yVkaply0MNw==", + "dev": true, + "requires": { + "browserslist": "^4.0.0", + "color": "^3.0.0", + "has": "^1.0.0", + "postcss": "^7.0.0", + "postcss-value-parser": "^3.0.0" + }, + "dependencies": { + "postcss": { + "version": "7.0.35", + "resolved": "https://registry.npmjs.org/postcss/-/postcss-7.0.35.tgz", + "integrity": "sha512-3QT8bBJeX/S5zKTTjTCIjRF3If4avAT6kqxcASlTWEtAFCb9NH0OUxNDfgZSWdP5fJnBYCMEWkIFfWeugjzYMg==", + "dev": true, + "requires": { + "chalk": "^2.4.2", + "source-map": "^0.6.1", + "supports-color": "^6.1.0" + } + }, + "supports-color": { + "version": "6.1.0", + "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-6.1.0.tgz", + "integrity": "sha512-qe1jfm1Mg7Nq/NSh6XE24gPXROEVsWHxC1LIx//XNlD9iw7YZQGjZNjYN7xGaEG6iKdA8EtNFW6R0gjnVXp+wQ==", + "dev": true, + "requires": { + "has-flag": "^3.0.0" + } + } + } + }, + "postcss-convert-values": { + "version": "4.0.1", + "resolved": "https://registry.npmjs.org/postcss-convert-values/-/postcss-convert-values-4.0.1.tgz", + "integrity": "sha512-Kisdo1y77KUC0Jmn0OXU/COOJbzM8cImvw1ZFsBgBgMgb1iL23Zs/LXRe3r+EZqM3vGYKdQ2YJVQ5VkJI+zEJQ==", + "dev": true, + "requires": { + "postcss": "^7.0.0", + "postcss-value-parser": "^3.0.0" + }, + "dependencies": { + "postcss": { + "version": "7.0.35", + "resolved": "https://registry.npmjs.org/postcss/-/postcss-7.0.35.tgz", + "integrity": "sha512-3QT8bBJeX/S5zKTTjTCIjRF3If4avAT6kqxcASlTWEtAFCb9NH0OUxNDfgZSWdP5fJnBYCMEWkIFfWeugjzYMg==", + "dev": true, + "requires": { + "chalk": "^2.4.2", + "source-map": "^0.6.1", + "supports-color": "^6.1.0" + } + }, + "supports-color": { + "version": "6.1.0", + "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-6.1.0.tgz", + "integrity": "sha512-qe1jfm1Mg7Nq/NSh6XE24gPXROEVsWHxC1LIx//XNlD9iw7YZQGjZNjYN7xGaEG6iKdA8EtNFW6R0gjnVXp+wQ==", + "dev": true, + "requires": { + "has-flag": "^3.0.0" + } + } + } + }, + "postcss-discard-comments": { + "version": "4.0.2", + "resolved": "https://registry.npmjs.org/postcss-discard-comments/-/postcss-discard-comments-4.0.2.tgz", + "integrity": "sha512-RJutN259iuRf3IW7GZyLM5Sw4GLTOH8FmsXBnv8Ab/Tc2k4SR4qbV4DNbyyY4+Sjo362SyDmW2DQ7lBSChrpkg==", + "dev": true, + "requires": { + "postcss": "^7.0.0" + }, + "dependencies": { + "postcss": { + "version": "7.0.35", + "resolved": "https://registry.npmjs.org/postcss/-/postcss-7.0.35.tgz", + "integrity": "sha512-3QT8bBJeX/S5zKTTjTCIjRF3If4avAT6kqxcASlTWEtAFCb9NH0OUxNDfgZSWdP5fJnBYCMEWkIFfWeugjzYMg==", + "dev": true, + "requires": { + "chalk": "^2.4.2", + "source-map": "^0.6.1", + "supports-color": "^6.1.0" + } + }, + "supports-color": { + "version": "6.1.0", + "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-6.1.0.tgz", + "integrity": "sha512-qe1jfm1Mg7Nq/NSh6XE24gPXROEVsWHxC1LIx//XNlD9iw7YZQGjZNjYN7xGaEG6iKdA8EtNFW6R0gjnVXp+wQ==", + "dev": true, + "requires": { + "has-flag": "^3.0.0" + } + } + } + }, + "postcss-discard-duplicates": { + "version": "4.0.2", + "resolved": "https://registry.npmjs.org/postcss-discard-duplicates/-/postcss-discard-duplicates-4.0.2.tgz", + "integrity": "sha512-ZNQfR1gPNAiXZhgENFfEglF93pciw0WxMkJeVmw8eF+JZBbMD7jp6C67GqJAXVZP2BWbOztKfbsdmMp/k8c6oQ==", + "dev": true, + "requires": { + "postcss": "^7.0.0" + }, + "dependencies": { + "postcss": { + "version": "7.0.35", + "resolved": "https://registry.npmjs.org/postcss/-/postcss-7.0.35.tgz", + "integrity": "sha512-3QT8bBJeX/S5zKTTjTCIjRF3If4avAT6kqxcASlTWEtAFCb9NH0OUxNDfgZSWdP5fJnBYCMEWkIFfWeugjzYMg==", + "dev": true, + "requires": { + "chalk": "^2.4.2", + "source-map": "^0.6.1", + "supports-color": "^6.1.0" + } + }, + "supports-color": { + "version": "6.1.0", + "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-6.1.0.tgz", + "integrity": "sha512-qe1jfm1Mg7Nq/NSh6XE24gPXROEVsWHxC1LIx//XNlD9iw7YZQGjZNjYN7xGaEG6iKdA8EtNFW6R0gjnVXp+wQ==", + "dev": true, + "requires": { + "has-flag": "^3.0.0" + } + } + } + }, + "postcss-discard-empty": { + "version": "4.0.1", + "resolved": "https://registry.npmjs.org/postcss-discard-empty/-/postcss-discard-empty-4.0.1.tgz", + "integrity": "sha512-B9miTzbznhDjTfjvipfHoqbWKwd0Mj+/fL5s1QOz06wufguil+Xheo4XpOnc4NqKYBCNqqEzgPv2aPBIJLox0w==", + "dev": true, + "requires": { + "postcss": "^7.0.0" + }, + "dependencies": { + "postcss": { + "version": "7.0.35", + "resolved": "https://registry.npmjs.org/postcss/-/postcss-7.0.35.tgz", + "integrity": "sha512-3QT8bBJeX/S5zKTTjTCIjRF3If4avAT6kqxcASlTWEtAFCb9NH0OUxNDfgZSWdP5fJnBYCMEWkIFfWeugjzYMg==", + "dev": true, + "requires": { + "chalk": "^2.4.2", + "source-map": "^0.6.1", + "supports-color": "^6.1.0" + } + }, + "supports-color": { + "version": "6.1.0", + "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-6.1.0.tgz", + "integrity": "sha512-qe1jfm1Mg7Nq/NSh6XE24gPXROEVsWHxC1LIx//XNlD9iw7YZQGjZNjYN7xGaEG6iKdA8EtNFW6R0gjnVXp+wQ==", + "dev": true, + "requires": { + "has-flag": "^3.0.0" + } + } + } + }, + "postcss-discard-overridden": { + "version": "4.0.1", + "resolved": "https://registry.npmjs.org/postcss-discard-overridden/-/postcss-discard-overridden-4.0.1.tgz", + "integrity": "sha512-IYY2bEDD7g1XM1IDEsUT4//iEYCxAmP5oDSFMVU/JVvT7gh+l4fmjciLqGgwjdWpQIdb0Che2VX00QObS5+cTg==", + "dev": true, + "requires": { + "postcss": "^7.0.0" + }, + "dependencies": { + "postcss": { + "version": "7.0.35", + "resolved": "https://registry.npmjs.org/postcss/-/postcss-7.0.35.tgz", + "integrity": "sha512-3QT8bBJeX/S5zKTTjTCIjRF3If4avAT6kqxcASlTWEtAFCb9NH0OUxNDfgZSWdP5fJnBYCMEWkIFfWeugjzYMg==", + "dev": true, + "requires": { + "chalk": "^2.4.2", + "source-map": "^0.6.1", + "supports-color": "^6.1.0" + } + }, + "supports-color": { + "version": "6.1.0", + "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-6.1.0.tgz", + "integrity": "sha512-qe1jfm1Mg7Nq/NSh6XE24gPXROEVsWHxC1LIx//XNlD9iw7YZQGjZNjYN7xGaEG6iKdA8EtNFW6R0gjnVXp+wQ==", + "dev": true, + "requires": { + "has-flag": "^3.0.0" + } + } + } + }, + "postcss-merge-longhand": { + "version": "4.0.11", + "resolved": "https://registry.npmjs.org/postcss-merge-longhand/-/postcss-merge-longhand-4.0.11.tgz", + "integrity": "sha512-alx/zmoeXvJjp7L4mxEMjh8lxVlDFX1gqWHzaaQewwMZiVhLo42TEClKaeHbRf6J7j82ZOdTJ808RtN0ZOZwvw==", + "dev": true, + "requires": { + "css-color-names": "0.0.4", + "postcss": "^7.0.0", + "postcss-value-parser": "^3.0.0", + "stylehacks": "^4.0.0" + }, + "dependencies": { + "postcss": { + "version": "7.0.35", + "resolved": "https://registry.npmjs.org/postcss/-/postcss-7.0.35.tgz", + "integrity": "sha512-3QT8bBJeX/S5zKTTjTCIjRF3If4avAT6kqxcASlTWEtAFCb9NH0OUxNDfgZSWdP5fJnBYCMEWkIFfWeugjzYMg==", + "dev": true, + "requires": { + "chalk": "^2.4.2", + "source-map": "^0.6.1", + "supports-color": "^6.1.0" + } + }, + "supports-color": { + "version": "6.1.0", + "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-6.1.0.tgz", + "integrity": "sha512-qe1jfm1Mg7Nq/NSh6XE24gPXROEVsWHxC1LIx//XNlD9iw7YZQGjZNjYN7xGaEG6iKdA8EtNFW6R0gjnVXp+wQ==", + "dev": true, + "requires": { + "has-flag": "^3.0.0" + } + } + } + }, + "postcss-merge-rules": { + "version": "4.0.3", + "resolved": "https://registry.npmjs.org/postcss-merge-rules/-/postcss-merge-rules-4.0.3.tgz", + "integrity": "sha512-U7e3r1SbvYzO0Jr3UT/zKBVgYYyhAz0aitvGIYOYK5CPmkNih+WDSsS5tvPrJ8YMQYlEMvsZIiqmn7HdFUaeEQ==", + "dev": true, + "requires": { + "browserslist": "^4.0.0", + "caniuse-api": "^3.0.0", + "cssnano-util-same-parent": "^4.0.0", + "postcss": "^7.0.0", + "postcss-selector-parser": "^3.0.0", + "vendors": "^1.0.0" + }, + "dependencies": { + "postcss": { + "version": "7.0.35", + "resolved": "https://registry.npmjs.org/postcss/-/postcss-7.0.35.tgz", + "integrity": "sha512-3QT8bBJeX/S5zKTTjTCIjRF3If4avAT6kqxcASlTWEtAFCb9NH0OUxNDfgZSWdP5fJnBYCMEWkIFfWeugjzYMg==", + "dev": true, + "requires": { + "chalk": "^2.4.2", + "source-map": "^0.6.1", + "supports-color": "^6.1.0" + } + }, + "postcss-selector-parser": { + "version": "3.1.2", + "resolved": "https://registry.npmjs.org/postcss-selector-parser/-/postcss-selector-parser-3.1.2.tgz", + "integrity": "sha512-h7fJ/5uWuRVyOtkO45pnt1Ih40CEleeyCHzipqAZO2e5H20g25Y48uYnFUiShvY4rZWNJ/Bib/KVPmanaCtOhA==", + "dev": true, + "requires": { + "dot-prop": "^5.2.0", + "indexes-of": "^1.0.1", + "uniq": "^1.0.1" + } + }, + "supports-color": { + "version": "6.1.0", + "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-6.1.0.tgz", + "integrity": "sha512-qe1jfm1Mg7Nq/NSh6XE24gPXROEVsWHxC1LIx//XNlD9iw7YZQGjZNjYN7xGaEG6iKdA8EtNFW6R0gjnVXp+wQ==", + "dev": true, + "requires": { + "has-flag": "^3.0.0" + } + } + } + }, + "postcss-minify-font-values": { + "version": "4.0.2", + "resolved": "https://registry.npmjs.org/postcss-minify-font-values/-/postcss-minify-font-values-4.0.2.tgz", + "integrity": "sha512-j85oO6OnRU9zPf04+PZv1LYIYOprWm6IA6zkXkrJXyRveDEuQggG6tvoy8ir8ZwjLxLuGfNkCZEQG7zan+Hbtg==", + "dev": true, + "requires": { + "postcss": "^7.0.0", + "postcss-value-parser": "^3.0.0" + }, + "dependencies": { + "postcss": { + "version": "7.0.35", + "resolved": "https://registry.npmjs.org/postcss/-/postcss-7.0.35.tgz", + "integrity": "sha512-3QT8bBJeX/S5zKTTjTCIjRF3If4avAT6kqxcASlTWEtAFCb9NH0OUxNDfgZSWdP5fJnBYCMEWkIFfWeugjzYMg==", + "dev": true, + "requires": { + "chalk": "^2.4.2", + "source-map": "^0.6.1", + "supports-color": "^6.1.0" + } + }, + "supports-color": { + "version": "6.1.0", + "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-6.1.0.tgz", + "integrity": "sha512-qe1jfm1Mg7Nq/NSh6XE24gPXROEVsWHxC1LIx//XNlD9iw7YZQGjZNjYN7xGaEG6iKdA8EtNFW6R0gjnVXp+wQ==", + "dev": true, + "requires": { + "has-flag": "^3.0.0" + } + } + } + }, + "postcss-minify-gradients": { + "version": "4.0.2", + "resolved": "https://registry.npmjs.org/postcss-minify-gradients/-/postcss-minify-gradients-4.0.2.tgz", + "integrity": "sha512-qKPfwlONdcf/AndP1U8SJ/uzIJtowHlMaSioKzebAXSG4iJthlWC9iSWznQcX4f66gIWX44RSA841HTHj3wK+Q==", + "dev": true, + "requires": { + "cssnano-util-get-arguments": "^4.0.0", + "is-color-stop": "^1.0.0", + "postcss": "^7.0.0", + "postcss-value-parser": "^3.0.0" + }, + "dependencies": { + "postcss": { + "version": "7.0.35", + "resolved": "https://registry.npmjs.org/postcss/-/postcss-7.0.35.tgz", + "integrity": "sha512-3QT8bBJeX/S5zKTTjTCIjRF3If4avAT6kqxcASlTWEtAFCb9NH0OUxNDfgZSWdP5fJnBYCMEWkIFfWeugjzYMg==", + "dev": true, + "requires": { + "chalk": "^2.4.2", + "source-map": "^0.6.1", + "supports-color": "^6.1.0" + } + }, + "supports-color": { + "version": "6.1.0", + "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-6.1.0.tgz", + "integrity": "sha512-qe1jfm1Mg7Nq/NSh6XE24gPXROEVsWHxC1LIx//XNlD9iw7YZQGjZNjYN7xGaEG6iKdA8EtNFW6R0gjnVXp+wQ==", + "dev": true, + "requires": { + "has-flag": "^3.0.0" + } + } + } + }, + "postcss-minify-params": { + "version": "4.0.2", + "resolved": "https://registry.npmjs.org/postcss-minify-params/-/postcss-minify-params-4.0.2.tgz", + "integrity": "sha512-G7eWyzEx0xL4/wiBBJxJOz48zAKV2WG3iZOqVhPet/9geefm/Px5uo1fzlHu+DOjT+m0Mmiz3jkQzVHe6wxAWg==", + "dev": true, + "requires": { + "alphanum-sort": "^1.0.0", + "browserslist": "^4.0.0", + "cssnano-util-get-arguments": "^4.0.0", + "postcss": "^7.0.0", + "postcss-value-parser": "^3.0.0", + "uniqs": "^2.0.0" + }, + "dependencies": { + "postcss": { + "version": "7.0.35", + "resolved": "https://registry.npmjs.org/postcss/-/postcss-7.0.35.tgz", + "integrity": "sha512-3QT8bBJeX/S5zKTTjTCIjRF3If4avAT6kqxcASlTWEtAFCb9NH0OUxNDfgZSWdP5fJnBYCMEWkIFfWeugjzYMg==", + "dev": true, + "requires": { + "chalk": "^2.4.2", + "source-map": "^0.6.1", + "supports-color": "^6.1.0" + } + }, + "supports-color": { + "version": "6.1.0", + "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-6.1.0.tgz", + "integrity": "sha512-qe1jfm1Mg7Nq/NSh6XE24gPXROEVsWHxC1LIx//XNlD9iw7YZQGjZNjYN7xGaEG6iKdA8EtNFW6R0gjnVXp+wQ==", + "dev": true, + "requires": { + "has-flag": "^3.0.0" + } + } + } + }, + "postcss-minify-selectors": { + "version": "4.0.2", + "resolved": "https://registry.npmjs.org/postcss-minify-selectors/-/postcss-minify-selectors-4.0.2.tgz", + "integrity": "sha512-D5S1iViljXBj9kflQo4YutWnJmwm8VvIsU1GeXJGiG9j8CIg9zs4voPMdQDUmIxetUOh60VilsNzCiAFTOqu3g==", + "dev": true, + "requires": { + "alphanum-sort": "^1.0.0", + "has": "^1.0.0", + "postcss": "^7.0.0", + "postcss-selector-parser": "^3.0.0" + }, + "dependencies": { + "postcss": { + "version": "7.0.35", + "resolved": "https://registry.npmjs.org/postcss/-/postcss-7.0.35.tgz", + "integrity": "sha512-3QT8bBJeX/S5zKTTjTCIjRF3If4avAT6kqxcASlTWEtAFCb9NH0OUxNDfgZSWdP5fJnBYCMEWkIFfWeugjzYMg==", + "dev": true, + "requires": { + "chalk": "^2.4.2", + "source-map": "^0.6.1", + "supports-color": "^6.1.0" + } + }, + "postcss-selector-parser": { + "version": "3.1.2", + "resolved": "https://registry.npmjs.org/postcss-selector-parser/-/postcss-selector-parser-3.1.2.tgz", + "integrity": "sha512-h7fJ/5uWuRVyOtkO45pnt1Ih40CEleeyCHzipqAZO2e5H20g25Y48uYnFUiShvY4rZWNJ/Bib/KVPmanaCtOhA==", + "dev": true, + "requires": { + "dot-prop": "^5.2.0", + "indexes-of": "^1.0.1", + "uniq": "^1.0.1" + } + }, + "supports-color": { + "version": "6.1.0", + "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-6.1.0.tgz", + "integrity": "sha512-qe1jfm1Mg7Nq/NSh6XE24gPXROEVsWHxC1LIx//XNlD9iw7YZQGjZNjYN7xGaEG6iKdA8EtNFW6R0gjnVXp+wQ==", + "dev": true, + "requires": { + "has-flag": "^3.0.0" + } + } + } + }, + "postcss-modules-extract-imports": { + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/postcss-modules-extract-imports/-/postcss-modules-extract-imports-1.1.0.tgz", + "integrity": "sha1-thTJcgvmgW6u41+zpfqh26agXds=", + "dev": true, + "requires": { + "postcss": "^6.0.1" + }, + "dependencies": { + "postcss": { + "version": "6.0.23", + "resolved": "https://registry.npmjs.org/postcss/-/postcss-6.0.23.tgz", + "integrity": "sha512-soOk1h6J3VMTZtVeVpv15/Hpdl2cBLX3CAw4TAbkpTJiNPk9YP/zWcD1ND+xEtvyuuvKzbxliTOIyvkSeSJ6ag==", + "dev": true, + "requires": { + "chalk": "^2.4.1", + "source-map": "^0.6.1", + "supports-color": "^5.4.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": "sha1-99gMOYxaOT+nlkRmvRlQCn1hwGk=", + "dev": true, + "requires": { + "css-selector-tokenizer": "^0.7.0", + "postcss": "^6.0.1" + }, + "dependencies": { + "postcss": { + "version": "6.0.23", + "resolved": "https://registry.npmjs.org/postcss/-/postcss-6.0.23.tgz", + "integrity": "sha512-soOk1h6J3VMTZtVeVpv15/Hpdl2cBLX3CAw4TAbkpTJiNPk9YP/zWcD1ND+xEtvyuuvKzbxliTOIyvkSeSJ6ag==", + "dev": true, + "requires": { + "chalk": "^2.4.1", + "source-map": "^0.6.1", + "supports-color": "^5.4.0" + } + } + } + }, + "postcss-modules-scope": { + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/postcss-modules-scope/-/postcss-modules-scope-1.1.0.tgz", + "integrity": "sha1-1upkmUx5+XtipytCb75gVqGUu5A=", + "dev": true, + "requires": { + "css-selector-tokenizer": "^0.7.0", + "postcss": "^6.0.1" + }, + "dependencies": { + "postcss": { + "version": "6.0.23", + "resolved": "https://registry.npmjs.org/postcss/-/postcss-6.0.23.tgz", + "integrity": "sha512-soOk1h6J3VMTZtVeVpv15/Hpdl2cBLX3CAw4TAbkpTJiNPk9YP/zWcD1ND+xEtvyuuvKzbxliTOIyvkSeSJ6ag==", + "dev": true, + "requires": { + "chalk": "^2.4.1", + "source-map": "^0.6.1", + "supports-color": "^5.4.0" + } + } + } + }, + "postcss-modules-values": { + "version": "1.3.0", + "resolved": "https://registry.npmjs.org/postcss-modules-values/-/postcss-modules-values-1.3.0.tgz", + "integrity": "sha1-7P+p1+GSUYOJ9CrQ6D9yrsRW6iA=", + "dev": true, + "requires": { + "icss-replace-symbols": "^1.1.0", + "postcss": "^6.0.1" + }, + "dependencies": { + "postcss": { + "version": "6.0.23", + "resolved": "https://registry.npmjs.org/postcss/-/postcss-6.0.23.tgz", + "integrity": "sha512-soOk1h6J3VMTZtVeVpv15/Hpdl2cBLX3CAw4TAbkpTJiNPk9YP/zWcD1ND+xEtvyuuvKzbxliTOIyvkSeSJ6ag==", + "dev": true, + "requires": { + "chalk": "^2.4.1", + "source-map": "^0.6.1", + "supports-color": "^5.4.0" + } + } + } + }, + "postcss-normalize-charset": { + "version": "4.0.1", + "resolved": "https://registry.npmjs.org/postcss-normalize-charset/-/postcss-normalize-charset-4.0.1.tgz", + "integrity": "sha512-gMXCrrlWh6G27U0hF3vNvR3w8I1s2wOBILvA87iNXaPvSNo5uZAMYsZG7XjCUf1eVxuPfyL4TJ7++SGZLc9A3g==", + "dev": true, + "requires": { + "postcss": "^7.0.0" + }, + "dependencies": { + "postcss": { + "version": "7.0.35", + "resolved": "https://registry.npmjs.org/postcss/-/postcss-7.0.35.tgz", + "integrity": "sha512-3QT8bBJeX/S5zKTTjTCIjRF3If4avAT6kqxcASlTWEtAFCb9NH0OUxNDfgZSWdP5fJnBYCMEWkIFfWeugjzYMg==", + "dev": true, + "requires": { + "chalk": "^2.4.2", + "source-map": "^0.6.1", + "supports-color": "^6.1.0" + } + }, + "supports-color": { + "version": "6.1.0", + "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-6.1.0.tgz", + "integrity": "sha512-qe1jfm1Mg7Nq/NSh6XE24gPXROEVsWHxC1LIx//XNlD9iw7YZQGjZNjYN7xGaEG6iKdA8EtNFW6R0gjnVXp+wQ==", + "dev": true, + "requires": { + "has-flag": "^3.0.0" + } + } + } + }, + "postcss-normalize-display-values": { + "version": "4.0.2", + "resolved": "https://registry.npmjs.org/postcss-normalize-display-values/-/postcss-normalize-display-values-4.0.2.tgz", + "integrity": "sha512-3F2jcsaMW7+VtRMAqf/3m4cPFhPD3EFRgNs18u+k3lTJJlVe7d0YPO+bnwqo2xg8YiRpDXJI2u8A0wqJxMsQuQ==", + "dev": true, + "requires": { + "cssnano-util-get-match": "^4.0.0", + "postcss": "^7.0.0", + "postcss-value-parser": "^3.0.0" + }, + "dependencies": { + "postcss": { + "version": "7.0.35", + "resolved": "https://registry.npmjs.org/postcss/-/postcss-7.0.35.tgz", + "integrity": "sha512-3QT8bBJeX/S5zKTTjTCIjRF3If4avAT6kqxcASlTWEtAFCb9NH0OUxNDfgZSWdP5fJnBYCMEWkIFfWeugjzYMg==", + "dev": true, + "requires": { + "chalk": "^2.4.2", + "source-map": "^0.6.1", + "supports-color": "^6.1.0" + } + }, + "supports-color": { + "version": "6.1.0", + "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-6.1.0.tgz", + "integrity": "sha512-qe1jfm1Mg7Nq/NSh6XE24gPXROEVsWHxC1LIx//XNlD9iw7YZQGjZNjYN7xGaEG6iKdA8EtNFW6R0gjnVXp+wQ==", + "dev": true, + "requires": { + "has-flag": "^3.0.0" + } + } + } + }, + "postcss-normalize-positions": { + "version": "4.0.2", + "resolved": "https://registry.npmjs.org/postcss-normalize-positions/-/postcss-normalize-positions-4.0.2.tgz", + "integrity": "sha512-Dlf3/9AxpxE+NF1fJxYDeggi5WwV35MXGFnnoccP/9qDtFrTArZ0D0R+iKcg5WsUd8nUYMIl8yXDCtcrT8JrdA==", + "dev": true, + "requires": { + "cssnano-util-get-arguments": "^4.0.0", + "has": "^1.0.0", + "postcss": "^7.0.0", + "postcss-value-parser": "^3.0.0" + }, + "dependencies": { + "postcss": { + "version": "7.0.35", + "resolved": "https://registry.npmjs.org/postcss/-/postcss-7.0.35.tgz", + "integrity": "sha512-3QT8bBJeX/S5zKTTjTCIjRF3If4avAT6kqxcASlTWEtAFCb9NH0OUxNDfgZSWdP5fJnBYCMEWkIFfWeugjzYMg==", + "dev": true, + "requires": { + "chalk": "^2.4.2", + "source-map": "^0.6.1", + "supports-color": "^6.1.0" + } + }, + "supports-color": { + "version": "6.1.0", + "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-6.1.0.tgz", + "integrity": "sha512-qe1jfm1Mg7Nq/NSh6XE24gPXROEVsWHxC1LIx//XNlD9iw7YZQGjZNjYN7xGaEG6iKdA8EtNFW6R0gjnVXp+wQ==", + "dev": true, + "requires": { + "has-flag": "^3.0.0" + } + } + } + }, + "postcss-normalize-repeat-style": { + "version": "4.0.2", + "resolved": "https://registry.npmjs.org/postcss-normalize-repeat-style/-/postcss-normalize-repeat-style-4.0.2.tgz", + "integrity": "sha512-qvigdYYMpSuoFs3Is/f5nHdRLJN/ITA7huIoCyqqENJe9PvPmLhNLMu7QTjPdtnVf6OcYYO5SHonx4+fbJE1+Q==", + "dev": true, + "requires": { + "cssnano-util-get-arguments": "^4.0.0", + "cssnano-util-get-match": "^4.0.0", + "postcss": "^7.0.0", + "postcss-value-parser": "^3.0.0" + }, + "dependencies": { + "postcss": { + "version": "7.0.35", + "resolved": "https://registry.npmjs.org/postcss/-/postcss-7.0.35.tgz", + "integrity": "sha512-3QT8bBJeX/S5zKTTjTCIjRF3If4avAT6kqxcASlTWEtAFCb9NH0OUxNDfgZSWdP5fJnBYCMEWkIFfWeugjzYMg==", + "dev": true, + "requires": { + "chalk": "^2.4.2", + "source-map": "^0.6.1", + "supports-color": "^6.1.0" + } + }, + "supports-color": { + "version": "6.1.0", + "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-6.1.0.tgz", + "integrity": "sha512-qe1jfm1Mg7Nq/NSh6XE24gPXROEVsWHxC1LIx//XNlD9iw7YZQGjZNjYN7xGaEG6iKdA8EtNFW6R0gjnVXp+wQ==", + "dev": true, + "requires": { + "has-flag": "^3.0.0" + } + } + } + }, + "postcss-normalize-string": { + "version": "4.0.2", + "resolved": "https://registry.npmjs.org/postcss-normalize-string/-/postcss-normalize-string-4.0.2.tgz", + "integrity": "sha512-RrERod97Dnwqq49WNz8qo66ps0swYZDSb6rM57kN2J+aoyEAJfZ6bMx0sx/F9TIEX0xthPGCmeyiam/jXif0eA==", + "dev": true, + "requires": { + "has": "^1.0.0", + "postcss": "^7.0.0", + "postcss-value-parser": "^3.0.0" + }, + "dependencies": { + "postcss": { + "version": "7.0.35", + "resolved": "https://registry.npmjs.org/postcss/-/postcss-7.0.35.tgz", + "integrity": "sha512-3QT8bBJeX/S5zKTTjTCIjRF3If4avAT6kqxcASlTWEtAFCb9NH0OUxNDfgZSWdP5fJnBYCMEWkIFfWeugjzYMg==", + "dev": true, + "requires": { + "chalk": "^2.4.2", + "source-map": "^0.6.1", + "supports-color": "^6.1.0" + } + }, + "supports-color": { + "version": "6.1.0", + "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-6.1.0.tgz", + "integrity": "sha512-qe1jfm1Mg7Nq/NSh6XE24gPXROEVsWHxC1LIx//XNlD9iw7YZQGjZNjYN7xGaEG6iKdA8EtNFW6R0gjnVXp+wQ==", + "dev": true, + "requires": { + "has-flag": "^3.0.0" + } + } + } + }, + "postcss-normalize-timing-functions": { + "version": "4.0.2", + "resolved": "https://registry.npmjs.org/postcss-normalize-timing-functions/-/postcss-normalize-timing-functions-4.0.2.tgz", + "integrity": "sha512-acwJY95edP762e++00Ehq9L4sZCEcOPyaHwoaFOhIwWCDfik6YvqsYNxckee65JHLKzuNSSmAdxwD2Cud1Z54A==", + "dev": true, + "requires": { + "cssnano-util-get-match": "^4.0.0", + "postcss": "^7.0.0", + "postcss-value-parser": "^3.0.0" + }, + "dependencies": { + "postcss": { + "version": "7.0.35", + "resolved": "https://registry.npmjs.org/postcss/-/postcss-7.0.35.tgz", + "integrity": "sha512-3QT8bBJeX/S5zKTTjTCIjRF3If4avAT6kqxcASlTWEtAFCb9NH0OUxNDfgZSWdP5fJnBYCMEWkIFfWeugjzYMg==", + "dev": true, + "requires": { + "chalk": "^2.4.2", + "source-map": "^0.6.1", + "supports-color": "^6.1.0" + } + }, + "supports-color": { + "version": "6.1.0", + "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-6.1.0.tgz", + "integrity": "sha512-qe1jfm1Mg7Nq/NSh6XE24gPXROEVsWHxC1LIx//XNlD9iw7YZQGjZNjYN7xGaEG6iKdA8EtNFW6R0gjnVXp+wQ==", + "dev": true, + "requires": { + "has-flag": "^3.0.0" + } + } + } + }, + "postcss-normalize-unicode": { + "version": "4.0.1", + "resolved": "https://registry.npmjs.org/postcss-normalize-unicode/-/postcss-normalize-unicode-4.0.1.tgz", + "integrity": "sha512-od18Uq2wCYn+vZ/qCOeutvHjB5jm57ToxRaMeNuf0nWVHaP9Hua56QyMF6fs/4FSUnVIw0CBPsU0K4LnBPwYwg==", + "dev": true, + "requires": { + "browserslist": "^4.0.0", + "postcss": "^7.0.0", + "postcss-value-parser": "^3.0.0" + }, + "dependencies": { + "postcss": { + "version": "7.0.35", + "resolved": "https://registry.npmjs.org/postcss/-/postcss-7.0.35.tgz", + "integrity": "sha512-3QT8bBJeX/S5zKTTjTCIjRF3If4avAT6kqxcASlTWEtAFCb9NH0OUxNDfgZSWdP5fJnBYCMEWkIFfWeugjzYMg==", + "dev": true, + "requires": { + "chalk": "^2.4.2", + "source-map": "^0.6.1", + "supports-color": "^6.1.0" + } + }, + "supports-color": { + "version": "6.1.0", + "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-6.1.0.tgz", + "integrity": "sha512-qe1jfm1Mg7Nq/NSh6XE24gPXROEVsWHxC1LIx//XNlD9iw7YZQGjZNjYN7xGaEG6iKdA8EtNFW6R0gjnVXp+wQ==", + "dev": true, + "requires": { + "has-flag": "^3.0.0" + } + } + } + }, + "postcss-normalize-url": { + "version": "4.0.1", + "resolved": "https://registry.npmjs.org/postcss-normalize-url/-/postcss-normalize-url-4.0.1.tgz", + "integrity": "sha512-p5oVaF4+IHwu7VpMan/SSpmpYxcJMtkGppYf0VbdH5B6hN8YNmVyJLuY9FmLQTzY3fag5ESUUHDqM+heid0UVA==", + "dev": true, + "requires": { + "is-absolute-url": "^2.0.0", + "normalize-url": "^3.0.0", + "postcss": "^7.0.0", + "postcss-value-parser": "^3.0.0" + }, + "dependencies": { + "postcss": { + "version": "7.0.35", + "resolved": "https://registry.npmjs.org/postcss/-/postcss-7.0.35.tgz", + "integrity": "sha512-3QT8bBJeX/S5zKTTjTCIjRF3If4avAT6kqxcASlTWEtAFCb9NH0OUxNDfgZSWdP5fJnBYCMEWkIFfWeugjzYMg==", + "dev": true, + "requires": { + "chalk": "^2.4.2", + "source-map": "^0.6.1", + "supports-color": "^6.1.0" + } + }, + "supports-color": { + "version": "6.1.0", + "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-6.1.0.tgz", + "integrity": "sha512-qe1jfm1Mg7Nq/NSh6XE24gPXROEVsWHxC1LIx//XNlD9iw7YZQGjZNjYN7xGaEG6iKdA8EtNFW6R0gjnVXp+wQ==", + "dev": true, + "requires": { + "has-flag": "^3.0.0" + } + } + } + }, + "postcss-normalize-whitespace": { + "version": "4.0.2", + "resolved": "https://registry.npmjs.org/postcss-normalize-whitespace/-/postcss-normalize-whitespace-4.0.2.tgz", + "integrity": "sha512-tO8QIgrsI3p95r8fyqKV+ufKlSHh9hMJqACqbv2XknufqEDhDvbguXGBBqxw9nsQoXWf0qOqppziKJKHMD4GtA==", + "dev": true, + "requires": { + "postcss": "^7.0.0", + "postcss-value-parser": "^3.0.0" + }, + "dependencies": { + "postcss": { + "version": "7.0.35", + "resolved": "https://registry.npmjs.org/postcss/-/postcss-7.0.35.tgz", + "integrity": "sha512-3QT8bBJeX/S5zKTTjTCIjRF3If4avAT6kqxcASlTWEtAFCb9NH0OUxNDfgZSWdP5fJnBYCMEWkIFfWeugjzYMg==", + "dev": true, + "requires": { + "chalk": "^2.4.2", + "source-map": "^0.6.1", + "supports-color": "^6.1.0" + } + }, + "supports-color": { + "version": "6.1.0", + "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-6.1.0.tgz", + "integrity": "sha512-qe1jfm1Mg7Nq/NSh6XE24gPXROEVsWHxC1LIx//XNlD9iw7YZQGjZNjYN7xGaEG6iKdA8EtNFW6R0gjnVXp+wQ==", + "dev": true, + "requires": { + "has-flag": "^3.0.0" + } + } + } + }, + "postcss-ordered-values": { + "version": "4.1.2", + "resolved": "https://registry.npmjs.org/postcss-ordered-values/-/postcss-ordered-values-4.1.2.tgz", + "integrity": "sha512-2fCObh5UanxvSxeXrtLtlwVThBvHn6MQcu4ksNT2tsaV2Fg76R2CV98W7wNSlX+5/pFwEyaDwKLLoEV7uRybAw==", + "dev": true, + "requires": { + "cssnano-util-get-arguments": "^4.0.0", + "postcss": "^7.0.0", + "postcss-value-parser": "^3.0.0" + }, + "dependencies": { + "postcss": { + "version": "7.0.35", + "resolved": "https://registry.npmjs.org/postcss/-/postcss-7.0.35.tgz", + "integrity": "sha512-3QT8bBJeX/S5zKTTjTCIjRF3If4avAT6kqxcASlTWEtAFCb9NH0OUxNDfgZSWdP5fJnBYCMEWkIFfWeugjzYMg==", + "dev": true, + "requires": { + "chalk": "^2.4.2", + "source-map": "^0.6.1", + "supports-color": "^6.1.0" + } + }, + "supports-color": { + "version": "6.1.0", + "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-6.1.0.tgz", + "integrity": "sha512-qe1jfm1Mg7Nq/NSh6XE24gPXROEVsWHxC1LIx//XNlD9iw7YZQGjZNjYN7xGaEG6iKdA8EtNFW6R0gjnVXp+wQ==", + "dev": true, + "requires": { + "has-flag": "^3.0.0" + } + } + } + }, + "postcss-reduce-initial": { + "version": "4.0.3", + "resolved": "https://registry.npmjs.org/postcss-reduce-initial/-/postcss-reduce-initial-4.0.3.tgz", + "integrity": "sha512-gKWmR5aUulSjbzOfD9AlJiHCGH6AEVLaM0AV+aSioxUDd16qXP1PCh8d1/BGVvpdWn8k/HiK7n6TjeoXN1F7DA==", + "dev": true, + "requires": { + "browserslist": "^4.0.0", + "caniuse-api": "^3.0.0", + "has": "^1.0.0", + "postcss": "^7.0.0" + }, + "dependencies": { + "postcss": { + "version": "7.0.35", + "resolved": "https://registry.npmjs.org/postcss/-/postcss-7.0.35.tgz", + "integrity": "sha512-3QT8bBJeX/S5zKTTjTCIjRF3If4avAT6kqxcASlTWEtAFCb9NH0OUxNDfgZSWdP5fJnBYCMEWkIFfWeugjzYMg==", + "dev": true, + "requires": { + "chalk": "^2.4.2", + "source-map": "^0.6.1", + "supports-color": "^6.1.0" + } + }, + "supports-color": { + "version": "6.1.0", + "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-6.1.0.tgz", + "integrity": "sha512-qe1jfm1Mg7Nq/NSh6XE24gPXROEVsWHxC1LIx//XNlD9iw7YZQGjZNjYN7xGaEG6iKdA8EtNFW6R0gjnVXp+wQ==", + "dev": true, + "requires": { + "has-flag": "^3.0.0" + } + } + } + }, + "postcss-reduce-transforms": { + "version": "4.0.2", + "resolved": "https://registry.npmjs.org/postcss-reduce-transforms/-/postcss-reduce-transforms-4.0.2.tgz", + "integrity": "sha512-EEVig1Q2QJ4ELpJXMZR8Vt5DQx8/mo+dGWSR7vWXqcob2gQLyQGsionYcGKATXvQzMPn6DSN1vTN7yFximdIAg==", + "dev": true, + "requires": { + "cssnano-util-get-match": "^4.0.0", + "has": "^1.0.0", + "postcss": "^7.0.0", + "postcss-value-parser": "^3.0.0" + }, + "dependencies": { + "postcss": { + "version": "7.0.35", + "resolved": "https://registry.npmjs.org/postcss/-/postcss-7.0.35.tgz", + "integrity": "sha512-3QT8bBJeX/S5zKTTjTCIjRF3If4avAT6kqxcASlTWEtAFCb9NH0OUxNDfgZSWdP5fJnBYCMEWkIFfWeugjzYMg==", + "dev": true, + "requires": { + "chalk": "^2.4.2", + "source-map": "^0.6.1", + "supports-color": "^6.1.0" + } + }, + "supports-color": { + "version": "6.1.0", + "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-6.1.0.tgz", + "integrity": "sha512-qe1jfm1Mg7Nq/NSh6XE24gPXROEVsWHxC1LIx//XNlD9iw7YZQGjZNjYN7xGaEG6iKdA8EtNFW6R0gjnVXp+wQ==", + "dev": true, + "requires": { + "has-flag": "^3.0.0" + } + } + } + }, + "postcss-selector-parser": { + "version": "6.0.4", + "resolved": "https://registry.npmjs.org/postcss-selector-parser/-/postcss-selector-parser-6.0.4.tgz", + "integrity": "sha512-gjMeXBempyInaBqpp8gODmwZ52WaYsVOsfr4L4lDQ7n3ncD6mEyySiDtgzCT+NYC0mmeOLvtsF8iaEf0YT6dBw==", + "dev": true, + "requires": { + "cssesc": "^3.0.0", + "indexes-of": "^1.0.1", + "uniq": "^1.0.1", + "util-deprecate": "^1.0.2" + } + }, + "postcss-svgo": { + "version": "4.0.2", + "resolved": "https://registry.npmjs.org/postcss-svgo/-/postcss-svgo-4.0.2.tgz", + "integrity": "sha512-C6wyjo3VwFm0QgBy+Fu7gCYOkCmgmClghO+pjcxvrcBKtiKt0uCF+hvbMO1fyv5BMImRK90SMb+dwUnfbGd+jw==", + "dev": true, + "requires": { + "is-svg": "^3.0.0", + "postcss": "^7.0.0", + "postcss-value-parser": "^3.0.0", + "svgo": "^1.0.0" + }, + "dependencies": { + "postcss": { + "version": "7.0.35", + "resolved": "https://registry.npmjs.org/postcss/-/postcss-7.0.35.tgz", + "integrity": "sha512-3QT8bBJeX/S5zKTTjTCIjRF3If4avAT6kqxcASlTWEtAFCb9NH0OUxNDfgZSWdP5fJnBYCMEWkIFfWeugjzYMg==", + "dev": true, + "requires": { + "chalk": "^2.4.2", + "source-map": "^0.6.1", + "supports-color": "^6.1.0" + } + }, + "supports-color": { + "version": "6.1.0", + "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-6.1.0.tgz", + "integrity": "sha512-qe1jfm1Mg7Nq/NSh6XE24gPXROEVsWHxC1LIx//XNlD9iw7YZQGjZNjYN7xGaEG6iKdA8EtNFW6R0gjnVXp+wQ==", + "dev": true, + "requires": { + "has-flag": "^3.0.0" + } + } + } + }, + "postcss-unique-selectors": { + "version": "4.0.1", + "resolved": "https://registry.npmjs.org/postcss-unique-selectors/-/postcss-unique-selectors-4.0.1.tgz", + "integrity": "sha512-+JanVaryLo9QwZjKrmJgkI4Fn8SBgRO6WXQBJi7KiAVPlmxikB5Jzc4EvXMT2H0/m0RjrVVm9rGNhZddm/8Spg==", + "dev": true, + "requires": { + "alphanum-sort": "^1.0.0", + "postcss": "^7.0.0", + "uniqs": "^2.0.0" + }, + "dependencies": { + "postcss": { + "version": "7.0.35", + "resolved": "https://registry.npmjs.org/postcss/-/postcss-7.0.35.tgz", + "integrity": "sha512-3QT8bBJeX/S5zKTTjTCIjRF3If4avAT6kqxcASlTWEtAFCb9NH0OUxNDfgZSWdP5fJnBYCMEWkIFfWeugjzYMg==", + "dev": true, + "requires": { + "chalk": "^2.4.2", + "source-map": "^0.6.1", + "supports-color": "^6.1.0" + } + }, + "supports-color": { + "version": "6.1.0", + "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-6.1.0.tgz", + "integrity": "sha512-qe1jfm1Mg7Nq/NSh6XE24gPXROEVsWHxC1LIx//XNlD9iw7YZQGjZNjYN7xGaEG6iKdA8EtNFW6R0gjnVXp+wQ==", + "dev": true, + "requires": { + "has-flag": "^3.0.0" + } + } + } + }, + "postcss-value-parser": { + "version": "3.3.1", + "resolved": "https://registry.npmjs.org/postcss-value-parser/-/postcss-value-parser-3.3.1.tgz", + "integrity": "sha512-pISE66AbVkp4fDQ7VHBwRNXzAAKJjw4Vw7nWI/+Q3vuly7SNfgYXvm6i5IgFylHGK5sP/xHAbB7N49OS4gWNyQ==", + "dev": true + }, + "posthtml": { + "version": "0.11.6", + "resolved": "https://registry.npmjs.org/posthtml/-/posthtml-0.11.6.tgz", + "integrity": "sha512-C2hrAPzmRdpuL3iH0TDdQ6XCc9M7Dcc3zEW5BLerY65G4tWWszwv6nG/ksi6ul5i2mx22ubdljgktXCtNkydkw==", + "dev": true, + "requires": { + "posthtml-parser": "^0.4.1", + "posthtml-render": "^1.1.5" + } + }, + "posthtml-parser": { + "version": "0.4.2", + "resolved": "https://registry.npmjs.org/posthtml-parser/-/posthtml-parser-0.4.2.tgz", + "integrity": "sha512-BUIorsYJTvS9UhXxPTzupIztOMVNPa/HtAm9KHni9z6qEfiJ1bpOBL5DfUOL9XAc3XkLIEzBzpph+Zbm4AdRAg==", + "dev": true, + "requires": { + "htmlparser2": "^3.9.2" + } + }, + "posthtml-render": { + "version": "1.4.0", + "resolved": "https://registry.npmjs.org/posthtml-render/-/posthtml-render-1.4.0.tgz", + "integrity": "sha512-W1779iVHGfq0Fvh2PROhCe2QhB8mEErgqzo1wpIt36tCgChafP+hbXIhLDOM8ePJrZcFs0vkNEtdibEWVqChqw==", + "dev": true + }, + "prelude-ls": { + "version": "1.1.2", + "resolved": "https://registry.npmjs.org/prelude-ls/-/prelude-ls-1.1.2.tgz", + "integrity": "sha1-IZMqVJ9eUv/ZqCf1cOBL5iqX2lQ=", + "dev": true + }, + "prepend-http": { + "version": "1.0.4", + "resolved": "https://registry.npmjs.org/prepend-http/-/prepend-http-1.0.4.tgz", + "integrity": "sha1-1PRWKwzjaW5BrFLQ4ALlemNdxtw=", + "dev": true + }, + "prettier": { + "version": "2.2.1", + "resolved": "https://registry.npmjs.org/prettier/-/prettier-2.2.1.tgz", + "integrity": "sha512-PqyhM2yCjg/oKkFPtTGUojv7gnZAoG80ttl45O6x2Ug/rMJw4wcc9k6aaf2hibP7BGVCCM33gZoGjyvt9mm16Q==" + }, + "pretty-format": { + "version": "25.5.0", + "resolved": "https://registry.npmjs.org/pretty-format/-/pretty-format-25.5.0.tgz", + "integrity": "sha512-kbo/kq2LQ/A/is0PQwsEHM7Ca6//bGPPvU6UnsdDRSKTWxT/ru/xb88v4BJf6a69H+uTytOEsTusT9ksd/1iWQ==", + "dev": true, + "requires": { + "@jest/types": "^25.5.0", + "ansi-regex": "^5.0.0", + "ansi-styles": "^4.0.0", + "react-is": "^16.12.0" + }, + "dependencies": { + "ansi-regex": { + "version": "5.0.0", + "resolved": "https://registry.npmjs.org/ansi-regex/-/ansi-regex-5.0.0.tgz", + "integrity": "sha512-bY6fj56OUQ0hU1KjFNDQuJFezqKdrAyFdIevADiqrWHwSlbmBNMHp5ak2f40Pm8JTFyM2mqxkG6ngkHO11f/lg==", + "dev": true + }, + "ansi-styles": { + "version": "4.3.0", + "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-4.3.0.tgz", + "integrity": "sha512-zbB9rCJAT1rbjiVDb2hqKFHNYLxgtk8NURxZ3IZwD3F6NtxbXZQCnnSi1Lkx+IDohdPlFp222wVALIheZJQSEg==", + "dev": true, + "requires": { + "color-convert": "^2.0.1" + } + }, + "color-convert": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/color-convert/-/color-convert-2.0.1.tgz", + "integrity": "sha512-RRECPsj7iu/xb5oKYcsFHSppFNnsj/52OVTRKb4zP5onXwVF3zVmmToNcOfGC+CRDpfK/U584fMg38ZHCaElKQ==", + "dev": true, + "requires": { + "color-name": "~1.1.4" + } + }, + "color-name": { + "version": "1.1.4", + "resolved": "https://registry.npmjs.org/color-name/-/color-name-1.1.4.tgz", + "integrity": "sha512-dOy+3AuW3a2wNbZHIuMZpTcgjGuLU/uBL/ubcZF9OXbDo8ff4O8yVp5Bf0efS8uEoYo5q4Fx7dY9OgQGXgAsQA==", + "dev": true + } + } + }, + "process": { + "version": "0.11.10", + "resolved": "https://registry.npmjs.org/process/-/process-0.11.10.tgz", + "integrity": "sha1-czIwDoQBYb2j5podHZGn1LwW8YI=", + "dev": true + }, + "process-nextick-args": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/process-nextick-args/-/process-nextick-args-2.0.1.tgz", + "integrity": "sha512-3ouUOpQhtgrbOa17J7+uxOTpITYWaGP7/AhoR3+A+/1e9skrzelGi/dXzEYyvbxubEF6Wn2ypscTKiKJFFn1ag==", + "dev": true + }, + "progress": { + "version": "2.0.3", + "resolved": "https://registry.npmjs.org/progress/-/progress-2.0.3.tgz", + "integrity": "sha512-7PiHtLll5LdnKIMw100I+8xJXR5gW2QwWYkT6iJva0bXitZKa/XMrSbdmg3r2Xnaidz9Qumd0VPaMrZlF9V9sA==", + "dev": true + }, + "prompts": { + "version": "2.4.0", + "resolved": "https://registry.npmjs.org/prompts/-/prompts-2.4.0.tgz", + "integrity": "sha512-awZAKrk3vN6CroQukBL+R9051a4R3zCZBlJm/HBfrSZ8iTpYix3VX1vU4mveiLpiwmOJT4wokTF9m6HUk4KqWQ==", + "dev": true, + "requires": { + "kleur": "^3.0.3", + "sisteransi": "^1.0.5" + } + }, + "proxy-middleware": { + "version": "0.15.0", + "resolved": "https://registry.npmjs.org/proxy-middleware/-/proxy-middleware-0.15.0.tgz", + "integrity": "sha1-o/3xvvtzD5UZZYcqwvYHTGFHelY=", + "dev": true + }, + "prr": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/prr/-/prr-1.0.1.tgz", + "integrity": "sha1-0/wRS6BplaRexok/SEzrHXj19HY=", + "optional": true + }, + "psl": { + "version": "1.8.0", + "resolved": "https://registry.npmjs.org/psl/-/psl-1.8.0.tgz", + "integrity": "sha512-RIdOzyoavK+hA18OGGWDqUTsCLhtA7IcZ/6NCs4fFJaHBDab+pDDmDIByWFRQJq2Cd7r1OoQxBGKOaztq+hjIQ==", + "dev": true + }, + "pstree.remy": { + "version": "1.1.8", + "resolved": "https://registry.npmjs.org/pstree.remy/-/pstree.remy-1.1.8.tgz", + "integrity": "sha512-77DZwxQmxKnu3aR542U+X8FypNzbfJ+C5XQDk3uWjWxn6151aIMGthWYRXTqT1E5oJvg+ljaa2OJi+VfvCOQ8w==", + "dev": true + }, + "public-encrypt": { + "version": "4.0.3", + "resolved": "https://registry.npmjs.org/public-encrypt/-/public-encrypt-4.0.3.tgz", + "integrity": "sha512-zVpa8oKZSz5bTMTFClc1fQOnyyEzpl5ozpi1B5YcvBrdohMjH2rfsBtyXcuNuwjsDIXmBYlF2N5FlJYhR29t8Q==", + "dev": true, + "requires": { + "bn.js": "^4.1.0", + "browserify-rsa": "^4.0.0", + "create-hash": "^1.1.0", + "parse-asn1": "^5.0.0", + "randombytes": "^2.0.1", + "safe-buffer": "^5.1.2" + }, + "dependencies": { + "bn.js": { + "version": "4.11.9", + "resolved": "https://registry.npmjs.org/bn.js/-/bn.js-4.11.9.tgz", + "integrity": "sha512-E6QoYqCKZfgatHTdHzs1RRKP7ip4vvm+EyRUeE2RF0NblwVvb0p6jSVeNTOFxPn26QXN2o6SMfNxKp6kU8zQaw==", + "dev": true + } + } + }, + "pump": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/pump/-/pump-3.0.0.tgz", + "integrity": "sha512-LwZy+p3SFs1Pytd/jYct4wpv49HiYCqd9Rlc5ZVdk0V+8Yzv6jR5Blk3TRmPL1ft69TxP0IMZGJ+WPFU2BFhww==", + "dev": true, + "requires": { + "end-of-stream": "^1.1.0", + "once": "^1.3.1" + } + }, + "punycode": { + "version": "2.1.1", + "resolved": "https://registry.npmjs.org/punycode/-/punycode-2.1.1.tgz", + "integrity": "sha512-XRsRjdf+j5ml+y/6GKHPZbrF/8p2Yga0JPtdqTIY2Xe5ohJPD9saDJJLPvp9+NSBprVvevdXZybnj2cv8OEd0A==", + "dev": true + }, + "pupa": { + "version": "2.1.1", + "resolved": "https://registry.npmjs.org/pupa/-/pupa-2.1.1.tgz", + "integrity": "sha512-l1jNAspIBSFqbT+y+5FosojNpVpF94nlI+wDUpqP9enwOTfHx9f0gh5nB96vl+6yTpsJsypeNrwfzPrKuHB41A==", + "dev": true, + "requires": { + "escape-goat": "^2.0.0" + } + }, + "purgecss": { + "version": "2.3.0", + "resolved": "https://registry.npmjs.org/purgecss/-/purgecss-2.3.0.tgz", + "integrity": "sha512-BE5CROfVGsx2XIhxGuZAT7rTH9lLeQx/6M0P7DTXQH4IUc3BBzs9JUzt4yzGf3JrH9enkeq6YJBe9CTtkm1WmQ==", + "dev": true, + "requires": { + "commander": "^5.0.0", + "glob": "^7.0.0", + "postcss": "7.0.32", + "postcss-selector-parser": "^6.0.2" + }, + "dependencies": { + "commander": { + "version": "5.1.0", + "resolved": "https://registry.npmjs.org/commander/-/commander-5.1.0.tgz", + "integrity": "sha512-P0CysNDQ7rtVw4QIQtm+MRxV66vKFSvlsQvGYXZWR3qFU0jlMKHZZZgw8e+8DSah4UDKMqnknRDQz+xuQXQ/Zg==", + "dev": true + }, + "glob": { + "version": "7.1.6", + "resolved": "https://registry.npmjs.org/glob/-/glob-7.1.6.tgz", + "integrity": "sha512-LwaxwyZ72Lk7vZINtNNrywX0ZuLyStrdDtabefZKAY5ZGJhVtgdznluResxNmPitE0SAO+O26sWTHeKSI2wMBA==", + "dev": true, + "requires": { + "fs.realpath": "^1.0.0", + "inflight": "^1.0.4", + "inherits": "2", + "minimatch": "^3.0.4", + "once": "^1.3.0", + "path-is-absolute": "^1.0.0" + } + }, + "postcss": { + "version": "7.0.32", + "resolved": "https://registry.npmjs.org/postcss/-/postcss-7.0.32.tgz", + "integrity": "sha512-03eXong5NLnNCD05xscnGKGDZ98CyzoqPSMjOe6SuoQY7Z2hIj0Ld1g/O/UQRuOle2aRtiIRDg9tDcTGAkLfKw==", + "dev": true, + "requires": { + "chalk": "^2.4.2", + "source-map": "^0.6.1", + "supports-color": "^6.1.0" + } + }, + "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" + } + } + } + }, + "q": { + "version": "1.5.1", + "resolved": "https://registry.npmjs.org/q/-/q-1.5.1.tgz", + "integrity": "sha1-fjL3W0E4EpHQRhHxvxQQmsAGUdc=", + "dev": true + }, + "qs": { + "version": "6.5.2", + "resolved": "https://registry.npmjs.org/qs/-/qs-6.5.2.tgz", + "integrity": "sha512-N5ZAX4/LxJmF+7wN74pUD6qAh9/wnvdQcjq9TZjevvXzSUo7bfmw91saqMjzGS2xq91/odN2dW/WOl7qQHNDGA==", + "dev": true + }, + "query-string": { + "version": "4.3.4", + "resolved": "https://registry.npmjs.org/query-string/-/query-string-4.3.4.tgz", + "integrity": "sha1-u7aTucqRXCMlFbIosaArYJBD2+s=", + "dev": true, + "requires": { + "object-assign": "^4.1.0", + "strict-uri-encode": "^1.0.0" + } + }, + "querystring": { + "version": "0.2.0", + "resolved": "https://registry.npmjs.org/querystring/-/querystring-0.2.0.tgz", + "integrity": "sha1-sgmEkgO7Jd+CDadW50cAWHhSFiA=", + "dev": true + }, + "querystring-es3": { + "version": "0.2.1", + "resolved": "https://registry.npmjs.org/querystring-es3/-/querystring-es3-0.2.1.tgz", + "integrity": "sha1-nsYfeQSYdXB9aUFFlv2Qek1xHnM=", + "dev": true + }, + "quick-lru": { + "version": "4.0.1", + "resolved": "https://registry.npmjs.org/quick-lru/-/quick-lru-4.0.1.tgz", + "integrity": "sha512-ARhCpm70fzdcvNQfPoy49IaanKkTlRWF2JMzqhcJbhSFRZv7nPTvZJdcY7301IPmvW+/p0RgIWnQDLJxifsQ7g==", + "dev": true + }, + "quote-stream": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/quote-stream/-/quote-stream-1.0.2.tgz", + "integrity": "sha1-hJY/jJwmuULhU/7rU6rnRlK34LI=", + "dev": true, + "requires": { + "buffer-equal": "0.0.1", + "minimist": "^1.1.3", + "through2": "^2.0.0" + }, + "dependencies": { + "minimist": { + "version": "1.2.5", + "resolved": "https://registry.npmjs.org/minimist/-/minimist-1.2.5.tgz", + "integrity": "sha512-FM9nNUYrRBAELZQT3xeZQ7fmMOBg6nWNmJKTcgsJeaLstP/UODVpGsr5OhXhhXg6f+qtJ8uiZ+PUxkDWcgIXLw==", + "dev": true + } + } + }, + "randombytes": { + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/randombytes/-/randombytes-2.1.0.tgz", + "integrity": "sha512-vYl3iOX+4CKUWuxGi9Ukhie6fsqXqS9FE2Zaic4tNFD2N2QQaXOMFbuKK4QmDHC0JO6B1Zp41J0LpT0oR68amQ==", + "dev": true, + "requires": { + "safe-buffer": "^5.1.0" + } + }, + "randomfill": { + "version": "1.0.4", + "resolved": "https://registry.npmjs.org/randomfill/-/randomfill-1.0.4.tgz", + "integrity": "sha512-87lcbR8+MhcWcUiQ+9e+Rwx8MyR2P7qnt15ynUlbm3TU/fjbgz4GsvfSUDTemtCCtVCqb4ZcEFlyPNTh9bBTLw==", + "dev": true, + "requires": { + "randombytes": "^2.0.5", + "safe-buffer": "^5.1.0" + } + }, + "range-parser": { + "version": "1.2.1", + "resolved": "https://registry.npmjs.org/range-parser/-/range-parser-1.2.1.tgz", + "integrity": "sha512-Hrgsx+orqoygnmhFbKaHE6c296J+HTAQXoxEF6gNupROmmGJRoyzfG3ccAveqCBrwr/2yxQ5BVd/GTl5agOwSg==", + "dev": true + }, + "rc": { + "version": "1.2.8", + "resolved": "https://registry.npmjs.org/rc/-/rc-1.2.8.tgz", + "integrity": "sha512-y3bGgqKj3QBdxLbLkomlohkvsA8gdAiUQlSBJnBhfn+BPxg4bc62d8TcBW15wavDfgexCgccckhcZvywyQYPOw==", + "dev": true, + "requires": { + "deep-extend": "^0.6.0", + "ini": "~1.3.0", + "minimist": "^1.2.0", + "strip-json-comments": "~2.0.1" + }, + "dependencies": { + "minimist": { + "version": "1.2.5", + "resolved": "https://registry.npmjs.org/minimist/-/minimist-1.2.5.tgz", + "integrity": "sha512-FM9nNUYrRBAELZQT3xeZQ7fmMOBg6nWNmJKTcgsJeaLstP/UODVpGsr5OhXhhXg6f+qtJ8uiZ+PUxkDWcgIXLw==", + "dev": true + }, + "strip-json-comments": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/strip-json-comments/-/strip-json-comments-2.0.1.tgz", + "integrity": "sha1-PFMZQukIwml8DsNEhYwobHygpgo=", + "dev": true + } + } + }, + "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==", + "dev": true + }, + "read-pkg": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/read-pkg/-/read-pkg-3.0.0.tgz", + "integrity": "sha1-nLxoaXj+5l0WwA4rGcI3/Pbjg4k=", + "dev": true, + "requires": { + "load-json-file": "^4.0.0", + "normalize-package-data": "^2.3.2", + "path-type": "^3.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": "sha1-a3KoBImE4MQeeVEP1en6mbO1Sb4=", + "dev": true, + "requires": { + "find-up": "^2.0.0", + "read-pkg": "^2.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": "sha1-eUfkIUmvgNaWy/eXvKq8/h/inKg=", + "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": "sha1-9ID0BDTvgHQfhGkJn43qGPVaTck=", + "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": "sha1-8BLMuEFbcJb8LaoQVMPXI4lZTHM=", + "dev": true, + "requires": { + "pify": "^2.0.0" + } + }, + "pify": { + "version": "2.3.0", + "resolved": "https://registry.npmjs.org/pify/-/pify-2.3.0.tgz", + "integrity": "sha1-7RQaasBDqEnqWISY59yosVMw6Qw=", + "dev": true + }, + "read-pkg": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/read-pkg/-/read-pkg-2.0.0.tgz", + "integrity": "sha1-jvHAYjxqbbDcZxPEv6xGMysjaPg=", + "dev": true, + "requires": { + "load-json-file": "^2.0.0", + "normalize-package-data": "^2.3.2", + "path-type": "^2.0.0" + } + } + } + }, + "readable-stream": { + "version": "2.3.7", + "resolved": "https://registry.npmjs.org/readable-stream/-/readable-stream-2.3.7.tgz", + "integrity": "sha512-Ebho8K4jIbHAxnuxi7o42OrZgF/ZTNcsZj6nRKyUmkhLFq8CHItp/fy6hQZuZmP/n3yZ9VBUbp4zz/mX8hmYPw==", + "dev": true, + "requires": { + "core-util-is": "~1.0.0", + "inherits": "~2.0.3", + "isarray": "~1.0.0", + "process-nextick-args": "~2.0.0", + "safe-buffer": "~5.1.1", + "string_decoder": "~1.1.1", + "util-deprecate": "~1.0.1" + } + }, + "readdirp": { + "version": "2.2.1", + "resolved": "https://registry.npmjs.org/readdirp/-/readdirp-2.2.1.tgz", + "integrity": "sha512-1JU/8q+VgFZyxwrJ+SVIOsh+KywWGpds3NTqikiKpDMZWScmAYyKIgqkO+ARvNWJfXeXR1zxz7aHF4u4CyH6vQ==", + "dev": true, + "requires": { + "graceful-fs": "^4.1.11", + "micromatch": "^3.1.10", + "readable-stream": "^2.0.2" + }, + "dependencies": { + "braces": { + "version": "2.3.2", + "resolved": "https://registry.npmjs.org/braces/-/braces-2.3.2.tgz", + "integrity": "sha512-aNdbnj9P8PjdXU4ybaWLK2IF3jc/EoDYbC7AazW6to3TRsfXxscC9UXOB5iDiEQrkyIbWp2SLQda4+QAa7nc3w==", + "dev": true, + "requires": { + "arr-flatten": "^1.1.0", + "array-unique": "^0.3.2", + "extend-shallow": "^2.0.1", + "fill-range": "^4.0.0", + "isobject": "^3.0.1", + "repeat-element": "^1.1.2", + "snapdragon": "^0.8.1", + "snapdragon-node": "^2.0.1", + "split-string": "^3.0.2", + "to-regex": "^3.0.1" + }, + "dependencies": { + "extend-shallow": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/extend-shallow/-/extend-shallow-2.0.1.tgz", + "integrity": "sha1-Ua99YUrZqfYQ6huvu5idaxxWiQ8=", + "dev": true, + "requires": { + "is-extendable": "^0.1.0" + } + } + } + }, + "fill-range": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/fill-range/-/fill-range-4.0.0.tgz", + "integrity": "sha1-1USBHUKPmOsGpj3EAtJAPDKMOPc=", + "dev": true, + "requires": { + "extend-shallow": "^2.0.1", + "is-number": "^3.0.0", + "repeat-string": "^1.6.1", + "to-regex-range": "^2.1.0" + }, + "dependencies": { + "extend-shallow": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/extend-shallow/-/extend-shallow-2.0.1.tgz", + "integrity": "sha1-Ua99YUrZqfYQ6huvu5idaxxWiQ8=", + "dev": true, + "requires": { + "is-extendable": "^0.1.0" + } + } + } + }, + "is-number": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/is-number/-/is-number-3.0.0.tgz", + "integrity": "sha1-JP1iAaR4LPUFYcgQJ2r8fRLXEZU=", + "dev": true, + "requires": { + "kind-of": "^3.0.2" + }, + "dependencies": { + "kind-of": { + "version": "3.2.2", + "resolved": "https://registry.npmjs.org/kind-of/-/kind-of-3.2.2.tgz", + "integrity": "sha1-MeohpzS6ubuw8yRm2JOupR5KPGQ=", + "dev": true, + "requires": { + "is-buffer": "^1.1.5" + } + } + } + }, + "micromatch": { + "version": "3.1.10", + "resolved": "https://registry.npmjs.org/micromatch/-/micromatch-3.1.10.tgz", + "integrity": "sha512-MWikgl9n9M3w+bpsY3He8L+w9eF9338xRl8IAO5viDizwSzziFEyUzo2xrrloB64ADbTf8uA8vRqqttDTOmccg==", + "dev": true, + "requires": { + "arr-diff": "^4.0.0", + "array-unique": "^0.3.2", + "braces": "^2.3.1", + "define-property": "^2.0.2", + "extend-shallow": "^3.0.2", + "extglob": "^2.0.4", + "fragment-cache": "^0.2.1", + "kind-of": "^6.0.2", + "nanomatch": "^1.2.9", + "object.pick": "^1.3.0", + "regex-not": "^1.0.0", + "snapdragon": "^0.8.1", + "to-regex": "^3.0.2" + } + }, + "to-regex-range": { + "version": "2.1.1", + "resolved": "https://registry.npmjs.org/to-regex-range/-/to-regex-range-2.1.1.tgz", + "integrity": "sha1-fIDBe53+vlmeJzZ+DU3VWQFB2zg=", + "dev": true, + "requires": { + "is-number": "^3.0.0", + "repeat-string": "^1.6.1" + } + } + } + }, + "rechoir": { + "version": "0.6.2", + "resolved": "https://registry.npmjs.org/rechoir/-/rechoir-0.6.2.tgz", + "integrity": "sha1-hSBLVNuoLVdC4oyWdW70OvUOM4Q=", + "dev": true, + "requires": { + "resolve": "^1.1.6" + } + }, + "recursive-fs": { + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/recursive-fs/-/recursive-fs-2.1.0.tgz", + "integrity": "sha512-oed3YruYsD52Mi16s/07eYblQOLi5dTtxpIJNdfCEJ7S5v8dDgVcycar0pRWf4IBuPMIkoctC8RTqGJzIKMNAQ==", + "dev": true + }, + "redent": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/redent/-/redent-3.0.0.tgz", + "integrity": "sha512-6tDA8g98We0zd0GvVeMT9arEOnTw9qM03L9cJXaCjrip1OO764RDBLBfrB4cwzNGDj5OA5ioymC9GkizgWJDUg==", + "dev": true, + "requires": { + "indent-string": "^4.0.0", + "strip-indent": "^3.0.0" + } + }, + "regenerate": { + "version": "1.4.2", + "resolved": "https://registry.npmjs.org/regenerate/-/regenerate-1.4.2.tgz", + "integrity": "sha512-zrceR/XhGYU/d/opr2EKO7aRHUeiBI8qjtfHqADTwZd6Szfy16la6kqD0MIUs5z5hx6AaKa+PixpPrR289+I0A==", + "dev": true + }, + "regenerate-unicode-properties": { + "version": "8.2.0", + "resolved": "https://registry.npmjs.org/regenerate-unicode-properties/-/regenerate-unicode-properties-8.2.0.tgz", + "integrity": "sha512-F9DjY1vKLo/tPePDycuH3dn9H1OTPIkVD9Kz4LODu+F2C75mgjAJ7x/gwy6ZcSNRAAkhNlJSOHRe8k3p+K9WhA==", + "dev": true, + "requires": { + "regenerate": "^1.4.0" + } + }, + "regenerator-runtime": { + "version": "0.13.7", + "resolved": "https://registry.npmjs.org/regenerator-runtime/-/regenerator-runtime-0.13.7.tgz", + "integrity": "sha512-a54FxoJDIr27pgf7IgeQGxmqUNYrcV338lf/6gH456HZ/PhX+5BcwHXG9ajESmwe6WRO0tAzRUrRmNONWgkrew==", + "dev": true + }, + "regenerator-transform": { + "version": "0.14.5", + "resolved": "https://registry.npmjs.org/regenerator-transform/-/regenerator-transform-0.14.5.tgz", + "integrity": "sha512-eOf6vka5IO151Jfsw2NO9WpGX58W6wWmefK3I1zEGr0lOD0u8rwPaNqQL1aRxUaxLeKO3ArNh3VYg1KbaD+FFw==", + "dev": true, + "requires": { + "@babel/runtime": "^7.8.4" + } + }, + "regex-not": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/regex-not/-/regex-not-1.0.2.tgz", + "integrity": "sha512-J6SDjUgDxQj5NusnOtdFxDwN/+HWykR8GELwctJ7mdqhcyy1xEc4SRFHUXvxTp661YaVKAjfRLZ9cCqS6tn32A==", + "dev": true, + "requires": { + "extend-shallow": "^3.0.2", + "safe-regex": "^1.1.0" + } + }, + "regexpp": { + "version": "3.1.0", + "resolved": "https://registry.npmjs.org/regexpp/-/regexpp-3.1.0.tgz", + "integrity": "sha512-ZOIzd8yVsQQA7j8GCSlPGXwg5PfmA1mrq0JP4nGhh54LaKN3xdai/vHUDu74pKwV8OxseMS65u2NImosQcSD0Q==", + "dev": true + }, + "regexpu-core": { + "version": "4.7.1", + "resolved": "https://registry.npmjs.org/regexpu-core/-/regexpu-core-4.7.1.tgz", + "integrity": "sha512-ywH2VUraA44DZQuRKzARmw6S66mr48pQVva4LBeRhcOltJ6hExvWly5ZjFLYo67xbIxb6W1q4bAGtgfEl20zfQ==", + "dev": true, + "requires": { + "regenerate": "^1.4.0", + "regenerate-unicode-properties": "^8.2.0", + "regjsgen": "^0.5.1", + "regjsparser": "^0.6.4", + "unicode-match-property-ecmascript": "^1.0.4", + "unicode-match-property-value-ecmascript": "^1.2.0" + } + }, + "regextras": { + "version": "0.7.1", + "resolved": "https://registry.npmjs.org/regextras/-/regextras-0.7.1.tgz", + "integrity": "sha512-9YXf6xtW+qzQ+hcMQXx95MOvfqXFgsKDZodX3qZB0x2n5Z94ioetIITsBtvJbiOyxa/6s9AtyweBLCdPmPko/w==", + "dev": true + }, + "registry-auth-token": { + "version": "4.2.1", + "resolved": "https://registry.npmjs.org/registry-auth-token/-/registry-auth-token-4.2.1.tgz", + "integrity": "sha512-6gkSb4U6aWJB4SF2ZvLb76yCBjcvufXBqvvEx1HbmKPkutswjW1xNVRY0+daljIYRbogN7O0etYSlbiaEQyMyw==", + "dev": true, + "requires": { + "rc": "^1.2.8" + } + }, + "registry-url": { + "version": "5.1.0", + "resolved": "https://registry.npmjs.org/registry-url/-/registry-url-5.1.0.tgz", + "integrity": "sha512-8acYXXTI0AkQv6RAOjE3vOaIXZkT9wo4LOFbBKYQEEnnMNBpKqdUrI6S4NT0KPIo/WVvJ5tE/X5LF/TQUf0ekw==", + "dev": true, + "requires": { + "rc": "^1.2.8" + } + }, + "regjsgen": { + "version": "0.5.2", + "resolved": "https://registry.npmjs.org/regjsgen/-/regjsgen-0.5.2.tgz", + "integrity": "sha512-OFFT3MfrH90xIW8OOSyUrk6QHD5E9JOTeGodiJeBS3J6IwlgzJMNE/1bZklWz5oTg+9dCMyEetclvCVXOPoN3A==", + "dev": true + }, + "regjsparser": { + "version": "0.6.4", + "resolved": "https://registry.npmjs.org/regjsparser/-/regjsparser-0.6.4.tgz", + "integrity": "sha512-64O87/dPDgfk8/RQqC4gkZoGyyWFIEUTTh80CU6CWuK5vkCGyekIx+oKcEIYtP/RAxSQltCZHCNu/mdd7fqlJw==", + "dev": true, + "requires": { + "jsesc": "~0.5.0" + }, + "dependencies": { + "jsesc": { + "version": "0.5.0", + "resolved": "https://registry.npmjs.org/jsesc/-/jsesc-0.5.0.tgz", + "integrity": "sha1-597mbjXW/Bb3EP6R1c9p9w8IkR0=", + "dev": true + } + } + }, + "relateurl": { + "version": "0.2.7", + "resolved": "https://registry.npmjs.org/relateurl/-/relateurl-0.2.7.tgz", + "integrity": "sha1-VNvzd+UUQKypCkzSdGANP/LYiKk=", + "dev": true + }, + "remove-trailing-separator": { + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/remove-trailing-separator/-/remove-trailing-separator-1.1.0.tgz", + "integrity": "sha1-wkvOKig62tW8P1jg1IJJuSN52O8=", + "dev": true + }, + "repeat-element": { + "version": "1.1.3", + "resolved": "https://registry.npmjs.org/repeat-element/-/repeat-element-1.1.3.tgz", + "integrity": "sha512-ahGq0ZnV5m5XtZLMb+vP76kcAM5nkLqk0lpqAuojSKGgQtn4eRi4ZZGm2olo2zKFH+sMsWaqOCW1dqAnOru72g==", + "dev": true + }, + "repeat-string": { + "version": "1.6.1", + "resolved": "https://registry.npmjs.org/repeat-string/-/repeat-string-1.6.1.tgz", + "integrity": "sha1-jcrkcOHIirwtYA//Sndihtp15jc=", + "dev": true + }, + "repeating": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/repeating/-/repeating-2.0.1.tgz", + "integrity": "sha1-UhTFOpJtNVJwdSf7q0FdvAjQbdo=", + "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==", + "dev": true, + "requires": { + "aws-sign2": "~0.7.0", + "aws4": "^1.8.0", + "caseless": "~0.12.0", + "combined-stream": "~1.0.6", + "extend": "~3.0.2", + "forever-agent": "~0.6.1", + "form-data": "~2.3.2", + "har-validator": "~5.1.3", + "http-signature": "~1.2.0", + "is-typedarray": "~1.0.0", + "isstream": "~0.1.2", + "json-stringify-safe": "~5.0.1", + "mime-types": "~2.1.19", + "oauth-sign": "~0.9.0", + "performance-now": "^2.1.0", + "qs": "~6.5.2", + "safe-buffer": "^5.1.2", + "tough-cookie": "~2.5.0", + "tunnel-agent": "^0.6.0", + "uuid": "^3.3.2" + } + }, + "request-promise-core": { + "version": "1.1.4", + "resolved": "https://registry.npmjs.org/request-promise-core/-/request-promise-core-1.1.4.tgz", + "integrity": "sha512-TTbAfBBRdWD7aNNOoVOBH4pN/KigV6LyapYNNlAPA8JwbovRti1E88m3sYAwsLi5ryhPKsE9APwnjFTgdUjTpw==", + "dev": true, + "requires": { + "lodash": "^4.17.19" + } + }, + "request-promise-native": { + "version": "1.0.9", + "resolved": "https://registry.npmjs.org/request-promise-native/-/request-promise-native-1.0.9.tgz", + "integrity": "sha512-wcW+sIUiWnKgNY0dqCpOZkUbF/I+YPi+f09JZIDa39Ec+q82CpSYniDp+ISgTTbKmnpJWASeJBPZmoxH84wt3g==", + "dev": true, + "requires": { + "request-promise-core": "1.1.4", + "stealthy-require": "^1.1.1", + "tough-cookie": "^2.3.3" + } + }, + "require-directory": { + "version": "2.1.1", + "resolved": "https://registry.npmjs.org/require-directory/-/require-directory-2.1.1.tgz", + "integrity": "sha1-jGStX9MNqxyXbiNE/+f3kqam30I=" + }, + "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==" + }, + "resolve": { + "version": "1.19.0", + "resolved": "https://registry.npmjs.org/resolve/-/resolve-1.19.0.tgz", + "integrity": "sha512-rArEXAgsBG4UgRGcynxWIWKFvh/XZCcS8UJdHhwy91zwAvCZIbcs+vAbflgBnNjYMs/i/i+/Ux6IZhML1yPvxg==", + "dev": true, + "requires": { + "is-core-module": "^2.1.0", + "path-parse": "^1.0.6" + } + }, + "resolve-cwd": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/resolve-cwd/-/resolve-cwd-3.0.0.tgz", + "integrity": "sha512-OrZaX2Mb+rJCpH/6CpSqt9xFVpN++x01XnN2ie9g6P5/3xelLAkXWVADpdz1IHD/KFfEXyE6V0U01OQ3UO2rEg==", + "dev": true, + "requires": { + "resolve-from": "^5.0.0" + }, + "dependencies": { + "resolve-from": { + "version": "5.0.0", + "resolved": "https://registry.npmjs.org/resolve-from/-/resolve-from-5.0.0.tgz", + "integrity": "sha512-qYg9KP24dD5qka9J47d0aVky0N+b4fTU89LN9iDnjB5waksiC49rvMB0PrUJQGoTmH50XPiqOvAjDfaijGxYZw==", + "dev": true + } + } + }, + "resolve-dir": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/resolve-dir/-/resolve-dir-1.0.1.tgz", + "integrity": "sha1-eaQGRMNivoLybv/nOcm7U4IEb0M=", + "dev": true, + "requires": { + "expand-tilde": "^2.0.0", + "global-modules": "^1.0.0" + } + }, + "resolve-from": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/resolve-from/-/resolve-from-3.0.0.tgz", + "integrity": "sha1-six699nWiBvItuZTM17rywoYh0g=", + "dev": true + }, + "resolve-global": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/resolve-global/-/resolve-global-1.0.0.tgz", + "integrity": "sha512-zFa12V4OLtT5XUX/Q4VLvTfBf+Ok0SPc1FNGM/z9ctUdiU618qwKpWnd0CHs3+RqROfyEg/DhuHbMWYqcgljEw==", + "dev": true, + "optional": true, + "requires": { + "global-dirs": "^0.1.1" + } + }, + "resolve-url": { + "version": "0.2.1", + "resolved": "https://registry.npmjs.org/resolve-url/-/resolve-url-0.2.1.tgz", + "integrity": "sha1-LGN/53yJOv0qZj/iGqkIAGjiBSo=", + "dev": true + }, + "responselike": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/responselike/-/responselike-1.0.2.tgz", + "integrity": "sha1-kYcg7ztjHFZCvgaPFa3lpG9Loec=", + "dev": true, + "requires": { + "lowercase-keys": "^1.0.0" + } + }, + "restore-cursor": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/restore-cursor/-/restore-cursor-2.0.0.tgz", + "integrity": "sha1-n37ih/gv0ybU/RYpI9YhKe7g368=", + "dev": true, + "requires": { + "onetime": "^2.0.0", + "signal-exit": "^3.0.2" + } + }, + "ret": { + "version": "0.1.15", + "resolved": "https://registry.npmjs.org/ret/-/ret-0.1.15.tgz", + "integrity": "sha512-TTlYpa+OL+vMMNG24xSlQGEJ3B/RzEfUlLct7b5G/ytav+wPrplCpVMFuwzXbkecJrb6IYo1iFb0S9v37754mg==", + "dev": true + }, + "reusify": { + "version": "1.0.4", + "resolved": "https://registry.npmjs.org/reusify/-/reusify-1.0.4.tgz", + "integrity": "sha512-U9nH88a3fc/ekCF1l0/UP1IosiuIjyTh7hBvXVMHYgVcfGvt897Xguj2UOLDeI5BG2m7/uwyaLVT6fbtCwTyzw==", + "dev": true + }, + "rgb-regex": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/rgb-regex/-/rgb-regex-1.0.1.tgz", + "integrity": "sha1-wODWiC3w4jviVKR16O3UGRX+rrE=", + "dev": true + }, + "rgba-regex": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/rgba-regex/-/rgba-regex-1.0.0.tgz", + "integrity": "sha1-QzdOLiyglosO8VI0YLfXMP8i7rM=", + "dev": true + }, + "rimraf": { + "version": "2.7.1", + "resolved": "https://registry.npmjs.org/rimraf/-/rimraf-2.7.1.tgz", + "integrity": "sha512-uWjbaKIK3T1OSVptzX7Nl6PvQ3qAGtKEtVRjRuazjfL3Bx5eI409VZSqgND+4UNnmzLVdPj9FqFJNPqBZFve4w==", + "dev": true, + "requires": { + "glob": "^7.1.3" + }, + "dependencies": { + "glob": { + "version": "7.1.6", + "resolved": "https://registry.npmjs.org/glob/-/glob-7.1.6.tgz", + "integrity": "sha512-LwaxwyZ72Lk7vZINtNNrywX0ZuLyStrdDtabefZKAY5ZGJhVtgdznluResxNmPitE0SAO+O26sWTHeKSI2wMBA==", + "dev": true, + "requires": { + "fs.realpath": "^1.0.0", + "inflight": "^1.0.4", + "inherits": "2", + "minimatch": "^3.0.4", + "once": "^1.3.0", + "path-is-absolute": "^1.0.0" + } + } + } + }, + "ripemd160": { + "version": "2.0.2", + "resolved": "https://registry.npmjs.org/ripemd160/-/ripemd160-2.0.2.tgz", + "integrity": "sha512-ii4iagi25WusVoiC4B4lq7pbXfAp3D9v5CwfkY33vffw2+pkDjY1D8GaN7spsxvCSx8dkPqOZCEZyfxcmJG2IA==", + "dev": true, + "requires": { + "hash-base": "^3.0.0", + "inherits": "^2.0.1" + } + }, + "rsvp": { + "version": "4.8.5", + "resolved": "https://registry.npmjs.org/rsvp/-/rsvp-4.8.5.tgz", + "integrity": "sha512-nfMOlASu9OnRJo1mbEk2cz0D56a1MBNrJ7orjRZQG10XDyuvwksKbuXNp6qa+kbn839HwjwhBzhFmdsaEAfauA==", + "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.1.10", + "resolved": "https://registry.npmjs.org/run-parallel/-/run-parallel-1.1.10.tgz", + "integrity": "sha512-zb/1OuZ6flOlH6tQyMPUrE3x3Ulxjlo9WIVXR4yVYi4H9UXQaeIsPbLn2R3O3vQCnDKkAl2qHiuocKKX4Tz/Sw==", + "dev": true + }, + "rxjs": { + "version": "6.6.3", + "resolved": "https://registry.npmjs.org/rxjs/-/rxjs-6.6.3.tgz", + "integrity": "sha512-trsQc+xYYXZ3urjOiJOuCOa5N3jAZ3eiSpQB5hIT8zGlL2QfnHLJ2r7GMkBGuIausdJN1OneaI6gQlsqNHHmZQ==", + "dev": true, + "requires": { + "tslib": "^1.9.0" + } + }, + "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==", + "dev": true + }, + "safe-regex": { + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/safe-regex/-/safe-regex-1.1.0.tgz", + "integrity": "sha1-QKNmnzsHfR6UPURinhV91IAjvy4=", + "dev": true, + "requires": { + "ret": "~0.1.10" + } + }, + "safer-buffer": { + "version": "2.1.2", + "resolved": "https://registry.npmjs.org/safer-buffer/-/safer-buffer-2.1.2.tgz", + "integrity": "sha512-YZo3K82SD7Riyi0E1EQPojLz7kpepnSQI9IyPbHHg1XXXevb5dJI7tpyN2ADxGcQbHG7vcyRHk0cbwqcQriUtg==", + "dev": true + }, + "sane": { + "version": "4.1.0", + "resolved": "https://registry.npmjs.org/sane/-/sane-4.1.0.tgz", + "integrity": "sha512-hhbzAgTIX8O7SHfp2c8/kREfEn4qO/9q8C9beyY6+tvZ87EpoZ3i1RIEvp27YBswnNbY9mWd6paKVmKbAgLfZA==", + "dev": true, + "requires": { + "@cnakazawa/watch": "^1.0.3", + "anymatch": "^2.0.0", + "capture-exit": "^2.0.0", + "exec-sh": "^0.3.2", + "execa": "^1.0.0", + "fb-watchman": "^2.0.0", + "micromatch": "^3.1.4", + "minimist": "^1.1.1", + "walker": "~1.0.5" + }, + "dependencies": { + "braces": { + "version": "2.3.2", + "resolved": "https://registry.npmjs.org/braces/-/braces-2.3.2.tgz", + "integrity": "sha512-aNdbnj9P8PjdXU4ybaWLK2IF3jc/EoDYbC7AazW6to3TRsfXxscC9UXOB5iDiEQrkyIbWp2SLQda4+QAa7nc3w==", + "dev": true, + "requires": { + "arr-flatten": "^1.1.0", + "array-unique": "^0.3.2", + "extend-shallow": "^2.0.1", + "fill-range": "^4.0.0", + "isobject": "^3.0.1", + "repeat-element": "^1.1.2", + "snapdragon": "^0.8.1", + "snapdragon-node": "^2.0.1", + "split-string": "^3.0.2", + "to-regex": "^3.0.1" + }, + "dependencies": { + "extend-shallow": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/extend-shallow/-/extend-shallow-2.0.1.tgz", + "integrity": "sha1-Ua99YUrZqfYQ6huvu5idaxxWiQ8=", + "dev": true, + "requires": { + "is-extendable": "^0.1.0" + } + } + } + }, + "fill-range": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/fill-range/-/fill-range-4.0.0.tgz", + "integrity": "sha1-1USBHUKPmOsGpj3EAtJAPDKMOPc=", + "dev": true, + "requires": { + "extend-shallow": "^2.0.1", + "is-number": "^3.0.0", + "repeat-string": "^1.6.1", + "to-regex-range": "^2.1.0" + }, + "dependencies": { + "extend-shallow": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/extend-shallow/-/extend-shallow-2.0.1.tgz", + "integrity": "sha1-Ua99YUrZqfYQ6huvu5idaxxWiQ8=", + "dev": true, + "requires": { + "is-extendable": "^0.1.0" + } + } + } + }, + "is-number": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/is-number/-/is-number-3.0.0.tgz", + "integrity": "sha1-JP1iAaR4LPUFYcgQJ2r8fRLXEZU=", + "dev": true, + "requires": { + "kind-of": "^3.0.2" + }, + "dependencies": { + "kind-of": { + "version": "3.2.2", + "resolved": "https://registry.npmjs.org/kind-of/-/kind-of-3.2.2.tgz", + "integrity": "sha1-MeohpzS6ubuw8yRm2JOupR5KPGQ=", + "dev": true, + "requires": { + "is-buffer": "^1.1.5" + } + } + } + }, + "micromatch": { + "version": "3.1.10", + "resolved": "https://registry.npmjs.org/micromatch/-/micromatch-3.1.10.tgz", + "integrity": "sha512-MWikgl9n9M3w+bpsY3He8L+w9eF9338xRl8IAO5viDizwSzziFEyUzo2xrrloB64ADbTf8uA8vRqqttDTOmccg==", + "dev": true, + "requires": { + "arr-diff": "^4.0.0", + "array-unique": "^0.3.2", + "braces": "^2.3.1", + "define-property": "^2.0.2", + "extend-shallow": "^3.0.2", + "extglob": "^2.0.4", + "fragment-cache": "^0.2.1", + "kind-of": "^6.0.2", + "nanomatch": "^1.2.9", + "object.pick": "^1.3.0", + "regex-not": "^1.0.0", + "snapdragon": "^0.8.1", + "to-regex": "^3.0.2" + } + }, + "minimist": { + "version": "1.2.5", + "resolved": "https://registry.npmjs.org/minimist/-/minimist-1.2.5.tgz", + "integrity": "sha512-FM9nNUYrRBAELZQT3xeZQ7fmMOBg6nWNmJKTcgsJeaLstP/UODVpGsr5OhXhhXg6f+qtJ8uiZ+PUxkDWcgIXLw==", + "dev": true + }, + "to-regex-range": { + "version": "2.1.1", + "resolved": "https://registry.npmjs.org/to-regex-range/-/to-regex-range-2.1.1.tgz", + "integrity": "sha1-fIDBe53+vlmeJzZ+DU3VWQFB2zg=", + "dev": true, + "requires": { + "is-number": "^3.0.0", + "repeat-string": "^1.6.1" + } + } + } + }, + "sass.js": { + "version": "0.11.1", + "resolved": "https://registry.npmjs.org/sass.js/-/sass.js-0.11.1.tgz", + "integrity": "sha512-X9AtzYFr/HZ+pDIxX6xN74w/H9JjnDHqZcsYY8mr/SpCyhDVN1pJ3G0Q9rb+z3pZ7obZdYuTYMbKl1ALuhbZDw==" + }, + "sax": { + "version": "1.2.4", + "resolved": "https://registry.npmjs.org/sax/-/sax-1.2.4.tgz", + "integrity": "sha512-NqVDv9TpANUjFm0N8uM5GxL36UgKi9/atZw+x7YFnQ8ckwFGKrl4xX4yWtrey3UJm5nP1kUbnYgLopqWNSRhWw==", + "dev": true + }, + "saxes": { + "version": "3.1.11", + "resolved": "https://registry.npmjs.org/saxes/-/saxes-3.1.11.tgz", + "integrity": "sha512-Ydydq3zC+WYDJK1+gRxRapLIED9PWeSuuS41wqyoRmzvhhh9nc+QQrVMKJYzJFULazeGhzSV0QleN2wD3boh2g==", + "dev": true, + "requires": { + "xmlchars": "^2.1.1" + } + }, + "semver": { + "version": "5.7.1", + "resolved": "https://registry.npmjs.org/semver/-/semver-5.7.1.tgz", + "integrity": "sha512-sauaDf/PZdVgrLTNYHRtpXa1iRiKcaebiKQ1BJdpQlWH2lCvexQdX55snPFyK7QzpudqbCI0qXFfOasHdyNDGQ==" + }, + "semver-diff": { + "version": "3.1.1", + "resolved": "https://registry.npmjs.org/semver-diff/-/semver-diff-3.1.1.tgz", + "integrity": "sha512-GX0Ix/CJcHyB8c4ykpHGIAvLyOwOobtM/8d+TQkAd81/bEjgPHrfba41Vpesr7jX/t8Uh+R3EX9eAS5be+jQYg==", + "dev": true, + "requires": { + "semver": "^6.3.0" + }, + "dependencies": { + "semver": { + "version": "6.3.0", + "resolved": "https://registry.npmjs.org/semver/-/semver-6.3.0.tgz", + "integrity": "sha512-b39TBaTSfV6yBrapU89p5fKekE2m/NwnDocOVruQFS1/veMgdzuPcnOM34M6CwxW8jH/lxEa5rBoDeUwu5HHTw==", + "dev": true + } + } + }, + "send": { + "version": "0.17.1", + "resolved": "https://registry.npmjs.org/send/-/send-0.17.1.tgz", + "integrity": "sha512-BsVKsiGcQMFwT8UxypobUKyv7irCNRHk1T0G680vk88yf6LBByGcZJOTJCrTP2xVN6yI+XjPJcNuE3V4fT9sAg==", + "dev": true, + "requires": { + "debug": "2.6.9", + "depd": "~1.1.2", + "destroy": "~1.0.4", + "encodeurl": "~1.0.2", + "escape-html": "~1.0.3", + "etag": "~1.8.1", + "fresh": "0.5.2", + "http-errors": "~1.7.2", + "mime": "1.6.0", + "ms": "2.1.1", + "on-finished": "~2.3.0", + "range-parser": "~1.2.1", + "statuses": "~1.5.0" + }, + "dependencies": { + "debug": { + "version": "2.6.9", + "resolved": "https://registry.npmjs.org/debug/-/debug-2.6.9.tgz", + "integrity": "sha512-bC7ElrdJaJnPbAP+1EotYvqZsb3ecl5wi6Bfi6BJTUcNowp6cvspg0jXznRTKDjm/E7AdgFBVeAPVMNcKGsHMA==", + "dev": true, + "requires": { + "ms": "2.0.0" + }, + "dependencies": { + "ms": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/ms/-/ms-2.0.0.tgz", + "integrity": "sha1-VgiurfwAvmwpAd9fmGF4jeDVl8g=", + "dev": true + } + } + }, + "ms": { + "version": "2.1.1", + "resolved": "https://registry.npmjs.org/ms/-/ms-2.1.1.tgz", + "integrity": "sha512-tgp+dl5cGk28utYktBsrFqA7HKgrhgPsg6Z/EfhWI4gl1Hwq8B/GmY/0oXZ6nF8hDVesS/FpnYaD/kOWhYQvyg==", + "dev": true + } + } + }, + "serialize-to-js": { + "version": "3.1.1", + "resolved": "https://registry.npmjs.org/serialize-to-js/-/serialize-to-js-3.1.1.tgz", + "integrity": "sha512-F+NGU0UHMBO4Q965tjw7rvieNVjlH6Lqi2emq/Lc9LUURYJbiCzmpi4Cy1OOjjVPtxu0c+NE85LU6968Wko5ZA==", + "dev": true + }, + "serve-index": { + "version": "1.9.1", + "resolved": "https://registry.npmjs.org/serve-index/-/serve-index-1.9.1.tgz", + "integrity": "sha1-03aNabHn2C5c4FD/9bRTvqEqkjk=", + "dev": true, + "requires": { + "accepts": "~1.3.4", + "batch": "0.6.1", + "debug": "2.6.9", + "escape-html": "~1.0.3", + "http-errors": "~1.6.2", + "mime-types": "~2.1.17", + "parseurl": "~1.3.2" + }, + "dependencies": { + "debug": { + "version": "2.6.9", + "resolved": "https://registry.npmjs.org/debug/-/debug-2.6.9.tgz", + "integrity": "sha512-bC7ElrdJaJnPbAP+1EotYvqZsb3ecl5wi6Bfi6BJTUcNowp6cvspg0jXznRTKDjm/E7AdgFBVeAPVMNcKGsHMA==", + "dev": true, + "requires": { + "ms": "2.0.0" + } + }, + "http-errors": { + "version": "1.6.3", + "resolved": "https://registry.npmjs.org/http-errors/-/http-errors-1.6.3.tgz", + "integrity": "sha1-i1VoC7S+KDoLW/TqLjhYC+HZMg0=", + "dev": true, + "requires": { + "depd": "~1.1.2", + "inherits": "2.0.3", + "setprototypeof": "1.1.0", + "statuses": ">= 1.4.0 < 2" + } + }, + "inherits": { + "version": "2.0.3", + "resolved": "https://registry.npmjs.org/inherits/-/inherits-2.0.3.tgz", + "integrity": "sha1-Yzwsg+PaQqUC9SRmAiSA9CCCYd4=", + "dev": true + }, + "ms": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/ms/-/ms-2.0.0.tgz", + "integrity": "sha1-VgiurfwAvmwpAd9fmGF4jeDVl8g=", + "dev": true + }, + "setprototypeof": { + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/setprototypeof/-/setprototypeof-1.1.0.tgz", + "integrity": "sha512-BvE/TwpZX4FXExxOxZyRGQQv651MSwmWKZGqvmPcRIjDqWub67kTKuIMx43cZZrS/cBBzwBcNDWoFxt2XEFIpQ==", + "dev": true + } + } + }, + "serve-static": { + "version": "1.14.1", + "resolved": "https://registry.npmjs.org/serve-static/-/serve-static-1.14.1.tgz", + "integrity": "sha512-JMrvUwE54emCYWlTI+hGrGv5I8dEwmco/00EvkzIIsR7MqrHonbD9pO2MOfFnpFntl7ecpZs+3mW+XbQZu9QCg==", + "dev": true, + "requires": { + "encodeurl": "~1.0.2", + "escape-html": "~1.0.3", + "parseurl": "~1.3.3", + "send": "0.17.1" + } + }, + "set-blocking": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/set-blocking/-/set-blocking-2.0.0.tgz", + "integrity": "sha1-BF+XgtARrppoA93TgrJDkrPYkPc=" + }, + "set-value": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/set-value/-/set-value-2.0.1.tgz", + "integrity": "sha512-JxHc1weCN68wRY0fhCoXpyK55m/XPHafOmK4UWD7m2CI14GMcFypt4w/0+NV5f/ZMby2F6S2wwA7fgynh9gWSw==", + "dev": true, + "requires": { + "extend-shallow": "^2.0.1", + "is-extendable": "^0.1.1", + "is-plain-object": "^2.0.3", + "split-string": "^3.0.1" + }, + "dependencies": { + "extend-shallow": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/extend-shallow/-/extend-shallow-2.0.1.tgz", + "integrity": "sha1-Ua99YUrZqfYQ6huvu5idaxxWiQ8=", + "dev": true, + "requires": { + "is-extendable": "^0.1.0" + } + } + } + }, + "setimmediate": { + "version": "1.0.5", + "resolved": "https://registry.npmjs.org/setimmediate/-/setimmediate-1.0.5.tgz", + "integrity": "sha1-KQy7Iy4waULX1+qbg3Mqt4VvgoU=", + "dev": true + }, + "setprototypeof": { + "version": "1.1.1", + "resolved": "https://registry.npmjs.org/setprototypeof/-/setprototypeof-1.1.1.tgz", + "integrity": "sha512-JvdAWfbXeIGaZ9cILp38HntZSFSo3mWg6xGcJJsd+d4aRMOqauag1C63dJfDw7OaMYwEbHMOxEZ1lqVRYP2OAw==", + "dev": true + }, + "sha.js": { + "version": "2.4.11", + "resolved": "https://registry.npmjs.org/sha.js/-/sha.js-2.4.11.tgz", + "integrity": "sha512-QMEp5B7cftE7APOjk5Y6xgrbWu+WkLVQwk8JNjZ8nKRciZaByEW6MubieAiToS7+dwvrjGhH8jRXz3MVd0AYqQ==", + "dev": true, + "requires": { + "inherits": "^2.0.1", + "safe-buffer": "^5.0.1" + } + }, + "shallow-copy": { + "version": "0.0.1", + "resolved": "https://registry.npmjs.org/shallow-copy/-/shallow-copy-0.0.1.tgz", + "integrity": "sha1-QV9CcC1z2BAzApLMXuhurhoRoXA=", + "dev": true + }, + "shebang-command": { + "version": "1.2.0", + "resolved": "https://registry.npmjs.org/shebang-command/-/shebang-command-1.2.0.tgz", + "integrity": "sha1-RKrGW2lbAzmJaMOfNj/uXer98eo=", + "dev": true, + "requires": { + "shebang-regex": "^1.0.0" + } + }, + "shebang-regex": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/shebang-regex/-/shebang-regex-1.0.0.tgz", + "integrity": "sha1-2kL0l0DAtC2yypcoVxyxkMmO/qM=", + "dev": true + }, + "shell-quote": { + "version": "1.7.2", + "resolved": "https://registry.npmjs.org/shell-quote/-/shell-quote-1.7.2.tgz", + "integrity": "sha512-mRz/m/JVscCrkMyPqHc/bczi3OQHkLTqXHEFu0zDhK/qfv3UcOA4SVmRCLmos4bhjr9ekVQubj/R7waKapmiQg==", + "dev": true + }, + "shelljs": { + "version": "0.8.4", + "resolved": "https://registry.npmjs.org/shelljs/-/shelljs-0.8.4.tgz", + "integrity": "sha512-7gk3UZ9kOfPLIAbslLzyWeGiEqx9e3rxwZM0KE6EL8GlGwjym9Mrlx5/p33bWTu9YG6vcS4MBxYZDHYr5lr8BQ==", + "dev": true, + "requires": { + "glob": "^7.0.0", + "interpret": "^1.0.0", + "rechoir": "^0.6.2" + }, + "dependencies": { + "glob": { + "version": "7.1.6", + "resolved": "https://registry.npmjs.org/glob/-/glob-7.1.6.tgz", + "integrity": "sha512-LwaxwyZ72Lk7vZINtNNrywX0ZuLyStrdDtabefZKAY5ZGJhVtgdznluResxNmPitE0SAO+O26sWTHeKSI2wMBA==", + "dev": true, + "requires": { + "fs.realpath": "^1.0.0", + "inflight": "^1.0.4", + "inherits": "2", + "minimatch": "^3.0.4", + "once": "^1.3.0", + "path-is-absolute": "^1.0.0" + } + } + } + }, + "shellwords": { + "version": "0.1.1", + "resolved": "https://registry.npmjs.org/shellwords/-/shellwords-0.1.1.tgz", + "integrity": "sha512-vFwSUfQvqybiICwZY5+DAWIPLKsWO31Q91JSKl3UYv+K5c2QRPzn0qzec6QPu1Qc9eHYItiP3NdJqNVqetYAww==", + "dev": true, + "optional": true + }, + "signal-exit": { + "version": "3.0.3", + "resolved": "https://registry.npmjs.org/signal-exit/-/signal-exit-3.0.3.tgz", + "integrity": "sha512-VUJ49FC8U1OxwZLxIbTTrDvLnf/6TDgxZcK8wxR8zs13xpx7xbG60ndBlhNrFi2EMuFRoeDoJO7wthSLq42EjA==", + "dev": true + }, + "simple-swizzle": { + "version": "0.2.2", + "resolved": "https://registry.npmjs.org/simple-swizzle/-/simple-swizzle-0.2.2.tgz", + "integrity": "sha1-pNprY1/8zMoz9w0Xy5JZLeleVXo=", + "dev": true, + "requires": { + "is-arrayish": "^0.3.1" + }, + "dependencies": { + "is-arrayish": { + "version": "0.3.2", + "resolved": "https://registry.npmjs.org/is-arrayish/-/is-arrayish-0.3.2.tgz", + "integrity": "sha512-eVRqCvVlZbuw3GrM63ovNSNAeA1K16kaR/LRY/92w0zxQ5/1YzwblUX652i4Xs9RwAGjW9d9y6X88t8OaAJfWQ==", + "dev": true + } + } + }, + "sisteransi": { + "version": "1.0.5", + "resolved": "https://registry.npmjs.org/sisteransi/-/sisteransi-1.0.5.tgz", + "integrity": "sha512-bLGGlR1QxBcynn2d5YmDX4MGjlZvy2MRBDRNHLJ8VI6l6+9FUiyTFNJ0IveOSP0bcXgVDPRcfGqA0pjaqUpfVg==", + "dev": true + }, + "slash": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/slash/-/slash-3.0.0.tgz", + "integrity": "sha512-g9Q1haeby36OSStwb4ntCGGGaKsaVSjQ68fBxoQcutl5fS1vuY18H3wSt3jFyFtrkx+Kz0V1G85A4MyAdDMi2Q==", + "dev": true + }, + "slice-ansi": { + "version": "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" + } + }, + "snapdragon": { + "version": "0.8.2", + "resolved": "https://registry.npmjs.org/snapdragon/-/snapdragon-0.8.2.tgz", + "integrity": "sha512-FtyOnWN/wCHTVXOMwvSv26d+ko5vWlIDD6zoUJ7LW8vh+ZBC8QdljveRP+crNrtBwioEUWy/4dMtbBjA4ioNlg==", + "dev": true, + "requires": { + "base": "^0.11.1", + "debug": "^2.2.0", + "define-property": "^0.2.5", + "extend-shallow": "^2.0.1", + "map-cache": "^0.2.2", + "source-map": "^0.5.6", + "source-map-resolve": "^0.5.0", + "use": "^3.1.0" + }, + "dependencies": { + "debug": { + "version": "2.6.9", + "resolved": "https://registry.npmjs.org/debug/-/debug-2.6.9.tgz", + "integrity": "sha512-bC7ElrdJaJnPbAP+1EotYvqZsb3ecl5wi6Bfi6BJTUcNowp6cvspg0jXznRTKDjm/E7AdgFBVeAPVMNcKGsHMA==", + "dev": true, + "requires": { + "ms": "2.0.0" + } + }, + "define-property": { + "version": "0.2.5", + "resolved": "https://registry.npmjs.org/define-property/-/define-property-0.2.5.tgz", + "integrity": "sha1-w1se+RjsPJkPmlvFe+BKrOxcgRY=", + "dev": true, + "requires": { + "is-descriptor": "^0.1.0" + } + }, + "extend-shallow": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/extend-shallow/-/extend-shallow-2.0.1.tgz", + "integrity": "sha1-Ua99YUrZqfYQ6huvu5idaxxWiQ8=", + "dev": true, + "requires": { + "is-extendable": "^0.1.0" + } + }, + "ms": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/ms/-/ms-2.0.0.tgz", + "integrity": "sha1-VgiurfwAvmwpAd9fmGF4jeDVl8g=", + "dev": true + }, + "source-map": { + "version": "0.5.7", + "resolved": "https://registry.npmjs.org/source-map/-/source-map-0.5.7.tgz", + "integrity": "sha1-igOdLRAh0i0eoUyA2OpGi6LvP8w=", + "dev": true + } + } + }, + "snapdragon-node": { + "version": "2.1.1", + "resolved": "https://registry.npmjs.org/snapdragon-node/-/snapdragon-node-2.1.1.tgz", + "integrity": "sha512-O27l4xaMYt/RSQ5TR3vpWCAB5Kb/czIcqUFOM/C4fYcLnbZUc1PkjTAMjof2pBWaSTwOUd6qUHcFGVGj7aIwnw==", + "dev": true, + "requires": { + "define-property": "^1.0.0", + "isobject": "^3.0.0", + "snapdragon-util": "^3.0.1" + }, + "dependencies": { + "define-property": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/define-property/-/define-property-1.0.0.tgz", + "integrity": "sha1-dp66rz9KY6rTr56NMEybvnm/sOY=", + "dev": true, + "requires": { + "is-descriptor": "^1.0.0" + } + }, + "is-accessor-descriptor": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/is-accessor-descriptor/-/is-accessor-descriptor-1.0.0.tgz", + "integrity": "sha512-m5hnHTkcVsPfqx3AKlyttIPb7J+XykHvJP2B9bZDjlhLIoEq4XoK64Vg7boZlVWYK6LUY94dYPEE7Lh0ZkZKcQ==", + "dev": true, + "requires": { + "kind-of": "^6.0.0" + } + }, + "is-data-descriptor": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/is-data-descriptor/-/is-data-descriptor-1.0.0.tgz", + "integrity": "sha512-jbRXy1FmtAoCjQkVmIVYwuuqDFUbaOeDjmed1tOGPrsMhtJA4rD9tkgA0F1qJ3gRFRXcHYVkdeaP50Q5rE/jLQ==", + "dev": true, + "requires": { + "kind-of": "^6.0.0" + } + }, + "is-descriptor": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/is-descriptor/-/is-descriptor-1.0.2.tgz", + "integrity": "sha512-2eis5WqQGV7peooDyLmNEPUrps9+SXX5c9pL3xEB+4e9HnGuDa7mB7kHxHw4CbqS9k1T2hOH3miL8n8WtiYVtg==", + "dev": true, + "requires": { + "is-accessor-descriptor": "^1.0.0", + "is-data-descriptor": "^1.0.0", + "kind-of": "^6.0.2" + } + } + } + }, + "snapdragon-util": { + "version": "3.0.1", + "resolved": "https://registry.npmjs.org/snapdragon-util/-/snapdragon-util-3.0.1.tgz", + "integrity": "sha512-mbKkMdQKsjX4BAL4bRYTj21edOf8cN7XHdYUJEe+Zn99hVEYcMvKPct1IqNe7+AZPirn8BCDOQBHQZknqmKlZQ==", + "dev": true, + "requires": { + "kind-of": "^3.2.0" + }, + "dependencies": { + "kind-of": { + "version": "3.2.2", + "resolved": "https://registry.npmjs.org/kind-of/-/kind-of-3.2.2.tgz", + "integrity": "sha1-MeohpzS6ubuw8yRm2JOupR5KPGQ=", + "dev": true, + "requires": { + "is-buffer": "^1.1.5" + } + } + } + }, + "sort-keys": { + "version": "1.1.2", + "resolved": "https://registry.npmjs.org/sort-keys/-/sort-keys-1.1.2.tgz", + "integrity": "sha1-RBttTTRnmPG05J6JIK37oOVD+a0=", + "dev": true, + "requires": { + "is-plain-obj": "^1.0.0" + } + }, + "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-resolve": { + "version": "0.5.3", + "resolved": "https://registry.npmjs.org/source-map-resolve/-/source-map-resolve-0.5.3.tgz", + "integrity": "sha512-Htz+RnsXWk5+P2slx5Jh3Q66vhQj1Cllm0zvnaY98+NFx+Dv2CF/f5O/t8x+KaNdrdIAsruNzoh/KpialbqAnw==", + "dev": true, + "requires": { + "atob": "^2.1.2", + "decode-uri-component": "^0.2.0", + "resolve-url": "^0.2.1", + "source-map-url": "^0.4.0", + "urix": "^0.1.0" + } + }, + "source-map-support": { + "version": "0.5.19", + "resolved": "https://registry.npmjs.org/source-map-support/-/source-map-support-0.5.19.tgz", + "integrity": "sha512-Wonm7zOCIJzBGQdB+thsPar0kYuCIzYvxZwlBa87yi/Mdjv7Tip2cyVbLj5o0cFPN4EVkuTwb3GDDyUx2DGnGw==", + "dev": true, + "requires": { + "buffer-from": "^1.0.0", + "source-map": "^0.6.0" + } + }, + "source-map-url": { + "version": "0.4.0", + "resolved": "https://registry.npmjs.org/source-map-url/-/source-map-url-0.4.0.tgz", + "integrity": "sha1-PpNdfd1zYxuXZZlW1VEo6HtQhKM=", + "dev": true + }, + "spdx-correct": { + "version": "3.1.1", + "resolved": "https://registry.npmjs.org/spdx-correct/-/spdx-correct-3.1.1.tgz", + "integrity": "sha512-cOYcUWwhCuHCXi49RhFRCyJEK3iPj1Ziz9DpViV3tbZOwXD49QzIN3MpOLJNxh2qwq2lJJZaKMVw9qNi4jTC0w==", + "dev": true, + "requires": { + "spdx-expression-parse": "^3.0.0", + "spdx-license-ids": "^3.0.0" + } + }, + "spdx-exceptions": { + "version": "2.3.0", + "resolved": "https://registry.npmjs.org/spdx-exceptions/-/spdx-exceptions-2.3.0.tgz", + "integrity": "sha512-/tTrYOC7PPI1nUAgx34hUpqXuyJG+DTHJTnIULG4rDygi4xu/tfgmq1e1cIRwRzwZgo4NLySi+ricLkZkw4i5A==", + "dev": true + }, + "spdx-expression-parse": { + "version": "3.0.1", + "resolved": "https://registry.npmjs.org/spdx-expression-parse/-/spdx-expression-parse-3.0.1.tgz", + "integrity": "sha512-cbqHunsQWnJNE6KhVSMsMeH5H/L9EpymbzqTQ3uLwNCLZ1Q481oWaofqH7nO6V07xlXwY6PhQdQ2IedWx/ZK4Q==", + "dev": true, + "requires": { + "spdx-exceptions": "^2.1.0", + "spdx-license-ids": "^3.0.0" + } + }, + "spdx-license-ids": { + "version": "3.0.7", + "resolved": "https://registry.npmjs.org/spdx-license-ids/-/spdx-license-ids-3.0.7.tgz", + "integrity": "sha512-U+MTEOO0AiDzxwFvoa4JVnMV6mZlJKk2sBLt90s7G0Gd0Mlknc7kxEn3nuDPNZRta7O2uy8oLcZLVT+4sqNZHQ==", + "dev": true + }, + "split": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/split/-/split-1.0.1.tgz", + "integrity": "sha512-mTyOoPbrivtXnwnIxZRFYRrPNtEFKlpB2fvjSnCQUiAA6qAZzqwna5envK4uk6OIeP17CsdF3rSBGYVBsU0Tkg==", + "dev": true, + "requires": { + "through": "2" + } + }, + "split-string": { + "version": "3.1.0", + "resolved": "https://registry.npmjs.org/split-string/-/split-string-3.1.0.tgz", + "integrity": "sha512-NzNVhJDYpwceVVii8/Hu6DKfD2G+NrQHlS/V/qgv763EYudVwEcMQNxd2lh+0VrUByXN/oJkl5grOhYWvQUYiw==", + "dev": true, + "requires": { + "extend-shallow": "^3.0.0" + } + }, + "split.js": { + "version": "1.6.2", + "resolved": "https://registry.npmjs.org/split.js/-/split.js-1.6.2.tgz", + "integrity": "sha512-72C7zcQePzlmWqPOKkB2Ro0sUmnWSx+qEWXjLJKk6Qp4jAkFRz1hJgJb+ay6ZQyz/Aw9r8N/PZiCEKbPVpFoDQ==" + }, + "split2": { + "version": "2.2.0", + "resolved": "https://registry.npmjs.org/split2/-/split2-2.2.0.tgz", + "integrity": "sha512-RAb22TG39LhI31MbreBgIuKiIKhVsawfTgEGqKHTK87aG+ul/PB8Sqoi3I7kVdRWiCfrKxK3uo4/YUkpNvhPbw==", + "dev": true, + "requires": { + "through2": "^2.0.2" + } + }, + "sprintf-js": { + "version": "1.0.3", + "resolved": "https://registry.npmjs.org/sprintf-js/-/sprintf-js-1.0.3.tgz", + "integrity": "sha1-BOaSb2YolTVPPdAVIDYzuFcpfiw=", + "dev": true + }, + "srcset": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/srcset/-/srcset-3.0.0.tgz", + "integrity": "sha512-D59vF08Qzu/C4GAOXVgMTLfgryt5fyWo93FZyhEWANo0PokFz/iWdDe13mX3O5TRf6l8vMTqckAfR4zPiaH0yQ==", + "dev": true + }, + "sshpk": { + "version": "1.16.1", + "resolved": "https://registry.npmjs.org/sshpk/-/sshpk-1.16.1.tgz", + "integrity": "sha512-HXXqVUq7+pcKeLqqZj6mHFUMvXtOJt1uoUx09pFW6011inTMxqI8BA8PM95myrIyyKwdnzjdFjLiE6KBPVtJIg==", + "dev": true, + "requires": { + "asn1": "~0.2.3", + "assert-plus": "^1.0.0", + "bcrypt-pbkdf": "^1.0.0", + "dashdash": "^1.12.0", + "ecc-jsbn": "~0.1.1", + "getpass": "^0.1.1", + "jsbn": "~0.1.0", + "safer-buffer": "^2.0.2", + "tweetnacl": "~0.14.0" + } + }, + "stable": { + "version": "0.1.8", + "resolved": "https://registry.npmjs.org/stable/-/stable-0.1.8.tgz", + "integrity": "sha512-ji9qxRnOVfcuLDySj9qzhGSEFVobyt1kIOSkj1qZzYLzq7Tos/oUUWvotUPQLlrsidqsK6tBH89Bc9kL5zHA6w==", + "dev": true + }, + "stack-utils": { + "version": "2.0.3", + "resolved": "https://registry.npmjs.org/stack-utils/-/stack-utils-2.0.3.tgz", + "integrity": "sha512-gL//fkxfWUsIlFL2Tl42Cl6+HFALEaB1FU76I/Fy+oZjRreP7OPMXFlGbxM7NQsI0ZpUfw76sHnv0WNYuTb7Iw==", + "dev": true, + "requires": { + "escape-string-regexp": "^2.0.0" + }, + "dependencies": { + "escape-string-regexp": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/escape-string-regexp/-/escape-string-regexp-2.0.0.tgz", + "integrity": "sha512-UpzcLCXolUWcNu5HtVMHYdXJjArjsF9C0aNnquZYY4uW/Vu0miy5YoWvbV345HauVvcAUnpRuhMMcqTcGOY2+w==", + "dev": true + } + } + }, + "standard-version": { + "version": "8.0.0", + "resolved": "https://registry.npmjs.org/standard-version/-/standard-version-8.0.0.tgz", + "integrity": "sha512-cS/U9yhYPHfyokFce6e/H3U8MaKwZKSGzH25J776sChrae/doDQjsl3vCQ0hW1MSzdrUTb7pir4ApjnbDt/TAg==", + "dev": true, + "requires": { + "chalk": "2.4.2", + "conventional-changelog": "3.1.18", + "conventional-changelog-config-spec": "2.1.0", + "conventional-changelog-conventionalcommits": "4.2.3", + "conventional-recommended-bump": "6.0.5", + "detect-indent": "6.0.0", + "detect-newline": "3.1.0", + "dotgitignore": "2.1.0", + "figures": "3.1.0", + "find-up": "4.1.0", + "fs-access": "1.0.1", + "git-semver-tags": "3.0.1", + "semver": "7.1.1", + "stringify-package": "1.0.1", + "yargs": "15.3.1" + }, + "dependencies": { + "ansi-regex": { + "version": "5.0.0", + "resolved": "https://registry.npmjs.org/ansi-regex/-/ansi-regex-5.0.0.tgz", + "integrity": "sha512-bY6fj56OUQ0hU1KjFNDQuJFezqKdrAyFdIevADiqrWHwSlbmBNMHp5ak2f40Pm8JTFyM2mqxkG6ngkHO11f/lg==", + "dev": true + }, + "camelcase": { + "version": "4.1.0", + "resolved": "https://registry.npmjs.org/camelcase/-/camelcase-4.1.0.tgz", + "integrity": "sha1-1UVjW+HjPFQmScaRc+Xeas+uNN0=", + "dev": true + }, + "camelcase-keys": { + "version": "4.2.0", + "resolved": "https://registry.npmjs.org/camelcase-keys/-/camelcase-keys-4.2.0.tgz", + "integrity": "sha1-oqpfsa9oh1glnDLBQUJteJI7m3c=", + "dev": true, + "requires": { + "camelcase": "^4.1.0", + "map-obj": "^2.0.0", + "quick-lru": "^1.0.0" + } + }, + "compare-func": { + "version": "1.3.4", + "resolved": "https://registry.npmjs.org/compare-func/-/compare-func-1.3.4.tgz", + "integrity": "sha512-sq2sWtrqKPkEXAC8tEJA1+BqAH9GbFkGBtUOqrUX57VSfwp8xyktctk+uLoRy5eccTdxzDcVIztlYDpKs3Jv1Q==", + "dev": true, + "requires": { + "array-ify": "^1.0.0", + "dot-prop": "^3.0.0" + } + }, + "concat-stream": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/concat-stream/-/concat-stream-2.0.0.tgz", + "integrity": "sha512-MWufYdFw53ccGjCA+Ol7XJYpAlW6/prSMzuPOTRnJGcGzuhLn4Scrz7qf6o8bROZ514ltazcIFJZevcfbo0x7A==", + "dev": true, + "requires": { + "buffer-from": "^1.0.0", + "inherits": "^2.0.3", + "readable-stream": "^3.0.2", + "typedarray": "^0.0.6" + } + }, + "conventional-changelog-conventionalcommits": { + "version": "4.2.3", + "resolved": "https://registry.npmjs.org/conventional-changelog-conventionalcommits/-/conventional-changelog-conventionalcommits-4.2.3.tgz", + "integrity": "sha512-atGa+R4vvEhb8N/8v3IoW59gCBJeeFiX6uIbPu876ENAmkMwsenyn0R21kdDHJFLQdy6zW4J6b4xN8KI3b9oww==", + "dev": true, + "requires": { + "compare-func": "^1.3.1", + "lodash": "^4.17.15", + "q": "^1.5.1" + } + }, + "conventional-recommended-bump": { + "version": "6.0.5", + "resolved": "https://registry.npmjs.org/conventional-recommended-bump/-/conventional-recommended-bump-6.0.5.tgz", + "integrity": "sha512-srkferrB4kACPEbKYltZwX1CQZAEqbQkabKN444mavLRVMetzwJFJf23/+pwvtMsWbd+cc4HaleV1nHke0f8Rw==", + "dev": true, + "requires": { + "concat-stream": "^2.0.0", + "conventional-changelog-preset-loader": "^2.3.0", + "conventional-commits-filter": "^2.0.2", + "conventional-commits-parser": "^3.0.8", + "git-raw-commits": "2.0.0", + "git-semver-tags": "^3.0.1", + "meow": "^5.0.0", + "q": "^1.5.1" + } + }, + "detect-indent": { + "version": "6.0.0", + "resolved": "https://registry.npmjs.org/detect-indent/-/detect-indent-6.0.0.tgz", + "integrity": "sha512-oSyFlqaTHCItVRGK5RmrmjB+CmaMOW7IaNA/kdxqhoa6d17j/5ce9O9eWXmV/KEdRwqpQA+Vqe8a8Bsybu4YnA==", + "dev": true + }, + "dot-prop": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/dot-prop/-/dot-prop-3.0.0.tgz", + "integrity": "sha1-G3CK8JSknJoOfbyteQq6U52sEXc=", + "dev": true, + "requires": { + "is-obj": "^1.0.0" + } + }, + "emoji-regex": { + "version": "8.0.0", + "resolved": "https://registry.npmjs.org/emoji-regex/-/emoji-regex-8.0.0.tgz", + "integrity": "sha512-MSjYzcWNOA0ewAHpz0MxpYFvwg6yjy1NG3xteoqz644VCo/RPgnr1/GGt+ic3iJTzQ8Eu3TdM14SawnVUmGE6A==", + "dev": true + }, + "figures": { + "version": "3.1.0", + "resolved": "https://registry.npmjs.org/figures/-/figures-3.1.0.tgz", + "integrity": "sha512-ravh8VRXqHuMvZt/d8GblBeqDMkdJMBdv/2KntFH+ra5MXkO7nxNKpzQ3n6QD/2da1kH0aWmNISdvhM7gl2gVg==", + "dev": true, + "requires": { + "escape-string-regexp": "^1.0.5" + } + }, + "find-up": { + "version": "4.1.0", + "resolved": "https://registry.npmjs.org/find-up/-/find-up-4.1.0.tgz", + "integrity": "sha512-PpOwAdQ/YlXQ2vj8a3h8IipDuYRi3wceVQQGYWxNINccq40Anw7BlsEXCMbt1Zt+OLA6Fq9suIpIWD0OsnISlw==", + "dev": true, + "requires": { + "locate-path": "^5.0.0", + "path-exists": "^4.0.0" + }, + "dependencies": { + "locate-path": { + "version": "5.0.0", + "resolved": "https://registry.npmjs.org/locate-path/-/locate-path-5.0.0.tgz", + "integrity": "sha512-t7hw9pI+WvuwNJXwk5zVHpyhIqzg2qTlklJOf0mVxGSbe3Fp2VieZcduNYjaLDoy6p9uGpQEGWG87WpMKlNq8g==", + "dev": true, + "requires": { + "p-locate": "^4.1.0" + } + } + } + }, + "git-semver-tags": { + "version": "3.0.1", + "resolved": "https://registry.npmjs.org/git-semver-tags/-/git-semver-tags-3.0.1.tgz", + "integrity": "sha512-Hzd1MOHXouITfCasrpVJbRDg9uvW7LfABk3GQmXYZByerBDrfrEMP9HXpNT7RxAbieiocP6u+xq20DkvjwxnCA==", + "dev": true, + "requires": { + "meow": "^5.0.0", + "semver": "^6.0.0" + }, + "dependencies": { + "semver": { + "version": "6.3.0", + "resolved": "https://registry.npmjs.org/semver/-/semver-6.3.0.tgz", + "integrity": "sha512-b39TBaTSfV6yBrapU89p5fKekE2m/NwnDocOVruQFS1/veMgdzuPcnOM34M6CwxW8jH/lxEa5rBoDeUwu5HHTw==", + "dev": true + } + } + }, + "indent-string": { + "version": "3.2.0", + "resolved": "https://registry.npmjs.org/indent-string/-/indent-string-3.2.0.tgz", + "integrity": "sha1-Sl/W0nzDMvN+VBmlBNu4NxBckok=", + "dev": true + }, + "is-fullwidth-code-point": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/is-fullwidth-code-point/-/is-fullwidth-code-point-3.0.0.tgz", + "integrity": "sha512-zymm5+u+sCsSWyD9qNaejV3DFvhCKclKdizYaJUuHA83RLjb7nSuGnddCHGv0hk+KY7BMAlsWeK4Ueg6EV6XQg==", + "dev": true + }, + "is-obj": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/is-obj/-/is-obj-1.0.1.tgz", + "integrity": "sha1-PkcprB9f3gJc19g6iW2rn09n2w8=", + "dev": true + }, + "map-obj": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/map-obj/-/map-obj-2.0.0.tgz", + "integrity": "sha1-plzSkIepJZi4eRJXpSPgISIqwfk=", + "dev": true + }, + "meow": { + "version": "5.0.0", + "resolved": "https://registry.npmjs.org/meow/-/meow-5.0.0.tgz", + "integrity": "sha512-CbTqYU17ABaLefO8vCU153ZZlprKYWDljcndKKDCFcYQITzWCXZAVk4QMFZPgvzrnUQ3uItnIE/LoUOwrT15Ig==", + "dev": true, + "requires": { + "camelcase-keys": "^4.0.0", + "decamelize-keys": "^1.0.0", + "loud-rejection": "^1.0.0", + "minimist-options": "^3.0.1", + "normalize-package-data": "^2.3.4", + "read-pkg-up": "^3.0.0", + "redent": "^2.0.0", + "trim-newlines": "^2.0.0", + "yargs-parser": "^10.0.0" + } + }, + "minimist-options": { + "version": "3.0.2", + "resolved": "https://registry.npmjs.org/minimist-options/-/minimist-options-3.0.2.tgz", + "integrity": "sha512-FyBrT/d0d4+uiZRbqznPXqw3IpZZG3gl3wKWiX784FycUKVwBt0uLBFkQrtE4tZOrgo78nZp2jnKz3L65T5LdQ==", + "dev": true, + "requires": { + "arrify": "^1.0.1", + "is-plain-obj": "^1.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==", + "dev": true, + "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==", + "dev": true, + "requires": { + "p-limit": "^2.2.0" + } + }, + "p-try": { + "version": "2.2.0", + "resolved": "https://registry.npmjs.org/p-try/-/p-try-2.2.0.tgz", + "integrity": "sha512-R4nPAVTAU0B9D35/Gk3uJf/7XYbQcyohSKdvAxIRSNghFl4e71hVoGnBNQz9cWaXxO2I10KTC+3jMdvvoKw6dQ==", + "dev": true + }, + "path-exists": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/path-exists/-/path-exists-4.0.0.tgz", + "integrity": "sha512-ak9Qy5Q7jYb2Wwcey5Fpvg2KoAc/ZIhLSLOSBmRmygPsGwkVVt0fZa0qrtMz+m6tJTAHfZQ8FnmB4MG4LWy7/w==", + "dev": true + }, + "quick-lru": { + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/quick-lru/-/quick-lru-1.1.0.tgz", + "integrity": "sha1-Q2CxfGETatOAeDl/8RQW4Ybc+7g=", + "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": "sha1-PtSWaF26D4/hGNBpHcUfSh/5bwc=", + "dev": true, + "requires": { + "find-up": "^2.0.0", + "read-pkg": "^3.0.0" + }, + "dependencies": { + "find-up": { + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/find-up/-/find-up-2.1.0.tgz", + "integrity": "sha1-RdG35QbHF93UgndaK3eSCjwMV6c=", + "dev": true, + "requires": { + "locate-path": "^2.0.0" + } + } + } + }, + "readable-stream": { + "version": "3.6.0", + "resolved": "https://registry.npmjs.org/readable-stream/-/readable-stream-3.6.0.tgz", + "integrity": "sha512-BViHy7LKeTz4oNnkcLJ+lVSL6vpiFeX6/d3oSH8zCW7UxP2onchk+vTGB143xuFjHS3deTgkKoXXymXqymiIdA==", + "dev": true, + "requires": { + "inherits": "^2.0.3", + "string_decoder": "^1.1.1", + "util-deprecate": "^1.0.1" + } + }, + "redent": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/redent/-/redent-2.0.0.tgz", + "integrity": "sha1-wbIAe0LVfrE4kHmzyDM2OdXhzKo=", + "dev": true, + "requires": { + "indent-string": "^3.0.0", + "strip-indent": "^2.0.0" + } + }, + "semver": { + "version": "7.1.1", + "resolved": "https://registry.npmjs.org/semver/-/semver-7.1.1.tgz", + "integrity": "sha512-WfuG+fl6eh3eZ2qAf6goB7nhiCd7NPXhmyFxigB/TOkQyeLP8w8GsVehvtGNtnNmyboz4TgeK40B1Kbql/8c5A==", + "dev": true + }, + "string-width": { + "version": "4.2.0", + "resolved": "https://registry.npmjs.org/string-width/-/string-width-4.2.0.tgz", + "integrity": "sha512-zUz5JD+tgqtuDjMhwIg5uFVV3dtqZ9yQJlZVfq4I01/K5Paj5UHj7VyrQOJvzawSVlKpObApbfD0Ed6yJc+1eg==", + "dev": true, + "requires": { + "emoji-regex": "^8.0.0", + "is-fullwidth-code-point": "^3.0.0", + "strip-ansi": "^6.0.0" + } + }, + "strip-ansi": { + "version": "6.0.0", + "resolved": "https://registry.npmjs.org/strip-ansi/-/strip-ansi-6.0.0.tgz", + "integrity": "sha512-AuvKTrTfQNYNIctbR1K/YGTR1756GycPsg7b9bdV9Duqur4gv6aKqHXah67Z8ImS7WEz5QVcOtlfW2rZEugt6w==", + "dev": true, + "requires": { + "ansi-regex": "^5.0.0" + } + }, + "strip-indent": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/strip-indent/-/strip-indent-2.0.0.tgz", + "integrity": "sha1-XvjbKV0B5u1sv3qrlpmNeCJSe2g=", + "dev": true + }, + "trim-newlines": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/trim-newlines/-/trim-newlines-2.0.0.tgz", + "integrity": "sha1-tAPQuRvlDDMd/EuC7s6yLD3hbSA=", + "dev": true + }, + "yargs": { + "version": "15.3.1", + "resolved": "https://registry.npmjs.org/yargs/-/yargs-15.3.1.tgz", + "integrity": "sha512-92O1HWEjw27sBfgmXiixJWT5hRBp2eobqXicLtPBIDBhYB+1HpwZlXmbW2luivBJHBzki+7VyCLRtAkScbTBQA==", + "dev": true, + "requires": { + "cliui": "^6.0.0", + "decamelize": "^1.2.0", + "find-up": "^4.1.0", + "get-caller-file": "^2.0.1", + "require-directory": "^2.1.1", + "require-main-filename": "^2.0.0", + "set-blocking": "^2.0.0", + "string-width": "^4.2.0", + "which-module": "^2.0.0", + "y18n": "^4.0.0", + "yargs-parser": "^18.1.1" + }, + "dependencies": { + "camelcase": { + "version": "5.3.1", + "resolved": "https://registry.npmjs.org/camelcase/-/camelcase-5.3.1.tgz", + "integrity": "sha512-L28STB170nwWS63UjtlEOE3dldQApaJXZkOI1uMFfzf3rRuPegHaHesyee+YxQ+W6SvRDQV6UrdOdRiR153wJg==", + "dev": true + }, + "yargs-parser": { + "version": "18.1.3", + "resolved": "https://registry.npmjs.org/yargs-parser/-/yargs-parser-18.1.3.tgz", + "integrity": "sha512-o50j0JeToy/4K6OZcaQmW6lyXXKhq7csREXcDwk2omFPJEwUNOVtJKvmDr9EI1fAJZUyZcRF7kxGBWmRXudrCQ==", + "dev": true, + "requires": { + "camelcase": "^5.0.0", + "decamelize": "^1.2.0" + } + } + } + }, + "yargs-parser": { + "version": "10.1.0", + "resolved": "https://registry.npmjs.org/yargs-parser/-/yargs-parser-10.1.0.tgz", + "integrity": "sha512-VCIyR1wJoEBZUqk5PA+oOBF6ypbwh5aNB3I50guxAL/quggdfs4TtNHQrSazFA3fYZ+tEqfs0zIGlv0c/rgjbQ==", + "dev": true, + "requires": { + "camelcase": "^4.1.0" + } + } + } + }, + "static-eval": { + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/static-eval/-/static-eval-2.1.0.tgz", + "integrity": "sha512-agtxZ/kWSsCkI5E4QifRwsaPs0P0JmZV6dkLz6ILYfFYQGn+5plctanRN+IC8dJRiFkyXHrwEE3W9Wmx67uDbw==", + "dev": true, + "requires": { + "escodegen": "^1.11.1" + }, + "dependencies": { + "escodegen": { + "version": "1.14.3", + "resolved": "https://registry.npmjs.org/escodegen/-/escodegen-1.14.3.tgz", + "integrity": "sha512-qFcX0XJkdg+PB3xjZZG/wKSuT1PnQWx57+TVSjIMmILd2yC/6ByYElPwJnslDsuWuSAp4AwJGumarAAmJch5Kw==", + "dev": true, + "requires": { + "esprima": "^4.0.1", + "estraverse": "^4.2.0", + "esutils": "^2.0.2", + "optionator": "^0.8.1", + "source-map": "~0.6.1" + } + }, + "esprima": { + "version": "4.0.1", + "resolved": "https://registry.npmjs.org/esprima/-/esprima-4.0.1.tgz", + "integrity": "sha512-eGuFFw7Upda+g4p+QHvnW0RyTX/SVeJBDM/gCtMARO0cLuT2HcEKnTPvhjV6aGeqrCB/sbNop0Kszm0jsaWU4A==", + "dev": true + } + } + }, + "static-extend": { + "version": "0.1.2", + "resolved": "https://registry.npmjs.org/static-extend/-/static-extend-0.1.2.tgz", + "integrity": "sha1-YICcOcv/VTNyJv1eC1IPNB8ftcY=", + "dev": true, + "requires": { + "define-property": "^0.2.5", + "object-copy": "^0.1.0" + }, + "dependencies": { + "define-property": { + "version": "0.2.5", + "resolved": "https://registry.npmjs.org/define-property/-/define-property-0.2.5.tgz", + "integrity": "sha1-w1se+RjsPJkPmlvFe+BKrOxcgRY=", + "dev": true, + "requires": { + "is-descriptor": "^0.1.0" + } + } + } + }, + "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==", + "dev": true, + "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": { + "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==", + "dev": true + } + } + }, + "statuses": { + "version": "1.5.0", + "resolved": "https://registry.npmjs.org/statuses/-/statuses-1.5.0.tgz", + "integrity": "sha1-Fhx9rBd2Wf2YEfQ3cfqZOBR4Yow=", + "dev": true + }, + "stealthy-require": { + "version": "1.1.1", + "resolved": "https://registry.npmjs.org/stealthy-require/-/stealthy-require-1.1.1.tgz", + "integrity": "sha1-NbCYdbT/SfJqd35QmzCQoyJr8ks=", + "dev": true + }, + "stream-browserify": { + "version": "2.0.2", + "resolved": "https://registry.npmjs.org/stream-browserify/-/stream-browserify-2.0.2.tgz", + "integrity": "sha512-nX6hmklHs/gr2FuxYDltq8fJA1GDlxKQCz8O/IM4atRqBH8OORmBNgfvW5gG10GT/qQ9u0CzIvr2X5Pkt6ntqg==", + "dev": true, + "requires": { + "inherits": "~2.0.1", + "readable-stream": "^2.0.2" + } + }, + "stream-combiner": { + "version": "0.0.4", + "resolved": "https://registry.npmjs.org/stream-combiner/-/stream-combiner-0.0.4.tgz", + "integrity": "sha1-TV5DPBhSYd3mI8o/RMWGvPXErRQ=", + "dev": true, + "requires": { + "duplexer": "~0.1.1" + } + }, + "stream-events": { + "version": "1.0.5", + "resolved": "https://registry.npmjs.org/stream-events/-/stream-events-1.0.5.tgz", + "integrity": "sha512-E1GUzBSgvct8Jsb3v2X15pjzN1tYebtbLaMg+eBOUOAxgbLoSbT2NS91ckc5lJD1KfLjId+jXJRgo0qnV5Nerg==", + "dev": true, + "requires": { + "stubs": "^3.0.0" + } + }, + "stream-http": { + "version": "2.8.3", + "resolved": "https://registry.npmjs.org/stream-http/-/stream-http-2.8.3.tgz", + "integrity": "sha512-+TSkfINHDo4J+ZobQLWiMouQYB+UVYFttRA94FpEzzJ7ZdqcL4uUUQ7WkdkI4DSozGmgBUE/a47L+38PenXhUw==", + "dev": true, + "requires": { + "builtin-status-codes": "^3.0.0", + "inherits": "^2.0.1", + "readable-stream": "^2.3.6", + "to-arraybuffer": "^1.0.0", + "xtend": "^4.0.0" + } + }, + "strict-uri-encode": { + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/strict-uri-encode/-/strict-uri-encode-1.1.0.tgz", + "integrity": "sha1-J5siXfHVgrH1TmWt3UNS4Y+qBxM=", + "dev": true + }, + "string-length": { + "version": "4.0.1", + "resolved": "https://registry.npmjs.org/string-length/-/string-length-4.0.1.tgz", + "integrity": "sha512-PKyXUd0LK0ePjSOnWn34V2uD6acUWev9uy0Ft05k0E8xRW+SKcA0F7eMr7h5xlzfn+4O3N+55rduYyet3Jk+jw==", + "dev": true, + "requires": { + "char-regex": "^1.0.2", + "strip-ansi": "^6.0.0" + }, + "dependencies": { + "ansi-regex": { + "version": "5.0.0", + "resolved": "https://registry.npmjs.org/ansi-regex/-/ansi-regex-5.0.0.tgz", + "integrity": "sha512-bY6fj56OUQ0hU1KjFNDQuJFezqKdrAyFdIevADiqrWHwSlbmBNMHp5ak2f40Pm8JTFyM2mqxkG6ngkHO11f/lg==", + "dev": true + }, + "strip-ansi": { + "version": "6.0.0", + "resolved": "https://registry.npmjs.org/strip-ansi/-/strip-ansi-6.0.0.tgz", + "integrity": "sha512-AuvKTrTfQNYNIctbR1K/YGTR1756GycPsg7b9bdV9Duqur4gv6aKqHXah67Z8ImS7WEz5QVcOtlfW2rZEugt6w==", + "dev": true, + "requires": { + "ansi-regex": "^5.0.0" + } + } + } + }, + "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" + } + }, + "string.prototype.padend": { + "version": "3.1.1", + "resolved": "https://registry.npmjs.org/string.prototype.padend/-/string.prototype.padend-3.1.1.tgz", + "integrity": "sha512-eCzTASPnoCr5Ht+Vn1YXgm8SB015hHKgEIMu9Nr9bQmLhRBxKRfmzSj/IQsxDFc8JInJDDFA0qXwK+xxI7wDkg==", + "dev": true, + "requires": { + "call-bind": "^1.0.0", + "define-properties": "^1.1.3", + "es-abstract": "^1.18.0-next.1" + } + }, + "string.prototype.trimend": { + "version": "1.0.3", + "resolved": "https://registry.npmjs.org/string.prototype.trimend/-/string.prototype.trimend-1.0.3.tgz", + "integrity": "sha512-ayH0pB+uf0U28CtjlLvL7NaohvR1amUvVZk+y3DYb0Ey2PUV5zPkkKy9+U1ndVEIXO8hNg18eIv9Jntbii+dKw==", + "dev": true, + "requires": { + "call-bind": "^1.0.0", + "define-properties": "^1.1.3" + } + }, + "string.prototype.trimstart": { + "version": "1.0.3", + "resolved": "https://registry.npmjs.org/string.prototype.trimstart/-/string.prototype.trimstart-1.0.3.tgz", + "integrity": "sha512-oBIBUy5lea5tt0ovtOFiEQaBkoBBkyJhZXzJYrSmDo5IUUqbOPvVezuRs/agBIdZ2p2Eo1FD6bD9USyBLfl3xg==", + "dev": true, + "requires": { + "call-bind": "^1.0.0", + "define-properties": "^1.1.3" + } + }, + "string_decoder": { + "version": "1.1.1", + "resolved": "https://registry.npmjs.org/string_decoder/-/string_decoder-1.1.1.tgz", + "integrity": "sha512-n/ShnvDi6FHbbVfviro+WojiFzv+s8MPMHBczVePfUpDJLwoLT0ht1l4YwBCbi8pJAveEEdnkHyPyTP/mzRfwg==", + "dev": true, + "requires": { + "safe-buffer": "~5.1.0" + } + }, + "stringify-package": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/stringify-package/-/stringify-package-1.0.1.tgz", + "integrity": "sha512-sa4DUQsYciMP1xhKWGuFM04fB0LG/9DlluZoSVywUMRNvzid6XucHK0/90xGxRoHrAaROrcHK1aPKaijCtSrhg==", + "dev": true + }, + "strip-ansi": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/strip-ansi/-/strip-ansi-4.0.0.tgz", + "integrity": "sha1-qEeQIusaw2iocTibY1JixQXuNo8=", + "dev": true, + "requires": { + "ansi-regex": "^3.0.0" + } + }, + "strip-bom": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/strip-bom/-/strip-bom-3.0.0.tgz", + "integrity": "sha1-IzTBjpx1n3vdVv3vfprj1YjmjtM=", + "dev": true + }, + "strip-eof": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/strip-eof/-/strip-eof-1.0.0.tgz", + "integrity": "sha1-u0P/VZim6wXYm1n80SnJgzE2Br8=", + "dev": true + }, + "strip-final-newline": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/strip-final-newline/-/strip-final-newline-2.0.0.tgz", + "integrity": "sha512-BrpvfNAE3dcvq7ll3xVumzjKjZQ5tI1sEUIKr3Uoks0XUl45St3FlatVqef9prk4jRDzhW6WZg+3bk93y6pLjA==", + "dev": true + }, + "strip-indent": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/strip-indent/-/strip-indent-3.0.0.tgz", + "integrity": "sha512-laJTa3Jb+VQpaC6DseHhF7dXVqHTfJPCRDaEbid/drOhgitgYku/letMUqOXFoWV0zIIUbjpdH2t+tYj4bQMRQ==", + "dev": true, + "requires": { + "min-indent": "^1.0.0" + } + }, + "strip-json-comments": { + "version": "3.0.1", + "resolved": "https://registry.npmjs.org/strip-json-comments/-/strip-json-comments-3.0.1.tgz", + "integrity": "sha512-VTyMAUfdm047mwKl+u79WIdrZxtFtn+nBxHeb844XBQ9uMNTuTHdx2hc5RiAJYqwTj3wc/xe5HLSdJSkJ+WfZw==", + "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==", + "dev": true, + "requires": { + "escape-string-regexp": "^1.0.2" + } + }, + "strip-url-auth": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/strip-url-auth/-/strip-url-auth-1.0.1.tgz", + "integrity": "sha1-IrD6OkE4WzO+PzMVUbu4N/oM164=", + "dev": true + }, + "stubs": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/stubs/-/stubs-3.0.0.tgz", + "integrity": "sha1-6NK6H6nJBXAwPAMLaQD31fiavls=", + "dev": true + }, + "stylehacks": { + "version": "4.0.3", + "resolved": "https://registry.npmjs.org/stylehacks/-/stylehacks-4.0.3.tgz", + "integrity": "sha512-7GlLk9JwlElY4Y6a/rmbH2MhVlTyVmiJd1PfTCqFaIBEGMYNsrO/v3SeGTdhBThLg4Z+NbOk/qFMwCa+J+3p/g==", + "dev": true, + "requires": { + "browserslist": "^4.0.0", + "postcss": "^7.0.0", + "postcss-selector-parser": "^3.0.0" + }, + "dependencies": { + "postcss": { + "version": "7.0.35", + "resolved": "https://registry.npmjs.org/postcss/-/postcss-7.0.35.tgz", + "integrity": "sha512-3QT8bBJeX/S5zKTTjTCIjRF3If4avAT6kqxcASlTWEtAFCb9NH0OUxNDfgZSWdP5fJnBYCMEWkIFfWeugjzYMg==", + "dev": true, + "requires": { + "chalk": "^2.4.2", + "source-map": "^0.6.1", + "supports-color": "^6.1.0" + } + }, + "postcss-selector-parser": { + "version": "3.1.2", + "resolved": "https://registry.npmjs.org/postcss-selector-parser/-/postcss-selector-parser-3.1.2.tgz", + "integrity": "sha512-h7fJ/5uWuRVyOtkO45pnt1Ih40CEleeyCHzipqAZO2e5H20g25Y48uYnFUiShvY4rZWNJ/Bib/KVPmanaCtOhA==", + "dev": true, + "requires": { + "dot-prop": "^5.2.0", + "indexes-of": "^1.0.1", + "uniq": "^1.0.1" + } + }, + "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" + } + } + } + }, + "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" + } + }, + "supports-hyperlinks": { + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/supports-hyperlinks/-/supports-hyperlinks-2.1.0.tgz", + "integrity": "sha512-zoE5/e+dnEijk6ASB6/qrK+oYdm2do1hjoLWrqUC/8WEIW1gbxFcKuBof7sW8ArN6e+AYvsE8HBGiVRWL/F5CA==", + "dev": true, + "requires": { + "has-flag": "^4.0.0", + "supports-color": "^7.0.0" + }, + "dependencies": { + "has-flag": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/has-flag/-/has-flag-4.0.0.tgz", + "integrity": "sha512-EykJT/Q1KjTWctppgIAgfSO0tKVuZUjhgMr17kqTumMl6Afv3EISleU7qZUzoXDFTAHTDC4NOoG/ZxU3EvlMPQ==", + "dev": true + }, + "supports-color": { + "version": "7.2.0", + "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-7.2.0.tgz", + "integrity": "sha512-qpCAvRl9stuOHveKsn7HncJRvv501qIacKzQlO/+Lwxc9+0q2wLyv4Dfvt80/DPn2pqOBsJdDiogXGR9+OvwRw==", + "dev": true, + "requires": { + "has-flag": "^4.0.0" + } + } + } + }, + "svgo": { + "version": "1.3.2", + "resolved": "https://registry.npmjs.org/svgo/-/svgo-1.3.2.tgz", + "integrity": "sha512-yhy/sQYxR5BkC98CY7o31VGsg014AKLEPxdfhora76l36hD9Rdy5NZA/Ocn6yayNPgSamYdtX2rFJdcv07AYVw==", + "dev": true, + "requires": { + "chalk": "^2.4.1", + "coa": "^2.0.2", + "css-select": "^2.0.0", + "css-select-base-adapter": "^0.1.1", + "css-tree": "1.0.0-alpha.37", + "csso": "^4.0.2", + "js-yaml": "^3.13.1", + "mkdirp": "~0.5.1", + "object.values": "^1.1.0", + "sax": "~1.2.4", + "stable": "^0.1.8", + "unquote": "~1.1.1", + "util.promisify": "~1.0.0" + }, + "dependencies": { + "minimist": { + "version": "1.2.5", + "resolved": "https://registry.npmjs.org/minimist/-/minimist-1.2.5.tgz", + "integrity": "sha512-FM9nNUYrRBAELZQT3xeZQ7fmMOBg6nWNmJKTcgsJeaLstP/UODVpGsr5OhXhhXg6f+qtJ8uiZ+PUxkDWcgIXLw==", + "dev": true + }, + "mkdirp": { + "version": "0.5.5", + "resolved": "https://registry.npmjs.org/mkdirp/-/mkdirp-0.5.5.tgz", + "integrity": "sha512-NKmAlESf6jMGym1++R0Ra7wvhV+wFW63FaSOFPwRahvea0gMUcGUhVeAg/0BC0wiv9ih5NYPB1Wn1UEI1/L+xQ==", + "dev": true, + "requires": { + "minimist": "^1.2.5" + } + } + } + }, + "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.0", + "resolved": "https://registry.npmjs.org/ansi-regex/-/ansi-regex-4.1.0.tgz", + "integrity": "sha512-1apePfXM1UOSqw0o9IiFAovVz9M5S1Dg+4TrDwfMewQ6p/rmMueb7tWZjQ1rx4Loy1ArBggoqGpfqqdI4rondg==", + "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" + } + } + } + }, + "teeny-request": { + "version": "6.0.1", + "resolved": "https://registry.npmjs.org/teeny-request/-/teeny-request-6.0.1.tgz", + "integrity": "sha512-TAK0c9a00ELOqLrZ49cFxvPVogMUFaWY8dUsQc/0CuQPGF+BOxOQzXfE413BAk2kLomwNplvdtMpeaeGWmoc2g==", + "dev": true, + "requires": { + "http-proxy-agent": "^4.0.0", + "https-proxy-agent": "^4.0.0", + "node-fetch": "^2.2.0", + "stream-events": "^1.0.5", + "uuid": "^3.3.2" + } + }, + "term-size": { + "version": "2.2.1", + "resolved": "https://registry.npmjs.org/term-size/-/term-size-2.2.1.tgz", + "integrity": "sha512-wK0Ri4fOGjv/XPy8SBHZChl8CM7uMc5VML7SqiQ0zG7+J5Vr+RMQDoHa2CNT6KHUnTGIXH34UDMkPzAUyapBZg==", + "dev": true + }, + "terminal-link": { + "version": "2.1.1", + "resolved": "https://registry.npmjs.org/terminal-link/-/terminal-link-2.1.1.tgz", + "integrity": "sha512-un0FmiRUQNr5PJqy9kP7c40F5BOfpGlYTrxonDChEZB7pzZxRNp/bt+ymiy9/npwXya9KH99nJ/GXFIiUkYGFQ==", + "dev": true, + "requires": { + "ansi-escapes": "^4.2.1", + "supports-hyperlinks": "^2.0.0" + }, + "dependencies": { + "ansi-escapes": { + "version": "4.3.1", + "resolved": "https://registry.npmjs.org/ansi-escapes/-/ansi-escapes-4.3.1.tgz", + "integrity": "sha512-JWF7ocqNrp8u9oqpgV+wH5ftbt+cfvv+PTjOvKLT3AdYly/LmORARfEVT1iyjwN+4MqE5UmVKoAdIBqeoCHgLA==", + "dev": true, + "requires": { + "type-fest": "^0.11.0" + } + }, + "type-fest": { + "version": "0.11.0", + "resolved": "https://registry.npmjs.org/type-fest/-/type-fest-0.11.0.tgz", + "integrity": "sha512-OdjXJxnCN1AvyLSzeKIgXTXxV+99ZuXl3Hpo9XpJAv9MBcHrrJOQ5kV7ypXOuQie+AmWG25hLbiKdwYTifzcfQ==", + "dev": true + } + } + }, + "terser": { + "version": "4.8.0", + "resolved": "https://registry.npmjs.org/terser/-/terser-4.8.0.tgz", + "integrity": "sha512-EAPipTNeWsb/3wLPeup1tVPaXfIaU68xMnVdPafIL1TV05OhASArYyIfFvnvJCNrR2NIOvDVNNTFRa+Re2MWyw==", + "dev": true, + "requires": { + "commander": "^2.20.0", + "source-map": "~0.6.1", + "source-map-support": "~0.5.12" + } + }, + "test-exclude": { + "version": "6.0.0", + "resolved": "https://registry.npmjs.org/test-exclude/-/test-exclude-6.0.0.tgz", + "integrity": "sha512-cAGWPIyOHU6zlmg88jwm7VRyXnMN7iV68OGAbYDk/Mh/xC/pzVPlQtY6ngoIH/5/tciuhGfvESU8GrHrcxD56w==", + "dev": true, + "requires": { + "@istanbuljs/schema": "^0.1.2", + "glob": "^7.1.4", + "minimatch": "^3.0.4" + }, + "dependencies": { + "glob": { + "version": "7.1.6", + "resolved": "https://registry.npmjs.org/glob/-/glob-7.1.6.tgz", + "integrity": "sha512-LwaxwyZ72Lk7vZINtNNrywX0ZuLyStrdDtabefZKAY5ZGJhVtgdznluResxNmPitE0SAO+O26sWTHeKSI2wMBA==", + "dev": true, + "requires": { + "fs.realpath": "^1.0.0", + "inflight": "^1.0.4", + "inherits": "2", + "minimatch": "^3.0.4", + "once": "^1.3.0", + "path-is-absolute": "^1.0.0" + } + } + } + }, + "text-extensions": { + "version": "1.9.0", + "resolved": "https://registry.npmjs.org/text-extensions/-/text-extensions-1.9.0.tgz", + "integrity": "sha512-wiBrwC1EhBelW12Zy26JeOUkQ5mRu+5o8rpsJk5+2t+Y5vE7e842qtZDQ2g1NpX/29HdyFeJ4nSIhI47ENSxlQ==", + "dev": true + }, + "text-table": { + "version": "0.2.0", + "resolved": "https://registry.npmjs.org/text-table/-/text-table-0.2.0.tgz", + "integrity": "sha1-f17oI66AUgfACvLfSoTsP8+lcLQ=", + "dev": true + }, + "throat": { + "version": "5.0.0", + "resolved": "https://registry.npmjs.org/throat/-/throat-5.0.0.tgz", + "integrity": "sha512-fcwX4mndzpLQKBS1DVYhGAcYaYt7vsHNIvQV+WXMvnow5cgjPphq5CaayLaGsjRdSCKZFNGt7/GYAuXaNOiYCA==", + "dev": true + }, + "through": { + "version": "2.3.8", + "resolved": "https://registry.npmjs.org/through/-/through-2.3.8.tgz", + "integrity": "sha1-DdTJ/6q8NXlgsbckEV1+Doai4fU=", + "dev": true + }, + "through2": { + "version": "2.0.5", + "resolved": "https://registry.npmjs.org/through2/-/through2-2.0.5.tgz", + "integrity": "sha512-/mrRod8xqpA+IHSLyGCQ2s8SPHiCDEeQJSep1jqLYeEUClOFG2Qsh+4FU6G9VeqpZnGW/Su8LQGc4YKni5rYSQ==", + "dev": true, + "requires": { + "readable-stream": "~2.3.6", + "xtend": "~4.0.1" + } + }, + "timers-browserify": { + "version": "2.0.12", + "resolved": "https://registry.npmjs.org/timers-browserify/-/timers-browserify-2.0.12.tgz", + "integrity": "sha512-9phl76Cqm6FhSX9Xe1ZUAMLtm1BLkKj2Qd5ApyWkXzsMRaA7dgr81kf4wJmQf/hAvg8EEyJxDo3du/0KlhPiKQ==", + "dev": true, + "requires": { + "setimmediate": "^1.0.4" + } + }, + "timsort": { + "version": "0.3.0", + "resolved": "https://registry.npmjs.org/timsort/-/timsort-0.3.0.tgz", + "integrity": "sha1-QFQRqOfmM5/mTbmiNN4R3DHgK9Q=", + "dev": true + }, + "tiny-inflate": { + "version": "1.0.3", + "resolved": "https://registry.npmjs.org/tiny-inflate/-/tiny-inflate-1.0.3.tgz", + "integrity": "sha512-pkY1fj1cKHb2seWDy0B16HeWyczlJA9/WW3u3c4z/NiWDsO3DOU5D7nhTLE9CF0yXv/QZFY7sEJmj24dK+Rrqw==", + "dev": true + }, + "tmp": { + "version": "0.0.33", + "resolved": "https://registry.npmjs.org/tmp/-/tmp-0.0.33.tgz", + "integrity": "sha512-jRCJlojKnZ3addtTOjdIqoRuPEKBvNXcGYqzO6zWZX8KfKEpnGY5jfggJQ3EjKuu8D4bJRr0y+cYJFmYbImXGw==", + "dev": true, + "requires": { + "os-tmpdir": "~1.0.2" + } + }, + "tmpl": { + "version": "1.0.4", + "resolved": "https://registry.npmjs.org/tmpl/-/tmpl-1.0.4.tgz", + "integrity": "sha1-I2QN17QtAEM5ERQIIOXPRA5SHdE=", + "dev": true + }, + "to-arraybuffer": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/to-arraybuffer/-/to-arraybuffer-1.0.1.tgz", + "integrity": "sha1-fSKbH8xjfkZsoIEYCDanqr/4P0M=", + "dev": true + }, + "to-fast-properties": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/to-fast-properties/-/to-fast-properties-2.0.0.tgz", + "integrity": "sha1-3F5pjL0HkmW8c+A3doGk5Og/YW4=", + "dev": true + }, + "to-object-path": { + "version": "0.3.0", + "resolved": "https://registry.npmjs.org/to-object-path/-/to-object-path-0.3.0.tgz", + "integrity": "sha1-KXWIt7Dn4KwI4E5nL4XB9JmeF68=", + "dev": true, + "requires": { + "kind-of": "^3.0.2" + }, + "dependencies": { + "kind-of": { + "version": "3.2.2", + "resolved": "https://registry.npmjs.org/kind-of/-/kind-of-3.2.2.tgz", + "integrity": "sha1-MeohpzS6ubuw8yRm2JOupR5KPGQ=", + "dev": true, + "requires": { + "is-buffer": "^1.1.5" + } + } + } + }, + "to-readable-stream": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/to-readable-stream/-/to-readable-stream-1.0.0.tgz", + "integrity": "sha512-Iq25XBt6zD5npPhlLVXGFN3/gyR2/qODcKNNyTMd4vbm39HUaOiAM4PMq0eMVC/Tkxz+Zjdsc55g9yyz+Yq00Q==", + "dev": true + }, + "to-regex": { + "version": "3.0.2", + "resolved": "https://registry.npmjs.org/to-regex/-/to-regex-3.0.2.tgz", + "integrity": "sha512-FWtleNAtZ/Ki2qtqej2CXTOayOH9bHDQF+Q48VpWyDXjbYxA4Yz8iDB31zXOBUlOHHKidDbqGVrTUvQMPmBGBw==", + "dev": true, + "requires": { + "define-property": "^2.0.2", + "extend-shallow": "^3.0.2", + "regex-not": "^1.0.2", + "safe-regex": "^1.1.0" + } + }, + "to-regex-range": { + "version": "5.0.1", + "resolved": "https://registry.npmjs.org/to-regex-range/-/to-regex-range-5.0.1.tgz", + "integrity": "sha512-65P7iz6X5yEr1cwcgvQxbbIw7Uk3gOy5dIdtZ4rDveLqhrdJP+Li/Hx6tyK0NEb+2GCyneCMJiGqrADCSNk8sQ==", + "dev": true, + "requires": { + "is-number": "^7.0.0" + } + }, + "toidentifier": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/toidentifier/-/toidentifier-1.0.0.tgz", + "integrity": "sha512-yaOH/Pk/VEhBWWTlhI+qXxDFXlejDGcQipMlyxda9nthulaxLZUNcUqFxokp0vcYnvteJln5FNQDRrxj3YcbVw==", + "dev": true + }, + "touch": { + "version": "3.1.0", + "resolved": "https://registry.npmjs.org/touch/-/touch-3.1.0.tgz", + "integrity": "sha512-WBx8Uy5TLtOSRtIq+M03/sKDrXCLHxwDcquSP2c43Le03/9serjQBIztjRz6FkJez9D/hleyAXTBGLwwZUw9lA==", + "dev": true, + "requires": { + "nopt": "~1.0.10" + }, + "dependencies": { + "nopt": { + "version": "1.0.10", + "resolved": "https://registry.npmjs.org/nopt/-/nopt-1.0.10.tgz", + "integrity": "sha1-bd0hvSoxQXuScn3Vhfim83YI6+4=", + "dev": true, + "requires": { + "abbrev": "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==", + "dev": true, + "requires": { + "psl": "^1.1.28", + "punycode": "^2.1.1" + } + }, + "tr46": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/tr46/-/tr46-1.0.1.tgz", + "integrity": "sha1-qLE/1r/SSJUZZ0zN5VujaTtwbQk=", + "dev": true, + "requires": { + "punycode": "^2.1.0" + } + }, + "trim-newlines": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/trim-newlines/-/trim-newlines-3.0.0.tgz", + "integrity": "sha512-C4+gOpvmxaSMKuEf9Qc134F1ZuOHVXKRbtEflf4NTtuuJDEIJ9p5PXsalL8SkeRw+qit1Mo+yuvMPAKwWg/1hA==", + "dev": true + }, + "trim-off-newlines": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/trim-off-newlines/-/trim-off-newlines-1.0.1.tgz", + "integrity": "sha1-n5up2e+odkw4dpi8v+sshI8RrbM=", + "dev": true + }, + "trim-repeated": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/trim-repeated/-/trim-repeated-1.0.0.tgz", + "integrity": "sha1-42RqLqTokTEr9+rObPsFOAvAHCE=", + "dev": true, + "requires": { + "escape-string-regexp": "^1.0.2" + } + }, + "ts-jest": { + "version": "26.0.0", + "resolved": "https://registry.npmjs.org/ts-jest/-/ts-jest-26.0.0.tgz", + "integrity": "sha512-eBpWH65mGgzobuw7UZy+uPP9lwu+tPp60o324ASRX4Ijg8UC5dl2zcge4kkmqr2Zeuk9FwIjvCTOPuNMEyGWWw==", + "dev": true, + "requires": { + "bs-logger": "0.x", + "buffer-from": "1.x", + "fast-json-stable-stringify": "2.x", + "json5": "2.x", + "lodash.memoize": "4.x", + "make-error": "1.x", + "micromatch": "4.x", + "mkdirp": "1.x", + "semver": "7.x", + "yargs-parser": "18.x" + }, + "dependencies": { + "json5": { + "version": "2.1.3", + "resolved": "https://registry.npmjs.org/json5/-/json5-2.1.3.tgz", + "integrity": "sha512-KXPvOm8K9IJKFM0bmdn8QXh7udDh1g/giieX0NLCaMnb4hEiVFqnop2ImTXCc5e0/oHz3LTqmHGtExn5hfMkOA==", + "dev": true, + "requires": { + "minimist": "^1.2.5" + } + }, + "minimist": { + "version": "1.2.5", + "resolved": "https://registry.npmjs.org/minimist/-/minimist-1.2.5.tgz", + "integrity": "sha512-FM9nNUYrRBAELZQT3xeZQ7fmMOBg6nWNmJKTcgsJeaLstP/UODVpGsr5OhXhhXg6f+qtJ8uiZ+PUxkDWcgIXLw==", + "dev": true + }, + "semver": { + "version": "7.3.4", + "resolved": "https://registry.npmjs.org/semver/-/semver-7.3.4.tgz", + "integrity": "sha512-tCfb2WLjqFAtXn4KEdxIhalnRtoKFN7nAwj0B3ZXCbQloV2tq5eDbcTmT68JJD3nRJq24/XgxtQKFIpQdtvmVw==", + "dev": true, + "requires": { + "lru-cache": "^6.0.0" + } + } + } + }, + "tslib": { + "version": "1.14.1", + "resolved": "https://registry.npmjs.org/tslib/-/tslib-1.14.1.tgz", + "integrity": "sha512-Xni35NKzjgMrwevysHTCArtLDpPvye8zV/0E4EyYn43P7/7qvQwPh9BGkHewbMulVntbigmcT7rdX3BNo9wRJg==" + }, + "tsutils": { + "version": "3.17.1", + "resolved": "https://registry.npmjs.org/tsutils/-/tsutils-3.17.1.tgz", + "integrity": "sha512-kzeQ5B8H3w60nFY2g8cJIuH7JDpsALXySGtwGJ0p2LSjLgay3NdIpqq5SoOBe46bKDW2iq25irHCr8wjomUS2g==", + "dev": true, + "requires": { + "tslib": "^1.8.1" + } + }, + "tty-browserify": { + "version": "0.0.0", + "resolved": "https://registry.npmjs.org/tty-browserify/-/tty-browserify-0.0.0.tgz", + "integrity": "sha1-oVe6QC2iTpv5V/mqadUk7tQpAaY=", + "dev": true + }, + "tunnel-agent": { + "version": "0.6.0", + "resolved": "https://registry.npmjs.org/tunnel-agent/-/tunnel-agent-0.6.0.tgz", + "integrity": "sha1-J6XeoGs2sEoKmWZ3SykIaPD8QP0=", + "dev": true, + "requires": { + "safe-buffer": "^5.0.1" + } + }, + "tweetnacl": { + "version": "0.14.5", + "resolved": "https://registry.npmjs.org/tweetnacl/-/tweetnacl-0.14.5.tgz", + "integrity": "sha1-WuaBd/GS1EViadEIr6k/+HQ/T2Q=", + "dev": true + }, + "type-check": { + "version": "0.3.2", + "resolved": "https://registry.npmjs.org/type-check/-/type-check-0.3.2.tgz", + "integrity": "sha1-WITKtRLPHTVeP7eE8wgEsrUg23I=", + "dev": true, + "requires": { + "prelude-ls": "~1.1.2" + } + }, + "type-detect": { + "version": "4.0.8", + "resolved": "https://registry.npmjs.org/type-detect/-/type-detect-4.0.8.tgz", + "integrity": "sha512-0fr/mIH1dlO+x7TlcMy+bIDqKPsw/70tVyeHW787goQjhmqaZe10uwLujubK9q9Lg6Fiho1KUKDYz0Z7k7g5/g==", + "dev": true + }, + "type-fest": { + "version": "0.8.1", + "resolved": "https://registry.npmjs.org/type-fest/-/type-fest-0.8.1.tgz", + "integrity": "sha512-4dbzIzqvjtgiM5rw1k5rEHtBANKmdudhGyBEajN01fEyhaAIhsoKNy6y7+IN93IfpFtwY9iqi7kD+xwKhQsNJA==", + "dev": true + }, + "typedarray": { + "version": "0.0.6", + "resolved": "https://registry.npmjs.org/typedarray/-/typedarray-0.0.6.tgz", + "integrity": "sha1-hnrHTjhkGHsdPUfZlqeOxciDB3c=", + "dev": true + }, + "typedarray-to-buffer": { + "version": "3.1.5", + "resolved": "https://registry.npmjs.org/typedarray-to-buffer/-/typedarray-to-buffer-3.1.5.tgz", + "integrity": "sha512-zdu8XMNEDepKKR+XYOXAVPtWui0ly0NtohUscw+UmaHiAWT8hrV1rr//H6V+0DvJ3OQ19S979M0laLfX8rm82Q==", + "dev": true, + "requires": { + "is-typedarray": "^1.0.0" + } + }, + "typedoc": { + "version": "0.19.2", + "resolved": "https://registry.npmjs.org/typedoc/-/typedoc-0.19.2.tgz", + "integrity": "sha512-oDEg1BLEzi1qvgdQXc658EYgJ5qJLVSeZ0hQ57Eq4JXy6Vj2VX4RVo18qYxRWz75ifAaYuYNBUCnbhjd37TfOg==", + "dev": true, + "requires": { + "fs-extra": "^9.0.1", + "handlebars": "^4.7.6", + "highlight.js": "^10.2.0", + "lodash": "^4.17.20", + "lunr": "^2.3.9", + "marked": "^1.1.1", + "minimatch": "^3.0.0", + "progress": "^2.0.3", + "semver": "^7.3.2", + "shelljs": "^0.8.4", + "typedoc-default-themes": "^0.11.4" + }, + "dependencies": { + "fs-extra": { + "version": "9.0.1", + "resolved": "https://registry.npmjs.org/fs-extra/-/fs-extra-9.0.1.tgz", + "integrity": "sha512-h2iAoN838FqAFJY2/qVpzFXy+EBxfVE220PalAqQLDVsFOHLJrZvut5puAbCdNv6WJk+B8ihI+k0c7JK5erwqQ==", + "dev": true, + "requires": { + "at-least-node": "^1.0.0", + "graceful-fs": "^4.2.0", + "jsonfile": "^6.0.1", + "universalify": "^1.0.0" + } + }, + "highlight.js": { + "version": "10.5.0", + "resolved": "https://registry.npmjs.org/highlight.js/-/highlight.js-10.5.0.tgz", + "integrity": "sha512-xTmvd9HiIHR6L53TMC7TKolEj65zG1XU+Onr8oi86mYa+nLcIbxTTWkpW7CsEwv/vK7u1zb8alZIMLDqqN6KTw==", + "dev": true + }, + "jsonfile": { + "version": "6.1.0", + "resolved": "https://registry.npmjs.org/jsonfile/-/jsonfile-6.1.0.tgz", + "integrity": "sha512-5dgndWOriYSm5cnYaJNhalLNDKOqFwyDB/rr1E9ZsGciGvKPs8R2xYGCacuf3z6K1YKDz182fd+fY3cn3pMqXQ==", + "dev": true, + "requires": { + "graceful-fs": "^4.1.6", + "universalify": "^2.0.0" + }, + "dependencies": { + "universalify": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/universalify/-/universalify-2.0.0.tgz", + "integrity": "sha512-hAZsKq7Yy11Zu1DE0OzWjw7nnLZmJZYTDZZyEFHZdUhV8FkH5MCfoU1XMaxXovpyW5nq5scPqq0ZDP9Zyl04oQ==", + "dev": true + } + } + }, + "semver": { + "version": "7.3.4", + "resolved": "https://registry.npmjs.org/semver/-/semver-7.3.4.tgz", + "integrity": "sha512-tCfb2WLjqFAtXn4KEdxIhalnRtoKFN7nAwj0B3ZXCbQloV2tq5eDbcTmT68JJD3nRJq24/XgxtQKFIpQdtvmVw==", + "dev": true, + "requires": { + "lru-cache": "^6.0.0" + } + }, + "typedoc-default-themes": { + "version": "0.11.4", + "resolved": "https://registry.npmjs.org/typedoc-default-themes/-/typedoc-default-themes-0.11.4.tgz", + "integrity": "sha512-Y4Lf+qIb9NTydrexlazAM46SSLrmrQRqWiD52593g53SsmUFioAsMWt8m834J6qsp+7wHRjxCXSZeiiW5cMUdw==", + "dev": true + }, + "universalify": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/universalify/-/universalify-1.0.0.tgz", + "integrity": "sha512-rb6X1W158d7pRQBg5gkR8uPaSfiids68LTJQYOtEUhoJUWBdaQHsuT/EUduxXYxcrt4r5PJ4fuHW1MHT6p0qug==", + "dev": true + } + } + }, + "typedoc-default-themes": { + "version": "0.6.3", + "resolved": "https://registry.npmjs.org/typedoc-default-themes/-/typedoc-default-themes-0.6.3.tgz", + "integrity": "sha512-rouf0TcIA4M2nOQFfC7Zp4NEwoYiEX4vX/ZtudJWU9IHA29MPC+PPgSXYLPESkUo7FuB//GxigO3mk9Qe1xp3Q==", + "dev": true, + "requires": { + "backbone": "^1.4.0", + "jquery": "^3.4.1", + "lunr": "^2.3.8", + "underscore": "^1.9.1" + } + }, + "typescript": { + "version": "4.1.3", + "resolved": "https://registry.npmjs.org/typescript/-/typescript-4.1.3.tgz", + "integrity": "sha512-B3ZIOf1IKeH2ixgHhj6la6xdwR9QrLC5d1VKeCSY4tvkqhF2eqd9O7txNlS0PO3GrBAFIdr3L1ndNwteUbZLYg==", + "dev": true + }, + "uglify-js": { + "version": "3.12.2", + "resolved": "https://registry.npmjs.org/uglify-js/-/uglify-js-3.12.2.tgz", + "integrity": "sha512-rWYleAvfJPjduYCt+ELvzybNah/zIkRteGXIBO8X0lteRZPGladF61hFi8tU7qKTsF7u6DUQCtT9k00VlFOgkg==", + "dev": true, + "optional": true + }, + "uncss": { + "version": "0.17.3", + "resolved": "https://registry.npmjs.org/uncss/-/uncss-0.17.3.tgz", + "integrity": "sha512-ksdDWl81YWvF/X14fOSw4iu8tESDHFIeyKIeDrK6GEVTQvqJc1WlOEXqostNwOCi3qAj++4EaLsdAgPmUbEyog==", + "dev": true, + "requires": { + "commander": "^2.20.0", + "glob": "^7.1.4", + "is-absolute-url": "^3.0.1", + "is-html": "^1.1.0", + "jsdom": "^14.1.0", + "lodash": "^4.17.15", + "postcss": "^7.0.17", + "postcss-selector-parser": "6.0.2", + "request": "^2.88.0" + }, + "dependencies": { + "glob": { + "version": "7.1.6", + "resolved": "https://registry.npmjs.org/glob/-/glob-7.1.6.tgz", + "integrity": "sha512-LwaxwyZ72Lk7vZINtNNrywX0ZuLyStrdDtabefZKAY5ZGJhVtgdznluResxNmPitE0SAO+O26sWTHeKSI2wMBA==", + "dev": true, + "requires": { + "fs.realpath": "^1.0.0", + "inflight": "^1.0.4", + "inherits": "2", + "minimatch": "^3.0.4", + "once": "^1.3.0", + "path-is-absolute": "^1.0.0" + } + }, + "is-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 + }, + "postcss": { + "version": "7.0.35", + "resolved": "https://registry.npmjs.org/postcss/-/postcss-7.0.35.tgz", + "integrity": "sha512-3QT8bBJeX/S5zKTTjTCIjRF3If4avAT6kqxcASlTWEtAFCb9NH0OUxNDfgZSWdP5fJnBYCMEWkIFfWeugjzYMg==", + "dev": true, + "requires": { + "chalk": "^2.4.2", + "source-map": "^0.6.1", + "supports-color": "^6.1.0" + } + }, + "postcss-selector-parser": { + "version": "6.0.2", + "resolved": "https://registry.npmjs.org/postcss-selector-parser/-/postcss-selector-parser-6.0.2.tgz", + "integrity": "sha512-36P2QR59jDTOAiIkqEprfJDsoNrvwFei3eCqKd1Y0tUsBimsq39BLp7RD+JWny3WgB1zGhJX8XVePwm9k4wdBg==", + "dev": true, + "requires": { + "cssesc": "^3.0.0", + "indexes-of": "^1.0.1", + "uniq": "^1.0.1" + } + }, + "supports-color": { + "version": "6.1.0", + "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-6.1.0.tgz", + "integrity": "sha512-qe1jfm1Mg7Nq/NSh6XE24gPXROEVsWHxC1LIx//XNlD9iw7YZQGjZNjYN7xGaEG6iKdA8EtNFW6R0gjnVXp+wQ==", + "dev": true, + "requires": { + "has-flag": "^3.0.0" + } + } + } + }, + "undefsafe": { + "version": "2.0.3", + "resolved": "https://registry.npmjs.org/undefsafe/-/undefsafe-2.0.3.tgz", + "integrity": "sha512-nrXZwwXrD/T/JXeygJqdCO6NZZ1L66HrxM/Z7mIq2oPanoN0F1nLx3lwJMu6AwJY69hdixaFQOuoYsMjE5/C2A==", + "dev": true, + "requires": { + "debug": "^2.2.0" + }, + "dependencies": { + "debug": { + "version": "2.6.9", + "resolved": "https://registry.npmjs.org/debug/-/debug-2.6.9.tgz", + "integrity": "sha512-bC7ElrdJaJnPbAP+1EotYvqZsb3ecl5wi6Bfi6BJTUcNowp6cvspg0jXznRTKDjm/E7AdgFBVeAPVMNcKGsHMA==", + "dev": true, + "requires": { + "ms": "2.0.0" + } + }, + "ms": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/ms/-/ms-2.0.0.tgz", + "integrity": "sha1-VgiurfwAvmwpAd9fmGF4jeDVl8g=", + "dev": true + } + } + }, + "underscore": { + "version": "1.12.0", + "resolved": "https://registry.npmjs.org/underscore/-/underscore-1.12.0.tgz", + "integrity": "sha512-21rQzss/XPMjolTiIezSu3JAjgagXKROtNrYFEOWK109qY1Uv2tVjPTZ1ci2HgvQDA16gHYSthQIJfB+XId/rQ==", + "dev": true + }, + "unicode-canonical-property-names-ecmascript": { + "version": "1.0.4", + "resolved": "https://registry.npmjs.org/unicode-canonical-property-names-ecmascript/-/unicode-canonical-property-names-ecmascript-1.0.4.tgz", + "integrity": "sha512-jDrNnXWHd4oHiTZnx/ZG7gtUTVp+gCcTTKr8L0HjlwphROEW3+Him+IpvC+xcJEFegapiMZyZe02CyuOnRmbnQ==", + "dev": true + }, + "unicode-match-property-ecmascript": { + "version": "1.0.4", + "resolved": "https://registry.npmjs.org/unicode-match-property-ecmascript/-/unicode-match-property-ecmascript-1.0.4.tgz", + "integrity": "sha512-L4Qoh15vTfntsn4P1zqnHulG0LdXgjSO035fEpdtp6YxXhMT51Q6vgM5lYdG/5X3MjS+k/Y9Xw4SFCY9IkR0rg==", + "dev": true, + "requires": { + "unicode-canonical-property-names-ecmascript": "^1.0.4", + "unicode-property-aliases-ecmascript": "^1.0.4" + } + }, + "unicode-match-property-value-ecmascript": { + "version": "1.2.0", + "resolved": "https://registry.npmjs.org/unicode-match-property-value-ecmascript/-/unicode-match-property-value-ecmascript-1.2.0.tgz", + "integrity": "sha512-wjuQHGQVofmSJv1uVISKLE5zO2rNGzM/KCYZch/QQvez7C1hUhBIuZ701fYXExuufJFMPhv2SyL8CyoIfMLbIQ==", + "dev": true + }, + "unicode-property-aliases-ecmascript": { + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/unicode-property-aliases-ecmascript/-/unicode-property-aliases-ecmascript-1.1.0.tgz", + "integrity": "sha512-PqSoPh/pWetQ2phoj5RLiaqIk4kCNwoV3CI+LfGmWLKI3rE3kl1h59XpX2BjgDrmbxD9ARtQobPGU1SguCYuQg==", + "dev": true + }, + "unicode-trie": { + "version": "0.3.1", + "resolved": "https://registry.npmjs.org/unicode-trie/-/unicode-trie-0.3.1.tgz", + "integrity": "sha1-1nHd3YkQGgi6w3tqUWEBBgIFIIU=", + "dev": true, + "requires": { + "pako": "^0.2.5", + "tiny-inflate": "^1.0.0" + } + }, + "union-value": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/union-value/-/union-value-1.0.1.tgz", + "integrity": "sha512-tJfXmxMeWYnczCVs7XAEvIV7ieppALdyepWMkHkwciRpZraG/xwT+s2JN8+pr1+8jCRf80FFzvr+MpQeeoF4Xg==", + "dev": true, + "requires": { + "arr-union": "^3.1.0", + "get-value": "^2.0.6", + "is-extendable": "^0.1.1", + "set-value": "^2.0.1" + } + }, + "uniq": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/uniq/-/uniq-1.0.1.tgz", + "integrity": "sha1-sxxa6CVIRKOoKBVBzisEuGWnNP8=", + "dev": true + }, + "uniqs": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/uniqs/-/uniqs-2.0.0.tgz", + "integrity": "sha1-/+3ks2slKQaW5uFl1KWe25mOawI=", + "dev": true + }, + "unique-string": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/unique-string/-/unique-string-2.0.0.tgz", + "integrity": "sha512-uNaeirEPvpZWSgzwsPGtU2zVSTrn/8L5q/IexZmH0eH6SA73CmAA5U4GwORTxQAZs95TAXLNqeLoPPNO5gZfWg==", + "dev": true, + "requires": { + "crypto-random-string": "^2.0.0" + } + }, + "universalify": { + "version": "0.1.2", + "resolved": "https://registry.npmjs.org/universalify/-/universalify-0.1.2.tgz", + "integrity": "sha512-rBJeI5CXAlmy1pV+617WB9J63U6XcazHHF2f2dbJix4XzpUF0RS3Zbj0FGIOCAva5P/d/GBOYaACQ1w+0azUkg==", + "dev": true + }, + "unix-crypt-td-js": { + "version": "1.1.4", + "resolved": "https://registry.npmjs.org/unix-crypt-td-js/-/unix-crypt-td-js-1.1.4.tgz", + "integrity": "sha512-8rMeVYWSIyccIJscb9NdCfZKSRBKYTeVnwmiRYT2ulE3qd1RaDQ0xQDP+rI3ccIWbhu/zuo5cgN8z73belNZgw==", + "dev": true + }, + "unpipe": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/unpipe/-/unpipe-1.0.0.tgz", + "integrity": "sha1-sr9O6FFKrmFltIF4KdIbLvSZBOw=", + "dev": true + }, + "unquote": { + "version": "1.1.1", + "resolved": "https://registry.npmjs.org/unquote/-/unquote-1.1.1.tgz", + "integrity": "sha1-j97XMk7G6IoP+LkF58CYzcCG1UQ=", + "dev": true + }, + "unset-value": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/unset-value/-/unset-value-1.0.0.tgz", + "integrity": "sha1-g3aHP30jNRef+x5vw6jtDfyKtVk=", + "dev": true, + "requires": { + "has-value": "^0.3.1", + "isobject": "^3.0.0" + }, + "dependencies": { + "has-value": { + "version": "0.3.1", + "resolved": "https://registry.npmjs.org/has-value/-/has-value-0.3.1.tgz", + "integrity": "sha1-ex9YutpiyoJ+wKIHgCVlSEWZXh8=", + "dev": true, + "requires": { + "get-value": "^2.0.3", + "has-values": "^0.1.4", + "isobject": "^2.0.0" + }, + "dependencies": { + "isobject": { + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/isobject/-/isobject-2.1.0.tgz", + "integrity": "sha1-8GVWEJaj8dou9GJy+BXIQNh+DIk=", + "dev": true, + "requires": { + "isarray": "1.0.0" + } + } + } + }, + "has-values": { + "version": "0.1.4", + "resolved": "https://registry.npmjs.org/has-values/-/has-values-0.1.4.tgz", + "integrity": "sha1-bWHeldkd/Km5oCCJrThL/49it3E=", + "dev": true + } + } + }, + "unxhr": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/unxhr/-/unxhr-1.0.1.tgz", + "integrity": "sha512-MAhukhVHyaLGDjyDYhy8gVjWJyhTECCdNsLwlMoGFoNJ3o79fpQhtQuzmAE4IxCMDwraF4cW8ZjpAV0m9CRQbg==" + }, + "upath": { + "version": "1.2.0", + "resolved": "https://registry.npmjs.org/upath/-/upath-1.2.0.tgz", + "integrity": "sha512-aZwGpamFO61g3OlfT7OQCHqhGnW43ieH9WZeP7QxN/G/jS4jfqUkZxoryvJgVPEcrl5NL/ggHsSmLMHuH64Lhg==", + "dev": true + }, + "update-notifier": { + "version": "4.1.3", + "resolved": "https://registry.npmjs.org/update-notifier/-/update-notifier-4.1.3.tgz", + "integrity": "sha512-Yld6Z0RyCYGB6ckIjffGOSOmHXj1gMeE7aROz4MG+XMkmixBX4jUngrGXNYz7wPKBmtoD4MnBa2Anu7RSKht/A==", + "dev": true, + "requires": { + "boxen": "^4.2.0", + "chalk": "^3.0.0", + "configstore": "^5.0.1", + "has-yarn": "^2.1.0", + "import-lazy": "^2.1.0", + "is-ci": "^2.0.0", + "is-installed-globally": "^0.3.1", + "is-npm": "^4.0.0", + "is-yarn-global": "^0.3.0", + "latest-version": "^5.0.0", + "pupa": "^2.0.1", + "semver-diff": "^3.1.1", + "xdg-basedir": "^4.0.0" + }, + "dependencies": { + "ansi-styles": { + "version": "4.3.0", + "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-4.3.0.tgz", + "integrity": "sha512-zbB9rCJAT1rbjiVDb2hqKFHNYLxgtk8NURxZ3IZwD3F6NtxbXZQCnnSi1Lkx+IDohdPlFp222wVALIheZJQSEg==", + "dev": true, + "requires": { + "color-convert": "^2.0.1" + } + }, + "chalk": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/chalk/-/chalk-3.0.0.tgz", + "integrity": "sha512-4D3B6Wf41KOYRFdszmDqMCGq5VV/uMAB273JILmO+3jAlh8X4qDtdtgCR3fxtbLEMzSx22QdhnDcJvu2u1fVwg==", + "dev": true, + "requires": { + "ansi-styles": "^4.1.0", + "supports-color": "^7.1.0" + } + }, + "color-convert": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/color-convert/-/color-convert-2.0.1.tgz", + "integrity": "sha512-RRECPsj7iu/xb5oKYcsFHSppFNnsj/52OVTRKb4zP5onXwVF3zVmmToNcOfGC+CRDpfK/U584fMg38ZHCaElKQ==", + "dev": true, + "requires": { + "color-name": "~1.1.4" + } + }, + "color-name": { + "version": "1.1.4", + "resolved": "https://registry.npmjs.org/color-name/-/color-name-1.1.4.tgz", + "integrity": "sha512-dOy+3AuW3a2wNbZHIuMZpTcgjGuLU/uBL/ubcZF9OXbDo8ff4O8yVp5Bf0efS8uEoYo5q4Fx7dY9OgQGXgAsQA==", + "dev": true + }, + "has-flag": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/has-flag/-/has-flag-4.0.0.tgz", + "integrity": "sha512-EykJT/Q1KjTWctppgIAgfSO0tKVuZUjhgMr17kqTumMl6Afv3EISleU7qZUzoXDFTAHTDC4NOoG/ZxU3EvlMPQ==", + "dev": true + }, + "supports-color": { + "version": "7.2.0", + "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-7.2.0.tgz", + "integrity": "sha512-qpCAvRl9stuOHveKsn7HncJRvv501qIacKzQlO/+Lwxc9+0q2wLyv4Dfvt80/DPn2pqOBsJdDiogXGR9+OvwRw==", + "dev": true, + "requires": { + "has-flag": "^4.0.0" + } + } + } + }, + "uri-js": { + "version": "4.4.0", + "resolved": "https://registry.npmjs.org/uri-js/-/uri-js-4.4.0.tgz", + "integrity": "sha512-B0yRTzYdUCCn9n+F4+Gh4yIDtMQcaJsmYBDsTSG8g/OejKBodLQ2IHfN3bM7jUsRXndopT7OIXWdYqc1fjmV6g==", + "dev": true, + "requires": { + "punycode": "^2.1.0" + } + }, + "urix": { + "version": "0.1.0", + "resolved": "https://registry.npmjs.org/urix/-/urix-0.1.0.tgz", + "integrity": "sha1-2pN/emLiH+wf0Y1Js1wpNQZ6bHI=", + "dev": true + }, + "url": { + "version": "0.11.0", + "resolved": "https://registry.npmjs.org/url/-/url-0.11.0.tgz", + "integrity": "sha1-ODjpfPxgUh63PFJajlW/3Z4uKPE=", + "dev": true, + "requires": { + "punycode": "1.3.2", + "querystring": "0.2.0" + }, + "dependencies": { + "punycode": { + "version": "1.3.2", + "resolved": "https://registry.npmjs.org/punycode/-/punycode-1.3.2.tgz", + "integrity": "sha1-llOgNvt8HuQjQvIyXM7v6jkmxI0=", + "dev": true + } + } + }, + "url-parse-lax": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/url-parse-lax/-/url-parse-lax-3.0.0.tgz", + "integrity": "sha1-FrXK/Afb42dsGxmZF3gj1lA6yww=", + "dev": true, + "requires": { + "prepend-http": "^2.0.0" + }, + "dependencies": { + "prepend-http": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/prepend-http/-/prepend-http-2.0.0.tgz", + "integrity": "sha1-6SQ0v6XqjBn0HN/UAddBo8gZ2Jc=", + "dev": true + } + } + }, + "urlgrey": { + "version": "0.4.4", + "resolved": "https://registry.npmjs.org/urlgrey/-/urlgrey-0.4.4.tgz", + "integrity": "sha1-iS/pWWCAXoVRnxzUOJ8stMu3ZS8=", + "dev": true + }, + "use": { + "version": "3.1.1", + "resolved": "https://registry.npmjs.org/use/-/use-3.1.1.tgz", + "integrity": "sha512-cwESVXlO3url9YWlFW/TA9cshCEhtu7IKJ/p5soJ/gGpj7vbvFrAY/eIioQ6Dw23KjZhYgiIo8HOs1nQ2vr/oQ==", + "dev": true + }, + "util": { + "version": "0.11.1", + "resolved": "https://registry.npmjs.org/util/-/util-0.11.1.tgz", + "integrity": "sha512-HShAsny+zS2TZfaXxD9tYj4HQGlBezXZMZuM/S5PKLLoZkShZiGk9o5CzukI1LVHZvjdvZ2Sj1aW/Ndn2NB/HQ==", + "dev": true, + "requires": { + "inherits": "2.0.3" + }, + "dependencies": { + "inherits": { + "version": "2.0.3", + "resolved": "https://registry.npmjs.org/inherits/-/inherits-2.0.3.tgz", + "integrity": "sha1-Yzwsg+PaQqUC9SRmAiSA9CCCYd4=", + "dev": true + } + } + }, + "util-deprecate": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/util-deprecate/-/util-deprecate-1.0.2.tgz", + "integrity": "sha1-RQ1Nyfpw3nMnYvvS1KKJgUGaDM8=", + "dev": true + }, + "util.promisify": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/util.promisify/-/util.promisify-1.0.1.tgz", + "integrity": "sha512-g9JpC/3He3bm38zsLupWryXHoEcS22YHthuPQSJdMy6KNrzIRzWqcsHzD/WUnqe45whVou4VIsPew37DoXWNrA==", + "dev": true, + "requires": { + "define-properties": "^1.1.3", + "es-abstract": "^1.17.2", + "has-symbols": "^1.0.1", + "object.getownpropertydescriptors": "^2.1.0" + }, + "dependencies": { + "es-abstract": { + "version": "1.17.7", + "resolved": "https://registry.npmjs.org/es-abstract/-/es-abstract-1.17.7.tgz", + "integrity": "sha512-VBl/gnfcJ7OercKA9MVaegWsBHFjV492syMudcnQZvt/Dw8ezpcOHYZXa/J96O8vx+g4x65YKhxOwDUh63aS5g==", + "dev": true, + "requires": { + "es-to-primitive": "^1.2.1", + "function-bind": "^1.1.1", + "has": "^1.0.3", + "has-symbols": "^1.0.1", + "is-callable": "^1.2.2", + "is-regex": "^1.1.1", + "object-inspect": "^1.8.0", + "object-keys": "^1.1.1", + "object.assign": "^4.1.1", + "string.prototype.trimend": "^1.0.1", + "string.prototype.trimstart": "^1.0.1" + } + } + } + }, + "utils-merge": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/utils-merge/-/utils-merge-1.0.1.tgz", + "integrity": "sha1-n5VxD1CiZ5R7LMwSR0HBAoQn5xM=", + "dev": true + }, + "uuid": { + "version": "3.4.0", + "resolved": "https://registry.npmjs.org/uuid/-/uuid-3.4.0.tgz", + "integrity": "sha512-HjSDRw6gZE5JMggctHBcjVak08+KEVhSIiDzFnT9S9aegmp85S/bReBVTb4QTFaRNptJ9kuYaNhnbNEOkbKb/A==", + "dev": true + }, + "v8-compile-cache": { + "version": "2.2.0", + "resolved": "https://registry.npmjs.org/v8-compile-cache/-/v8-compile-cache-2.2.0.tgz", + "integrity": "sha512-gTpR5XQNKFwOd4clxfnhaqvfqMpqEwr4tOtCyz4MtYZX2JYhfr1JvBFKdS+7K/9rfpZR3VLX+YWBbKoxCgS43Q==", + "dev": true + }, + "v8-to-istanbul": { + "version": "7.1.0", + "resolved": "https://registry.npmjs.org/v8-to-istanbul/-/v8-to-istanbul-7.1.0.tgz", + "integrity": "sha512-uXUVqNUCLa0AH1vuVxzi+MI4RfxEOKt9pBgKwHbgH7st8Kv2P1m+jvWNnektzBh5QShF3ODgKmUFCf38LnVz1g==", + "dev": true, + "requires": { + "@types/istanbul-lib-coverage": "^2.0.1", + "convert-source-map": "^1.6.0", + "source-map": "^0.7.3" + }, + "dependencies": { + "source-map": { + "version": "0.7.3", + "resolved": "https://registry.npmjs.org/source-map/-/source-map-0.7.3.tgz", + "integrity": "sha512-CkCj6giN3S+n9qrYiBTX5gystlENnRW5jZeNLHpe6aue+SrHcG5VYwujhW9s4dY31mEGsxBDrHR6oI69fTXsaQ==", + "dev": true + } + } + }, + "validate-npm-package-license": { + "version": "3.0.4", + "resolved": "https://registry.npmjs.org/validate-npm-package-license/-/validate-npm-package-license-3.0.4.tgz", + "integrity": "sha512-DpKm2Ui/xN7/HQKCtpZxoRWBhZ9Z0kqtygG8XCgNQ8ZlDnxuQmWhj566j8fN4Cu3/JmbhsDo7fcAJq4s9h27Ew==", + "dev": true, + "requires": { + "spdx-correct": "^3.0.0", + "spdx-expression-parse": "^3.0.0" + } + }, + "vary": { + "version": "1.1.2", + "resolved": "https://registry.npmjs.org/vary/-/vary-1.1.2.tgz", + "integrity": "sha1-IpnwLG3tMNSllhsLn3RSShj2NPw=", + "dev": true + }, + "vendors": { + "version": "1.0.4", + "resolved": "https://registry.npmjs.org/vendors/-/vendors-1.0.4.tgz", + "integrity": "sha512-/juG65kTL4Cy2su4P8HjtkTxk6VmJDiOPBufWniqQ6wknac6jNiXS9vU+hO3wgusiyqWlzTbVHi0dyJqRONg3w==", + "dev": true + }, + "verror": { + "version": "1.10.0", + "resolved": "https://registry.npmjs.org/verror/-/verror-1.10.0.tgz", + "integrity": "sha1-OhBcoXBTr1XW4nDB+CiGguGNpAA=", + "dev": true, + "requires": { + "assert-plus": "^1.0.0", + "core-util-is": "1.0.2", + "extsprintf": "^1.2.0" + } + }, + "vlq": { + "version": "0.2.3", + "resolved": "https://registry.npmjs.org/vlq/-/vlq-0.2.3.tgz", + "integrity": "sha512-DRibZL6DsNhIgYQ+wNdWDL2SL3bKPlVrRiBqV5yuMm++op8W4kGFtaQfCs4KEJn0wBZcHVHJ3eoywX8983k1ow==", + "dev": true + }, + "vm-browserify": { + "version": "1.1.2", + "resolved": "https://registry.npmjs.org/vm-browserify/-/vm-browserify-1.1.2.tgz", + "integrity": "sha512-2ham8XPWTONajOR0ohOKOHXkm3+gaBmGut3SRuu75xLd/RRaY6vqgh8NBYYk7+RW3u5AtzPQZG8F10LHkl0lAQ==", + "dev": true + }, + "w3c-hr-time": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/w3c-hr-time/-/w3c-hr-time-1.0.2.tgz", + "integrity": "sha512-z8P5DvDNjKDoFIHK7q8r8lackT6l+jo/Ye3HOle7l9nICP9lf1Ci25fy9vHd0JOWewkIFzXIEig3TdKT7JQ5fQ==", + "dev": true, + "requires": { + "browser-process-hrtime": "^1.0.0" + } + }, + "w3c-xmlserializer": { + "version": "1.1.2", + "resolved": "https://registry.npmjs.org/w3c-xmlserializer/-/w3c-xmlserializer-1.1.2.tgz", + "integrity": "sha512-p10l/ayESzrBMYWRID6xbuCKh2Fp77+sA0doRuGn4tTIMrrZVeqfpKjXHY+oDh3K4nLdPgNwMTVP6Vp4pvqbNg==", + "dev": true, + "requires": { + "domexception": "^1.0.1", + "webidl-conversions": "^4.0.2", + "xml-name-validator": "^3.0.0" + } + }, + "walker": { + "version": "1.0.7", + "resolved": "https://registry.npmjs.org/walker/-/walker-1.0.7.tgz", + "integrity": "sha1-L3+bj9ENZ3JisYqITijRlhjgKPs=", + "dev": true, + "requires": { + "makeerror": "1.0.x" + } + }, + "wcwidth": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/wcwidth/-/wcwidth-1.0.1.tgz", + "integrity": "sha1-8LDc+RW8X/FSivrbLA4XtTLaL+g=", + "dev": true, + "requires": { + "defaults": "^1.0.3" + } + }, + "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 + }, + "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": "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" + } + }, + "whatwg-mimetype": { + "version": "2.3.0", + "resolved": "https://registry.npmjs.org/whatwg-mimetype/-/whatwg-mimetype-2.3.0.tgz", + "integrity": "sha512-M4yMwr6mAnQz76TbJm914+gPpB/nCwvZbJU28cUD6dR004SAxDLOOSUaB1JDRqLtaOV/vi0IC5lEAGFgrjGv/g==", + "dev": true + }, + "whatwg-url": { + "version": "7.1.0", + "resolved": "https://registry.npmjs.org/whatwg-url/-/whatwg-url-7.1.0.tgz", + "integrity": "sha512-WUu7Rg1DroM7oQvGWfOiAK21n74Gg+T4elXEQYkOhtyLeWiJFoOGLXPKI/9gzIie9CtwVLm8wtw6YJdKyxSjeg==", + "dev": true, + "requires": { + "lodash.sortby": "^4.7.0", + "tr46": "^1.0.1", + "webidl-conversions": "^4.0.2" + } + }, + "which": { + "version": "1.3.1", + "resolved": "https://registry.npmjs.org/which/-/which-1.3.1.tgz", + "integrity": "sha512-HxJdYWq1MTIQbJ3nw0cqssHoTNU267KlrDuGZ1WYlxDStUtKUhOaJmh112/TZmHxxUfuJqPXSOm7tDyas0OSIQ==", + "dev": true, + "requires": { + "isexe": "^2.0.0" + } + }, + "which-module": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/which-module/-/which-module-2.0.0.tgz", + "integrity": "sha1-2e8H3Od7mQK4o6j6SzHD4/fm6Ho=" + }, + "widest-line": { + "version": "3.1.0", + "resolved": "https://registry.npmjs.org/widest-line/-/widest-line-3.1.0.tgz", + "integrity": "sha512-NsmoXalsWVDMGupxZ5R08ka9flZjjiLvHVAWYOKtiKM8ujtZWr9cRffak+uSE48+Ob8ObalXpwyeUiyDD6QFgg==", + "dev": true, + "requires": { + "string-width": "^4.0.0" + }, + "dependencies": { + "ansi-regex": { + "version": "5.0.0", + "resolved": "https://registry.npmjs.org/ansi-regex/-/ansi-regex-5.0.0.tgz", + "integrity": "sha512-bY6fj56OUQ0hU1KjFNDQuJFezqKdrAyFdIevADiqrWHwSlbmBNMHp5ak2f40Pm8JTFyM2mqxkG6ngkHO11f/lg==", + "dev": true + }, + "emoji-regex": { + "version": "8.0.0", + "resolved": "https://registry.npmjs.org/emoji-regex/-/emoji-regex-8.0.0.tgz", + "integrity": "sha512-MSjYzcWNOA0ewAHpz0MxpYFvwg6yjy1NG3xteoqz644VCo/RPgnr1/GGt+ic3iJTzQ8Eu3TdM14SawnVUmGE6A==", + "dev": true + }, + "is-fullwidth-code-point": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/is-fullwidth-code-point/-/is-fullwidth-code-point-3.0.0.tgz", + "integrity": "sha512-zymm5+u+sCsSWyD9qNaejV3DFvhCKclKdizYaJUuHA83RLjb7nSuGnddCHGv0hk+KY7BMAlsWeK4Ueg6EV6XQg==", + "dev": true + }, + "string-width": { + "version": "4.2.0", + "resolved": "https://registry.npmjs.org/string-width/-/string-width-4.2.0.tgz", + "integrity": "sha512-zUz5JD+tgqtuDjMhwIg5uFVV3dtqZ9yQJlZVfq4I01/K5Paj5UHj7VyrQOJvzawSVlKpObApbfD0Ed6yJc+1eg==", + "dev": true, + "requires": { + "emoji-regex": "^8.0.0", + "is-fullwidth-code-point": "^3.0.0", + "strip-ansi": "^6.0.0" + } + }, + "strip-ansi": { + "version": "6.0.0", + "resolved": "https://registry.npmjs.org/strip-ansi/-/strip-ansi-6.0.0.tgz", + "integrity": "sha512-AuvKTrTfQNYNIctbR1K/YGTR1756GycPsg7b9bdV9Duqur4gv6aKqHXah67Z8ImS7WEz5QVcOtlfW2rZEugt6w==", + "dev": true, + "requires": { + "ansi-regex": "^5.0.0" + } + } + } + }, + "word-wrap": { + "version": "1.2.3", + "resolved": "https://registry.npmjs.org/word-wrap/-/word-wrap-1.2.3.tgz", + "integrity": "sha512-Hz/mrNwitNRh/HUAtM/VT/5VH+ygD6DV7mYKZAtHOrbs8U7lvPS6xf7EJKMF0uW1KJCl0H701g3ZGus+muE5vQ==", + "dev": true + }, + "wordwrap": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/wordwrap/-/wordwrap-1.0.0.tgz", + "integrity": "sha1-J1hIEIkUVqQXHI0CJkQa3pDLyus=", + "dev": true + }, + "wrap-ansi": { + "version": "6.2.0", + "resolved": "https://registry.npmjs.org/wrap-ansi/-/wrap-ansi-6.2.0.tgz", + "integrity": "sha512-r6lPcBGxZXlIcymEu7InxDMhdW0KDxpLgoFLcguasxCaJ/SOIZwINatK9KY/tf+ZrlywOKU0UDj3ATXUBfxJXA==", + "requires": { + "ansi-styles": "^4.0.0", + "string-width": "^4.1.0", + "strip-ansi": "^6.0.0" + }, + "dependencies": { + "ansi-regex": { + "version": "5.0.0", + "resolved": "https://registry.npmjs.org/ansi-regex/-/ansi-regex-5.0.0.tgz", + "integrity": "sha512-bY6fj56OUQ0hU1KjFNDQuJFezqKdrAyFdIevADiqrWHwSlbmBNMHp5ak2f40Pm8JTFyM2mqxkG6ngkHO11f/lg==" + }, + "ansi-styles": { + "version": "4.3.0", + "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-4.3.0.tgz", + "integrity": "sha512-zbB9rCJAT1rbjiVDb2hqKFHNYLxgtk8NURxZ3IZwD3F6NtxbXZQCnnSi1Lkx+IDohdPlFp222wVALIheZJQSEg==", + "requires": { + "color-convert": "^2.0.1" + } + }, + "color-convert": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/color-convert/-/color-convert-2.0.1.tgz", + "integrity": "sha512-RRECPsj7iu/xb5oKYcsFHSppFNnsj/52OVTRKb4zP5onXwVF3zVmmToNcOfGC+CRDpfK/U584fMg38ZHCaElKQ==", + "requires": { + "color-name": "~1.1.4" + } + }, + "color-name": { + "version": "1.1.4", + "resolved": "https://registry.npmjs.org/color-name/-/color-name-1.1.4.tgz", + "integrity": "sha512-dOy+3AuW3a2wNbZHIuMZpTcgjGuLU/uBL/ubcZF9OXbDo8ff4O8yVp5Bf0efS8uEoYo5q4Fx7dY9OgQGXgAsQA==" + }, + "emoji-regex": { + "version": "8.0.0", + "resolved": "https://registry.npmjs.org/emoji-regex/-/emoji-regex-8.0.0.tgz", + "integrity": "sha512-MSjYzcWNOA0ewAHpz0MxpYFvwg6yjy1NG3xteoqz644VCo/RPgnr1/GGt+ic3iJTzQ8Eu3TdM14SawnVUmGE6A==" + }, + "is-fullwidth-code-point": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/is-fullwidth-code-point/-/is-fullwidth-code-point-3.0.0.tgz", + "integrity": "sha512-zymm5+u+sCsSWyD9qNaejV3DFvhCKclKdizYaJUuHA83RLjb7nSuGnddCHGv0hk+KY7BMAlsWeK4Ueg6EV6XQg==" + }, + "string-width": { + "version": "4.2.0", + "resolved": "https://registry.npmjs.org/string-width/-/string-width-4.2.0.tgz", + "integrity": "sha512-zUz5JD+tgqtuDjMhwIg5uFVV3dtqZ9yQJlZVfq4I01/K5Paj5UHj7VyrQOJvzawSVlKpObApbfD0Ed6yJc+1eg==", + "requires": { + "emoji-regex": "^8.0.0", + "is-fullwidth-code-point": "^3.0.0", + "strip-ansi": "^6.0.0" + } + }, + "strip-ansi": { + "version": "6.0.0", + "resolved": "https://registry.npmjs.org/strip-ansi/-/strip-ansi-6.0.0.tgz", + "integrity": "sha512-AuvKTrTfQNYNIctbR1K/YGTR1756GycPsg7b9bdV9Duqur4gv6aKqHXah67Z8ImS7WEz5QVcOtlfW2rZEugt6w==", + "requires": { + "ansi-regex": "^5.0.0" + } + } + } + }, + "wrappy": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/wrappy/-/wrappy-1.0.2.tgz", + "integrity": "sha1-tSQ9jz7BqjXxNkYFvA0QNuMKtp8=" + }, + "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": { + "minimist": { + "version": "1.2.5", + "resolved": "https://registry.npmjs.org/minimist/-/minimist-1.2.5.tgz", + "integrity": "sha512-FM9nNUYrRBAELZQT3xeZQ7fmMOBg6nWNmJKTcgsJeaLstP/UODVpGsr5OhXhhXg6f+qtJ8uiZ+PUxkDWcgIXLw==", + "dev": true + }, + "mkdirp": { + "version": "0.5.5", + "resolved": "https://registry.npmjs.org/mkdirp/-/mkdirp-0.5.5.tgz", + "integrity": "sha512-NKmAlESf6jMGym1++R0Ra7wvhV+wFW63FaSOFPwRahvea0gMUcGUhVeAg/0BC0wiv9ih5NYPB1Wn1UEI1/L+xQ==", + "dev": true, + "requires": { + "minimist": "^1.2.5" + } + } + } + }, + "write-file-atomic": { + "version": "3.0.3", + "resolved": "https://registry.npmjs.org/write-file-atomic/-/write-file-atomic-3.0.3.tgz", + "integrity": "sha512-AvHcyZ5JnSfq3ioSyjrBkH9yW4m7Ayk8/9My/DD9onKeu/94fwrMocemO2QAJFAlnnDN+ZDS+ZjAR5ua1/PV/Q==", + "dev": true, + "requires": { + "imurmurhash": "^0.1.4", + "is-typedarray": "^1.0.0", + "signal-exit": "^3.0.2", + "typedarray-to-buffer": "^3.1.5" + } + }, + "ws": { + "version": "5.2.2", + "resolved": "https://registry.npmjs.org/ws/-/ws-5.2.2.tgz", + "integrity": "sha512-jaHFD6PFv6UgoIVda6qZllptQsMlDEJkTQcybzzXDYM1XO9Y8em691FGMPmM46WGyLU4z9KMgQN+qrux/nhlHA==", + "dev": true, + "requires": { + "async-limiter": "~1.0.0" + } + }, + "xdg-basedir": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/xdg-basedir/-/xdg-basedir-4.0.0.tgz", + "integrity": "sha512-PSNhEJDejZYV7h50BohL09Er9VaIefr2LMAf3OEmpCkjOi34eYyQYAXUTjEQtZJTKcF0E2UKTh+osDLsgNim9Q==", + "dev": true + }, + "xml-name-validator": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/xml-name-validator/-/xml-name-validator-3.0.0.tgz", + "integrity": "sha512-A5CUptxDsvxKJEU3yO6DuWBSJz/qizqzJKOMIfUJHETbBw/sFaDxgd6fxm1ewUaM0jZ444Fc5vC5ROYurg/4Pw==", + "dev": true + }, + "xmlchars": { + "version": "2.2.0", + "resolved": "https://registry.npmjs.org/xmlchars/-/xmlchars-2.2.0.tgz", + "integrity": "sha512-JZnDKK8B0RCDw84FNdDAIpZK+JuJw+s7Lz8nksI7SIuU3UXJJslUthsi+uWBUYOwPFwW7W7PRLRfUKpxjtjFCw==", + "dev": true + }, + "xtend": { + "version": "4.0.2", + "resolved": "https://registry.npmjs.org/xtend/-/xtend-4.0.2.tgz", + "integrity": "sha512-LKYU1iAXJXUgAXn9URjiu+MWhyUXHsvfp7mcuYm9dSUKK0/CjtrUwFAxD82/mCWbtLsGjFIad0wIsod4zrTAEQ==", + "dev": true + }, + "y18n": { + "version": "4.0.1", + "resolved": "https://registry.npmjs.org/y18n/-/y18n-4.0.1.tgz", + "integrity": "sha512-wNcy4NvjMYL8gogWWYAO7ZFWFfHcbdbE57tZO8e4cbpj8tfUcwrwqSl3ad8HxpYWCdXcJUCeKKZS62Av1affwQ==" + }, + "yallist": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/yallist/-/yallist-4.0.0.tgz", + "integrity": "sha512-3wdGidZyq5PB084XLES5TpOSRA3wjXAlIWMhum2kRcv/41Sn2emQ0dycQW4uZXLejwKvg6EsvbdlVL+FYEct7A==", + "dev": true + }, + "yaml": { + "version": "1.10.0", + "resolved": "https://registry.npmjs.org/yaml/-/yaml-1.10.0.tgz", + "integrity": "sha512-yr2icI4glYaNG+KWONODapy2/jDdMSDnrONSjblABjD9B4Z5LgiircSt8m8sRZFNi08kG9Sm0uSHtEmP3zaEGg==", + "dev": true, + "optional": true + }, + "yargs": { + "version": "15.4.1", + "resolved": "https://registry.npmjs.org/yargs/-/yargs-15.4.1.tgz", + "integrity": "sha512-aePbxDmcYW++PaqBsJ+HYUFwCdv4LVvdnhBy78E57PIor8/OVvhMrADFFEDh8DHDFRv/O9i3lPhsENjO7QX0+A==", + "dev": true, + "requires": { + "cliui": "^6.0.0", + "decamelize": "^1.2.0", + "find-up": "^4.1.0", + "get-caller-file": "^2.0.1", + "require-directory": "^2.1.1", + "require-main-filename": "^2.0.0", + "set-blocking": "^2.0.0", + "string-width": "^4.2.0", + "which-module": "^2.0.0", + "y18n": "^4.0.0", + "yargs-parser": "^18.1.2" + }, + "dependencies": { + "ansi-regex": { + "version": "5.0.0", + "resolved": "https://registry.npmjs.org/ansi-regex/-/ansi-regex-5.0.0.tgz", + "integrity": "sha512-bY6fj56OUQ0hU1KjFNDQuJFezqKdrAyFdIevADiqrWHwSlbmBNMHp5ak2f40Pm8JTFyM2mqxkG6ngkHO11f/lg==", + "dev": true + }, + "emoji-regex": { + "version": "8.0.0", + "resolved": "https://registry.npmjs.org/emoji-regex/-/emoji-regex-8.0.0.tgz", + "integrity": "sha512-MSjYzcWNOA0ewAHpz0MxpYFvwg6yjy1NG3xteoqz644VCo/RPgnr1/GGt+ic3iJTzQ8Eu3TdM14SawnVUmGE6A==", + "dev": true + }, + "find-up": { + "version": "4.1.0", + "resolved": "https://registry.npmjs.org/find-up/-/find-up-4.1.0.tgz", + "integrity": "sha512-PpOwAdQ/YlXQ2vj8a3h8IipDuYRi3wceVQQGYWxNINccq40Anw7BlsEXCMbt1Zt+OLA6Fq9suIpIWD0OsnISlw==", + "dev": true, + "requires": { + "locate-path": "^5.0.0", + "path-exists": "^4.0.0" + } + }, + "is-fullwidth-code-point": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/is-fullwidth-code-point/-/is-fullwidth-code-point-3.0.0.tgz", + "integrity": "sha512-zymm5+u+sCsSWyD9qNaejV3DFvhCKclKdizYaJUuHA83RLjb7nSuGnddCHGv0hk+KY7BMAlsWeK4Ueg6EV6XQg==", + "dev": true + }, + "locate-path": { + "version": "5.0.0", + "resolved": "https://registry.npmjs.org/locate-path/-/locate-path-5.0.0.tgz", + "integrity": "sha512-t7hw9pI+WvuwNJXwk5zVHpyhIqzg2qTlklJOf0mVxGSbe3Fp2VieZcduNYjaLDoy6p9uGpQEGWG87WpMKlNq8g==", + "dev": true, + "requires": { + "p-locate": "^4.1.0" + } + }, + "p-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": "4.1.0", + "resolved": "https://registry.npmjs.org/p-locate/-/p-locate-4.1.0.tgz", + "integrity": "sha512-R79ZZ/0wAxKGu3oYMlz8jy/kbhsNrS7SKZ7PxEHBgJ5+F2mtFW2fK2cOtBh1cHYkQsbzFV7I+EoRKe6Yt0oK7A==", + "dev": true, + "requires": { + "p-limit": "^2.2.0" + } + }, + "p-try": { + "version": "2.2.0", + "resolved": "https://registry.npmjs.org/p-try/-/p-try-2.2.0.tgz", + "integrity": "sha512-R4nPAVTAU0B9D35/Gk3uJf/7XYbQcyohSKdvAxIRSNghFl4e71hVoGnBNQz9cWaXxO2I10KTC+3jMdvvoKw6dQ==", + "dev": true + }, + "path-exists": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/path-exists/-/path-exists-4.0.0.tgz", + "integrity": "sha512-ak9Qy5Q7jYb2Wwcey5Fpvg2KoAc/ZIhLSLOSBmRmygPsGwkVVt0fZa0qrtMz+m6tJTAHfZQ8FnmB4MG4LWy7/w==", + "dev": true + }, + "string-width": { + "version": "4.2.0", + "resolved": "https://registry.npmjs.org/string-width/-/string-width-4.2.0.tgz", + "integrity": "sha512-zUz5JD+tgqtuDjMhwIg5uFVV3dtqZ9yQJlZVfq4I01/K5Paj5UHj7VyrQOJvzawSVlKpObApbfD0Ed6yJc+1eg==", + "dev": true, + "requires": { + "emoji-regex": "^8.0.0", + "is-fullwidth-code-point": "^3.0.0", + "strip-ansi": "^6.0.0" + } + }, + "strip-ansi": { + "version": "6.0.0", + "resolved": "https://registry.npmjs.org/strip-ansi/-/strip-ansi-6.0.0.tgz", + "integrity": "sha512-AuvKTrTfQNYNIctbR1K/YGTR1756GycPsg7b9bdV9Duqur4gv6aKqHXah67Z8ImS7WEz5QVcOtlfW2rZEugt6w==", + "dev": true, + "requires": { + "ansi-regex": "^5.0.0" + } + } + } + }, + "yargs-parser": { + "version": "18.1.3", + "resolved": "https://registry.npmjs.org/yargs-parser/-/yargs-parser-18.1.3.tgz", + "integrity": "sha512-o50j0JeToy/4K6OZcaQmW6lyXXKhq7csREXcDwk2omFPJEwUNOVtJKvmDr9EI1fAJZUyZcRF7kxGBWmRXudrCQ==", + "requires": { + "camelcase": "^5.0.0", + "decamelize": "^1.2.0" + } + } + } +} diff --git a/package.json b/package.json new file mode 100644 index 000000000..0243c9f50 --- /dev/null +++ b/package.json @@ -0,0 +1,124 @@ +{ + "name": "localpen", + "version": "0.0.1", + "description": "Code pens that run locally", + "main": "index.js", + "author": "Hatem Hosny", + "license": "MIT", + "keywords": [], + "private": true, + "scripts": { + "start": "run-p watch serve", + "serve": "live-server build --wait=1000", + "dev": "run-p build:lib build:assets build:web", + "watch": "nodemon --watch src -e * --exec npm run dev", + "build": "run-s clean build:*", + "build:lib": "node ./scripts/build.js", + "build:ts": "tsc --emitDeclarationOnly --outFile build/localpen/index.d.ts", + "build:assets": "recursive-copy src/localpen/assets build/localpen/assets", + "build:vendors": "recursive-copy src/localpen/vendor build/localpen/vendor", + "build:web": "parcel build --out-dir build src/index.html src/index2.html src/embed.html src/content.html", + "build:api-docs": "typedoc --inputFiles src/localpen/index.ts --inputFiles src/localpen/app.ts --out build/api-docs --exclude **/*.spec.ts --mode modules --plugin none", + "vendors": "recursive-delete src/localpen/vendor && run-s vendor:*", + "vendor:monaco": "esbuild --bundle vendor_modules/imports/monaco.ts --outfile=src/localpen/vendor/monaco-editor/monaco.js --loader:.ttf=file --format=esm --minify", + "vendor:json.worker": "parcel build node_modules/monaco-editor/esm/vs/language/json/json.worker.js --out-dir src/localpen/vendor/monaco-editor --out-file json.worker.js --no-source-maps", + "vendor:css.worker": "parcel build node_modules/monaco-editor/esm/vs/language/css/css.worker.js --out-dir src/localpen/vendor/monaco-editor --out-file css.worker.js --no-source-maps", + "vendor:html.worker": "parcel build node_modules/monaco-editor/esm/vs/language/html/html.worker.js --out-dir src/localpen/vendor/monaco-editor --out-file html.worker.js --no-source-maps", + "vendor:ts.worker": "parcel build node_modules/monaco-editor/esm/vs/language/typescript/ts.worker.js --out-dir src/localpen/vendor/monaco-editor --out-file ts.worker.js --no-source-maps", + "vendor:editor.worker": "parcel build node_modules/monaco-editor/esm/vs/editor/editor.worker.js --out-dir src/localpen/vendor/monaco-editor --out-file editor.worker.js --no-source-maps", + "vendor:typescript": "node ./scripts/patch-typescriptServices.js && esbuild --bundle vendor_modules/imports/typescript.js --outfile=src/localpen/vendor/typescript/typescript.min.js --format=esm --minify", + "vendor:marked": "esbuild --bundle node_modules/marked/lib/marked.esm.js --outfile=src/localpen/vendor/marked/marked.esm.min.js --format=esm --minify", + "vendor:sass": "esbuild --bundle vendor_modules/imports/sass.js --outfile=src/localpen/vendor/sass.js/sass.js --format=esm --minify", + "vendor:less": "esbuild --bundle vendor_modules/imports/less.js --outfile=src/localpen/vendor/less/less.js --format=esm --minify", + "vendor:others": "node ./scripts/get-vendors.js", + "website:publish": "run-s build gh-pages", + "gh-pages": "gh-pages -m \"[ci skip] Updates\" -d build", + "fix": "run-s fix:*", + "fix:prettier": "prettier src --ignore-path .eslintignore --write", + "fix:lint": "eslint --fix --ext js,jsx,ts,tsx .", + "test": "run-s test:*", + "test:lint": "eslint --ext js,jsx,ts,tsx . && prettier src --ignore-path .eslintignore --list-different", + "test:unit": "jest src", + "cov": "run-s \"test:unit -- --coverage\"", + "cov:send": "run-s cov && codecov", + "release": "standard-version", + "prepare-release": "run-s reset build test cov release", + "reset": "git clean -dfx && git reset --hard && npm i", + "clean": "recursive-delete build", + "prepush": "run-s fix vendors build test" + }, + "dependencies": { + "asciidoctor": "2.2.1", + "autoprefixer": "10.1.0", + "emmet-monaco-es": "4.4.2", + "github-markdown-css": "4.0.0", + "less": "4.0.0", + "marked": "1.2.7", + "monaco-editor": "0.21.2", + "postcss": "8.2.2", + "prettier": "2.2.1", + "sass.js": "0.11.1", + "split.js": "1.6.2" + }, + "devDependencies": { + "@bitjson/typedoc": "0.15.0-0", + "@istanbuljs/nyc-config-typescript": "1.0.1", + "@types/jest": "25.2.3", + "@types/node": "14.0.4", + "@types/prettier": "^2.1.6", + "@typescript-eslint/eslint-plugin": "4.8.2", + "@typescript-eslint/parser": "4.8.2", + "codecov": "3.7.0", + "cz-conventional-changelog": "3.2.0", + "esbuild": "0.8.24", + "eslint": "7.14.0", + "eslint-config-prettier": "6.11.0", + "eslint-plugin-import": "2.20.2", + "eslint-plugin-jest": "23.13.1", + "eslint-plugin-jsdoc": "25.4.2", + "eslint-plugin-prefer-arrow": "1.2.1", + "gh-pages": "2.2.0", + "jest": "26.0.1", + "live-server": "1.2.1", + "mkdirp": "1.0.4", + "nodemon": "2.0.6", + "npm-run-all": "4.1.5", + "parcel-bundler": "1.12.4", + "recursive-fs": "2.1.0", + "standard-version": "8.0.0", + "ts-jest": "26.0.0", + "typedoc": "0.19.2", + "typescript": "4.1.3" + }, + "config": { + "commitizen": { + "path": "cz-conventional-changelog" + } + }, + "prettier": { + "semi": true, + "singleQuote": true, + "trailingComma": "all", + "printWidth": 100 + }, + "jest": { + "preset": "ts-jest", + "testEnvironment": "jsdom", + "testPathIgnorePatterns": [ + "/node_modules/", + "/build/", + "/src/modules/" + ], + "collectCoverageFrom": [ + "src/**/*.ts", + "!**/build/**", + "!**/vendor/**", + "!src/modules/**" + ], + "coverageReporters": [ + "json", + "html", + "lcov" + ] + } +} diff --git a/scripts/build.js b/scripts/build.js new file mode 100644 index 000000000..55a1e2515 --- /dev/null +++ b/scripts/build.js @@ -0,0 +1,48 @@ +var fs = require('fs'); +var path = require('path'); +var esbuild = require('esbuild'); + +var srcDir = path.resolve(__dirname + '/../src/localpen'); +var outDir = path.resolve(__dirname + '/../build'); +mkdirp(outDir); +fs.copyFileSync(path.resolve(srcDir + '/localpen.json'), path.resolve(outDir + '/localpen.json')); +function mkdirp(dir) { + if (!fs.existsSync(path.resolve(dir))) { + fs.mkdirSync(path.resolve(dir)); + } +} + +var buildOptions = { + entryPoints: ['src/localpen/index.ts', 'src/localpen/app.ts'], + bundle: true, + minify: true, + loader: { '.html': 'text', '.ttf': 'file' }, + outdir: 'build/localpen', + format: 'esm', + logLevel: 'error', +}; + +esbuild + .build(buildOptions) + .then(() => { + console.log('built to: ' + buildOptions.outdir); + }) + .catch(() => process.exit(1)); + +var buildOptionsUmd = { + entryPoints: ['src/localpen/embed.ts'], + bundle: true, + minify: true, + loader: { '.html': 'text', '.ttf': 'file' }, + outfile: 'build/localpen/embed.js', + format: 'iife', + globalName: 'localpen', + logLevel: 'error', +}; + +esbuild + .build(buildOptionsUmd) + .then(() => { + console.log('built to: ' + buildOptionsUmd.outfile); + }) + .catch(() => process.exit(1)); diff --git a/scripts/get-vendors.js b/scripts/get-vendors.js new file mode 100644 index 000000000..79e3293f6 --- /dev/null +++ b/scripts/get-vendors.js @@ -0,0 +1,91 @@ +var fs = require('fs'); +var path = require('path'); + +var node_modules = path.resolve(__dirname + '/../node_modules'); +var vendor_modules = path.resolve(__dirname + '/../vendor_modules'); +var targetDir = path.resolve(__dirname + '/../src/localpen/vendor'); + +// github-markdown-css +mkdirp(targetDir + '/github-markdown-css'); +fs.copyFileSync( + path.resolve(node_modules + '/github-markdown-css/github-markdown.css'), + path.resolve(targetDir + '/github-markdown-css/github-markdown.css'), +); + +// sass.js +mkdirp(targetDir + '/sass.js'); +fs.copyFileSync( + path.resolve(node_modules + '/sass.js/dist/sass.worker.js'), + path.resolve(targetDir + '/sass.js/sass.worker.js'), +); + +// stylus +mkdirp(targetDir + '/stylus'); +fs.copyFileSync( + path.resolve(vendor_modules + '/src/stylus/stylus.min.js'), + path.resolve(targetDir + '/stylus/stylus.min.js'), +); + +// pug +mkdirp(targetDir + '/pug'); +fs.copyFileSync( + path.resolve(vendor_modules + '/src/pug/pug.min.js'), + path.resolve(targetDir + '/pug/pug.min.js'), +); + +// asciidoctor +mkdirp(targetDir + '/asciidoctor'); +fs.copyFileSync( + path.resolve(node_modules + '/@asciidoctor/core/dist/browser/asciidoctor.min.js'), + path.resolve(targetDir + '/asciidoctor/asciidoctor.min.js'), +); + +// coffeescript +mkdirp(targetDir + '/coffeescript'); +fs.copyFileSync( + path.resolve(vendor_modules + '/src/coffeescript/coffeescript.js'), + path.resolve(targetDir + '/coffeescript/coffeescript.js'), +); + +// autoprefixer +mkdirp(targetDir + '/autoprefixer'); +fs.copyFileSync( + path.resolve(vendor_modules + '/src/autoprefixer/autoprefixer.js'), + path.resolve(targetDir + '/autoprefixer/autoprefixer.js'), +); + +// jszip +mkdirp(targetDir + '/jszip'); +fs.copyFileSync( + path.resolve(vendor_modules + '/src/jszip/jszip.js'), + path.resolve(targetDir + '/jszip/jszip.js'), +); + +// prettier +mkdirp(targetDir + '/prettier'); +fs.copyFileSync( + path.resolve(node_modules + '/prettier/esm/standalone.mjs'), + path.resolve(targetDir + '/prettier/standalone.mjs'), +); +fs.copyFileSync( + path.resolve(node_modules + '/prettier/esm/parser-babel.mjs'), + path.resolve(targetDir + '/prettier/parser-babel.mjs'), +); +fs.copyFileSync( + path.resolve(node_modules + '/prettier/esm/parser-html.mjs'), + path.resolve(targetDir + '/prettier/parser-html.mjs'), +); +fs.copyFileSync( + path.resolve(node_modules + '/prettier/esm/parser-postcss.mjs'), + path.resolve(targetDir + '/prettier/parser-postcss.mjs'), +); +fs.copyFileSync( + path.resolve(node_modules + '/prettier/esm/parser-markdown.mjs'), + path.resolve(targetDir + '/prettier/parser-markdown.mjs'), +); + +function mkdirp(dir) { + if (!fs.existsSync(path.resolve(dir))) { + fs.mkdirSync(path.resolve(dir)); + } +} diff --git a/scripts/patch-typescriptServices.js b/scripts/patch-typescriptServices.js new file mode 100644 index 000000000..93543663c --- /dev/null +++ b/scripts/patch-typescriptServices.js @@ -0,0 +1,20 @@ +var fs = require('fs'); +var path = require('path'); + +var outDir = path.resolve(__dirname + '/../vendor_modules/src/typescript'); + +if (!fs.existsSync(outDir)) { + fs.mkdirSync(outDir); +} + +fs.copyFileSync( + path.resolve( + __dirname + + '/../node_modules/monaco-editor/esm/vs/language/typescript/lib/typescriptServices.js', + ), + path.resolve(outDir + '/typescriptServices.js'), +); +fs.appendFileSync( + path.resolve(outDir + '/typescriptServices.js'), + 'export var transpile = ts.transpile;\n', +); diff --git a/src/favicon.ico b/src/favicon.ico new file mode 100644 index 0000000000000000000000000000000000000000..a76ab4f8e73cec2ed073f8f681e4d2ceb2b228cb GIT binary patch literal 15086 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 WRGY$Infy}&^A{q1M96+m-G2cE!QXlS literal 0 HcmV?d00001 diff --git a/src/index.html b/src/index.html new file mode 100644 index 000000000..e825cafcd --- /dev/null +++ b/src/index.html @@ -0,0 +1,61 @@ + + + + + + LocalPen + + + + + + + + + + + + + +

+ +
+ + + + diff --git a/src/index.ts b/src/index.ts new file mode 100644 index 000000000..ca655e4fc --- /dev/null +++ b/src/index.ts @@ -0,0 +1,8 @@ +const baseUrl = '/localpen'; + +import(baseUrl + '/index.js').then((module) => { + module.localpen('#pen', { + baseUrl, + autoupdate: true, + }); +}); diff --git a/src/localpen/app.html b/src/localpen/app.html new file mode 100644 index 000000000..4183e03f0 --- /dev/null +++ b/src/localpen/app.html @@ -0,0 +1,221 @@ + + + + + + LocalPen + + + + +
+
+ +
+ +
+
Untitled Project
+
+ + + +
+
+
+
+
+
+
+
+
+
+
+ + + + + + diff --git a/src/localpen/app.ts b/src/localpen/app.ts new file mode 100644 index 000000000..76109fe1d --- /dev/null +++ b/src/localpen/app.ts @@ -0,0 +1,1174 @@ +import { emmetHTML, emmetCSS } from 'emmet-monaco-es'; +import Split from 'split.js'; +import { monaco } from './monaco'; + +import { createEditor } from './editor'; +import { languages, getLanguageByAlias, getLanguageEditorId, postProcessors } from './languages'; +import { createStorage } from './storage'; +import { EditorId, EditorLanguages, EditorLibrary, Editors, Language, Module, Pen } from './models'; +import { createFormatter } from './formatter'; +import { disableMarkdownStyles, getCompilersData, loadCompilers, compile } from './compilers'; +import { createNotifications } from './notifications'; +import { createModal } from './modal'; +import { defaultConfig } from './config'; +import { resultTemplate, importTemplate, resourcesTemplate, savePromptTemplate } from './templates'; +import { exportPen } from './export'; +import { createEventsManager } from './events'; + +export const app = async (config: Pen) => { + // get a fresh immatuable copy of config + const getConfig = (): Pen => JSON.parse(JSON.stringify(config)); + + const setConfig = (newConfig: Pen) => { + config = JSON.parse(JSON.stringify(newConfig)); + }; + + const { baseUrl } = getConfig(); + const storage = createStorage(); + const formatter = createFormatter(getConfig()); + let editors: Editors; + let penId: string; + let editorLanguages: EditorLanguages; + let activeEditorId: EditorId; + const notifications = createNotifications('#notifications'); + const modal = createModal(); + let previousContent = { stylesheets: '', scripts: '', script: '' }; + const disposeEmmet: { html?: any; css?: any } = {}; + const eventsManager = createEventsManager(); + let isSaved = true; + + const elements = { + markup: '#markup', + style: '#style', + script: '#script', + result: '#result', + }; + const iframeDocument = (await createIframe(elements.result, resultTemplate)) as Document; + + const createSplitPanes = () => { + const split = Split(['#editors', '#result'], { + minSize: [0, 0], + gutterSize: 10, + elementStyle: (_dimension, size, gutterSize) => { + window.dispatchEvent(new Event('editor-resize')); + return { + 'flex-basis': `calc(${size}% - ${gutterSize}px)`, + }; + }, + gutterStyle: (_dimension, gutterSize) => ({ + 'flex-basis': `${gutterSize}px`, + }), + }); + + const gutter = document.querySelector('.gutter'); + if (gutter) { + const handle = document.createElement('div'); + handle.id = 'handle'; + gutter.appendChild(handle); + } + + return split; + }; + const split = createSplitPanes(); + + function createIframe(container: string, template = resultTemplate) { + return new Promise((resolve) => { + const iframe = document.createElement('iframe'); + const containerEl = document.querySelector(container); + if (!containerEl) return; + containerEl.appendChild(iframe); + const iframeDocument = iframe.contentWindow?.document; + iframe.addEventListener('load', () => { + resolve(iframeDocument); + }); + iframeDocument?.open(); + iframeDocument?.write(template); + iframeDocument?.close(); + }); + } + const compilers = getCompilersData([...languages, ...postProcessors], getConfig()); + + const getTypes = async (module: Module): Promise => { + let content = ''; + if (module.typesUrl) { + try { + const res = await fetch(module.typesUrl); + content = await res.text(); + } catch { + // error + } + } + return { + filename: `file:///node_modules/${module.name}/index.d.ts`, + content, + }; + }; + + const loadLibrary = (lib: EditorLibrary) => { + monaco.languages.typescript.typescriptDefaults.addExtraLib(lib.content, lib.filename); + }; + + const getEditorLanguage = (editorId: EditorId) => editorLanguages[editorId]; + const getEditorLanguages = () => Object.values(editorLanguages); + + const setEditorTitle = (editorId: EditorId, title: string) => { + const editorTitle = document.querySelector(`#${editorId}-selector span`); + if (!editorTitle) return; + editorTitle.innerHTML = languages.find((language) => language.name === title)?.title || ''; + }; + + const copyToClipboard = (text: string) => { + if (document.queryCommandSupported && document.queryCommandSupported('copy')) { + const textarea = document.createElement('textarea'); + textarea.textContent = text; + textarea.style.position = 'fixed'; // Prevent scrolling to bottom of page in Microsoft Edge. + document.body.appendChild(textarea); + textarea.select(); + try { + return document.execCommand('copy'); // Security exception may be thrown by some browsers. + } catch (ex) { + // eslint-disable-next-line no-console + console.warn('Copy to clipboard failed.', ex); + return false; + } finally { + document.body.removeChild(textarea); + } + } + return false; + }; + + const createCopyButtons = (editors: Editors) => { + const editorIds: EditorId[] = ['markup', 'style', 'script']; + editorIds.forEach((editorId) => { + const copyButton = document.createElement('button'); + copyButton.innerHTML = 'copy'; + copyButton.classList.add('copy-button'); + document.getElementById(editorId)?.appendChild(copyButton); + eventsManager.addEventListener(copyButton, 'click', () => { + if (copyToClipboard(editors[editorId].getValue())) { + copyButton.innerHTML = 'copied'; + setTimeout(() => { + copyButton.innerHTML = 'copy'; + }, 2000); + } + }); + }); + }; + + const createEditors = async (config: Pen) => { + const markupOptions = { + container: document.querySelector(elements.markup), + language: config.markup.language, + value: config.markup.content, + }; + const styleOptions = { + container: document.querySelector(elements.style), + language: config.style.language, + value: config.style.content, + }; + const scriptOptions = { + container: document.querySelector(elements.script), + language: config.script.language, + value: config.script.content, + }; + const markupEditor = await createEditor({ + ...markupOptions, + ...config.editor, + baseUrl, + }); + const styleEditor = await createEditor({ + ...styleOptions, + ...config.editor, + baseUrl, + }); + const scriptEditor = await createEditor({ + ...scriptOptions, + ...config.editor, + baseUrl, + }); + + setEditorTitle('markup', markupOptions.language); + setEditorTitle('style', styleOptions.language); + setEditorTitle('script', scriptOptions.language); + + editorLanguages = { + markup: markupOptions.language, + style: styleOptions.language, + script: scriptOptions.language, + }; + + const editors = { + markup: markupEditor, + style: styleEditor, + script: scriptEditor, + }; + + (Object.keys(editors) as EditorId[]).forEach((editorId) => { + registerFormatter(editorId, editors); + }); + + if (config.mode === 'codeblock') { + createCopyButtons(editors); + } + + return editors; + }; + + const updateEditors = (editors: Editors, config: Pen) => { + const editorIds = Object.keys(editors) as Array; + editorIds.forEach((editorId) => { + editors[editorId].updateOptions(config.editor); + editors[editorId].getModel().setValue(config[editorId].content); + changeLanguage(editorId, config[editorId].language); + }); + }; + + const showMode = (config: Pen) => { + const modes = { + full: '111', + editor: '110', + codeblock: '010', + result: '001', + }; + const modeConfig = modes[config.mode] || '111'; + + const toolbarElement = document.querySelector('#toolbar') as HTMLElement; + const editorsElement = document.querySelector('#editors') as HTMLElement; + const resultElement = document.querySelector('#result') as HTMLElement; + const gutterElement = document.querySelector('.gutter') as HTMLElement; + + const showToolbar = modeConfig[0] === '1'; + const showEditor = modeConfig[1] === '1'; + const showResult = modeConfig[2] === '1'; + + toolbarElement.style.display = 'flex'; + editorsElement.style.display = 'flex'; + resultElement.style.display = 'flex'; + gutterElement.style.display = 'block'; + + if (!showToolbar) { + toolbarElement.style.display = 'none'; + } + if (!showEditor) { + editorsElement.style.display = 'none'; + split.destroy(true); + } + if (!showResult) { + resultElement.style.display = 'none'; + split.destroy(true); + } + window.dispatchEvent(new Event('editor-resize')); + }; + + const showEditor = (editorId: EditorId = 'markup') => { + const editorDivs = document.querySelectorAll('#editors > div') as NodeListOf; + editorDivs.forEach((editor) => (editor.style.display = 'none')); + const activeEditor = document.getElementById(editorId) as HTMLElement; + activeEditor.style.display = 'block'; + + const titles = document.querySelectorAll('.editor-title'); + titles.forEach((selector) => selector.classList.remove('active')); + const activeTitle = document.getElementById(editorId + '-selector') as HTMLElement; + activeTitle.classList.add('active'); + editors[editorId].focus(); + + activeEditorId = editorId; + }; + + const changeLanguage = (editorId: EditorId, language: Language) => { + if (!editorId || !language) return; + const editor = editors[editorId]; + const editorLanguage = language === 'jsx' ? 'javascript' : language; + monaco.editor.setModelLanguage(editor.getModel(), editorLanguage); + editorLanguages[editorId] = language; + setEditorTitle(editorId, language); + showEditor(editorId); + editor.focus(); + loadCompilers([language], compilers, getConfig(), eventsManager); + formatter.loadParser(language); + registerFormatter(editorId, editors); + run(editors); + }; + + // Cmd + Enter formats with prettier + const registerFormatter = (editorId: EditorId, editors: Editors) => { + const editor = editors[editorId]; + // eslint-disable-next-line + editor.addCommand(monaco.KeyMod.CtrlCmd | monaco.KeyCode.Enter, async () => { + await formatter.format(editor, getEditorLanguage(editorId)); + run(editors, true); + }); + }; + + const run = async (editors: Editors, triggerRerender = false, template = resultTemplate) => { + if (!iframeDocument) return; + const config = getConfig(); + + const currentContent = { + stylesheets: JSON.stringify(config.stylesheets), + scripts: JSON.stringify(config.scripts), + script: JSON.stringify(config.script), + }; + + triggerRerender = true; // always rerender for now + // rerender the page when scripts change (user or external) + const rerender = + triggerRerender || + previousContent.scripts !== currentContent.scripts || + previousContent.script !== currentContent.script; + + const addElement = ( + tag: string, + id: string, + container: HTMLElement, + content: string, + attributes: { [key: string]: string } = {}, + ) => { + let el: Element | null; + if (!rerender) { + el = iframeDocument.getElementById(id); + el?.remove(); + } + el = iframeDocument.createElement(tag); + el.id = id; + Object.keys(attributes).forEach((attr) => { + el?.setAttribute(attr, attributes[attr]); + }); + container.appendChild(el); + el.innerHTML = content; + }; + + const getCompiled = (language: Language, content: string) => + compile(language, content, compilers, config, iframeDocument, eventsManager); + + iframeDocument.title = config.title; + + if (rerender) { + const externalStylesheets = config.stylesheets.reduce( + (acc, url, index) => + acc + + `\n`, + '', + ); + const externalScripts = config.scripts.reduce( + (acc, url) => acc + `\n`, + '', + ); + const markup = await getCompiled(getEditorLanguage('markup'), editors.markup?.getValue()); + const style = ``; + const script = ` + `; + + const result = template + .replace('', externalStylesheets) + .replace('', style) + .replace('', markup) + .replace('', externalScripts) + .replace('', script); + iframeDocument?.open(); + iframeDocument?.write(result); + iframeDocument?.close(); + } else { + // do not re-download stylesheets if they have not changed + if (previousContent.stylesheets !== currentContent.stylesheets) { + config.stylesheets.forEach((url, index) => { + addElement('link', '__localpen__external-stylesheet-' + index, iframeDocument.head, '', { + rel: 'stylesheet', + href: url, + 'data-resource': 'stylesheet', + }); + }); + } + + addElement( + 'style', + '__localpen__editor_style', + iframeDocument.head, + await getCompiled(getEditorLanguage('style'), editors.style?.getValue()), + ); + + if (getEditorLanguage('markup') !== 'markdown') { + disableMarkdownStyles(iframeDocument); + } + iframeDocument.body.innerHTML = await getCompiled( + getEditorLanguage('markup'), + editors.markup?.getValue(), + ); + config.scripts.forEach((url, index) => { + addElement('script', '__localpen__external-script-' + index, iframeDocument.body, '', { + src: url, + }); + }); + + addElement( + 'script', + '__localpen__editor_script', + iframeDocument.head, + await getCompiled(getEditorLanguage('script'), editors.script?.getValue()), + { + type: 'module', + }, + ); + } + previousContent = { ...currentContent }; + }; + + const save = (notify = false, skipAutoSave = false) => { + if (!penId) { + penId = storage.addItem(getConfig()); + } else { + storage.updateItem(penId, getConfig()); + } + if (!getConfig().autosave && !skipAutoSave) { + setConfig({ ...getConfig(), autosave: true }); + notifications.message('Auto save enabled'); + (document.querySelector('input#autosave') as HTMLInputElement).checked = true; + } else if (notify) { + notifications.message('Project saved'); + } + setSavedStatus(true); + }; + + const loadNew = async () => { + try { + await checkSavedStatus(); + penId = ''; + await loadConfig(defaultConfig); + } catch (error) { + // cancelled + } + }; + + const fork = () => { + penId = ''; + loadConfig({ ...getConfig(), title: getConfig().title + ' (fork)' }); + save(); + notifications.message('Forked as a new project'); + }; + + const update = () => { + const editorIds: EditorId[] = ['markup', 'style', 'script']; + editorIds.forEach((editorId) => { + setConfig({ + ...getConfig(), + [editorId]: { + ...getConfig()[editorId], + language: getEditorLanguage(editorId), + content: editors[editorId].getValue(), + }, + }); + }); + }; + + const loadConfig = async (newConfig: Pen) => { + // eventsManager.removeEventListeners(); + + setConfig({ ...newConfig, autosave: false }); + + // load title + const projectTitle = document.querySelector('#project-title') as HTMLElement; + projectTitle.textContent = getConfig().title; + + // reset url params + parent.history.pushState(null, '', location.origin + location.pathname); + + // load config + await bootstrap(true); + run(editors, true); + editors[activeEditorId].focus(); + setTimeout(() => { + setSavedStatus(true); + }, getConfig().update_delay); + }; + + const setSavedStatus = (status: boolean) => { + isSaved = status; + + const projectTitle = document.querySelector('#project-title') as HTMLElement; + + if (!isSaved) { + projectTitle.classList.add('unsaved'); + } else { + projectTitle.classList.remove('unsaved'); + } + }; + + const checkSavedStatus = (doNotCloseModal = false) => { + if (isSaved) { + return Promise.resolve('is saved'); + } + return new Promise((resolve, reject) => { + const div = document.createElement('div'); + div.innerHTML = savePromptTemplate; + modal.show(div.firstChild as HTMLElement, 'small'); + eventsManager.addEventListener( + document.querySelector('#modal #prompt-save-btn') as HTMLElement, + 'click', + () => { + save(true, true); + if (!doNotCloseModal) { + modal.close(); + } + resolve('save'); + }, + ); + eventsManager.addEventListener( + document.querySelector('#modal #prompt-donot-save-btn') as HTMLElement, + 'click', + () => { + if (!doNotCloseModal) { + modal.close(); + } + resolve('do not save'); + }, + ); + eventsManager.addEventListener( + document.querySelector('#modal #prompt-cancel-btn') as HTMLElement, + 'click', + () => { + modal.close(); + reject('cancel'); + }, + ); + }); + }; + + const configureEmmet = (config: Pen) => { + if (config.emmet) { + disposeEmmet.html = emmetHTML(); + disposeEmmet.css = emmetCSS(); + } else { + if (disposeEmmet.html) disposeEmmet.html(); + if (disposeEmmet.css) disposeEmmet.css(); + } + }; + + const attachEventListeners = (editors: Editors) => { + const handleTitleEdit = () => { + const projectTitle = document.querySelector('#project-title') as HTMLElement; + projectTitle.textContent = getConfig().title; + eventsManager.addEventListener( + projectTitle, + 'input', + () => { + setSavedStatus(false); + setConfig({ ...getConfig(), title: projectTitle.textContent || '' }); + if (getConfig().autosave) { + save(); + } + }, + false, + ); + eventsManager.addEventListener( + projectTitle, + 'keypress', + (e) => { + setSavedStatus(false); + if ((e as KeyboardEvent).which === 13) { + (e as KeyboardEvent).preventDefault(); + projectTitle.blur(); + } + }, + false, + ); + }; + + const handleResize = () => { + const resizeEditors = () => { + Object.values(editors).forEach((editor) => { + setTimeout(() => editor.layout()); + }); + }; + eventsManager.addEventListener(window, 'resize', resizeEditors, false); + eventsManager.addEventListener(window, 'editor-resize', resizeEditors, false); + }; + + const handleSelectEditor = () => { + (document.querySelectorAll('.editor-title') as NodeListOf).forEach((title) => { + eventsManager.addEventListener( + title, + 'click', + () => { + showEditor(title.dataset.editor as EditorId); + }, + false, + ); + }); + }; + + const handlechangeLanguage = () => { + if (getConfig().allow_lang_change) { + (document.querySelectorAll('#select-editor a') as NodeListOf).forEach( + (menuItem) => { + eventsManager.addEventListener( + menuItem, + 'mousedown', // fire this event before unhover + () => { + changeLanguage( + menuItem.dataset.editor as EditorId, + menuItem.dataset.lang as Language, + ); + }, + false, + ); + }, + ); + } else { + (document.querySelectorAll('#select-editor button') as NodeListOf).forEach( + (menuButton) => { + menuButton.style.display = 'none'; + }, + ); + } + }; + + const handleChangeContent = () => { + const contentChanged = () => { + update(); + setSavedStatus(false); + + if (getConfig().autoupdate) { + run(editors); + } + + if (getConfig().autosave) { + save(); + } + }; + + const debounce = (fn: (...x: any[]) => any, delay = getConfig().update_delay ?? 500) => { + let timeout: any; + + return (...args: unknown[]) => { + if (timeout) clearTimeout(timeout); + timeout = setTimeout(() => fn.apply(null, args), delay); + }; + }; + + const debouncecontentChanged = debounce(contentChanged); + + editors.markup.getModel().onDidChangeContent(debouncecontentChanged); + editors.style.getModel().onDidChangeContent(debouncecontentChanged); + editors.script.getModel().onDidChangeContent(debouncecontentChanged); + }; + + const handleHotKeys = () => { + const ctrl = (e: KeyboardEvent) => (navigator.platform.match('Mac') ? e.metaKey : e.ctrlKey); + const hotKeys = async (e: KeyboardEvent) => { + if (!e) return; + + // Cmd + Shift + S forks the project (save as...) + if (ctrl(e) && e.shiftKey && e.keyCode === 83) { + e.preventDefault(); + fork(); + return; + } + + // Cmd + S saves the project + if (ctrl(e) && e.keyCode === 83) { + e.preventDefault(); + save(true); + return; + } + + // Cmd + p opens the command palette + if (ctrl(e) && e.keyCode === 80) { + e.preventDefault(); + editors[activeEditorId].trigger('anyString', 'editor.action.quickCommand'); + return; + } + + // Cmd + d prevents browser bookmark dialog + if (ctrl(e) && e.keyCode === 68) { + e.preventDefault(); + return; + } + }; + + eventsManager.addEventListener(window, 'keydown', hotKeys as any, true); + }; + + const handleRunButton = () => { + eventsManager.addEventListener( + document.querySelector('#run-button') as HTMLElement, + 'click', + () => run(editors, true), + ); + }; + + const handleSettings = () => { + const toggles = document.querySelectorAll( + '#settings-menu input', + ) as NodeListOf; + toggles.forEach((toggle) => { + eventsManager.addEventListener(toggle, 'change', () => { + const configKey = toggle.dataset.config; + if (!configKey || !(configKey in getConfig())) return; + + setConfig({ ...getConfig(), [configKey]: toggle.checked }); + + if (configKey === 'autoupdate' && getConfig()[configKey]) { + run(editors); + } + if (configKey === 'emmet') { + configureEmmet(getConfig()); + } + }); + }); + }; + + const handleNew = () => { + eventsManager.addEventListener( + document.querySelector('#new-link') as HTMLElement, + 'click', + async (event) => { + event.preventDefault(); + await loadNew(); + }, + false, + ); + }; + + const handleSave = () => { + eventsManager.addEventListener( + document.querySelector('#save-link') as HTMLElement, + 'click', + (event) => { + (event as Event).preventDefault(); + save(true); + }, + ); + }; + + const handleFork = () => { + eventsManager.addEventListener( + document.querySelector('#fork-link') as HTMLElement, + 'click', + (event) => { + (event as Event).preventDefault(); + fork(); + }, + ); + }; + + const handleOpen = () => { + const createList = () => { + const listContainer = document.createElement('div'); + listContainer.id = 'list-container'; + + const title = document.createElement('div'); + title.classList.add('modal-title'); + title.innerHTML = 'Saved Projects'; + listContainer.appendChild(title); + + const buttons = document.createElement('div'); + buttons.classList.add('buttons'); + listContainer.appendChild(buttons); + + // const importButton = document.createElement('button'); + // importButton.id = 'import-button'; + // importButton.classList.add('button'); + // importButton.innerHTML = 'Import'; + // buttons.appendChild(importButton); + + // const exportButton = document.createElement('button'); + // exportButton.id = 'export-button'; + // exportButton.classList.add('button'); + // exportButton.innerHTML = 'Export'; + // buttons.appendChild(exportButton); + + const deleteAllButton = document.createElement('button'); + deleteAllButton.id = 'delete-all-button'; + deleteAllButton.classList.add('button'); + deleteAllButton.innerHTML = 'Delete All'; + buttons.appendChild(deleteAllButton); + eventsManager.addEventListener( + deleteAllButton, + 'click', + () => { + storage.clear(); + penId = ''; + const list = listContainer.querySelector('ul'); + if (!list) return; + list.innerHTML = ''; + }, + false, + ); + + const list = document.createElement('ul') as HTMLElement; + list.classList.add('open-list'); + listContainer.appendChild(list); + + storage.getList().forEach((item) => { + const li = document.createElement('li'); + list.appendChild(li); + + const link = document.createElement('a'); + link.href = '#'; + link.dataset.id = item.id; + link.classList.add('open-project-link'); + link.innerHTML = ` +
${item.title}
+
Last modified: ${new Date( + item.lastModified, + ).toLocaleString()}
+ `; + li.appendChild(link); + eventsManager.addEventListener( + link, + 'click', + async (event) => { + event.preventDefault(); + const itemId = (link as HTMLElement).dataset.id || ''; + const savedPen = storage.getItem(itemId)?.pen; + if (savedPen) { + await loadConfig(savedPen); + penId = itemId; + } + modal.close(); + }, + false, + ); + + const deleteButton = document.createElement('button'); + deleteButton.classList.add('delete-button'); + li.appendChild(deleteButton); + eventsManager.addEventListener( + deleteButton, + 'click', + () => { + if (item.id === penId) { + penId = ''; + } + storage.deleteItem(item.id); + li.classList.add('hidden'); + setTimeout(() => { + li.style.display = 'none'; + }, 500); + }, + false, + ); + }); + + modal.show(listContainer); + }; + + eventsManager.addEventListener( + document.querySelector('#open-link') as HTMLElement, + 'click', + async () => { + try { + await checkSavedStatus(true); + createList(); + } catch (error) { + // cancelled + } + }, + false, + ); + }; + + const handleImport = () => { + const createImportUI = () => { + const div = document.createElement('div'); + div.innerHTML = importTemplate; + const importContainer = div.firstChild as HTMLElement; + + const tabs = importContainer.querySelectorAll('#import-tabs li') as NodeListOf; + tabs.forEach((tab) => { + eventsManager.addEventListener(tab, 'click', () => { + tabs.forEach((t) => t.classList.remove('active')); + tab.classList.add('active'); + + (document.querySelectorAll('#import-screens > div') as NodeListOf).forEach( + (screen) => { + screen.classList.remove('active'); + }, + ); + const target = importContainer.querySelector('#' + tab.dataset.target) as HTMLElement; + target.classList.add('active'); + target.querySelector('input')?.focus(); + }); + }); + + eventsManager.addEventListener( + importContainer.querySelector('#url-import-btn') as HTMLInputElement, + 'click', + () => { + const url = (importContainer.querySelector('#code-url') as HTMLInputElement).value; + parent.location.href = location.origin + location.pathname + '#' + url; + }, + ); + + eventsManager.addEventListener( + importContainer.querySelector('#json-url-import-btn') as HTMLInputElement, + 'click', + () => { + const url = (importContainer.querySelector('#json-url') as HTMLInputElement).value; + parent.location.href = location.origin + location.pathname + '?config=' + url; + }, + ); + + const fileInput = importContainer.querySelector('#file-input') as HTMLInputElement; + + eventsManager.addEventListener(fileInput, 'change', () => { + if (fileInput.files?.length === 0) return; + + const file = (fileInput.files as FileList)[0]; + + const allowedTypes = ['application/json', 'text/plain']; + if (allowedTypes.indexOf(file.type) === -1) { + modal.close(); + notifications.error('Error : Incorrect file type'); + return; + } + + // Max 2 MB allowed + const maxSizeAllowed = 2 * 1024 * 1024; + if (file.size > maxSizeAllowed) { + modal.close(); + notifications.error('Error : Exceeded size 2MB'); + return; + } + + const reader = new FileReader(); + + eventsManager.addEventListener(reader, 'load', async (event: any) => { + const text = (event.target?.result as string) || ''; + try { + await loadConfig(JSON.parse(text)); + } catch (error) { + notifications.error('Invalid configuration file'); + } + + modal.close(); + }); + + eventsManager.addEventListener(reader, 'error', () => { + modal.close(); + notifications.error('Error : Failed to read file'); + }); + + reader.readAsText(file); + }); + + modal.show(importContainer); + (importContainer.querySelector('#code-url') as HTMLInputElement).focus(); + }; + + eventsManager.addEventListener( + document.querySelector('#import-link') as HTMLElement, + 'click', + createImportUI, + false, + ); + }; + + const handleExport = () => { + eventsManager.addEventListener( + document.querySelector('#export-menu #export-json') as HTMLAnchorElement, + 'click', + (event: Event) => { + event.preventDefault(); + update(); + exportPen(getConfig(), 'json'); + }, + false, + ); + + eventsManager.addEventListener( + document.querySelector('#export-menu #export-result') as HTMLAnchorElement, + 'click', + (event: Event) => { + event.preventDefault(); + update(); + exportPen(getConfig(), 'html', iframeDocument.documentElement.outerHTML); + }, + false, + ); + + let JSZip: any; + eventsManager.addEventListener( + document.querySelector('#export-menu #export-src') as HTMLAnchorElement, + 'click', + async (event: Event) => { + event.preventDefault(); + update(); + exportPen(getConfig(), 'src', { JSZip, iframeDocument, editors, getEditorLanguage }); + }, + false, + ); + + eventsManager.addEventListener( + document.querySelector('#export-menu #export-codepen') as HTMLAnchorElement, + 'click', + () => { + update(); + exportPen(getConfig(), 'codepen'); + }, + false, + ); + + eventsManager.addEventListener( + document.querySelector('#export-menu #export-jsfiddle') as HTMLAnchorElement, + 'click', + () => { + update(); + exportPen(getConfig(), 'jsfiddle'); + }, + false, + ); + }; + + const handleExternalResources = () => { + const createExrenalResourcesUI = () => { + const div = document.createElement('div'); + div.innerHTML = resourcesTemplate; + const resourcesContainer = div.firstChild as HTMLElement; + modal.show(resourcesContainer); + + const externalResources = resourcesContainer.querySelectorAll( + '#resources-container textarea', + ) as NodeListOf; + externalResources.forEach((textarea) => { + const resourceContent = getConfig()[ + textarea.dataset.resource as 'stylesheets' | 'scripts' + ]; + textarea.value = resourceContent.length !== 0 ? resourceContent.join('\n') + '\n' : ''; + }); + + resourcesContainer.querySelector('textarea')?.focus(); + + eventsManager.addEventListener( + resourcesContainer.querySelector( + '#resources-container #resources-load-btn', + ) as HTMLElement, + 'click', + () => { + externalResources.forEach((textarea) => { + const resource = textarea.dataset.resource as 'stylesheets' | 'scripts'; + setConfig({ + ...getConfig(), + [resource]: + textarea.value + ?.split('\n') + .map((x) => x.trim()) + .filter((x) => x !== '') || [], + }); + }); + setSavedStatus(false); + modal.close(); + run(editors); + }, + ); + }; + eventsManager.addEventListener( + document.querySelector('#external-resources-link') as HTMLElement, + 'click', + createExrenalResourcesUI, + false, + ); + }; + + const handleUnload = () => { + window.onbeforeunload = () => { + if (!isSaved) { + return 'Changes you made may not be saved.'; + } else { + return; + } + }; + }; + + handleTitleEdit(); + handleResize(); + handleSelectEditor(); + handlechangeLanguage(); + handleChangeContent(); + handleHotKeys(); + handleRunButton(); + handleSettings(); + handleExternalResources(); + handleNew(); + handleSave(); + handleFork(); + handleOpen(); + handleImport(); + handleExport(); + handleUnload(); + }; + + const loadSettings = (config: Pen) => { + const autoupdateToggle = document.querySelector( + '#settings-menu input#autoupdate', + ) as HTMLInputElement; + autoupdateToggle.checked = config.autoupdate; + + const autosaveToggle = document.querySelector( + '#settings-menu input#autosave', + ) as HTMLInputElement; + autosaveToggle.checked = config.autosave; + + const autoprefixerToggle = document.querySelector( + '#settings-menu input#autoprefixer', + ) as HTMLInputElement; + autoprefixerToggle.checked = config.autoprefixer; + + const emmetToggle = document.querySelector('#settings-menu input#emmet') as HTMLInputElement; + emmetToggle.checked = config.emmet; + }; + + const setActiveEditor = (config: Pen) => { + const language = getLanguageByAlias(config.language) || 'html'; + const editorId = getLanguageEditorId(language) || 'markup'; + if (getEditorLanguage(editorId) !== language) { + changeLanguage(editorId, language); + } + showEditor(editorId); + }; + + async function bootstrap(reload = false) { + if (!reload) { + editors = await createEditors(getConfig()); + } else { + updateEditors(editors, getConfig()); + } + + const libs = await Promise.all(getConfig().modules.map(getTypes)); + libs.forEach(loadLibrary); + formatter.load(getEditorLanguages()); + + if (!reload) { + attachEventListeners(editors); + } + + setActiveEditor(getConfig()); + loadSettings(getConfig()); + configureEmmet(getConfig()); + showMode(getConfig()); + loadCompilers( + [...Object.values(editorLanguages), ...Object.keys(postProcessors)], + compilers, + getConfig(), + eventsManager, + ).then(() => { + run(editors); + setSavedStatus(true); + }); + } + + await bootstrap(); + + return { + run: async () => { + await run(editors); + }, + save: () => save(), + getData: () => JSON.parse(JSON.stringify(getConfig())), + }; +}; diff --git a/src/localpen/assets/browserconfig.xml b/src/localpen/assets/browserconfig.xml new file mode 100644 index 000000000..1b39191e2 --- /dev/null +++ b/src/localpen/assets/browserconfig.xml @@ -0,0 +1,9 @@ + + + + + + #da532c + + + diff --git a/src/localpen/assets/images/android-chrome-192x192.png b/src/localpen/assets/images/android-chrome-192x192.png new file mode 100644 index 0000000000000000000000000000000000000000..91ab58d4a710af505d47c41ece79500c317c1186 GIT binary patch literal 6454 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 Fe*l->8`S^+ literal 0 HcmV?d00001 diff --git a/src/localpen/assets/images/android-chrome-512x512.png b/src/localpen/assets/images/android-chrome-512x512.png new file mode 100644 index 0000000000000000000000000000000000000000..07b6e59a17f652566ce34b4579556116d925faac GIT binary patch literal 35365 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
O+-qc)jh|?(`N-67qIl)G#Qr~n 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�eBH>b(WiCIojHld_`ffX2st6?e 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 \ No newline at end of file diff --git a/src/localpen/assets/images/favicon-16x16.png b/src/localpen/assets/images/favicon-16x16.png new file mode 100644 index 0000000000000000000000000000000000000000..ff49d3d3f62b9195a64a5a9369b03dca95569f34 GIT binary patch literal 666 zcmeAS@N?(olHy`uVBq!ia0vp^0wB!60wlNoGJgf6SkfJR9T^xl_H+M9WCijSl0AZa z85pY67#JE_7#My5g&JNkFq9fFFuY1&V6d9Oz#v{QXIG#NP=YDR+ueoXe|!I#{XiaP zfk$L9kOo;3#HhTkp%2JlFY)wsWq-mWC9WW%oAl-h0|O(gr;B5V#`)Td=d*TddSC#fYX=}cL+k=!Numj};1J-er}Ju&X2 zxAOnvm7c3BA3UfoO^&~N`~E7&t+T}WN+LKc3JT9=N&HrtW;e5I`Mqe1kJpwhQqkUh zcw739hb|Y7Tc1~dY7>9)a(K_2S=CRs-;xi^IlC(V#qFy%wiYZ+&x=m>*Y%sd>ey1v z8P>*E7sa^u7@eQkT9I=4!o-E<$IhJzc;n-J$!g0HVf(#iUv8d=Sh^`WIY`K={ogI& z-%|3n+tz`OSHG;tzUV1k~kZGP4PGW zb@tUwTn{8;fMKLs;u=wsl30>zm0Xkxq!^40j0|)QjdYF7LX3>9jE$^}473dltqcqn zp17lkq9HdwB{QuOw}uN-Q|1CSNP=t#&QB{TPb^AhC@(M9%goCzPEIUH)ypqRpZ(58 z3aBW&DkP#LD6w3jpeR2rGbdG{q_QAYA+w+)nSr5V&f`x!9ED*T8mIhEpYePe#K5e~ zt(VL#tSsz3S%g_w!KK0Ea0;{X<`9L`H?EvGa^{H45%$v!9t*tm7+#4BmV9zDoeH#q N!PC{xWt~$(6954O{n`Kk literal 0 HcmV?d00001 diff --git a/src/localpen/assets/images/favicon-32x32.png b/src/localpen/assets/images/favicon-32x32.png new file mode 100644 index 0000000000000000000000000000000000000000..2307f8925cbf635c1bcc92be57b82f0c46e46722 GIT binary patch literal 1056 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 literal 0 HcmV?d00001 diff --git a/src/localpen/assets/images/gear.png b/src/localpen/assets/images/gear.png new file mode 100644 index 0000000000000000000000000000000000000000..4277818b8a3bde7471b795bcc769d5f884481149 GIT binary patch literal 2945 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 o0NtR+2P7pW!GwkDlv)n?G*kb5jFe4T{PPk + + + + + \ No newline at end of file diff --git a/src/localpen/assets/images/localpen-logo.svg b/src/localpen/assets/images/localpen-logo.svg new file mode 100644 index 000000000..0ca27dc6e --- /dev/null +++ b/src/localpen/assets/images/localpen-logo.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/src/localpen/assets/images/mstile-144x144.png b/src/localpen/assets/images/mstile-144x144.png new file mode 100644 index 0000000000000000000000000000000000000000..45a575ce4a63738c3b94d2ed28c3942205eca7aa GIT binary patch literal 4729 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 Cve;?> literal 0 HcmV?d00001 diff --git a/src/localpen/assets/images/mstile-70x70.png b/src/localpen/assets/images/mstile-70x70.png new file mode 100644 index 0000000000000000000000000000000000000000..5f92bef54e2ce31a5394195ebeab034fdcc96185 GIT binary patch literal 3236 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 G0sjH(i7Dy; literal 0 HcmV?d00001 diff --git a/src/localpen/assets/images/play.svg b/src/localpen/assets/images/play.svg new file mode 100644 index 000000000..446ee05bd --- /dev/null +++ b/src/localpen/assets/images/play.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/src/localpen/assets/images/safari-pinned-tab.svg b/src/localpen/assets/images/safari-pinned-tab.svg new file mode 100644 index 000000000..6f70c0036 --- /dev/null +++ b/src/localpen/assets/images/safari-pinned-tab.svg @@ -0,0 +1,17 @@ + + + + +Created by potrace 1.11, written by Peter Selinger 2001-2013 + + + + + diff --git a/src/localpen/assets/images/spinner.svg b/src/localpen/assets/images/spinner.svg new file mode 100644 index 000000000..efb344b8b --- /dev/null +++ b/src/localpen/assets/images/spinner.svg @@ -0,0 +1,6 @@ + + + + + + diff --git a/src/localpen/assets/localpen.css b/src/localpen/assets/localpen.css new file mode 100644 index 000000000..8f9df65c8 --- /dev/null +++ b/src/localpen/assets/localpen.css @@ -0,0 +1,880 @@ +html, +body, +#container, +#toolbar, +#editor-container, +#editors, +#editors > div, +#result, +#result iframe, +#select-editor, +#select-editor > ul, +li.editor-title { + margin: 0; + padding: 0; +} + +body { + display: flex; + justify-content: center; + font-family: 'Segoe UI', Tahoma, Geneva, Verdana, sans-serif; + font-size: 1em; +} + +#container { + position: relative; + height: 100vh; + width: 100vw; + overflow: hidden; + display: flex; + flex-direction: column; +} + +#toolbar { + display: flex; + height: 40px; + width: 100%; + border-bottom: 3px solid #444857; + position: relative; + background: #001b25; + color: #eeeeee; +} + +#toolbar #project-title { + width: 30%; + height: 100%; + overflow: hidden; + display: flex; + align-items: center; + justify-content: center; + position: relative; + margin-left: 10px; +} +#toolbar #project-title.unsaved::after { + content: ' *'; + white-space: pre; + margin: 5px; +} +#toolbar #project-title.unsaved::before { + content: '* '; + white-space: pre; + margin: 5px; + visibility: hidden; +} +@media only screen and (max-width: 1080) { + .dropdown-menu { + font-size: 0.9em; + } + #toolbar #project-title { + margin: 0; + } +} +@media only screen and (max-width: 768px) { + #toolbar #project-title { + display: none; + } + #toolbar #select-editor { + width: calc(80% - 70px); + } + #logo { + margin: 3px 5px; + } + .dropdown-menu { + font-size: 0.8em; + } +} + +@media only screen and (max-width: 480px) { + #toolbar { + font-size: 0.8em; + } + #toolbar #run-button { + display: none; + } +} + +#toolbar #buttons { + position: absolute; + right: 0; + top: 0; + width: 20%; + height: 100%; + display: flex; +} + +#buttons > button { + display: block; + border: 0; + margin: auto; + margin-top: 3px; + width: 50px; + height: 35px; + border-radius: 3px; + background-color: #5a6074da; + cursor: pointer; + outline: none; +} + +#buttons > button:hover { + background-color: #777c8dda; +} + +/* mouse down */ +#buttons > button:active:hover { + background-color: #5a6074da; +} + +#buttons > button img { + display: block; + margin: auto; +} + +#editor-container { + display: flex; + flex-direction: row; + flex-grow: 1; +} + +#editors { + flex-grow: 1; + background: #1e1e1e; + height: 100%; + resize: both; + top: 0; + overflow: hidden; +} + +#editors > div { + height: 100%; + width: 100%; + resize: vertical; + position: relative; +} + +.copy-button { + display: none; + position: absolute; + top: 5px; + right: 20px; + padding: 5px; + border: 0; + border-radius: 3px; + z-index: 900; + background-color: #444855b0; + color: #eeeeee; + font-family: 'Segoe UI', Tahoma, Geneva, Verdana, sans-serif; + font-size: 0.9em; + cursor: pointer; + outline: none; +} + +#editors > div:hover .copy-button { + display: unset; +} + +#result { + flex-grow: 1; + height: 100%; + resize: both; +} + +#result iframe { + height: 100%; + width: 100%; + border: 0; +} + +.gutter.gutter-horizontal { + cursor: ew-resize; +} + +.gutter { + background-color: #444857; + display: flex !important; + justify-content: center; + align-items: center; +} + +.gutter #handle { + width: 4px; + height: 30px; + border-radius: 2px; + background-color: #e7e8f1; +} + +#logo { + width: 50px; + margin: 3px 10px; + padding: 0; +} + +#logo a { + text-decoration: none; +} + +#select-editor { + position: relative; + color: #eeeeee; + margin: 0; + height: 100%; + width: calc(50% - 70px); +} +#select-editor > ul { + margin: 0; + width: 100%; + height: 40px; + margin-top: 3px; + display: flex; + justify-content: space-between; + align-items: stretch; +} +li.editor-title { + position: relative; + display: flex; + align-items: center; + justify-content: center; + list-style: none; + border: 2px solid #444857; + border-top-left-radius: 5px; + border-top-right-radius: 5px; + width: 32%; + cursor: pointer; +} + +li.editor-title.active { + background-color: #444857; +} + +li.editor-title > button { + position: absolute; + right: 5%; + text-decoration: none; + width: 20px; + height: 20px; + padding: 0; + margin: 0; + border: 0; + border-radius: 3px; + background-color: #5a6074da; + cursor: pointer; + outline: none; +} + +li.editor-title > button:hover { + background-color: #777c8dda; +} + +li.editor-title.active > button { + background-color: #001b25d3; +} + +li.editor-title.active > button:hover { + background-color: #213c46d3; +} + +.dropdown-menu { + display: none; + position: absolute; + left: 0; + top: 35px; + z-index: 1000; + width: 100%; + min-width: 150px; + padding: 5px 0; + list-style: none; + background-color: #fff; + border: 1px solid #ccc; + border-radius: 3px; + box-shadow: 0 6px 12px rgba(0, 0, 0, 0.175); + background-clip: padding-box; +} + +li.editor-title > button:focus + .dropdown-menu, +#settings-button:focus + .dropdown-menu, +#settings-menu:hover { + display: block; +} + +.dropdown-menu li > * { + display: block; + text-decoration: none; + color: #222; + padding: 5px 15px; +} + +.dropdown-menu li:hover { + background-color: #e7e8f1; +} + +#settings-menu { + top: 40px; + right: 10px; + left: unset; + margin-top: 0; + min-width: 200px; +} + +#settings-menu li, +#settings-menu li > * { + position: relative; +} + +#open-list, +#export-menu { + display: none; + position: absolute !important; + right: 98%; + left: unset; + top: 0; + margin: 0; + padding: 0; +} + +#open-link:hover + #open-list, +#open-list:hover, +#export:hover + #export-menu, +#export-menu:hover { + display: block; +} + +#select-editor, +.dropdown-menu, +#buttons { + -webkit-user-select: none; + -moz-user-select: none; + -ms-user-select: none; + user-select: none; +} + +.switch { + cursor: pointer; +} + +.switch div { + position: absolute; + display: block; + width: 34px; + height: 18px; + right: 1em; + top: 0.4em; +} + +.switch input { + opacity: 0; + width: 0; + height: 0; +} + +.switch .slider { + position: absolute; + cursor: pointer; + top: 0; + left: 0; + right: 0; + bottom: 0; + background-color: #ccc; + -webkit-transition: 0.4s; + transition: 0.4s; +} + +.switch .slider:before { + position: absolute; + content: ''; + height: 14px; + width: 14px; + left: 2px; + bottom: 2px; + background-color: white; + -webkit-transition: 0.4s; + transition: 0.4s; +} + +.switch input:checked + .slider { + background-color: #2196f3; +} + +.switch input:focus + .slider { + box-shadow: 0 0 1px #2196f3; +} + +.switch input:checked + .slider:before { + -webkit-transform: translateX(16px); + -ms-transform: translateX(16px); + transform: translateX(16px); +} + +.switch .slider.round { + border-radius: 16px; +} + +.switch .slider.round:before { + border-radius: 50%; +} + +#notifications { + display: inline-block; + position: absolute; + bottom: 0; + margin: 0; + width: -webkit-fit-content; + width: -moz-fit-content; + width: fit-content; + text-align: center; + padding: 10px; + color: #2e2e2e; + background-color: #f5f6fc; + border: 1px solid black; + border-top-right-radius: 5px; + border-top-left-radius: 5px; + box-shadow: 0 6px 12px #0000002d; + -webkit-animation: slideIn 0.4s; + animation: slideIn 0.4s forwards; +} + +#notifications.hidden { + bottom: -200px; + -webkit-animation: slideOut 0.4s; + animation: slideOut 0.4s forwards; +} + +#notifications.error { + color: crimson; + background-color: #fff5f6; +} + +@-webkit-keyframes slideIn { + from { + bottom: -200px; + opacity: 0; + } + to { + bottom: 0; + opacity: 1; + } +} + +@keyframes slideIn { + from { + bottom: -200px; + opacity: 0; + } + to { + bottom: 0; + opacity: 1; + } +} +@-webkit-keyframes slideOut { + from { + bottom: 0; + opacity: 1; + } + to { + bottom: -200px; + opacity: 0; + } +} +@keyframes slideOut { + from { + bottom: 0; + opacity: 1; + } + to { + bottom: -200px; + opacity: 0; + } +} + +@-webkit-keyframes fadeIn { + from { + opacity: 0; + } + to { + opacity: 1; + } +} + +@keyframes fadeIn { + from { + opacity: 0; + } + to { + opacity: 1; + } +} +@-webkit-keyframes overlayfadeIn { + from { + opacity: 0; + } + to { + opacity: 0.7; + } +} + +@keyframes overlayfadeIn { + from { + opacity: 0; + } + to { + opacity: 0.7; + } +} +@-webkit-keyframes fadeOut { + from { + opacity: 0; + } + to { + opacity: 1; + } +} +@keyframes fadeOut { + from { + opacity: 0; + } + to { + opacity: 1; + } +} +@-webkit-keyframes overlayfadeOut { + from { + opacity: 0.7; + } + to { + opacity: 0; + } +} +@keyframes overlayfadeOut { + from { + opacity: 0.7; + } + to { + opacity: 0; + } +} + +#overlay, +#modal-container { + z-index: 2000; + position: absolute; + top: 0; + left: 0; + width: 100%; + height: 100%; + margin: 0; + overflow: hidden; +} +#overlay { + animation: overlayfadeIn 0.4s forwards; +} +#modal-container { + animation: fadeIn 0.4s forwards; +} +#overlay.hidden { + animation: overlayfadeOut 0.4s forwards; +} +#modal-container.hidden { + animation: fadeOut 0.4s forwards; +} +#overlay { + background-color: black; + opacity: 0.7; +} +#modal-container { + display: flex; + align-items: center; + justify-content: center; +} +#modal { + display: flex; + width: 80vw; + height: 80vh; + background-color: whitesmoke; + border-radius: 5px; + padding: 10px; + opacity: 1; + overflow: hidden; +} +#modal.small { + width: 400px; + height: 180px; +} +#modal #list-container { + display: flex; + flex-wrap: wrap; + justify-content: space-between; + width: 100%; + height: 100%; +} + +#modal .modal-title { + color: darkslategrey; + font-weight: 700; + font-size: 1.4em; + height: 40px; + margin: 20px; +} +#modal.small .modal-title { + margin: 10px; +} +#modal .buttons { + margin: 15px; +} + +#modal .button { + margin: 5px 10px; + padding: 5px; + width: 100px; + outline: none; + border: 1px solid darkslategrey; + border-radius: 3px; + font-size: 1em; + cursor: pointer; + box-shadow: 0 3px 6px #0000002d; +} + +#modal #list-container .list-button:hover { + box-shadow: 0 1px 2px #0000002d; + transform: translateY(1px) 0.5s; +} + +#modal #list-container #delete-all-button { + color: crimson; + background-color: #fff5f6; +} + +#modal #list-container ul.open-list { + margin: 0; + padding: 0; + width: 100%; + height: calc(100% - 80px); + overflow: auto; + text-align: center; +} + +#modal #list-container li { + display: inline-flex; + align-items: center; + width: 80%; + /* height: fit-content; */ + text-align: left; + list-style: none; + margin: 10px auto; + height: 4em; + padding: 0; + border: 1px solid grey; + background-color: #f5f6fc; + box-shadow: 0 3px 6px #0000002d; + border-radius: 3px; + transition: transform 0.5s ease-out; + transform: scaleY(1); + overflow: hidden; +} +#modal #list-container li:hover { + box-shadow: 0 1px 2px #0000002d; + transform: translateY(1px) 0.5s; +} +@keyframes disappear { + 0% { + opacity: 1; + height: 4em; + margin: 10px auto; + } + + 100% { + opacity: 0; + height: 0; + margin: 0 auto; + } +} +#modal #list-container li.hidden { + animation: disappear 500ms forwards; +} + +#modal #list-container li.hidden * { + display: none !important; +} + +#modal #list-container li a { + flex-grow: 1; + display: block; + margin: 0; + padding: 10px; + text-decoration: none; + color: darkslategrey; + font-weight: 700; +} + +#modal #list-container li a .open-title { + margin: 5px; +} + +#modal #list-container a .modified-date { + margin-left: 5px; + font-size: 0.8em; + font-weight: 600; + color: grey; +} + +#modal #list-container li .delete-button { + cursor: pointer; + margin: 10px; + vertical-align: middle; + border: none; + color: inherit; + border-radius: 50%; + background: transparent; + position: relative; + width: 32px; + height: 32px; + opacity: 0.6; +} + +#modal #list-container li .delete-button:focus, +#modal #list-container li .delete-button:hover { + opacity: 1; + background: rgba(128, 128, 128, 0.5); +} + +#modal #list-container li .delete-button:active { + background: rgba(128, 128, 128, 0.9); +} + +#modal #list-container li .delete-button::before, +#modal #list-container li .delete-button::after { + content: ' '; + position: absolute; + top: 50%; + left: 50%; + height: 20px; + width: 4px; + background-color: currentColor; +} + +#modal #list-container li .delete-button::before { + transform: translate(-50%, -50%) rotate(45deg); +} + +#modal #list-container li .delete-button::after { + transform: translate(-50%, -50%) rotate(-45deg); +} + +.modal-container { + width: 90%; + height: 100%; + display: inline-block; + margin: 0 auto; + padding: 0 5%; + overflow: auto; +} +#import-tabs { + display: flex; + margin: 0 20px; + padding: 0; +} +#import-tabs li { + display: block; + width: 30%; + margin: 0 5px; + padding: 5px; + list-style: none; + border: 1px solid darkgrey; + border-bottom: 0; + border-top-left-radius: 3px; + border-top-right-radius: 3px; + text-align: center; + /* box-shadow: 3px 0 6px #0000002d; */ + background-color: lightgrey; + cursor: pointer; +} + +#import-tabs li.active { + background-color: whitesmoke; + border-bottom: 1px solid whitesmoke; + z-index: 1; + margin-bottom: -1px; +} + +#modal .modal-screen-container { + border: 1px solid darkgrey; + padding: 10px; + border-radius: 5px; + box-shadow: 0 3px 6px #0000002d; + background-color: whitesmoke; +} + +#modal .tab-content { + display: none; + height: 100%; +} +#modal .tab-content.active { + display: flex; + justify-content: center; +} + +#modal .modal-screen { + display: inline-block; + width: 100%; + text-align: center; +} + +#modal label { + display: inline-block; + width: 80%; + text-align: left; + margin: 10px; + font-weight: 600; +} +#modal input, +#modal textarea { + width: 80%; + height: 2em; + border-radius: 5px; + border: 1px solid darkgrey; + color: dimgray; + outline: none; + padding: 5px; +} +#modal textarea { + height: 3em; + resize: vertical; + min-height: 3em; +} +#modal .wide-button, +#modal #file-input-label { + margin: 20px; + padding: 10px; + width: 50%; + outline: none; + font-size: 1em; + font-weight: 400; + text-align: center; + border: 1px solid darkslategrey; + border-radius: 3px; + box-shadow: 0 3px 6px #0000002d; + background-color: #efefef; + cursor: pointer; +} + +#modal button:hover, +#modal #file-input-label:hover { + box-shadow: 0 1px 2px #0000002d; + transform: translateY(1px) 0.5s; +} + +#modal .description { + display: inline-block; + width: 90%; + margin: 10px; + font-size: 0.8em; + text-align: left; +} +#modal .description ul { + display: flex; + flex-wrap: wrap; +} +#modal .description li { + width: 33%; +} + +#modal #file-input { + display: none; +} diff --git a/src/localpen/assets/site.webmanifest b/src/localpen/assets/site.webmanifest new file mode 100644 index 000000000..93de612d9 --- /dev/null +++ b/src/localpen/assets/site.webmanifest @@ -0,0 +1,19 @@ +{ + "name": "localpen", + "short_name": "localpen", + "icons": [ + { + "src": "/localpen/assets/images/android-chrome-192x192.png", + "sizes": "192x192", + "type": "image/png" + }, + { + "src": "/localpen/assets/images/android-chrome-512x512.png", + "sizes": "512x512", + "type": "image/png" + } + ], + "theme_color": "#ffffff", + "background_color": "#ffffff", + "display": "standalone" +} diff --git a/src/localpen/compilers.ts b/src/localpen/compilers.ts new file mode 100644 index 000000000..8faf34e3d --- /dev/null +++ b/src/localpen/compilers.ts @@ -0,0 +1,185 @@ +import { getLanguageEditorId, postProcessors } from './languages'; +import { Language, LanguageSpecs, Pen, Compiler, Compilers, Processors, EditorId } from './models'; + +export const replaceImports = (code: string, config: Pen) => { + const importsPattern = /(import\s+?(?:(?:(?:[\w*\s{},\$]*)\s+from\s+?)|))((?:".*?")|(?:'.*?'))([\s]*?(?:;|$|))/g; + return code.replace(importsPattern, (statement) => { + const libName = statement.replace(importsPattern, '$2').replace(/"/g, '').replace(/'/g, ''); + if (libName.startsWith('http')) { + return statement; + } + const localModule = config.modules.find((module) => module.name === libName); + const libPath = localModule?.url || 'https://cdn.skypack.dev/' + libName; + return statement.replace(importsPattern, `$1'${libPath}'$3`); + }); +}; + +export const addMarkdownStyles = (iframeDocument: Document, compilers: Compilers, config: Pen) => { + if (compilers.markdown.stylesAdded) return; + iframeDocument.body.classList.add('markdown-body'); + const styles = iframeDocument.createElement('link'); + styles.setAttribute('rel', 'stylesheet'); + styles.setAttribute('href', config.baseUrl + '/vendor/github-markdown-css/github-markdown.css'); + iframeDocument.head.appendChild(styles); + compilers.markdown.stylesAdded = true; +}; + +export const disableMarkdownStyles = (iframeDocument: Document) => { + iframeDocument.body.classList.remove('markdown-body'); +}; + +export const getCompilersData = (languages: Array, config: Pen) => + languages.reduce((compilers, language) => { + if (language.compiler && !compilers[language.name]) { + const baseUrl = config.baseUrl; + if (typeof language.compiler === 'string') { + const compiler = languages.find((lang) => lang.name === (language.compiler as Language)) + ?.compiler as Compiler; + compilers[language.name] = { + ...compiler, + url: baseUrl + compiler?.url, + } as Compiler; + } else { + compilers[language.name] = { + ...language.compiler, + url: baseUrl + language.compiler?.url, + } as Compiler; + } + } + return compilers; + }, {} as Compilers); + +export const compile = async ( + language: Language, + content: string, + compilers: Compilers, + config: Pen, + iframeDocument: Document, + eventsManager: any, +): Promise => { + if (language === 'jsx') { + language = 'typescript'; + } + if (compilers[language] && !compilers[language].fn) { + await loadCompilers([language], compilers, config, eventsManager); + } + + const compiler = compilers[language]?.fn || ((...args: any[]) => args[0]); + if (typeof compiler !== 'function') { + throw new Error('Failed to load transpiler for: ' + language); + } + + let value = ''; + switch (language) { + case 'javascript': + value = replaceImports(content, config); + break; + case 'typescript': + value = compiler(replaceImports(content, config), { + target: 'es2015', + jsx: 'react', + }); + break; + case 'coffeescript': + value = compiler(replaceImports(content, config), { bare: true }); + break; + case 'markdown': + addMarkdownStyles(iframeDocument, compilers, config); + value = compiler(content); + break; + case 'pug': + value = compiler(content); + break; + case 'asciidoc': + value = compiler(content); + break; + case 'scss': + value = (await compiler(content)).text; + break; + case 'sass': + value = (await compiler(content, { indentedSyntax: true })).text; + break; + case 'less': + value = (await compiler(content)).css; + break; + case 'stylus': + value = await compiler(content); + break; + default: + value = content; + } + + value = value || ''; + + await Promise.all( + postProcessors.map(async (processor) => { + if ( + (config as any)[processor.name] === true && + processor.editors?.includes(getLanguageEditorId(language) as EditorId) + ) { + if (compilers[processor.name] && !compilers[processor.name].fn) { + await loadCompilers([processor.name], compilers, config, eventsManager); + } + const process = compilers[processor.name].fn; + if (typeof process !== 'function') { + throw new Error('Failed to load processor: ' + processor.name); + } + switch (processor.name) { + case 'autoprefixer': + try { + value = (await process(value, { from: undefined })).css; + } catch (error) { + // do nothing + } + } + } + }), + ); + + return Promise.resolve(value || ''); +}; + +export const loadCompilers = ( + languages: string[], + compilers: Compilers, + config: Pen, + eventsManager: any, +) => + Promise.all( + languages.map( + (language) => + new Promise(async (resolve) => { + if (language === 'jsx') { + language = 'typescript'; + } + const languageCompiler = compilers[language as keyof Compilers]; + if (languageCompiler && !languageCompiler.fn) { + if (languageCompiler.umd) { + const script = document.createElement('script'); + script.src = languageCompiler.url; + eventsManager.addEventListener( + script, + 'load', + () => { + languageCompiler.fn = languageCompiler.factory(null, config); + resolve('done'); + }, + false, + ); + document.head.appendChild(script); + } else { + try { + const module = await import(languageCompiler.url); + languageCompiler.fn = languageCompiler.factory(module, config); + resolve('done'); + } catch (error) { + // eslint-disable-next-line no-console + console.error('Could not load: ' + languageCompiler.url + '\n' + error); + } + } + } else { + resolve('done'); + } + }), + ), + ); diff --git a/src/localpen/config.ts b/src/localpen/config.ts new file mode 100644 index 000000000..a2e54d8db --- /dev/null +++ b/src/localpen/config.ts @@ -0,0 +1,178 @@ +/* eslint-disable camelcase */ +import { importCode } from './import'; +import { decodeHTML } from './utils'; +import { getLanguageByAlias, getLanguageEditorId } from './languages'; +import { Pen } from './models'; + +export const defaultConfig: Pen = { + baseUrl: '/localpen', + title: 'Untitled Project', + autoupdate: true, + update_delay: 500, + autosave: false, + emmet: true, + autoprefixer: true, + mode: 'full', + language: 'html', + allow_lang_change: true, + markup: { + language: 'html', + content: '', + contentUrl: '', + selector: '', + }, + style: { + language: 'css', + content: '', + contentUrl: '', + selector: '', + }, + script: { + language: 'javascript', + content: '', + contentUrl: '', + selector: '', + }, + stylesheets: [], + scripts: [], + editor: { + fontSize: 14, + theme: 'vs-dark', + formatOnType: false, + tabSize: 2, + lineNumbersMinChars: 3, + minimap: { + enabled: false, + }, + scrollbar: { + useShadows: false, + }, + mouseWheelZoom: true, + automaticLayout: true, + }, + modules: [], +}; + +const codeBlockDefaultConfig: Partial = { + editor: { + readOnly: true, + lineNumbers: false, + }, + autoupdate: false, +}; + +export const loadConfig = async (userConfig: Partial = {}) => { + const url = window.location.hash.substring(1); + + // get query string params + const params = Object.fromEntries( + (new URLSearchParams(location.search) as unknown) as Iterable, + ); + + Object.keys(params).forEach((key) => { + if (params[key] === '') params[key] = true; + if (params[key] === 'true') params[key] = true; + if (params[key] === 'false') params[key] = false; + }); + + // load config from file + const configUrl = params.config || './localpen.json'; + const fileConfig = configUrl + ? await fetch(configUrl) + .then((res) => res.json()) + .catch(() => ({})) + : {}; + + // initialize params config with default keys + const paramsConfig = (Object.keys(defaultConfig) as Array).reduce((acc, key) => { + acc[key] = params[key]; + return acc; + }, {} as Partial); + + // populate params config from query string params + Object.keys(params).forEach((key) => { + const language = getLanguageByAlias(key); + if (!language) return; + const editorId = getLanguageEditorId(language); + + if (editorId && !paramsConfig[editorId]) { + // query param >> user defined config object >> config file >> default config >> empty string + const content = + typeof params[key] === 'string' + ? decodeHTML(decodeURIComponent(params[key])) + : language === userConfig[editorId]?.language + ? userConfig[editorId]?.content + : language === fileConfig[editorId]?.language + ? fileConfig[editorId]?.content + : language === defaultConfig[editorId]?.language + ? defaultConfig[editorId]?.content + : ''; + paramsConfig[editorId] = { language, content }; + paramsConfig.language = paramsConfig.language || language; + } + }); + + // clean unused params config keys + Object.keys(paramsConfig).forEach((key) => { + if (paramsConfig[key as keyof Pen] === undefined) { + delete paramsConfig[key as keyof Pen]; + } + }); + + // merge config sources + const mode = paramsConfig.mode || userConfig.mode || fileConfig.mode || defaultConfig.mode; + + const preset = mode === 'codeblock' ? codeBlockDefaultConfig : { editor: {} }; + + const editor = { + ...defaultConfig.editor, + ...preset.editor, + ...fileConfig.editor, + ...userConfig.editor, + ...paramsConfig.editor, + }; + let config: Pen = { + ...defaultConfig, + ...preset, + ...fileConfig, + ...userConfig, + ...paramsConfig, + editor, + }; + + delete config.editor.language; + delete config.editor.value; + + // load content from url + const contents = await Promise.all( + [config.markup, config.style, config.script].map((editor) => { + if (editor.contentUrl && !editor.content) { + return fetch(editor.contentUrl).then((res) => res.text()); + } else { + return Promise.resolve(editor.content); + } + }), + ); + config.markup.content = contents[0]; + config.style.content = contents[1]; + config.script.content = contents[2]; + + // import code from github / github gist / url html + const importedcode = await importCode(url, params, config); + + config = { + ...config, + ...importedcode, + }; + + // TODO: adding this prevents selecting the files to load + // if ( + // ![config.markup.language, config.style.language, config.script.language].includes( + // config.language, + // ) + // ) { + // config.language = config.markup.language; + // } + + return config; +}; diff --git a/src/localpen/editor.ts b/src/localpen/editor.ts new file mode 100644 index 000000000..b485b0db4 --- /dev/null +++ b/src/localpen/editor.ts @@ -0,0 +1,54 @@ +import { monaco } from './monaco'; + +export const createEditor = async (options: any) => { + const { container, baseUrl } = options; + + const monacoPath = baseUrl + '/vendor/monaco-editor'; + + const stylesheet = document.createElement('link'); + stylesheet.setAttribute('rel', 'stylesheet'); + stylesheet.setAttribute('href', `${monacoPath}/monaco.css`); + document.head.appendChild(stylesheet); + + (window as any).MonacoEnvironment = { + getWorkerUrl(_moduleId: string, label: string) { + if (label === 'json') return `${monacoPath}/json.worker.js`; + if (label === 'css') return `${monacoPath}/css.worker.js`; + if (label === 'scss') return `${monacoPath}/css.worker.js`; + if (label === 'sass') return `${monacoPath}/css.worker.js`; + if (label === 'less') return `${monacoPath}/css.worker.js`; + if (label === 'html') return `${monacoPath}/html.worker.js`; + if (label === 'typescript' || label === 'javascript') { + return `${monacoPath}/ts.worker.js`; + } + return `${monacoPath}/editor.worker.js`; + }, + }; + + monaco.languages.typescript.typescriptDefaults.setCompilerOptions({ + jsx: monaco.languages.typescript.JsxEmit.React, + jsxFactory: 'React.createElement', + reactNamespace: 'React', + allowNonTsExtensions: true, + allowJs: false, + target: monaco.languages.typescript.ScriptTarget.Latest, + }); + + const editor = monaco.editor.create(container, { + ...options, + language: options.language === 'jsx' ? 'javascript' : options.language, + }); + + if (options.theme === 'vs-light') container.style.backgroundColor = '#fff'; + if (options.theme?.startsWith('http') || options.theme?.startsWith('./')) { + fetch(options.theme) + .then((res) => res.json()) + .then((data) => { + monaco.editor.defineTheme('theme', data); + monaco.editor.setTheme('theme'); + container.style.backgroundColor = data.colors['editor.background']; + }); + } + + return editor; +}; diff --git a/src/localpen/embed.ts b/src/localpen/embed.ts new file mode 100644 index 000000000..ad4104d91 --- /dev/null +++ b/src/localpen/embed.ts @@ -0,0 +1,52 @@ +// @ts-ignore +import html from './app.html'; +const container = '#pen'; +// async function localpen(container: string, config: Partial = {}) { +// new Promise(async (resolve) => { +// const mergedConfig = await loadConfig(config); +// const { baseUrl } = mergedConfig; +const style = document.createElement('style'); +style.innerHTML = ` + ${container} { + min-width: 300px; + min-height: 200px; + padding: 0; + overflow: hidden; + } + ${container} > iframe { + border: 0; + width: 100%; + height: 100%; + } + ${container}.embed iframe { + width: calc(100% - 2px); + height: calc(100% - 2px); + border: 1px solid #001b25; + border-radius: 5px; + } + `; +document.body.appendChild(style); + +const iframe = document.createElement('iframe'); +iframe.style.display = 'none'; + +const containerElement = document.querySelector(container); +iframe.src = 'http://localhost:8080'; +containerElement?.appendChild(iframe); + +// iframe.addEventListener('load', async () => { +// const app = (iframe.contentWindow as any)?.app; +// if (typeof app === 'function') { +// const pen = await app(mergedConfig); +iframe.style.display = 'block'; +// resolve(pen); +// } +// }); +// } + +iframe.addEventListener('load', async () => { + const containerEl = document.querySelector('#pen') as HTMLElement; + + iframe.contentDocument?.body.appendChild(containerEl.cloneNode(true)); + iframe.style.display = 'block'; +}); diff --git a/src/localpen/events.ts b/src/localpen/events.ts new file mode 100644 index 000000000..6450d95b4 --- /dev/null +++ b/src/localpen/events.ts @@ -0,0 +1,33 @@ +export const createEventsManager = () => { + const events: Array<{ + element: HTMLElement | Document | Window | FileReader; + eventType: string; + fn: (event: Event | KeyboardEvent) => void; + }> = []; + + const addEventListener = ( + element: HTMLElement | Document | Window | FileReader, + eventType: string, + fn: (event: Event | KeyboardEvent) => void, + _options?: any, + ) => { + element.addEventListener(eventType, fn, false); + events.push({ + element, + eventType, + fn, + }); + }; + + const removeEventListeners = () => { + events.forEach((event) => { + event.element.removeEventListener(event.eventType, event.fn); + events.splice(events.indexOf(event)); + }); + }; + + return { + addEventListener, + removeEventListeners, + }; +}; diff --git a/src/localpen/export/export-codepen.ts b/src/localpen/export/export-codepen.ts new file mode 100644 index 000000000..d9db98df3 --- /dev/null +++ b/src/localpen/export/export-codepen.ts @@ -0,0 +1,39 @@ +import { replaceImports } from '../compilers'; +import { Pen } from '../models'; + +export const exportCodepen = (config: Pen) => { + /* eslint-disable camelcase */ + const form = document.createElement('form') as HTMLFormElement; + form.action = 'https://codepen.io/pen/define'; + form.method = 'POST'; + form.target = '_blank'; + form.style.display = 'none'; + + const dataInput = document.createElement('input') as HTMLInputElement; + dataInput.name = 'data'; + + dataInput.value = JSON.stringify({ + title: config.title, + html: config.markup.content, + html_pre_processor: ['markdown'].includes(config.markup.language) + ? config.markup.language + : 'none', + css: config.style.content, + css_pre_processor: ['less', 'scss', 'sass', 'stylus'].includes(config.style.language) + ? config.style.language + : 'none', + css_prefix: config.autoprefixer ? 'autoprefixer' : 'neither', + js: replaceImports(config.script.content || '', config), + js_pre_processor: ['typescript', 'coffeescript'].includes(config.script.language) + ? config.script.language + : config.script.language === 'jsx' + ? 'babel' + : 'none', + js_external: config.scripts.join(';'), + css_external: config.stylesheets.join(';'), + }); + form.appendChild(dataInput); + document.body.appendChild(form); + form.submit(); + form.remove(); +}; diff --git a/src/localpen/export/export-html.ts b/src/localpen/export/export-html.ts new file mode 100644 index 000000000..b183a61ce --- /dev/null +++ b/src/localpen/export/export-html.ts @@ -0,0 +1,9 @@ +import { Pen } from '../models'; +import { downloadFile } from './utils'; + +export const exportHTML = (config: Pen, html: string) => { + const filename = config.title; + const extension = 'html'; + const content = 'data:text/html;charset=utf-8,' + encodeURIComponent(html); + downloadFile(filename, extension, content); +}; diff --git a/src/localpen/export/export-jsfiddle.ts b/src/localpen/export/export-jsfiddle.ts new file mode 100644 index 000000000..949486626 --- /dev/null +++ b/src/localpen/export/export-jsfiddle.ts @@ -0,0 +1,38 @@ +import { replaceImports } from '../compilers'; +import { Pen } from '../models'; + +export const exportJsfiddle = (config: Pen) => { + /* eslint-disable camelcase */ + const form = document.createElement('form') as HTMLFormElement; + form.action = 'https://jsfiddle.net/api/post/library/pure/'; + form.method = 'POST'; + form.target = '_blank'; + form.style.display = 'none'; + + const data = { + title: config.title, + html: config.markup.content || '', + css: config.style.content || '', + css_panel: config.style.language === 'scss' ? '1' : '0', + js: replaceImports(config.script.content || '', config), + js_panel: + config.script.language === 'typescript' + ? '4' + : config.script.language === 'jsx' + ? '3' + : config.script.language === 'coffeescript' + ? '5' + : '0', + resources: [...config.stylesheets, ...config.scripts].join(','), + }; + (Object.keys(data) as Array).forEach((key) => { + const input = document.createElement('input') as HTMLInputElement; + input.name = key; + input.value = data[key]; + form.appendChild(input); + }); + + document.body.appendChild(form); + form.submit(); + form.remove(); +}; diff --git a/src/localpen/export/export-json.ts b/src/localpen/export/export-json.ts new file mode 100644 index 000000000..1c3e47d96 --- /dev/null +++ b/src/localpen/export/export-json.ts @@ -0,0 +1,10 @@ +import { Pen } from '../models'; +import { downloadFile } from './utils'; + +export const exportJSON = (config: Pen) => { + const filename = config.title; + const extension = 'json'; + const content = + 'data:text/json;charset=utf-8,' + encodeURIComponent(JSON.stringify(config, null, 2)); + downloadFile(filename, extension, content); +}; diff --git a/src/localpen/export/export-src.ts b/src/localpen/export/export-src.ts new file mode 100644 index 000000000..1b7811534 --- /dev/null +++ b/src/localpen/export/export-src.ts @@ -0,0 +1,35 @@ +import { getLanguageExtension } from '../languages'; +import { EditorId, Pen } from '../models'; +import { downloadFile } from './utils'; + +export const exportSrc = async ( + config: Pen, + { JSZip, iframeDocument, editors, getEditorLanguage }: any, +) => { + if (!JSZip) { + JSZip = (await import(config.baseUrl + '/vendor/jszip/jszip.js')).default; + } + + const zip = new JSZip(); + + const filenames = { + markup: 'index', + style: 'style', + script: 'script', + }; + (Object.keys(editors) as EditorId[]).forEach((editorId) => { + const language = getEditorLanguage(editorId); + const extension = getLanguageExtension(language) || ''; + const filename = filenames[editorId]; + const content = editors[editorId].getValue() || ''; + zip.file(filename + '.' + extension, content); + }); + zip.file('result.html', iframeDocument.documentElement.outerHTML); + zip.file('config.json', JSON.stringify(config, null, 2)); + const output = await zip.generateAsync({ type: 'base64' }); + + const filename = config.title; + const extension = 'zip'; + const content = 'data:application/zip;base64,' + encodeURIComponent(output); + downloadFile(filename, extension, content); +}; diff --git a/src/localpen/export/export.ts b/src/localpen/export/export.ts new file mode 100644 index 000000000..0a8c79ad7 --- /dev/null +++ b/src/localpen/export/export.ts @@ -0,0 +1,22 @@ +import { Pen } from '../models'; +import { exportCodepen } from './export-codepen'; +import { exportHTML } from './export-html'; +import { exportJsfiddle } from './export-jsfiddle'; +import { exportJSON } from './export-json'; +import { exportSrc } from './export-src'; + +type ExportType = 'json' | 'src' | 'html' | 'codepen' | 'jsfiddle'; +type ExportFunctions = { + [key in ExportType]: (config: Pen, payload?: any) => void; +}; +export const exportPen = (config: Pen, type: ExportType, payload?: any) => { + const exportFns: ExportFunctions = { + json: exportJSON, + src: exportSrc, + html: exportHTML, + codepen: exportCodepen, + jsfiddle: exportJsfiddle, + }; + + exportFns[type](config, payload); +}; diff --git a/src/localpen/export/index.ts b/src/localpen/export/index.ts new file mode 100644 index 000000000..4f00993cb --- /dev/null +++ b/src/localpen/export/index.ts @@ -0,0 +1 @@ +export * from './export'; diff --git a/src/localpen/export/utils.ts b/src/localpen/export/utils.ts new file mode 100644 index 000000000..db1d76cb2 --- /dev/null +++ b/src/localpen/export/utils.ts @@ -0,0 +1,10 @@ +import { safeName } from '../utils'; + +export const downloadFile = (filename: string, extension: string, content: string) => { + const a = document.createElement('a'); + a.style.display = 'none'; + a.href = content; + a.download = safeName(filename) + '.' + extension; + a.click(); + a.remove(); +}; diff --git a/src/localpen/formatter.ts b/src/localpen/formatter.ts new file mode 100644 index 000000000..bcb043cab --- /dev/null +++ b/src/localpen/formatter.ts @@ -0,0 +1,143 @@ +import { monaco } from './monaco'; +import { Language, Parser, Pen } from './models'; + +export const createFormatter = (config: Pen) => { + const { baseUrl } = config; + const prettierPath = baseUrl + '/vendor/prettier'; + + let prettier: any; + + const load = async (languages: Language[]) => { + try { + prettier = (await import(`${prettierPath}/standalone.mjs`)).default; + languages.forEach((language) => getParser(language)); + } catch (error) { + // eslint-disable-next-line no-console + console.warn('Failed to load prettier'); + } + }; + + const parsers: { [key: string]: Parser } = {}; + const getParser = async (language: Language): Promise => { + if (!prettier) { + await load([language]); + } + if (language in parsers) { + return parsers[language]; + } + let parser: Parser | null; + try { + if (language === 'html') { + parser = { + name: 'html', + plugin: (await import(`${prettierPath}/parser-html.mjs`)).default, + }; + } else if (language === 'markdown') { + parser = { + name: 'markdown', + plugin: (await import(`${prettierPath}/parser-markdown.mjs`)).default, + }; + } else if (language === 'css') { + parser = { + name: 'css', + plugin: (await import(`${prettierPath}/parser-postcss.mjs`)).default, + }; + } else if (language === 'scss') { + parser = { + name: 'scss', + plugin: (await import(`${prettierPath}/parser-postcss.mjs`)).default, + }; + } else if (language === 'less') { + parser = { + name: 'less', + plugin: (await import(`${prettierPath}/parser-postcss.mjs`)).default, + }; + } else if (language === 'pug') { + parser = null; + } else { + parser = { + name: 'babel', + plugin: (await import(`${prettierPath}/parser-babel.mjs`)).default, + }; + } + } catch (error) { + // eslint-disable-next-line no-console + console.warn('Failed to load prettier parser for language: ' + language); + parser = null; + } + if (parser) { + parsers[language] = parser; + } + return parser; + }; + + const computeOffset = (code: string, pos: any) => { + let line = 1; + let col = 1; + let offset = 0; + while (offset < code.length) { + if (line === pos.lineNumber && col === pos.column) return offset; + if (code[offset] === '\n') { + line++; + col = 1; + } else col++; + offset++; + } + return -1; + }; + + const computePosition = (code: string, offset: number) => { + let line = 1; + let col = 1; + let char = 0; + while (char < offset) { + if (code[char] === '\n') { + line++; + col = 1; + } else col++; + char++; + } + return { lineNumber: line, column: col }; + }; + + const format = async (editor: any, language: Language) => { + const val = editor.getValue(); + const pos = editor.getPosition(); + + const parser = await getParser(language); + if (!parser) return; + + const prettyVal = prettier.formatWithCursor(val, { + parser: parser.name, + plugins: [parser.plugin], + cursorOffset: computeOffset(val, pos), + }); + + editor.executeEdits('prettier', [ + { + identifier: 'delete', + range: editor.getModel().getFullModelRange(), + text: '', + forceMoveMarkers: true, + }, + ]); + + editor.executeEdits('prettier', [ + { + identifier: 'insert', + range: new monaco.Range(1, 1, 1, 1), + text: prettyVal.formatted, + forceMoveMarkers: true, + }, + ]); + + editor.setSelection(new monaco.Range(0, 0, 0, 0)); + editor.setPosition(computePosition(prettyVal.formatted, prettyVal.cursorOffset)); + }; + + return { + load, + loadParser: (language: Language) => getParser(language), + format, + }; +}; diff --git a/src/localpen/import/__tests__/github.spec.ts b/src/localpen/import/__tests__/github.spec.ts new file mode 100644 index 000000000..ce2707d12 --- /dev/null +++ b/src/localpen/import/__tests__/github.spec.ts @@ -0,0 +1,11 @@ +import { isGithubUrl } from '../github'; + +describe('github', () => { + test('isGithubUrl', () => { + expect( + isGithubUrl('https://github.com/microsoft/monaco-editor/blob/master/README.md'), + ).toBeTruthy(); + expect(isGithubUrl('github.com/microsoft/monaco-editor/blob/master/README.md')).toBeTruthy(); + expect(isGithubUrl('https://github.com')).toBeFalsy(); + }); +}); diff --git a/src/localpen/import/__tests__/url.spec.ts b/src/localpen/import/__tests__/url.spec.ts new file mode 100644 index 000000000..bda70df81 --- /dev/null +++ b/src/localpen/import/__tests__/url.spec.ts @@ -0,0 +1,32 @@ +import { getLanguageSelectors } from '../url'; + +describe('getLanguageSelectors', () => { + test('defaults first', () => { + const params = { + js: '#js-code', + ts: '#ts-code', + html: '#html-code', + pug: '#pug-code', + }; + const selectors = getLanguageSelectors(params); + const expectedSelectors = { + markup: { language: 'html', selector: '#html-code' }, + script: { language: 'javascript', selector: '#js-code' }, + }; + expect(selectors).toEqual(expectedSelectors); + }); + test('non defaults first', () => { + const params = { + ts: '#ts-code', + js: '#js-code', + html: '#html-code', + pug: '#pug-code', + }; + const selectors = getLanguageSelectors(params); + const expectedSelectors = { + markup: { language: 'html', selector: '#html-code' }, + script: { language: 'typescript', selector: '#ts-code' }, + }; + expect(selectors).toEqual(expectedSelectors); + }); +}); diff --git a/src/localpen/import/github-dir.ts b/src/localpen/import/github-dir.ts new file mode 100644 index 000000000..80208fa9e --- /dev/null +++ b/src/localpen/import/github-dir.ts @@ -0,0 +1,69 @@ +import { getLanguageByAlias, getLanguageEditorId } from '../languages'; +import { Language } from '../models'; +import { hostPatterns, populateConfig } from './utils'; + +export const isGithubDir = (url: string, patterns = hostPatterns.github) => { + if (!patterns.map((pattern) => url.startsWith(pattern)).some(Boolean)) return; + try { + const urlObj = getValidUrl(url); + const pathSplit = urlObj.pathname.split('/'); + return pathSplit[3] === 'tree'; + } catch (error) { + return; + } +}; +const getValidUrl = (url: string) => + url.startsWith('https://') ? new URL(url) : new URL('https://' + url); + +export const importFromGithubDir = async (url: string, params: { [key: string]: string }) => { + try { + const urlObj = url.startsWith('https://') ? new URL(url) : new URL('https://' + url); + + const pathSplit = urlObj.pathname.split('/'); + const user = pathSplit[1]; + const repository = pathSplit[2]; + const branch = pathSplit[4]; + const dir = pathSplit.slice(5, pathSplit.length).join('/'); + const apiURL = `https://api.github.com/repos/${user}/${repository}/git/trees/${branch}?recursive=true`; + + const tree = await fetch(apiURL) + .then((res) => res.json()) + .then((data) => data.tree); + + const dirFiles = tree.filter( + (node: any) => + node.type === 'blob' && + node.path.startsWith(dir) && + node.path.split('/').length === dir.split('/').length + 1, + ); + + const files = await Promise.all( + Object.values(dirFiles).map(async (file: any) => { + const filename = file.path.split('/')[file.path.split('/').length - 1]; + const extension = (filename.split('.')[filename.split('.').length - 1] || 'md') as Language; + const language = getLanguageByAlias(extension) || 'md'; + const editorId = getLanguageEditorId(language); + const content = atob( + await fetch(file.url) + .then((res) => res.json()) + .then((data) => data.content), + ); + + return { + filename, + language, + content, + editorId, + }; + }), + ); + + return populateConfig(files, params); + } catch (error) { + // eslint-disable-next-line no-console + console.error('Cannot fetch directory: ' + url); + // eslint-disable-next-line no-console + console.error(error); + return {}; + } +}; diff --git a/src/localpen/import/github-gist.ts b/src/localpen/import/github-gist.ts new file mode 100644 index 000000000..44b6b2cb7 --- /dev/null +++ b/src/localpen/import/github-gist.ts @@ -0,0 +1,86 @@ +import { getLanguageByAlias, getLanguageEditorId } from '../languages'; +import { getValidUrl, hostPatterns, populateConfig } from './utils'; + +export const isGithubGist = (url: string, patterns = hostPatterns.githubGist) => + patterns.map((pattern) => url.startsWith(pattern)).some(Boolean); + +export const importFromGithubGist = async (url: string, params: { [key: string]: string }) => { + try { + const urlObj = getValidUrl(url); + if (!urlObj) return {}; + const pathSplit = urlObj.pathname.split('/'); + const gistId = pathSplit[pathSplit.length - 1]; + + const gistFiles = await fetch(`https://api.github.com/gists/${gistId}`) + .then((res) => res.json()) + .then((data) => data.files) + .then((files) => + Object.values(files).map((file: any) => { + const lang = file.filename.endsWith('.babel') + ? 'jsx' + : file.filename.endsWith('.typescript') + ? 'typescript' + : file.language; + const extension = file.filename.split('.')[file.filename.split('.').length - 1]; + const language = getLanguageByAlias(lang) || getLanguageByAlias(extension); + + return { + ...file, + language, + }; + }), + ); + + const files = Object.values(gistFiles).map((file: any) => ({ + filename: file.filename, + language: file.language, + content: file.content, + editorId: getLanguageEditorId(file.language), + })); + + // If gist is a codepen export, extract external styles and scripts + const stylesheets: string[] = []; + const stylesFile = files.find((file) => file.filename === 'styles'); + if (stylesFile) { + try { + const domparser = new DOMParser(); + const doc = domparser.parseFromString(stylesFile.content, 'text/html'); + doc.querySelectorAll('link').forEach((stylesheet) => { + try { + stylesheets.push(new URL(stylesheet.href).href); + } catch (error) { + // not url + } + }); + } catch (error) { + // not DOM + } + } + + const scripts: string[] = []; + const scriptsFile = files.find((file) => file.filename === 'scripts'); + if (scriptsFile) { + try { + const domparser = new DOMParser(); + const doc = domparser.parseFromString(scriptsFile.content, 'text/html'); + doc.querySelectorAll('script').forEach((script) => { + try { + scripts.push(new URL(script.src).href); + } catch (error) { + // not url + } + }); + } catch (error) { + // not DOM + } + } + + return { ...populateConfig(files, params), stylesheets, scripts }; + } catch (error) { + // eslint-disable-next-line no-console + console.error('Cannot fetch gist: ' + url); + // eslint-disable-next-line no-console + console.error(error); + return {}; + } +}; diff --git a/src/localpen/import/github.ts b/src/localpen/import/github.ts new file mode 100644 index 000000000..ec514a1dd --- /dev/null +++ b/src/localpen/import/github.ts @@ -0,0 +1,78 @@ +import { getLanguageByAlias, getLanguageEditorId } from '../languages'; +import { Language, Pen } from '../models'; +import { pipe } from '../utils'; + +const hostPatterns = ['https://github.com/', 'github.com/']; + +export const isGithubUrl = (url: string, patterns = hostPatterns) => { + if (!patterns.map((pattern) => url.startsWith(pattern)).some(Boolean)) return; + try { + const urlObj = getValidUrl(url); + const pathSplit = urlObj.pathname.split('/'); + return pathSplit[3] === 'blob'; + } catch (error) { + return; + } +}; + +const getValidUrl = (url: string) => + url.startsWith('https://') ? new URL(url) : new URL('https://' + url); + +// based on https://github.com/yusanshi/embed-like-gist +const getfileData = (urlObj: URL): FileData => { + const pathSplit = urlObj.pathname.split('/'); + const user = pathSplit[1]; + const repository = pathSplit[2]; + const branch = pathSplit[4]; + const file = pathSplit.slice(5, pathSplit.length).join('/'); + const extension = (file.split('.')[file.split('.').length - 1] || 'md') as Language; + const lineSplit = urlObj.hash.split('-'); + const startLine = urlObj.hash !== '' ? Number(lineSplit[0].replace('#L', '')) : -1; + const endLine = + urlObj.hash !== '' && lineSplit.length > 1 ? Number(lineSplit[1].replace('L', '')) : startLine; + const rawURL = `https://raw.githubusercontent.com/${user}/${repository}/${branch}/${file}`; + return { + rawURL, + extension, + startLine, + endLine, + }; +}; + +interface FileData { + rawURL: string; + extension: Language; + startLine: number; + endLine: number; +} + +const getContent = async (fileData: FileData): Promise> => { + const { rawURL, extension, startLine, endLine } = fileData; + try { + const fileContent = await fetch(rawURL).then((res) => res.text()); + const content = + startLine > 0 + ? fileContent + .split('\n') + .slice(startLine - 1, endLine) + .join('\n') + : fileContent; + const language = getLanguageByAlias(extension) || 'html'; + const editorId = getLanguageEditorId(language) || 'markup'; + return { + [editorId]: { + language, + content, + }, + language, + }; + } catch (error) { + // eslint-disable-next-line no-console + console.error('Cannot fetch: ' + rawURL); + return {}; + } +}; + +export const importFromGithub = pipe(getValidUrl, getfileData, getContent) as ( + url: string, +) => Promise>; diff --git a/src/localpen/import/gitlab-dir.ts b/src/localpen/import/gitlab-dir.ts new file mode 100644 index 000000000..027ef0e08 --- /dev/null +++ b/src/localpen/import/gitlab-dir.ts @@ -0,0 +1,69 @@ +import { getLanguageByAlias, getLanguageEditorId } from '../languages'; +import { Language } from '../models'; +import { getValidUrl, hostPatterns, populateConfig, sourceFile } from './utils'; + +export const isGitlabDir = (url: string, patterns = hostPatterns.gitlab) => { + if (!patterns.map((pattern) => url.startsWith(pattern)).some(Boolean)) return; + try { + const urlObj = getValidUrl(url); + if (!urlObj) return; + const pathSplit = urlObj.pathname.split('/'); + return pathSplit[4] === 'tree'; + } catch (error) { + return; + } +}; + +export const importFromGitlabDir = async (url: string, params: { [key: string]: string }) => { + try { + const urlObj = getValidUrl(url); + if (!urlObj) return {}; + const pathSplit = urlObj.pathname.split('/'); + const user = pathSplit[1]; + const repository = pathSplit[2]; + const branch = pathSplit[5]; + const projectId = await fetch(`${urlObj.origin}/api/v4/projects/${user}%2F${repository}`) + .then((res) => res.json()) + .then((data) => data.id); + const dir = pathSplit.slice(6, pathSplit.length).join('/'); + const apiURL = `${urlObj.origin}/api/v4/projects/${projectId}/repository/tree?per_page=100&path=${dir}`; + const dirFiles = await fetch(apiURL) + .then((res) => res.json()) + .then((data) => data.filter((node: any) => node.type === 'blob')); + + const files = await Promise.all( + Object.values(dirFiles).map( + async (file: any): Promise> => { + const filename = file.path.split('/')[file.path.split('/').length - 1]; + const extension = (filename.split('.')[filename.split('.').length - 1] || + 'md') as Language; + const language = getLanguageByAlias(extension); + if (!language) return {}; + const editorId = getLanguageEditorId(language); + const rawURL = `${ + urlObj.origin + }/api/v4/projects/${projectId}/repository/files/${encodeURIComponent( + file.path, + )}/raw?ref=${branch}`; + + const content = await fetch(rawURL).then((res) => res.text()); + + return { + filename, + language, + content, + editorId, + }; + }, + ), + ); + + return populateConfig(files, params); + } catch (error) { + // eslint-disable-next-line no-console + console.error('Cannot fetch directory: ' + url); + // eslint-disable-next-line no-console + console.error(error); + return {}; + } +}; diff --git a/src/localpen/import/gitlab-snippet.ts b/src/localpen/import/gitlab-snippet.ts new file mode 100644 index 000000000..a442976ef --- /dev/null +++ b/src/localpen/import/gitlab-snippet.ts @@ -0,0 +1,52 @@ +import { getLanguageByAlias, getLanguageEditorId } from '../languages'; +import { Language } from '../models'; +import { getValidUrl, hostPatterns, populateConfig } from './utils'; + +export const isGitlabSnippet = (url: string, patterns = hostPatterns.gitlab) => { + if (!patterns.map((pattern) => url.startsWith(pattern)).some(Boolean)) return; + const urlObj = getValidUrl(url); + if (!urlObj) return; + const pathSplit = urlObj.pathname.split('/'); + return pathSplit[pathSplit.length - 2] === 'snippets'; +}; + +export const importFromGitlabSnippet = async (url: string, params: { [key: string]: string }) => { + try { + const urlObj = getValidUrl(url); + if (!urlObj) return {}; + const pathSplit = urlObj.pathname.split('/'); + const snippetId = pathSplit[pathSplit.length - 1]; + + const snippetFiles = await fetch(`${urlObj.origin}/api/v4/snippets/${snippetId}`) + .then((res) => res.json()) + .then((data) => data.files); + + const files = await Promise.all( + Object.values(snippetFiles).map(async (file: any) => { + const filename = file.path; + const language = getLanguageByAlias( + filename.split('.')[filename.split('.').length - 1] || 'md', + ) as Language; + + const content = await fetch( + `${urlObj.origin}/api/v4/snippets/${snippetId}/files/master/${encodeURIComponent( + filename, + )}/raw`, + ).then((res) => res.text()); + + return { + filename, + language, + content, + editorId: getLanguageEditorId(language), + }; + }), + ); + + return populateConfig(files, params); + } catch (error) { + // eslint-disable-next-line no-console + console.error('Cannot fetch snippet: ' + error); + return {}; + } +}; diff --git a/src/localpen/import/gitlab.ts b/src/localpen/import/gitlab.ts new file mode 100644 index 000000000..88560d08c --- /dev/null +++ b/src/localpen/import/gitlab.ts @@ -0,0 +1,75 @@ +import { getLanguageByAlias, getLanguageEditorId } from '../languages'; +import { Language, Pen } from '../models'; +import { pipe } from '../utils'; +import { FileData, getValidUrl, hostPatterns } from './utils'; + +export const isGitlabUrl = (url: string, patterns = hostPatterns.gitlab) => { + if (!patterns.map((pattern) => url.startsWith(pattern)).some(Boolean)) return; + try { + const urlObj = getValidUrl(url); + if (!urlObj) return; + const pathSplit = urlObj.pathname.split('/'); + return pathSplit[4] === 'blob'; + } catch (error) { + return; + } +}; +// based on https://github.com/yusanshi/embed-like-gist +const getfileData = async (urlObj: URL): Promise => { + const pathSplit = urlObj.pathname.split('/'); + const user = pathSplit[1]; + const repository = pathSplit[2]; + const branch = pathSplit[5]; + const file = pathSplit.slice(6, pathSplit.length).join('/'); + const extension = (file.split('.')[file.split('.').length - 1] || 'md') as Language; + const lineSplit = urlObj.hash.split('-'); + const startLine = urlObj.hash !== '' ? Number(lineSplit[0].replace('#L', '')) : -1; + const endLine = + urlObj.hash !== '' && lineSplit.length > 1 ? Number(lineSplit[1].replace('L', '')) : startLine; + const projectId = await fetch(`${urlObj.origin}/api/v4/projects/${user}%2F${repository}`) + .then((res) => res.json()) + .then((data) => data.id); + const rawURL = `${ + urlObj.origin + }/api/v4/projects/${projectId}/repository/files/${encodeURIComponent(file)}/raw?ref=${branch}`; + + return { + rawURL, + extension, + startLine, + endLine, + }; +}; + +const getContent = async (fileData: Promise): Promise> => { + const { rawURL, extension, startLine, endLine } = await fileData; + try { + const fileContent = await fetch(rawURL).then((res) => res.text()); + const content = + startLine > 0 + ? fileContent + .split('\n') + .slice(startLine - 1, endLine) + .join('\n') + : fileContent; + const language = getLanguageByAlias(extension) || 'html'; + const editorId = getLanguageEditorId(language) || 'markup'; + return { + [editorId]: { + language, + content, + }, + language, + }; + } catch (error) { + // eslint-disable-next-line no-console + console.error('Cannot fetch: ' + rawURL); + // eslint-disable-next-line no-console + console.error(error); + return {}; + } +}; + +export const importFromGitlab = pipe(getValidUrl, getfileData, getContent) as ( + url: string, +) => Promise>; diff --git a/src/localpen/import/import.ts b/src/localpen/import/import.ts new file mode 100644 index 000000000..d8168eee2 --- /dev/null +++ b/src/localpen/import/import.ts @@ -0,0 +1,37 @@ +import { Pen } from '../models'; +import { importFromGithub, isGithubUrl } from './github'; +import { importFromGithubDir, isGithubDir } from './github-dir'; +import { importFromGithubGist, isGithubGist } from './github-gist'; +import { importFromGitlab, isGitlabUrl } from './gitlab'; +import { importFromGitlabDir, isGitlabDir } from './gitlab-dir'; +import { importFromGitlabSnippet, isGitlabSnippet } from './gitlab-snippet'; +import { importFromUrl } from './url'; + +export const importCode = async ( + url: string, + params: { [key: string]: any }, + config: Pen, +): Promise> => { + if (isGithubGist(url)) { + return importFromGithubGist(url, params); + } + if (isGithubDir(url)) { + return importFromGithubDir(url, params); + } + if (isGithubUrl(url)) { + return importFromGithub(url); + } + if (isGitlabSnippet(url)) { + return importFromGitlabSnippet(url, params); + } + if (isGitlabDir(url)) { + return importFromGitlabDir(url, params); + } + if (isGitlabUrl(url)) { + return importFromGitlab(url); + } + if (url) { + return importFromUrl(url, params, config); + } + return Promise.resolve({}); +}; diff --git a/src/localpen/import/index.ts b/src/localpen/import/index.ts new file mode 100644 index 000000000..ef5167d29 --- /dev/null +++ b/src/localpen/import/index.ts @@ -0,0 +1,2 @@ +export * from './url'; +export * from './import'; diff --git a/src/localpen/import/url.ts b/src/localpen/import/url.ts new file mode 100644 index 000000000..f7e7b2b1e --- /dev/null +++ b/src/localpen/import/url.ts @@ -0,0 +1,121 @@ +import { getLanguageByAlias, getLanguageEditorId, languages } from '../languages'; +import { EditorId, Language, Pen } from '../models'; +import { decodeHTML } from '../utils'; + +type Selectors = { + [key in EditorId]: { + language: Language; + selector: string; + }; +}; +export const getLanguageSelectors = (params: { [key: string]: string }) => + Object.keys(params).reduce((selectors: Selectors, key) => { + const language = getLanguageByAlias(key); + if (!language) return selectors; + + const editorId = getLanguageEditorId(language); + if (!editorId || selectors[editorId]) return selectors; + + return { + ...selectors, + [editorId]: { + language, + selector: params[key], + }, + }; + }, {} as Selectors); + +const getCode = (dom: Document, selector: string) => { + const codeContainer = dom.querySelector(selector); + if (!codeContainer) return; + return decodeHTML(codeContainer?.innerHTML || ''); +}; + +export const importFromUrl = async ( + url: string, + params: { [key: string]: string }, + config: Pen, +): Promise> => { + let html: string; + try { + html = await fetch(url).then((res) => res.text()); + } catch (error) { + // eslint-disable-next-line no-console + console.error('Error fetching ' + url); + return {}; + } + const domparser = new DOMParser(); + const dom = domparser.parseFromString(html, 'text/html'); + + const defaultParams = languages + .map((lang) => lang.name) + .reduce( + (acc, langName) => ({ + ...acc, + [langName]: `.localpen [data-lang="${langName}"]`, + }), + {} as { [key: string]: string }, + ); + + const configSelectors = (['markup', 'style', 'script'] as EditorId[]).reduce( + (selectors: Selectors, editorId) => { + if (config[editorId].language && config[editorId].selector) { + return { + ...selectors, + [editorId]: { + language: config[editorId].language, + selector: config[editorId].selector, + }, + }; + } else { + return selectors; + } + }, + {} as Selectors, + ); + + const languageSelectors = { + ...getLanguageSelectors(defaultParams), + ...configSelectors, + ...getLanguageSelectors(params), + }; + + const selectedCode = (Object.keys(languageSelectors) as EditorId[]).reduce( + (config: Partial, editorId) => { + const code = getCode(dom, languageSelectors[editorId].selector); + if (code === undefined) return config; + return { + ...config, + [editorId]: { + language: languageSelectors[editorId].language, + content: code, + }, + }; + }, + {}, + ); + + // if not all editors are filled, check for default selectors for other languages + if (Object.keys(selectedCode).length < 3) { + const defaults = Object.keys(defaultParams).reduce((config: Partial, language: string) => { + const editorId = getLanguageEditorId(language as Language); + if (!editorId || selectedCode[editorId]) return config; + const code = getCode(dom, defaultParams[language]); + if (code === undefined) return config; + + return { + ...config, + [editorId]: { + language, + content: code, + }, + }; + }, {}); + return { + ...selectedCode, + ...defaults, + }; + } + + return selectedCode; +}; diff --git a/src/localpen/import/utils.ts b/src/localpen/import/utils.ts new file mode 100644 index 000000000..b2400d4d7 --- /dev/null +++ b/src/localpen/import/utils.ts @@ -0,0 +1,74 @@ +import { languages, getLanguageByAlias, getLanguageEditorId } from '../languages'; +import { EditorId, Language, Pen } from '../models'; + +export interface sourceFile { + filename: string; + language: Language; + content: string; + editorId: EditorId; +} + +export interface FileData { + rawURL: string; + extension: Language; + startLine: number; + endLine: number; +} + +export const getValidUrl = (url: string) => { + try { + return url.startsWith('https://') ? new URL(url) : new URL('https://' + url); + } catch (error) { + return; + } +}; +export const populateConfig = ( + files: Array>, + params: { [key: string]: string }, +) => { + // select files from gist based on language in query params (e.g. ?html=index.html&js=script.js) + const languagesInParams = Object.keys(params).some(getLanguageByAlias); + if (languagesInParams) { + return Object.keys(params).reduce((output: Partial, param: string) => { + const language = getLanguageByAlias(param); + if (!language) return output; + const file = files.find((file) => file?.filename === params[param]); + if (!file) return output; + + const editorId = getLanguageEditorId(language); + if (!editorId || output[editorId]) return output; + + return { + ...output, + [editorId]: { + language, + content: file.content, + }, + }; + }, {} as Partial); + } + + // select languages from files + return files + .sort( + (a, b) => + languages.findIndex((language) => language.name === a.language) - + languages.findIndex((language) => language.name === b.language), + ) + .reduce((output: Partial, file) => { + if (!file?.editorId || output[file.editorId]) return output; + return { + ...output, + [file.editorId]: { + language: file.language, + content: file.content, + }, + }; + }, {} as Partial); +}; + +export const hostPatterns = { + github: ['https://github.com/', 'github.com/'], + githubGist: ['https://gist.github.com/', 'gist.github.com/'], + gitlab: ['https://gitlab.com/', 'gitlab.com/'], +}; diff --git a/src/localpen/index.ts b/src/localpen/index.ts new file mode 100644 index 000000000..def36aade --- /dev/null +++ b/src/localpen/index.ts @@ -0,0 +1,68 @@ +import { loadConfig } from './config'; +// @ts-ignore +import html from './app.html'; +import { Pen } from './models'; + +export const localpen = async (container: string, config: Partial = {}) => + new Promise(async (resolve) => { + const mergedConfig = await loadConfig(config); + const { baseUrl } = mergedConfig; + + window.addEventListener('hashchange', () => { + try { + // on hash change, if it is a url, reload to import code from it + new URL(location.hash.substr(1)); + window.location.reload(); + } catch (_err) { + // hash is not URL => do nothing + } + }); + + const style = document.createElement('style'); + style.innerHTML = ` + ${container} { + min-width: 300px; + min-height: 200px; + padding: 0; + overflow: hidden; + } + ${container} > iframe { + border: 0; + width: 100%; + height: 100%; + } + ${container}.embed iframe { + width: calc(100% - 2px); + height: calc(100% - 2px); + border: 1px solid #001b25; + border-radius: 5px; + } + `; + document.body.appendChild(style); + + const iframe = document.createElement('iframe'); + iframe.style.display = 'none'; + + const containerElement = document.querySelector(container); + + containerElement?.appendChild(iframe); + iframe.contentWindow?.document.open(); + iframe.contentWindow?.document.write(html.replace(/{{baseUrl}}/g, baseUrl)); + iframe.contentWindow?.document.close(); + + iframe.addEventListener('load', async () => { + const app = (iframe.contentWindow as any)?.app; + if (typeof app === 'function') { + const pen = await app(mergedConfig); + iframe.style.display = 'block'; + + // eslint-disable-next-line no-underscore-dangle + const callback = (window as any).__localpenEmbed; + if (typeof callback === 'function') { + callback(); + } + + resolve(pen); + } + }); + }); diff --git a/src/localpen/languages.ts b/src/localpen/languages.ts new file mode 100644 index 000000000..0edbfceec --- /dev/null +++ b/src/localpen/languages.ts @@ -0,0 +1,193 @@ +import { EditorId, Language, LanguageSpecs, Pen, Processors } from './models'; + +export const languages: LanguageSpecs[] = [ + { + name: 'html', + title: 'HTML', + parser: 'html', + plugin: './assets/prettier-html.js', + extensions: ['html', 'htm'], + editor: 'markup', + }, + { + name: 'pug', + title: 'Pug', + parser: 'babel', + plugin: './assets/prettier-babel.js', + compiler: { + url: '/vendor/pug/pug.min.js', + factory: () => (window as any).pug.render, + umd: true, + }, + extensions: ['pug', 'jade'], + editor: 'markup', + }, + { + name: 'markdown', + title: 'Markdown', + parser: 'markdown', + plugin: './assets/prettier-markdown.js', + compiler: { + url: '/vendor/marked/marked.esm.min.js', + factory: (module: any) => module.default, + stylesAdded: false, + }, + extensions: ['md', 'markdown', 'mdown', 'mkdn', 'mdx'], + editor: 'markup', + }, + { + name: 'asciidoc', + title: 'AsciiDoc', + parser: 'babel', + plugin: './assets/prettier-babel.js', + compiler: { + url: '/vendor/asciidoctor/asciidoctor.min.js', + factory: () => { + const asciidoctor = (window as any).Asciidoctor(); + return asciidoctor.convert.bind(asciidoctor); + }, + umd: true, + }, + extensions: ['adoc', 'asciidoc', 'asc'], + editor: 'markup', + }, + { + name: 'css', + title: 'CSS', + parser: 'css', + plugin: './assets/prettier-postcss.js', + extensions: ['css'], + editor: 'style', + }, + { + name: 'scss', + title: 'SCSS', + parser: 'scss', + plugin: './assets/prettier-postcss.js', + compiler: { + url: '/vendor/sass.js/sass.js', + factory: (module: any, config: Pen) => module.createCompile(config), + }, + extensions: ['scss'], + editor: 'style', + }, + { + name: 'sass', + title: 'Sass', + parser: 'scss', + plugin: './assets/prettier-postcss.js', + compiler: 'scss', + extensions: ['sass'], + editor: 'style', + }, + { + name: 'less', + title: 'Less', + parser: 'less', + plugin: './assets/prettier-postcss.js', + compiler: { + url: '/vendor/less/less.js', + factory: (render: any) => render, + }, + extensions: ['less'], + editor: 'style', + }, + { + name: 'stylus', + title: 'Stylus', + parser: 'less', + plugin: './assets/prettier-postcss.js', + compiler: { + url: '/vendor/stylus/stylus.min.js', + factory: () => (window as any).stylus.render, + umd: true, + }, + extensions: ['styl'], + editor: 'style', + }, + { + name: 'javascript', + title: 'JS', + longTitle: 'JavaScript', + parser: 'babel', + plugin: './assets/prettier-babel.js', + extensions: ['js'], + editor: 'script', + }, + { + name: 'typescript', + title: 'TS', + longTitle: 'TypeScript', + parser: 'babel', + plugin: './assets/prettier-babel.js', + compiler: { + url: '/vendor/typescript/typescript.min.js', + factory: (module: any) => module.transpile, + }, + extensions: ['ts'], + editor: 'script', + }, + { + name: 'jsx', + title: 'JSX', + parser: 'babel', + plugin: './assets/prettier-babel.js', + compiler: 'typescript', + extensions: ['jsx'], + editor: 'script', + }, + { + name: 'tsx', + title: 'TSX', + parser: 'babel', + plugin: './assets/prettier-babel.js', + compiler: 'typescript', + extensions: ['tsx'], + editor: 'script', + }, + { + name: 'coffeescript', + title: 'Coffee', + longTitle: 'CoffeeScript', + parser: 'babel', + plugin: './assets/prettier-babel.js', + compiler: { + url: '/vendor/coffeescript/coffeescript.js', + factory: () => (window as any).CoffeeScript.compile, + umd: true, + }, + extensions: ['coffee'], + editor: 'script', + }, +]; + +export const postProcessors: Processors[] = [ + { + name: 'autoprefixer', + compiler: { + url: '/vendor/autoprefixer/autoprefixer.js', + factory: (module: any) => { + const { postcss, autoprefixer } = module; + const postcss1 = postcss([autoprefixer({ overrideBrowserslist: ['last 4 version'] })]); + return postcss1.process.bind(postcss1); + }, + }, + editors: ['style'], + }, +]; + +export const getLanguageByAlias = (alias: string): Language | undefined => { + const aliasLowerCase = alias?.toLowerCase(); + return languages.find( + (language) => + language.name === aliasLowerCase || + language.title.toLowerCase() === aliasLowerCase || + language.extensions.map((ext) => ext.toLowerCase()).includes(aliasLowerCase), + )?.name; +}; + +export const getLanguageEditorId = (alias: Language): EditorId | undefined => + languages.find((lang) => lang.name === getLanguageByAlias(alias))?.editor; + +export const getLanguageExtension = (alias: string): Language | undefined => + languages.find((lang) => lang.name === getLanguageByAlias(alias))?.extensions[0]; diff --git a/src/localpen/localpen.json b/src/localpen/localpen.json new file mode 100644 index 000000000..38df62517 --- /dev/null +++ b/src/localpen/localpen.json @@ -0,0 +1,6 @@ +{ + "autoupdate": true, + "editor": { + "fontSize": 14 + } +} diff --git a/src/localpen/modal.ts b/src/localpen/modal.ts new file mode 100644 index 000000000..4fb63ec8e --- /dev/null +++ b/src/localpen/modal.ts @@ -0,0 +1,45 @@ +export const createModal = () => { + const overlay = document.querySelector('#overlay') as HTMLElement; + const modalContainer = document.querySelector('#modal-container') as HTMLElement; + const modal = document.querySelector('#modal') as HTMLElement; + let isOpen: boolean; + + const show = (container: Element, className = '') => { + modal.innerHTML = ''; + modal.className = className; + modal.appendChild(container); + + overlay.style.display = 'flex'; + modalContainer.style.display = 'flex'; + modal.style.display = 'flex'; + overlay.classList.remove('hidden'); + modalContainer.classList.remove('hidden'); + isOpen = true; + document.addEventListener('click', clickOutside, false); + }; + + const close = () => { + modal.innerHTML = ''; + modal.className = ''; + overlay.classList.add('hidden'); + modalContainer.classList.add('hidden'); + modal.style.display = 'none'; + document.removeEventListener('click', clickOutside, false); + setTimeout(() => { + overlay.style.display = 'none'; + modalContainer.style.display = 'none'; + }, 400); + }; + + function clickOutside(event: Event) { + if (!modal.contains(event.target as Node) && !isOpen) { + close(); + } + isOpen = false; + } + + return { + show, + close, + }; +}; diff --git a/src/localpen/models.ts b/src/localpen/models.ts new file mode 100644 index 000000000..bd9056f2c --- /dev/null +++ b/src/localpen/models.ts @@ -0,0 +1,122 @@ +/* eslint-disable camelcase */ + +export interface Pen { + baseUrl: string; + title: string; + autoupdate: boolean; + update_delay: number; + autosave: boolean; + emmet: boolean; + + autoprefixer: boolean; + + mode: 'full' | 'editor' | 'codeblock' | 'result'; + language: Language; + allow_lang_change: boolean; + markup: Editor; + style: Editor; + script: Editor; + stylesheets: string[]; + scripts: string[]; + editor: { + [key: string]: any; + }; + modules: Module[]; +} + +export type Language = + | 'html' + | 'htm' + | 'markdown' + | 'md' + | 'mdown' + | 'mkdn' + | 'mdx' + | 'pug' + | 'jade' + | 'asciidoc' + | 'adoc' + | 'asc' + | 'css' + | 'scss' + | 'sass' + | 'less' + | 'stylus' + | 'styl' + | 'javascript' + | 'js' + | 'typescript' + | 'ts' + | 'jsx' + | 'tsx' + | 'coffeescript' + | 'coffee'; + +export interface Editor { + language: Language; + content?: string; + contentUrl?: string; + selector?: string; +} + +export type EditorId = 'markup' | 'style' | 'script'; + +export interface Editors { + markup: any; + style: any; + script: any; +} +export interface EditorLanguages { + markup: Language; + style: Language; + script: Language; +} + +export interface Module { + name: string; + url?: string; + typesUrl?: string; +} + +export interface LanguageSpecs { + name: Language; + title: string; + longTitle?: string; + parser: ParserName; + plugin: string; + compiler?: Compiler | Language; + extensions: Language[]; + editor: EditorId; +} + +export interface Processors { + name: ProcessorName | Language; + compiler: Compiler | ProcessorName | Language; + editors?: EditorId[]; +} + +export type ProcessorName = 'autoprefixer'; + +export type ParserName = 'babel' | 'html' | 'markdown' | 'css' | 'scss' | 'less'; +export interface Parser { + name: ParserName; + plugin: any; +} + +export interface EditorLibrary { + filename: string; + content: string; +} + +export interface Compiler { + url: string; + fn?: (code: string, options?: any) => any; + factory: (compilerModule: any, config: Pen) => (code: string) => string; + stylesAdded?: boolean; + umd?: boolean; + editors?: EditorId[]; +} + +export interface Compilers { + [language: string]: Compiler; +} diff --git a/src/localpen/monaco.ts b/src/localpen/monaco.ts new file mode 100644 index 000000000..8d8d1dd4e --- /dev/null +++ b/src/localpen/monaco.ts @@ -0,0 +1,2 @@ +// @ts-ignore +export { monaco } from './vendor/monaco-editor/monaco'; diff --git a/src/localpen/notifications.ts b/src/localpen/notifications.ts new file mode 100644 index 000000000..bbdfdd0fd --- /dev/null +++ b/src/localpen/notifications.ts @@ -0,0 +1,38 @@ +export const createNotifications = (selector: string) => { + const element = document.querySelector(selector) as HTMLElement; + if (!element) { + throw new Error('element ' + element + ' not found'); + } + + const show = () => { + element.style.display = 'inline-block'; + element.classList.remove('hidden'); + }; + + const hide = () => { + element.classList.add('hidden'); + }; + + const message = (message: string) => { + element.innerHTML = message; + show(); + setTimeout(() => { + hide(); + }, 2000); + }; + + const error = (message: string) => { + element.innerHTML = message; + element.classList.add('error'); + show(); + setTimeout(() => { + hide(); + element.classList.remove('error'); + }, 2000); + }; + + return { + message, + error, + }; +}; diff --git a/src/localpen/storage.ts b/src/localpen/storage.ts new file mode 100644 index 000000000..f70d243c1 --- /dev/null +++ b/src/localpen/storage.ts @@ -0,0 +1,93 @@ +import { Pen } from './models'; + +interface Item { + id: string; + pen: Pen; + lastModified: number; +} +interface Storage { + activeItemId: string | null; + items: Item[]; +} + +export const createStorage = (name = '__localpen_data__') => { + const EMPTY: Storage = { + activeItemId: null, + items: [], + }; + + const getData = () => { + const data = window.localStorage.getItem(name); + return data ? (JSON.parse(data) as Storage) : EMPTY; + }; + + const setData = (data: Storage) => { + window.localStorage.setItem(name, JSON.stringify(data)); + }; + + const getList = () => + getData() + .items?.map((item) => ({ + id: item.id, + title: item.pen?.title, + lastModified: item.lastModified, + })) + .sort((a, b) => b.lastModified - a.lastModified); + + const getItem = (itemId: string) => getData().items?.find((item) => itemId === item.id); + + const updateItem = (id: string, pen: Pen) => { + const data = getData(); + const item = data.items?.find((item) => id === item.id); + if (!item) return; + + item.pen = pen; + item.lastModified = Date.now(); + data.activeItemId = id; + setData(data); + }; + + const addItem = (pen: Pen) => { + const id = (Date.now() + '' + Math.floor(Math.floor(Math.random() * Date.now()))).substring( + 0, + 24, + ); + + const item = { + id, + pen, + lastModified: Date.now(), + }; + const data = getData(); + + setData({ + ...data, + activeItemId: id, + items: [...data.items, item], + }); + + return id; + }; + + const deleteItem = (id: string) => { + const data = getData(); + const items = data.items.filter((item) => item.id !== id); + if (id === data.activeItemId) { + data.activeItemId = items[items.length - 1]?.id; + } + setData({ ...data, items }); + }; + + const clear = () => { + setData(EMPTY); + }; + + return { + getList, + getItem, + addItem, + updateItem, + deleteItem, + clear, + }; +}; diff --git a/src/localpen/templates/external-resources.html b/src/localpen/templates/external-resources.html new file mode 100644 index 000000000..a7e6cdc15 --- /dev/null +++ b/src/localpen/templates/external-resources.html @@ -0,0 +1,19 @@ + diff --git a/src/localpen/templates/import-ui.html b/src/localpen/templates/import-ui.html new file mode 100644 index 000000000..d03cb2367 --- /dev/null +++ b/src/localpen/templates/import-ui.html @@ -0,0 +1,46 @@ + diff --git a/src/localpen/templates/index.ts b/src/localpen/templates/index.ts new file mode 100644 index 000000000..50ded1050 --- /dev/null +++ b/src/localpen/templates/index.ts @@ -0,0 +1,10 @@ +// @ts-ignore +import resultTemplate from './result-template.html'; +// @ts-ignore +import importTemplate from './import-ui.html'; +// @ts-ignore +import resourcesTemplate from './external-resources.html'; +// @ts-ignore +import savePromptTemplate from './save-prompt.html'; + +export { resultTemplate, importTemplate, resourcesTemplate, savePromptTemplate }; diff --git a/src/localpen/templates/result-template.html b/src/localpen/templates/result-template.html new file mode 100644 index 000000000..06fe964ad --- /dev/null +++ b/src/localpen/templates/result-template.html @@ -0,0 +1,15 @@ + + + + + + localpen + + + + + + + + + diff --git a/src/localpen/templates/save-prompt.html b/src/localpen/templates/save-prompt.html new file mode 100644 index 000000000..8c34f2d7f --- /dev/null +++ b/src/localpen/templates/save-prompt.html @@ -0,0 +1,14 @@ +
    + + +
    diff --git a/src/localpen/utils.ts b/src/localpen/utils.ts new file mode 100644 index 000000000..168f9090a --- /dev/null +++ b/src/localpen/utils.ts @@ -0,0 +1,19 @@ +export const decodeHTML = (html: string) => { + const txt = document.createElement('textarea'); + txt.innerHTML = html; + return txt.value; +}; + +export const encodeHTML = (html: string) => + html + .replace(/&/g, '&') + .replace(//g, '>') + .replace(/'/g, ''') + .replace(/"/g, '"'); + +// eslint-disable-next-line @typescript-eslint/ban-types +export const pipe = (...fns: Function[]) => fns.reduce((f, g) => (...args: any) => g(f(...args))); + +// replace non-alphanumeric with underscore +export const safeName = (name: string) => name.replace(/[\W]+/g, '_'); diff --git a/src/localpen/vendor/asciidoctor/asciidoctor.min.js b/src/localpen/vendor/asciidoctor/asciidoctor.min.js new file mode 100644 index 000000000..ce9744030 --- /dev/null +++ b/src/localpen/vendor/asciidoctor/asciidoctor.min.js @@ -0,0 +1,1463 @@ +/* + Asciidoctor.js 2.2.1 | MIT | https://github.com/asciidoctor/asciidoctor.js +*/ +var $jscomp=$jscomp||{};$jscomp.scope={};$jscomp.arrayIteratorImpl=function(b){var t=0;return function(){return t=v}},"es6","es3");$jscomp.polyfill("Object.is",function(b){return b?b:function(b,B){return b===B?0!==b||1/b===1/B:b!==b&&B!==B}},"es6","es3"); +$jscomp.polyfill("Array.prototype.includes",function(b){return b?b:function(b,B){var t=this;t instanceof String&&(t=String(t));var v=t.length;B=B||0;for(0>B&&(B=Math.max(B+v,0));Bb||1342177279>>=1)t+=t;return D}},"es6","es3"); +$jscomp.polyfill("Array.from",function(b){return b?b:function(b,B,D){B=null!=B?B:function(b){return b};var v=[],q="undefined"!=typeof Symbol&&Symbol.iterator&&b[Symbol.iterator];if("function"==typeof q){b=q.call(b);for(var g=0;!(q=b.next()).done;)v.push(B.call(D,q.value,g++))}else for(q=b.length,g=0;g $coerce_to! $!= $[] $upcase".split(" "));return function(g,t){g=v(g,"Opal");var l=[g].concat(t),F,w,r,N,M,K,x,k,H,P,E,I,ea,Y;b.defs(g,"$bridge",F=function(a,d){return b.bridge(a,d)},F.$$arity=2);b.defs(g,"$type_error",w=function(a,b,u,C){var d;null==u&&(u=B);null==C&&(C=B);return q(q(d=u)?C:d)?D(l,"TypeError").$new("can't convert "+ +a.$class()+" into "+b+" ("+a.$class()+"#"+u+" gives "+C.$class()+")"):D(l,"TypeError").$new("no implicit conversion of "+a.$class()+" into "+b)},w.$$arity=-3);b.defs(g,"$coerce_to",r=function(a,b,u){if(q(b["$==="](a)))return a;q(a["$respond_to?"](u))||this.$raise(this.$type_error(a,b));return a.$__send__(u)},r.$$arity=3);b.defs(g,"$coerce_to!",N=function(a,b,u){var d=this.$coerce_to(a,b,u);q(b["$==="](d))||this.$raise(this.$type_error(a,b,u,d));return d},N.$$arity=3);b.defs(g,"$coerce_to?",M=function(a, +b,u){if(!q(a["$respond_to?"](u)))return B;var d=this.$coerce_to(a,b,u);if(q(d["$nil?"]()))return B;q(b["$==="](d))||this.$raise(this.$type_error(a,b,u,d));return d},M.$$arity=3);b.defs(g,"$try_convert",K=function(a,b,u){return q(b["$==="](a))?a:q(a["$respond_to?"](u))?a.$__send__(u):B},K.$$arity=3);b.defs(g,"$compare",x=function(a,b){var d=a["$<=>"](b);q(d===B)&&this.$raise(D(l,"ArgumentError"),"comparison of "+a.$class()+" with "+b.$class()+" failed");return d},x.$$arity=2);b.defs(g,"$destructure", +k=function(a){if(1==a.length)return a[0];if(a.$$is_array)return a;for(var b=Array(a.length),u=0,C=b.length;ua.length||"@@"!==a.slice(0,2))&&this.$raise(D(l,"NameError").$new("`"+a+"' is not allowed as a class variable name",a));return a},I.$$arity=1);b.defs(g,"$const_name!",ea=function(a){a=D(l,"Opal")["$coerce_to!"](a,D(l,"String"),"to_str");q(a["$[]"](0)["$!="](a["$[]"](0).$upcase()))&&this.$raise(D(l, +"NameError"),"wrong constant name "+a);return a},ea.$$arity=1);b.defs(g,"$pristine",Y=function(a,d){var u=b.slice.call(arguments,1,arguments.length);for(var C,k=u.length-1;0<=k;k--)C=u[k],(C=a.$$prototype["$"+C])&&!C.$$stub&&(C.$$pristine=!0);return B},Y.$$arity=-2)}(t[0],t)}; +Opal.modules["corelib/module"]=function(b){function t(b,g){return"number"===typeof b&&"number"===typeof g?b $nil? $attr_reader $attr_writer $class_variable_name! $new $const_name! $=~ $inject $split $const_get $== $!~ $start_with? $bind $call $class $append_features $included $name $cover? $size $merge $compile $proc $any? $prepend_features $prepended $to_s $__id__ $constants $include? $copy_class_variables $copy_constants".split(" ")); +return function(N,$super,K){N=g(N,$super,"Module");var x=[N].concat(K),k,B,P,E,I,ea,Y,a,d,u,C,J,n,h,c,z,p,T,O,m,e,f,W,U,ja,L,S,da,y,ha,ca,sa,ta,oa,pa,aa,X,Aa,La,Ba,za,xa,la,V,na,Z,Na,ua,Pa,ba,ka,Ua,Ma,Ra,$a,ia,va,fa;b.defs(N,"$allocate",k=function(){var a=b.allocate_module(D,function(){});this!==b.Module&&Object.setPrototypeOf(a,this.$$prototype);return a},k.$$arity=0);b.def(N,"$initialize",B=function(){var a=B.$$p,b=a||D;a&&(B.$$p=null);a&&(B.$$p=null);return b!==D?H(this,"module_eval",[],b.$to_proc()): +D},B.$$arity=0);b.def(N,"$===",P=function(a){return l(null==a)?!1:b.is_a(a,this)},P.$$arity=1);b.def(N,"$<",E=function(a){l(q(x,"Module")["$==="](a))||this.$raise(q(x,"TypeError"),"compared with non class/module");var c;if(this===a)return!1;var e=0;var f=b.ancestors(this);for(c=f.length;e",ea=function(a){l(q(x,"Module")["$==="](a))||this.$raise(q(x,"TypeError"),"compared with non class/module");return t(a,this)},ea.$$arity=1);b.def(N,"$>=",Y=function(a){var b;return l(b=this["$equal?"](a))?b:"number"===typeof this&&"number"===typeof a?this>a:this["$>"](a)},Y.$$arity=1);b.def(N,"$<=>",a=function(a){if(this===a)return 0;if(!l(q(x,"Module")["$==="](a)))return D;a=t(this,a);return l(a["$nil?"]())?D:l(a)?-1:1},a.$$arity=1);b.def(N,"$alias_method",d=function(a,c){b.alias(this,a,c);return this}, +d.$$arity=2);b.def(N,"$alias_native",u=function(a,c){null==c&&(c=a);b.alias_native(this,a,c);return this},u.$$arity=-2);b.def(N,"$ancestors",C=function(){return b.ancestors(this)},C.$$arity=0);b.def(N,"$append_features",J=function(a){b.append_features(this,a);return this},J.$$arity=1);b.def(N,"$attr_accessor",n=function(a){var c=b.slice.call(arguments,0,arguments.length);H(this,"attr_reader",b.to_a(c));return H(this,"attr_writer",b.to_a(c))},n.$$arity=-1);b.alias(N,"attr","attr_accessor");b.def(N, +"$attr_reader",h=function(a){var c=b.slice.call(arguments,0,arguments.length);for(var e=this.$$prototype,f=c.length-1;0<=f;f--){var d=c[f],m="$"+d;d=b.ivar(d);var p=function(a){return function(){return null==this[a]?D:this[a]}}(d);b.defineProperty(e,d,D);p.$$parameters=[];p.$$arity=0;b.defn(this,m,p)}return D},h.$$arity=-1);b.def(N,"$attr_writer",c=function(a){var c=b.slice.call(arguments,0,arguments.length);for(var e=this.$$prototype,f=c.length-1;0<=f;f--){var d=c[f],m="$"+d+"=";d=b.ivar(d);var p= +function(a){return function(b){return this[a]=b}}(d);p.$$parameters=[["req"]];p.$$arity=1;b.defineProperty(e,d,D);b.defn(this,m,p)}return D},c.$$arity=-1);b.def(N,"$autoload",z=function(a,c){null==this.$$autoload&&(this.$$autoload={});b.const_cache_version++;this.$$autoload[a]=c;return D},z.$$arity=2);b.def(N,"$class_variables",p=function(){return Object.keys(b.class_variables(this))},p.$$arity=0);b.def(N,"$class_variable_get",T=function(a){a=q(x,"Opal")["$class_variable_name!"](a);var c=b.class_variables(this)[a]; +null==c&&this.$raise(q(x,"NameError").$new("uninitialized class variable "+a+" in "+this,a));return c},T.$$arity=1);b.def(N,"$class_variable_set",O=function(a,c){a=q(x,"Opal")["$class_variable_name!"](a);return b.class_variable_set(this,a,c)},O.$$arity=2);b.def(N,"$class_variable_defined?",m=function(a){a=q(x,"Opal")["$class_variable_name!"](a);return b.class_variables(this).hasOwnProperty(a)},m.$$arity=1);b.def(N,"$remove_class_variable",e=function(a){a=q(x,"Opal")["$class_variable_name!"](a);if(b.hasOwnProperty.call(this.$$cvars, +a)){var c=this.$$cvars[a];delete this.$$cvars[a];return c}this.$raise(q(x,"NameError"),"cannot remove "+a+" for "+this)},e.$$arity=1);b.def(N,"$constants",f=function(a){null==a&&(a=!0);return b.constants(this,a)},f.$$arity=-1);b.defs(N,"$constants",W=function(a){if(null==a){a=(this.$$nesting||[]).concat(b.Object);var c,e={},f;var d=0;for(f=a.length;d"},Ma.$$arity=0);b.def(N,"$undef_method",Ra=function(a){var c=b.slice.call(arguments,0,arguments.length);for(var e=0,f=c.length;e":k?"#>":g(this,b.find_super_dispatcher(this,"to_s",B,!1),[],null)},B.$$arity=0),D)&&"to_s"}(B[0],null,B)}; +Opal.modules["corelib/basic_object"]=function(b){var t=[],B=b.nil,D=b.const_get_qualified,v=b.klass,q=b.truthy,g=b.range,H=b.hash2,l=b.send;b.add_stubs("$== $! $nil? $cover? $size $raise $merge $compile $proc $any? $inspect $new".split(" "));return function(F,$super,r){F=v(F,$super,"BasicObject");[F].concat(r);var t,M,K,x,k,ma,P,E,I,ea,Y,a,d,u;b.def(F,"$initialize",t=function(a){b.slice.call(arguments,0,arguments.length);return B},t.$$arity=-1);b.def(F,"$==",M=function(a){return this===a},M.$$arity= +1);b.def(F,"$eql?",K=function(a){return this["$=="](a)},K.$$arity=1);b.alias(F,"equal?","==");b.def(F,"$__id__",x=function(){if(null!=this.$$id)return this.$$id;b.defineProperty(this,"$$id",b.uid());return this.$$id},x.$$arity=0);b.def(F,"$__send__",k=function(a,d){var n=k.$$p,h=n||B;n&&(k.$$p=null);n&&(k.$$p=null);n=b.slice.call(arguments,1,arguments.length);var c=this["$"+a];if(c)return h!==B&&(c.$$p=h),c.apply(this,n);h!==B&&(this.$method_missing.$$p=h);return this.$method_missing.apply(this,[a].concat(n))}, +k.$$arity=-2);b.def(F,"$!",ma=function(){return!1},ma.$$arity=0);b.def(F,"$!=",P=function(a){return this["$=="](a)["$!"]()},P.$$arity=1);b.def(F,"$instance_eval",E=function(a){var d=E.$$p,n=d||B,h,c,u=B,p=B,k=p=p=B;d&&(E.$$p=null);d&&(E.$$p=null);d=b.slice.call(arguments,0,arguments.length);q(q(h=n["$nil?"]())?!!b.compile:h)?(q(g(1,3,!1)["$cover?"](d.$size()))||D("::","Kernel").$raise(D("::","ArgumentError"),"wrong number of arguments (0 for 1..3)"),h=[].concat(b.to_a(d)),u=null==h[0]?B:h[0],p=null== +h[1]?B:h[1],h,p=H(["file","eval"],{file:q(h=p)?h:"(eval)",eval:!0}),p=b.hash({arity_check:!1}).$merge(p),k=D("::","Opal").$compile(u,p),n=l(D("::","Kernel"),"proc",[],(c=function(){return function(a){return eval(k)}(c.$$s||this)},c.$$s=this,c.$$arity=0,c))):q(d["$any?"]())&&D("::","Kernel").$raise(D("::","ArgumentError"),"wrong number of arguments ("+d.$size()+" for 0)");h=n.$$s;n.$$s=null;if(this.$$is_a_module){this.$$eval=!0;try{var C=n.call(this,this)}finally{this.$$eval=!1}}else C=n.call(this, +this);n.$$s=h;return C},E.$$arity=-1);b.def(F,"$instance_exec",I=function(a){var d=I.$$p,n=d||B;d&&(I.$$p=null);d&&(I.$$p=null);d=b.slice.call(arguments,0,arguments.length);q(n)||D("::","Kernel").$raise(D("::","ArgumentError"),"no block given");var h=n.$$s;n.$$s=null;if(this.$$is_a_module){this.$$eval=!0;try{var c=n.apply(this,d)}finally{this.$$eval=!1}}else c=n.apply(this,d);n.$$s=h;return c},I.$$arity=-1);b.def(F,"$singleton_method_added",ea=function(a){b.slice.call(arguments,0,arguments.length); +return B},ea.$$arity=-1);b.def(F,"$singleton_method_removed",Y=function(a){b.slice.call(arguments,0,arguments.length);return B},Y.$$arity=-1);b.def(F,"$singleton_method_undefined",a=function(a){b.slice.call(arguments,0,arguments.length);return B},a.$$arity=-1);b.def(F,"$class",d=function(){return this.$$class},d.$$arity=0);return(b.def(F,"$method_missing",u=function(a,d){var n=u.$$p;n&&(u.$$p=null);n&&(u.$$p=null);b.slice.call(arguments,1,arguments.length);n=q(this.$inspect&&!this.$inspect.$$stub)? +"undefined method `"+a+"' for "+this.$inspect()+":"+this.$$class:"undefined method `"+a+"' for "+this.$$class;return D("::","Kernel").$raise(D("::","NoMethodError").$new(n,a))},u.$$arity=-2),B)&&"method_missing"}(t[0],null,t)}; +Opal.modules["corelib/kernel"]=function(b){function t(b,g){return"number"===typeof b&&"number"===typeof g?b<=g:b["$<="](g)}var B=[],D=b.nil,v=b.const_get_qualified,q=b.const_get_relative,g=b.module,H=b.truthy,l=b.gvars,F=b.hash2,w=b.send,r=b.klass;b.add_stubs("$raise $new $inspect $! $=~ $== $object_id $class $coerce_to? $<< $allocate $copy_instance_variables $copy_singleton_methods $initialize_clone $initialize_copy $define_method $singleton_class $to_proc $initialize_dup $for $empty? $pop $call $coerce_to $append_features $extend_object $extended $__id__ $to_s $instance_variable_name! $respond_to? $to_int $coerce_to! $Integer $nil? $=== $enum_for $result $any? $print $format $puts $each $<= $length $[] $exception $is_a? $rand $respond_to_missing? $try_convert! $expand_path $join $start_with? $new_seed $srand $sym $arg $open $include".split(" "));(function(r, +M){r=g(r,"Kernel");var K=[r].concat(M),x,k,B,P,E,I,N,Y,a,d,u,C,J,n,h,c,z,p,T,O,m,e,f,W,U,ja,L,S,da,y,ha,ca,sa,ta,oa,pa,aa,X,Aa,La,Ba,za,xa,la,V,na,Z,Na,ua,Pa,ba,ka,Ua,Ma,Ra,$a,ia,va,fa,wa,ya,qa,Ga,Fa,Ha;b.def(r,"$method_missing",x=function(a,c){var e=x.$$p;e&&(x.$$p=null);e&&(x.$$p=null);e=b.slice.call(arguments,1,arguments.length);return this.$raise(q(K,"NoMethodError").$new("undefined method `"+a+"' for "+this.$inspect(),a,e))},x.$$arity=-2);b.def(r,"$=~",k=function(a){return!1},k.$$arity=1);b.def(r, +"$!~",B=function(a){return this["$=~"](a)["$!"]()},B.$$arity=1);b.def(r,"$===",P=function(a){var b;return H(b=this.$object_id()["$=="](a.$object_id()))?b:this["$=="](a)},P.$$arity=1);b.def(r,"$<=>",E=function(a){this.$$comparable=!0;return(a=this["$=="](a))&&a!==D?0:D},E.$$arity=1);b.def(r,"$method",I=function(a){var b=this["$"+a];b&&!b.$$stub||this.$raise(q(K,"NameError").$new("undefined method `"+a+"' for class `"+this.$class()+"'",a));return q(K,"Method").$new(this,b.$$owner||this.$class(),b,a)}, +I.$$arity=1);b.def(r,"$methods",N=function(a){null==a&&(a=!0);return H(a)?b.methods(this):b.own_methods(this)},N.$$arity=-1);b.def(r,"$public_methods",Y=function(a){null==a&&(a=!0);return H(a)?b.methods(this):b.receiver_methods(this)},Y.$$arity=-1);b.def(r,"$Array",a=function(a){if(a===D)return[];if(a.$$is_array)return a;var b=q(K,"Opal")["$coerce_to?"](a,q(K,"Array"),"to_ary");if(b!==D)return b;b=q(K,"Opal")["$coerce_to?"](a,q(K,"Array"),"to_a");return b!==D?b:[a]},a.$$arity=1);b.def(r,"$at_exit", +d=function(){var a=d.$$p,b=a||D,c;null==l.__at_exit__&&(l.__at_exit__=D);a&&(d.$$p=null);a&&(d.$$p=null);l.__at_exit__=H(c=l.__at_exit__)?c:[];return l.__at_exit__["$<<"](b)},d.$$arity=0);b.def(r,"$caller",u=function(a){b.slice.call(arguments,0,arguments.length);return[]},u.$$arity=-1);b.def(r,"$class",C=function(){return this.$$class},C.$$arity=0);b.def(r,"$copy_instance_variables",J=function(a){var b=Object.keys(a),c;var e=0;for(c=b.length;eb||36=b?b-1:"9a-"+String.fromCharCode(97+(b-11)));(new RegExp("^\\s*[+-]?["+f+"]+\\s*$")).test(e)||c.$raise(q(K,"ArgumentError"),'invalid value for Integer(): "'+a+'"');e=parseInt(e,b);isNaN(e)&&c.$raise(q(K,"ArgumentError"),'invalid value for Integer(): "'+a+'"');return e},sa.$$arity=-2);b.def(r,"$Float",ta=function(a){a===D&&this.$raise(q(K,"TypeError"),"can't convert nil into Float");if(a.$$is_string){var b=a.toString();b=b.replace(/(\d)_(?=\d)/g,"$1");if(/^\s*[-+]?0[xX][0-9a-fA-F]+\s*$/.test(b))return this.$Integer(b); +/^\s*[-+]?[0-9]*\.?[0-9]+([eE][-+]?[0-9]+)?\s*$/.test(b)||this.$raise(q(K,"ArgumentError"),'invalid value for Float(): "'+a+'"');return parseFloat(b)}return q(K,"Opal")["$coerce_to!"](a,q(K,"Float"),"to_f")},ta.$$arity=1);b.def(r,"$Hash",oa=function(a){var b;return H(H(b=a["$nil?"]())?b:a["$=="]([]))?F([],{}):H(q(K,"Hash")["$==="](a))?a:q(K,"Opal")["$coerce_to!"](a,q(K,"Hash"),"to_hash")},oa.$$arity=1);b.def(r,"$is_a?",pa=function(a){a.$$is_class||a.$$is_module||this.$raise(q(K,"TypeError"),"class or module required"); +return b.is_a(this,a)},pa.$$arity=1);b.def(r,"$itself",aa=function(){return this},aa.$$arity=0);b.alias(r,"kind_of?","is_a?");b.def(r,"$lambda",X=function(){var a=X.$$p,c=a||D;a&&(X.$$p=null);a&&(X.$$p=null);return b.lambda(c)},X.$$arity=0);b.def(r,"$load",Aa=function(a){a=q(K,"Opal")["$coerce_to!"](a,q(K,"String"),"to_str");return b.load(a)},Aa.$$arity=1);b.def(r,"$loop",La=function(){var a,c=La.$$p,e=c||D,f=D;c&&(La.$$p=null);if(e===D)return w(this,"enum_for",["loop"],(a=function(){return v(q(K, +"Float"),"INFINITY")},a.$$s=this,a.$$arity=0,a));for(;H(!0);)try{b.yieldX(e,[])}catch(Ia){if(b.rescue(Ia,[q(K,"StopIteration")])){f=Ia;try{return f.$result()}finally{b.pop_exception()}}else throw Ia;}return this},La.$$arity=0);b.def(r,"$nil?",Ba=function(){return!1},Ba.$$arity=0);b.alias(r,"object_id","__id__");b.def(r,"$printf",za=function(a){var c=b.slice.call(arguments,0,arguments.length);H(c["$any?"]())&&this.$print(w(this,"format",b.to_a(c)));return D},za.$$arity=-1);b.def(r,"$proc",xa=function(){var a= +xa.$$p,b=a||D;a&&(xa.$$p=null);a&&(xa.$$p=null);H(b)||this.$raise(q(K,"ArgumentError"),"tried to create Proc object without a block");b.$$is_lambda=!1;return b},xa.$$arity=0);b.def(r,"$puts",la=function(a){null==l.stdout&&(l.stdout=D);var c=b.slice.call(arguments,0,arguments.length);return w(l.stdout,"puts",b.to_a(c))},la.$$arity=-1);b.def(r,"$p",V=function(a){var c;var e=b.slice.call(arguments,0,arguments.length);w(e,"each",[],(c=function(a){null==l.stdout&&(l.stdout=D);null==a&&(a=D);return l.stdout.$puts(a.$inspect())}, +c.$$s=this,c.$$arity=1,c));return H(t(e.$length(),1))?e["$[]"](0):e},V.$$arity=-1);b.def(r,"$print",na=function(a){null==l.stdout&&(l.stdout=D);var c=b.slice.call(arguments,0,arguments.length);return w(l.stdout,"print",b.to_a(c))},na.$$arity=-1);b.def(r,"$warn",Z=function(a){var c;null==l.VERBOSE&&(l.VERBOSE=D);null==l.stderr&&(l.stderr=D);var e=b.slice.call(arguments,0,arguments.length);return H(H(c=l.VERBOSE["$nil?"]())?c:e["$empty?"]())?D:w(l.stderr,"puts",b.to_a(e))},Z.$$arity=-1);b.def(r,"$raise", +Na=function(a,c,e){null==l["!"]&&(l["!"]=D);null==c&&(c=D);if(null==a&&l["!"]!==D)throw l["!"];null==a?a=q(K,"RuntimeError").$new():a.$$is_string?a=q(K,"RuntimeError").$new(a):a.$$is_class&&a["$respond_to?"]("exception")?a=a.$exception(c):a["$is_a?"](q(K,"Exception"))||(a=q(K,"TypeError").$new("exception class/object expected"));l["!"]!==D&&b.exceptions.push(l["!"]);l["!"]=a;throw a;},Na.$$arity=-1);b.alias(r,"fail","raise");b.def(r,"$rand",ua=function(a){if(void 0===a)return v(q(K,"Random"),"DEFAULT").$rand(); +a.$$is_number&&(0>a&&(a=Math.abs(a)),0!==a%1&&(a=a.$to_i()),0===a&&(a=void 0));return v(q(K,"Random"),"DEFAULT").$rand(a)},ua.$$arity=-1);b.def(r,"$respond_to?",Pa=function(a,b){null==b&&(b=!1);if(H(this["$respond_to_missing?"](a,b)))return!0;a=this["$"+a];return"function"!==typeof a||a.$$stub?!1:!0},Pa.$$arity=-2);b.def(r,"$respond_to_missing?",ba=function(a,b){return!1},ba.$$arity=-2);b.def(r,"$require",ka=function(a){a=q(K,"Opal")["$coerce_to!"](a,q(K,"String"),"to_str");return b.require(a)},ka.$$arity= +1);b.def(r,"$require_relative",Ua=function(a){q(K,"Opal")["$try_convert!"](a,q(K,"String"),"to_str");a=q(K,"File").$expand_path(q(K,"File").$join(b.current_file,"..",a));return b.require(a)},Ua.$$arity=1);b.def(r,"$require_tree",Ma=function(a){var c=[];a=q(K,"File").$expand_path(a);a=b.normalize(a);"."===a&&(a="");for(var e in b.modules)e["$start_with?"](a)&&c.push([e,b.require(e)]);return c},Ma.$$arity=1);b.alias(r,"send","__send__");b.alias(r,"public_send","__send__");b.def(r,"$singleton_class", +Ra=function(){return b.get_singleton_class(this)},Ra.$$arity=0);b.def(r,"$sleep",$a=function(a){null==a&&(a=D);a===D&&this.$raise(q(K,"TypeError"),"can't convert NilClass into time interval");a.$$is_number||this.$raise(q(K,"TypeError"),"can't convert "+a.$class()+" into time interval");0>a&&this.$raise(q(K,"ArgumentError"),"time interval must be positive");for(var c=b.global.performance?function(){return performance.now()}:function(){return new Date},e=c();c()-e<=1E3*a;);return a},$a.$$arity=-1); +b.def(r,"$srand",ia=function(a){null==a&&(a=q(K,"Random").$new_seed());return q(K,"Random").$srand(a)},ia.$$arity=-1);b.def(r,"$String",va=function(a){var b;return H(b=q(K,"Opal")["$coerce_to?"](a,q(K,"String"),"to_str"))?b:q(K,"Opal")["$coerce_to!"](a,q(K,"String"),"to_s")},va.$$arity=1);b.def(r,"$tap",fa=function(){var a=fa.$$p,c=a||D;a&&(fa.$$p=null);a&&(fa.$$p=null);b.yield1(c,this);return this},fa.$$arity=0);b.def(r,"$to_proc",wa=function(){return this},wa.$$arity=0);b.def(r,"$to_s",ya=function(){return"#<"+ +this.$class()+":0x"+this.$__id__().$to_s(16)+">"},ya.$$arity=0);b.def(r,"$catch",qa=function(a){var c=qa.$$p,e=c||D;c&&(qa.$$p=null);try{return b.yieldX(e,[])}catch(Ca){if(b.rescue(Ca,[q(K,"UncaughtThrowError")])){c=Ca;try{return c.$sym()["$=="](a)?c.$arg():this.$raise()}finally{b.pop_exception()}}else throw Ca;}},qa.$$arity=1);b.def(r,"$throw",Ga=function(a){var c=b.slice.call(arguments,0,arguments.length);return this.$raise(q(K,"UncaughtThrowError"),c)},Ga.$$arity=-1);b.def(r,"$open",Fa=function(a){var c= +Fa.$$p,e=c||D;c&&(Fa.$$p=null);c&&(Fa.$$p=null);c=b.slice.call(arguments,0,arguments.length);return w(q(K,"File"),"open",b.to_a(c),e.$to_proc())},Fa.$$arity=-1);b.def(r,"$yield_self",Ha=function(){var a,c=Ha.$$p,e=c||D;c&&(Ha.$$p=null);return e===D?w(this,"enum_for",["yield_self"],(a=function(){return 1},a.$$s=this,a.$$arity=0,a)):b.yield1(e,this)},Ha.$$arity=0)})(B[0],B);return function(b,$super,g){b=r(b,$super,"Object");g=[b].concat(g);return b.$include(q(g,"Kernel"))}(B[0],null,B)}; +Opal.modules["corelib/error"]=function(b){var t=[],B=b.nil,D=b.const_get_relative,v=b.klass,q=b.send,g=b.truthy,H=b.module,l=b.hash2;b.add_stubs("$new $clone $to_s $empty? $class $raise $+ $attr_reader $[] $> $length $inspect".split(" "));(function(l,$super,r){l=v(l,$super,"Exception");var t=[l].concat(r),F,K,x,k,H,P,E,I,ea;l.$$prototype.message=B;b.defs(l,"$new",F=function(a){var d=b.slice.call(arguments,0,arguments.length);var u=0"},E.$$arity=0);b.def(l,"$set_backtrace",I=function(a){var b=!0,u;if(a=== +B)this.backtrace=B;else if(a.$$is_string)this.backtrace=[a];else{if(a.$$is_array){var k=0;for(u=a.length;k"](1);g(r)&&(this.arg=l["$[]"](1));return q(this,b.find_super_dispatcher(this,"initialize",t,!1),["uncaught throw "+this.sym.$inspect()],null)},t.$$arity=1),B)&&"initialize"})(t[0],D(t,"ArgumentError"),t);(function(g,$super,l){g=v(g,$super,"NameError");[g].concat(l);var r;g.$attr_reader("name");return(b.def(g,"$initialize",r=function(g, +l){r.$$p&&(r.$$p=null);null==l&&(l=B);q(this,b.find_super_dispatcher(this,"initialize",r,!1),[g],null);return this.name=l},r.$$arity=-2),B)&&"initialize"})(t[0],null,t);(function(g,$super,l){g=v(g,$super,"NoMethodError");[g].concat(l);var r;g.$attr_reader("args");return(b.def(g,"$initialize",r=function(g,l,t){r.$$p&&(r.$$p=null);null==l&&(l=B);null==t&&(t=[]);q(this,b.find_super_dispatcher(this,"initialize",r,!1),[g,l],null);return this.args=t},r.$$arity=-2),B)&&"initialize"})(t[0],null,t);(function(b, +$super,g){b=v(b,$super,"StopIteration");[b].concat(g);return b.$attr_reader("result")})(t[0],null,t);(function(t,$super,r){t=v(t,$super,"KeyError");var F=[t].concat(r),M,K,x;t.$$prototype.receiver=t.$$prototype.key=B;b.def(t,"$initialize",M=function(g,r){M.$$p&&(M.$$p=null);if(null==r)r=l([],{});else if(!r.$$is_hash)throw b.ArgumentError.$new("expected kwargs");var k=r.$$smap.receiver;null==k&&(k=B);r=r.$$smap.key;null==r&&(r=B);q(this,b.find_super_dispatcher(this,"initialize",M,!1),[g],null);this.receiver= +k;return this.key=r},M.$$arity=-2);b.def(t,"$receiver",K=function(){var b;return g(b=this.receiver)?b:this.$raise(D(F,"ArgumentError"),"no receiver is available")},K.$$arity=0);return(b.def(t,"$key",x=function(){var b;return g(b=this.key)?b:this.$raise(D(F,"ArgumentError"),"no key is available")},x.$$arity=0),B)&&"key"})(t[0],null,t);return function(b,g){b=[H(b,"JS")].concat(g);[v(b[0],null,"Error")].concat(b)}(t[0],t)}; +Opal.modules["corelib/constants"]=function(b){var t=[],B=b.const_get_relative;b.const_set(t[0],"RUBY_PLATFORM","opal");b.const_set(t[0],"RUBY_ENGINE","opal");b.const_set(t[0],"RUBY_VERSION","2.5.1");b.const_set(t[0],"RUBY_ENGINE_VERSION","0.11.99.dev");b.const_set(t[0],"RUBY_RELEASE_DATE","2018-12-25");b.const_set(t[0],"RUBY_PATCHLEVEL",0);b.const_set(t[0],"RUBY_REVISION",0);b.const_set(t[0],"RUBY_COPYRIGHT","opal - Copyright (C) 2013-2018 Adam Beynon and the Opal contributors");return b.const_set(t[0], +"RUBY_DESCRIPTION","opal "+B(t,"RUBY_ENGINE_VERSION")+" ("+B(t,"RUBY_RELEASE_DATE")+" revision "+B(t,"RUBY_REVISION")+")")};Opal.modules["opal/base"]=function(b){var t=b.top;b.add_stubs(["$require"]);t.$require("corelib/runtime");t.$require("corelib/helpers");t.$require("corelib/module");t.$require("corelib/class");t.$require("corelib/basic_object");t.$require("corelib/kernel");t.$require("corelib/error");return t.$require("corelib/constants")}; +Opal.modules["corelib/nil"]=function(b){var t=[],B=b.nil,D=b.const_get_relative,v=b.klass,q=b.hash2,g=b.truthy;b.add_stubs("$raise $name $new $> $length $Rational".split(" "));(function(t,$super,F){t=v(t,$super,"NilClass");var w=[t].concat(F),r,H,M,K,x,k,ma,P,E,I,ea,Y,a,d,u,C,J,n;t.$$prototype.$$meta=t;(function(a,c){var d=[a].concat(c),p;b.def(a,"$allocate",p=function(){return this.$raise(D(d,"TypeError"),"allocator undefined for "+this.$name())},p.$$arity=0);b.udef(a,"$new");return B})(b.get_singleton_class(t), +w);b.def(t,"$!",r=function(){return!0},r.$$arity=0);b.def(t,"$&",H=function(a){return!1},H.$$arity=1);b.def(t,"$|",M=function(a){return!1!==a&&a!==B},M.$$arity=1);b.def(t,"$^",K=function(a){return!1!==a&&a!==B},K.$$arity=1);b.def(t,"$==",x=function(a){return a===B},x.$$arity=1);b.def(t,"$dup",k=function(){return B},k.$$arity=0);b.def(t,"$clone",ma=function(a){if(null==a)q([],{});else if(!a.$$is_hash)throw b.ArgumentError.$new("expected kwargs");return B},ma.$$arity=-1);b.def(t,"$inspect",P=function(){return"nil"}, +P.$$arity=0);b.def(t,"$nil?",E=function(){return!0},E.$$arity=0);b.def(t,"$singleton_class",I=function(){return D(w,"NilClass")},I.$$arity=0);b.def(t,"$to_a",ea=function(){return[]},ea.$$arity=0);b.def(t,"$to_h",Y=function(){return b.hash()},Y.$$arity=0);b.def(t,"$to_i",a=function(){return 0},a.$$arity=0);b.alias(t,"to_f","to_i");b.def(t,"$to_s",d=function(){return""},d.$$arity=0);b.def(t,"$to_c",u=function(){return D(w,"Complex").$new(0,0)},u.$$arity=0);b.def(t,"$rationalize",C=function(a){var c= +b.slice.call(arguments,0,arguments.length).$length();c="number"===typeof c?1"](1);g(c)&&this.$raise(D(w,"ArgumentError"));return this.$Rational(0,1)},C.$$arity=-1);b.def(t,"$to_r",J=function(){return this.$Rational(0,1)},J.$$arity=0);return(b.def(t,"$instance_variables",n=function(){return[]},n.$$arity=0),B)&&"instance_variables"})(t[0],null,t);return b.const_set(t[0],"NIL",B)}; +Opal.modules["corelib/boolean"]=function(b){var t=[],B=b.nil,D=b.const_get_relative,v=b.klass,q=b.hash2;b.add_stubs(["$raise","$name"]);(function(g,$super,l){g=v(g,$super,"Boolean");var t=[g].concat(l),w,r,N,M,K,x,k,ma,P,E;b.defineProperty(g.$$prototype,"$$is_boolean",!0);b.defineProperty(g.$$prototype,"$$meta",g);(function(g,k){var l=[g].concat(k),a;b.def(g,"$allocate",a=function(){return this.$raise(D(l,"TypeError"),"allocator undefined for "+this.$name())},a.$$arity=0);b.udef(g,"$new");return B})(b.get_singleton_class(g), +t);b.def(g,"$__id__",w=function(){return this.valueOf()?2:0},w.$$arity=0);b.alias(g,"object_id","__id__");b.def(g,"$!",r=function(){return 1!=this},r.$$arity=0);b.def(g,"$&",N=function(b){return 1==this?!1!==b&&b!==B:!1},N.$$arity=1);b.def(g,"$|",M=function(b){return 1==this?!0:!1!==b&&b!==B},M.$$arity=1);b.def(g,"$^",K=function(b){return 1==this?!1===b||b===B:!1!==b&&b!==B},K.$$arity=1);b.def(g,"$==",x=function(b){return 1==this===b.valueOf()},x.$$arity=1);b.alias(g,"equal?","==");b.alias(g,"eql?", +"==");b.def(g,"$singleton_class",k=function(){return D(t,"Boolean")},k.$$arity=0);b.def(g,"$to_s",ma=function(){return 1==this?"true":"false"},ma.$$arity=0);b.def(g,"$dup",P=function(){return this},P.$$arity=0);return(b.def(g,"$clone",E=function(g){if(null==g)q([],{});else if(!g.$$is_hash)throw b.ArgumentError.$new("expected kwargs");return this},E.$$arity=-1),B)&&"clone"})(t[0],Boolean,t);b.const_set(t[0],"TrueClass",D(t,"Boolean"));b.const_set(t[0],"FalseClass",D(t,"Boolean"));b.const_set(t[0], +"TRUE",!0);return b.const_set(t[0],"FALSE",!1)}; +Opal.modules["corelib/comparable"]=function(b){function t(b,g){return"number"===typeof b&&"number"===typeof g?b>g:b["$>"](g)}function B(b,g){return"number"===typeof b&&"number"===typeof g?b $< $equal? $<=> $normalize $raise $class".split(" "));return function(l,F){l=g(l,"Comparable");var w=[l].concat(F),r,D,M,K,x,k,ma,P;b.defs(l,"$normalize",r=function(b){return H(q(w,"Integer")["$==="](b))?b:H(t(b,0))? +1:H(B(b,0))?-1:0},r.$$arity=1);b.def(l,"$==",D=function(g){var k=v;try{return H(this["$equal?"](g))?!0:this["$<=>"]==b.Kernel["$<=>"]?!1:this.$$comparable?(delete this.$$comparable,!1):H(k=this["$<=>"](g))?0==q(w,"Comparable").$normalize(k):!1}catch(ea){if(b.rescue(ea,[q(w,"StandardError")]))try{return!1}finally{b.pop_exception()}else throw ea;}},D.$$arity=1);b.def(l,"$>",M=function(b){var g;H(g=this["$<=>"](b))||this.$raise(q(w,"ArgumentError"),"comparison of "+this.$class()+" with "+b.$class()+ +" failed");return 0=",K=function(b){var g;H(g=this["$<=>"](b))||this.$raise(q(w,"ArgumentError"),"comparison of "+this.$class()+" with "+b.$class()+" failed");return 0<=q(w,"Comparable").$normalize(g)},K.$$arity=1);b.def(l,"$<",x=function(b){var g;H(g=this["$<=>"](b))||this.$raise(q(w,"ArgumentError"),"comparison of "+this.$class()+" with "+b.$class()+" failed");return 0>q(w,"Comparable").$normalize(g)},x.$$arity=1);b.def(l,"$<=",k=function(b){var g; +H(g=this["$<=>"](b))||this.$raise(q(w,"ArgumentError"),"comparison of "+this.$class()+" with "+b.$class()+" failed");return 0>=q(w,"Comparable").$normalize(g)},k.$$arity=1);b.def(l,"$between?",ma=function(b,g){return B(this,b)||t(this,g)?!1:!0},ma.$$arity=2);b.def(l,"$clamp",P=function(b,g){var k=b["$<=>"](g);H(k)||this.$raise(q(w,"ArgumentError"),"comparison of "+b.$class()+" with "+g.$class()+" failed");H(t(q(w,"Comparable").$normalize(k),0))&&this.$raise(q(w,"ArgumentError"),"min argument must be smaller than max argument"); +return H(B(q(w,"Comparable").$normalize(this["$<=>"](b)),0))?b:H(t(q(w,"Comparable").$normalize(this["$<=>"](g)),0))?g:this},P.$$arity=2)}(D[0],D)}; +Opal.modules["corelib/regexp"]=function(b){var t=[],B=b.nil,D=b.const_get_relative,v=b.klass,q=b.send,g=b.truthy,H=b.gvars;b.add_stubs("$nil? $[] $raise $escape $options $to_str $new $join $coerce_to! $! $match $coerce_to? $begin $coerce_to $=~ $attr_reader $=== $inspect $to_a".split(" "));(function(b,$super,g){[v(b,$super,"RegexpError")].concat(g);return B})(t[0],D(t,"StandardError"),t);(function(l,$super,t){l=v(l,$super,"Regexp");var r=[l].concat(t),w,M,K,x,k,ma,P,E,I,ea;b.const_set(r[0],"IGNORECASE", +1);b.const_set(r[0],"EXTENDED",2);b.const_set(r[0],"MULTILINE",4);b.defineProperty(l.$$prototype,"$$is_regexp",!0);(function(k,a){var d=[k].concat(a),u,C,l,n,h;b.def(k,"$allocate",u=function(){var a=u.$$p,d;a&&(u.$$p=null);var p=0;var h=arguments.length;for(d=Array(h);pa&&(a+=g.length,0>a))return H["~"]=B;for(var C=b.global_regexp(this);;){d=C.exec(g);if(null===d)return H["~"]=B;if(d.index>=a)return H["~"]=D(r,"MatchData").$new(C,d),u===B?H["~"]:b.yield1(u,H["~"]);C.lastIndex= +d.index+1}},k.$$arity=-2);b.def(l,"$match?",ma=function(g,a){this.uninitialized&&this.$raise(D(r,"TypeError"),"uninitialized Regexp");if(void 0===a)return g===B?!1:this.test(D(r,"Opal").$coerce_to(g,D(r,"String"),"to_str"));a=D(r,"Opal").$coerce_to(a,D(r,"Integer"),"to_int");if(g===B)return!1;g=D(r,"Opal").$coerce_to(g,D(r,"String"),"to_str");if(0>a&&(a+=g.length,0>a))return!1;g=b.global_regexp(this).exec(g);return null===g||g.index"},E.$$arity=0);b.def(l,"$length",I=function(){return this.matches.length},I.$$arity=0);b.alias(l,"size","length");b.def(l,"$to_a",ea=function(){return this.matches},ea.$$arity=0);b.def(l,"$to_s",Y=function(){return this.matches[0]},Y.$$arity=0);return(b.def(l,"$values_at",a=function(a){var d=b.slice.call(arguments,0,arguments.length);var g,k=[];for(g=0;gn&&(n+=this.matches.length,0>n)){k.push(B);continue}k.push(this.matches[n])}return k},a.$$arity=-1),B)&&"values_at"}(t[0],null,t)}; +Opal.modules["corelib/string"]=function(b){function t(b,g){return"number"===typeof b&&"number"===typeof g?b/g:b["$/"](g)}function B(b,g){return"number"===typeof b&&"number"===typeof g?b+g:b["$+"](g)}var D=b.top,v=[],q=b.nil,g=b.const_get_relative,H=b.klass,l=b.truthy,F=b.send,w=b.gvars;b.add_stubs("$require $include $coerce_to? $coerce_to $raise $=== $format $to_s $respond_to? $to_str $<=> $== $=~ $new $force_encoding $casecmp $empty? $ljust $ceil $/ $+ $rjust $floor $to_a $each_char $to_proc $coerce_to! $copy_singleton_methods $initialize_clone $initialize_dup $enum_for $size $chomp $[] $to_i $each_line $class $match $match? $captures $proc $succ $escape".split(" ")); +D.$require("corelib/comparable");D.$require("corelib/regexp");(function(r,$super,v){function M(a){function b(a){var b="",c,e=a.length;for(c=0;cf&&x.$raise(g(k,"ArgumentError"),'invalid range "'+d+"-"+f+'" in string transliteration');for(d+=1;da&&this.$raise(g(k,"ArgumentError"),"negative argument");if(0===a)return this.$$cast("");var b="",c=this.toString();for(268435456<=c.length*a&&this.$raise(g(k,"RangeError"),"multiply count must not overflow maximum string size");;){1===(a&1)&&(b+=c);a>>>=1;if(0===a)break;c+=c}return this.$$cast(b)},Y.$$arity=1);b.def(x,"$+",a=function(a){a=g(k,"Opal").$coerce_to(a,g(k,"String"),"to_str");return this+ +a.$to_s()},a.$$arity=1);b.def(x,"$<=>",d=function(a){if(l(a["$respond_to?"]("to_str")))return a=a.$to_str().$to_s(),this>a?1:this"](this);return a===q?q:0a?1:0},d.$$arity=1);b.def(x,"$==",u=function(a){return a.$$is_string?this.toString()===a.toString():g(k,"Opal")["$respond_to?"](a,"to_str")?a["$=="](this):!1},u.$$arity=1);b.alias(x,"eql?","==");b.alias(x,"===","==");b.def(x,"$=~",C=function(a){a.$$is_string&&this.$raise(g(k,"TypeError"),"type mismatch: String given");return a["$=~"](this)}, +C.$$arity=1);b.def(x,"$[]",J=function(a,b){var c=this.length;if(a.$$is_range){var e=a.excl;b=g(k,"Opal").$coerce_to(a.end,g(k,"Integer"),"to_int");a=g(k,"Opal").$coerce_to(a.begin,g(k,"Integer"),"to_int");if(Math.abs(a)>c)return q;0>a&&(a+=c);0>b&&(b+=c);e||(b+=1);b-=a;0>b&&(b=0);return this.$$cast(this.substr(a,b))}if(a.$$is_string)return null!=b&&this.$raise(g(k,"TypeError")),-1!==this.indexOf(a)?this.$$cast(a):q;if(a.$$is_regexp){c=this.match(a);if(null===c)return w["~"]=q;w["~"]=g(k,"MatchData").$new(a, +c);if(null==b)return this.$$cast(c[0]);b=g(k,"Opal").$coerce_to(b,g(k,"Integer"),"to_int");return 0>b&&-ba&&(a+=c);if(null==b)return a>=c||0>a?q:this.$$cast(this.substr(a,1));b=g(k,"Opal").$coerce_to(b,g(k,"Integer"),"to_int");return 0>b||a>c||0>a?q:this.$$cast(this.substr(a,b))},J.$$arity=-2);b.alias(x,"byteslice","[]");b.def(x,"$b",n=function(){return this.$force_encoding("binary")}, +n.$$arity=0);b.def(x,"$capitalize",h=function(){return this.$$cast(this.charAt(0).toUpperCase()+this.substr(1).toLowerCase())},h.$$arity=0);b.def(x,"$casecmp",c=function(a){var b=this;if(!l(a["$respond_to?"]("to_str")))return q;a=g(k,"Opal").$coerce_to(a,g(k,"String"),"to_str").$to_s();var c=/^[\x00-\x7F]*$/;c.test(b)&&c.test(a)&&(b=b.toLowerCase(),a=a.toLowerCase());return b["$<=>"](a)},c.$$arity=1);b.def(x,"$casecmp?",z=function(a){a=this.$casecmp(a);return a===q?q:0===a},z.$$arity=1);b.def(x,"$center", +p=function(a,b){null==b&&(b=" ");a=g(k,"Opal").$coerce_to(a,g(k,"Integer"),"to_int");b=g(k,"Opal").$coerce_to(b,g(k,"String"),"to_str").$to_s();l(b["$empty?"]())&&this.$raise(g(k,"ArgumentError"),"zero width padding");if(l(a<=this.length))return this;var c=this.$ljust(t(B(a,this.length),2).$ceil(),b);a=this.$rjust(t(B(a,this.length),2).$floor(),b);return this.$$cast(a+c.slice(this.length))},p.$$arity=-2);b.def(x,"$chars",T=function(){var a=T.$$p,b=a||q;a&&(T.$$p=null);a&&(T.$$p=null);return l(b)? +F(this,"each_char",[],b.$to_proc()):this.$each_char().$to_a()},T.$$arity=0);b.def(x,"$chomp",O=function(a){null==w["/"]&&(w["/"]=q);null==a&&(a=w["/"]);if(l(a===q||0===this.length))return this;a=g(k,"Opal")["$coerce_to!"](a,g(k,"String"),"to_str").$to_s();var b;"\n"===a?b=this.replace(/\r?\n?$/,""):""===a?b=this.replace(/(\r?\n)+$/,""):this.length>=a.length&&this.substr(this.length-a.length,a.length)===a&&(b=this.substr(0,this.length-a.length));return null!=b?this.$$cast(b):this},O.$$arity=-1);b.def(x, +"$chop",m=function(){var a=this.length;a=1>=a?"":"\n"===this.charAt(a-1)&&"\r"===this.charAt(a-2)?this.substr(0,a-2):this.substr(0,a-1);return this.$$cast(a)},m.$$arity=0);b.def(x,"$chr",e=function(){return this.charAt(0)},e.$$arity=0);b.def(x,"$clone",f=function(){var a=this.slice();a.$copy_singleton_methods(this);a.$initialize_clone(this);return a},f.$$arity=0);b.def(x,"$dup",W=function(){var a=this.slice();a.$initialize_dup(this);return a},W.$$arity=0);b.def(x,"$count",U=function(a){var c=b.slice.call(arguments, +0,arguments.length);0===c.length&&this.$raise(g(k,"ArgumentError"),"ArgumentError: wrong number of arguments (0 for 1+)");c=M(c);return null===c?0:this.length-this.replace(new RegExp(c,"g"),"").length},U.$$arity=-1);b.def(x,"$delete",ja=function(a){var c=b.slice.call(arguments,0,arguments.length);0===c.length&&this.$raise(g(k,"ArgumentError"),"ArgumentError: wrong number of arguments (0 for 1+)");c=M(c);return null===c?this:this.$$cast(this.replace(new RegExp(c,"g"),""))},ja.$$arity=-1);b.def(x,"$delete_prefix", +L=function(a){a.$$is_string||(a=g(k,"Opal").$coerce_to(a,g(k,"String"),"to_str"));return this.slice(0,a.length)===a?this.$$cast(this.slice(a.length)):this},L.$$arity=1);b.def(x,"$delete_suffix",S=function(a){a.$$is_string||(a=g(k,"Opal").$coerce_to(a,g(k,"String"),"to_str"));return this.slice(this.length-a.length)===a?this.$$cast(this.slice(0,this.length-a.length)):this},S.$$arity=1);b.def(x,"$downcase",da=function(){return this.$$cast(this.toLowerCase())},da.$$arity=0);b.def(x,"$each_char",y=function(){var a= +y.$$p,c=a||q,e;a&&(y.$$p=null);a&&(y.$$p=null);if(c===q)return F(this,"enum_for",["each_char"],(e=function(){return(e.$$s||this).$size()},e.$$s=this,e.$$arity=0,e));a=0;for(var f=this.length;a=d.length&&this.substr(this.length-d.length,d.length)==d)return!0}return!1},sa.$$arity=-1);b.alias(x,"equal?","===");b.def(x,"$gsub",ta=function(a,c){var e=ta.$$p,f=e||q,d=this;e&&(ta.$$p=null);e&&(ta.$$p=null);if(void 0===c&&f===q)return d.$enum_for("gsub",a);e="";var m=q,p=0;a.$$is_regexp?a=b.global_multiline_regexp(a):(a=g(k,"Opal").$coerce_to(a,g(k,"String"),"to_str"),a=new RegExp(a.replace(/[.*+?^${}()|[\]\\]/g, +"\\$&"),"gm"));for(var R;;){var h=a.exec(d);if(null===h){w["~"]=q;e+=d.slice(p);break}m=g(k,"MatchData").$new(a,h);if(void 0===c){R=a.lastIndex;var n=f(h[0]);a.lastIndex=R}else c.$$is_hash?n=c["$[]"](h[0]).$to_s():(c.$$is_string||(c=g(k,"Opal").$coerce_to(c,g(k,"String"),"to_str")),n=c.replace(/([\\]+)([0-9+&`'])/g,function(a,b,c){if(0===b.length%2)return a;switch(c){case "+":for(a=h.length-1;0c&&(c+=this.length,0>c))return q;if(a.$$is_regexp)for(e=b.global_multiline_regexp(a);;){a=e.exec(this);if(null===a){w["~"]=q;c=-1;break}if(a.index>=c){w["~"]=g(k,"MatchData").$new(e,a);c=a.index;break}e.lastIndex=a.index+1}else a=g(k,"Opal").$coerce_to(a,g(k,"String"),"to_str"),c=0===a.length&&c>this.length?-1:this.indexOf(a, +c);return-1===c?q:c},X.$$arity=-2);b.def(x,"$inspect",Aa=function(){var a={"\u0007":"\\a","\u001b":"\\e","\b":"\\b","\t":"\\t","\n":"\\n","\f":"\\f","\r":"\\r","\x0B":"\\v",'"':'\\"',"\\":"\\\\"};return'"'+this.replace(/[\\"\x00-\x1f\u007F-\u009F\u0600-\u0604\u070f\u17b4\u17b5\u200c-\u200f\u2028-\u202f\u2060-\u206f\ufeff\ufff0-\uffff]/g,function(b){return a[b]||"\\u"+("0000"+b.charCodeAt(0).toString(16).toUpperCase()).slice(-4)}).replace(/#[\$@\{]/g,"\\$&")+'"'},Aa.$$arity=0);b.def(x,"$intern",La= +function(){return this.toString()},La.$$arity=0);b.def(x,"$lines",Ba=function(a){var b=Ba.$$p,c=b||q;null==w["/"]&&(w["/"]=q);b&&(Ba.$$p=null);b&&(Ba.$$p=null);null==a&&(a=w["/"]);a=F(this,"each_line",[a],c.$to_proc());return l(c)?this:a.$to_a()},Ba.$$arity=-1);b.def(x,"$length",za=function(){return this.length},za.$$arity=0);b.def(x,"$ljust",xa=function(a,b){null==b&&(b=" ");a=g(k,"Opal").$coerce_to(a,g(k,"Integer"),"to_int");b=g(k,"Opal").$coerce_to(b,g(k,"String"),"to_str").$to_s();l(b["$empty?"]())&& +this.$raise(g(k,"ArgumentError"),"zero width padding");if(l(a<=this.length))return this;var c=-1,e="";for(a-=this.length;++c=f||65<=f&&90>=f||97<=f&&122>=f)switch(f){case 57:e=!0;f=48;break;case 90:e=!0;f=65;break;case 122:e=!0;f=97;break;default:e=!1,f+=1}else-1===c?255===f?(e=!0,f=0):(e=!1,f+=1):e=!0;b=b.slice(0,a)+String.fromCharCode(f)+b.slice(a+1);if(e&&(0===a||a===c)){switch(f){case 65:break;case 97:break;default:f+=1}b=0===a?String.fromCharCode(f)+ +b:b.slice(0,a)+String.fromCharCode(f)+b.slice(a);e=!1}if(!e)break}return this.$$cast(b)},Na.$$arity=0);b.def(x,"$oct",ua=function(){var a=this;var b=8;if(/^\s*_/.test(a))return 0;a=a.replace(/^(\s*[+-]?)(0[bodx]?)(.+)$/i,function(a,c,e,f){switch(f.charAt(0)){case "+":case "-":return a;case "0":if("x"===f.charAt(1)&&"0x"===e)return a}switch(e){case "0b":b=2;break;case "0":case "0o":b=8;break;case "0d":b=10;break;case "0x":b=16}return c+f});a=parseInt(a.replace(/_(?!_)/g,""),b);return isNaN(a)?0:a}, +ua.$$arity=0);b.def(x,"$ord",Pa=function(){return this.charCodeAt(0)},Pa.$$arity=0);b.def(x,"$partition",ba=function(a){if(a.$$is_regexp){var b=a.exec(this);null===b?b=-1:(g(k,"MatchData").$new(a,b),a=b[0],b=b.index)}else a=g(k,"Opal").$coerce_to(a,g(k,"String"),"to_str"),b=this.indexOf(a);return-1===b?[this,"",""]:[this.slice(0,b),this.slice(b,b+a.length),this.slice(b+a.length)]},ba.$$arity=1);b.def(x,"$reverse",ka=function(){return this.split("").reverse().join("")},ka.$$arity=0);b.def(x,"$rindex", +Ua=function(a,c){if(void 0===c)c=this.length;else if(c=g(k,"Opal").$coerce_to(c,g(k,"Integer"),"to_int"),0>c&&(c+=this.length,0>c))return q;if(a.$$is_regexp){var e=null;for(a=b.global_multiline_regexp(a);;){var f=a.exec(this);if(null===f||f.index>c)break;e=f;a.lastIndex=e.index+1}null===e?(w["~"]=q,c=-1):(g(k,"MatchData").$new(a,e),c=e.index)}else a=g(k,"Opal").$coerce_to(a,g(k,"String"),"to_str"),c=this.lastIndexOf(a,c);return-1===c?q:c},Ua.$$arity=-2);b.def(x,"$rjust",Ma=function(a,b){null==b&& +(b=" ");a=g(k,"Opal").$coerce_to(a,g(k,"Integer"),"to_int");b=g(k,"Opal").$coerce_to(b,g(k,"String"),"to_str").$to_s();l(b["$empty?"]())&&this.$raise(g(k,"ArgumentError"),"zero width padding");if(l(a<=this.length))return this;a=Math.floor(a-this.length);var c=Array(Math.floor(a/b.length)+1).join(b);return this.$$cast(c+b.slice(0,a-c.length)+this)},Ma.$$arity=-2);b.def(x,"$rpartition",Ra=function(a){var c;if(a.$$is_regexp){var e=null;for(c=b.global_multiline_regexp(a);;){var f=c.exec(this);if(null=== +f)break;e=f;c.lastIndex=e.index+1}null===e?e=-1:(g(k,"MatchData").$new(c,e),a=e[0],e=e.index)}else a=g(k,"Opal").$coerce_to(a,g(k,"String"),"to_str"),e=this.lastIndexOf(a);return-1===e?["","",this]:[this.slice(0,e),this.slice(e,e+a.length),this.slice(e+a.length)]},Ra.$$arity=1);b.def(x,"$rstrip",$a=function(){return this.replace(/[\s\u0000]*$/,"")},$a.$$arity=0);b.def(x,"$scan",ia=function(a){var c=ia.$$p,e=c||q;c&&(ia.$$p=null);c&&(ia.$$p=null);c=[];var f=q,d;a.$$is_regexp?a=b.global_multiline_regexp(a): +(a=g(k,"Opal").$coerce_to(a,g(k,"String"),"to_str"),a=new RegExp(a.replace(/[.*+?^${}()|[\]\\]/g,"\\$&"),"gm"));for(;null!=(d=a.exec(this));)f=g(k,"MatchData").$new(a,d),e===q?1==d.length?c.push(d[0]):c.push(f.$captures()):1==d.length?e(d[0]):e.call(this,f.$captures()),a.lastIndex===d.index&&(a.lastIndex+=1);w["~"]=f;return e!==q?this:c},ia.$$arity=1);b.alias(x,"size","length");b.alias(x,"slice","[]");b.def(x,"$split",va=function(a,c){function e(){for(h=0;hc){if(null!==n&&""===n[0]&&-1===a.source.indexOf("(?="))for(h=0,a=n.length;h=m.length)return e(),m;for(h=0;null!==n;){h++;p=a.lastIndex;if(h+1===c)break;n=a.exec(f)}m.splice(c-1,m.length-1,f.slice(p));e();return m},va.$$arity=-1);b.def(x,"$squeeze",fa=function(a){var c= +b.slice.call(arguments,0,arguments.length);if(0===c.length)return this.$$cast(this.replace(/(.)\1+/g,"$1"));c=M(c);return null===c?this:this.$$cast(this.replace(new RegExp("("+c+")\\1+","g"),"$1"))},fa.$$arity=-1);b.def(x,"$start_with?",wa=function(a){var c=b.slice.call(arguments,0,arguments.length);for(var e=0,f=c.length;e=a?b:b&Math.pow(2,a)-1},Ga.$$arity=-1);b.def(x,"$swapcase",Fa=function(){var a=this.replace(/([a-z]+)|([A-Z]+)/g,function(a,b,c){return b?a.toUpperCase():a.toLowerCase()});return this.constructor===String?a:this.$class().$new(a)},Fa.$$arity= +0);b.def(x,"$to_f",Ha=function(){if("_"===this.charAt(0))return 0;var a=parseFloat(this.replace(/_/g,""));return isNaN(a)||Infinity==a||-Infinity==a?0:a},Ha.$$arity=0);b.def(x,"$to_i",ab=function(a){null==a&&(a=10);var b=this.toLowerCase(),c=g(k,"Opal").$coerce_to(a,g(k,"Integer"),"to_int");(1===c||0>c||36y&&this.$raise(g(k,"ArgumentError"), +'invalid range "'+String.fromCharCode(n)+"-"+String.fromCharCode(y)+'" in string transliteration');for(n+=1;ny&&this.$raise(g(k,"ArgumentError"),'invalid range "'+String.fromCharCode(n)+ +"-"+String.fromCharCode(y)+'" in string transliteration');for(n+=1;ny&&this.$raise(g(k,"ArgumentError"),'invalid range "'+String.fromCharCode(n)+"-"+String.fromCharCode(y)+'" in string transliteration'); +for(n+=1;ny&&this.$raise(g(k,"ArgumentError"),'invalid range "'+String.fromCharCode(n)+"-"+String.fromCharCode(y)+'" in string transliteration');for(n+=1;ng:b["$>"](g)}function B(b,g){return"number"===typeof b&&"number"===typeof g?b+g:b["$+"](g)}function D(b,g){return"number"===typeof b&&"number"===typeof g?b-g:b["$-"](g)}function v(b,g){return"number"===typeof b&&"number"===typeof g?b<=g:b["$<="](g)}var q=[],g=b.nil,H=b.const_get_qualified,l=b.const_get_relative,F=b.module,w=b.truthy,r=b.send,N=b.falsy,M=b.hash2,K=b.lambda;b.add_stubs("$each $public_send $destructure $to_enum $enumerator_size $new $yield $raise $slice_when $! $enum_for $flatten $map $warn $proc $== $nil? $respond_to? $coerce_to! $> $* $coerce_to $try_convert $< $+ $- $ceil $/ $size $__send__ $length $<= $[] $push $<< $[]= $=== $inspect $<=> $first $reverse $sort $to_proc $compare $call $dup $to_a $sort! $map! $key? $values $zip".split(" ")); +return function(q,k){function x(a){0===a.length&&(a=[g]);1=a)))return g;var d=[],m;this.$each.$$p=function(){var a=l(P,"Opal").$destructure(arguments);b.yield1(e,a);d.push(a)};this.$each();if(0===d.length)return g;if(a===g)for(;;)for(c=0,m=d.length;ca)&&this.$raise(l(P,"ArgumentError"), +"attempt to drop negative size");var b=[],c=0;this.$each.$$p=function(){a<=c&&b.push(l(P,"Opal").$destructure(arguments));c++};this.$each();return b},n.$$arity=1);b.def(q,"$drop_while",h=function(){var a=h.$$p,c=a||g;a&&(h.$$p=null);a&&(h.$$p=null);if(c===g)return this.$enum_for("drop_while");var e=[],f=!0;this.$each.$$p=function(){var a=l(P,"Opal").$destructure(arguments);if(f){var d=b.yield1(c,a);N(d)&&(f=!1,e.push(a))}else e.push(a)};this.$each();return e},h.$$arity=0);b.def(q,"$each_cons",c=function(a){var e= +c.$$p,f=e||g,d;e&&(c.$$p=null);e&&(c.$$p=null);w(1!=arguments.length)&&this.$raise(l(P,"ArgumentError"),"wrong number of arguments ("+arguments.length+" for 1)");a=l(P,"Opal").$try_convert(a,l(P,"Integer"),"to_int");w(0>=a)&&this.$raise(l(P,"ArgumentError"),"invalid size");if(f===g)return r(this,"enum_for",["each_cons",a],(d=function(){var b;var c=(d.$$s||this).$enumerator_size();return w(c["$nil?"]())?g:w(w(b=c["$=="](0))?b:"number"===typeof c&&"number"===typeof a?ca&&m.shift();m.length==a&&b.yield1(f,m.slice(0,a))};this.$each();return g},c.$$arity=1);b.def(q,"$each_entry",z=function(a){var c=z.$$p,e=c||g,f;c&&(z.$$p=null);c&&(z.$$p=null);c=b.slice.call(arguments,0,arguments.length);if(e===g)return r(this,"to_enum",["each_entry"].concat(b.to_a(c)),(f=function(){return(f.$$s||this).$enumerator_size()},f.$$s=this,f.$$arity=0,f));this.$each.$$p= +function(){var a=l(P,"Opal").$destructure(arguments);b.yield1(e,a)};this.$each.apply(this,c);return this},z.$$arity=-1);b.def(q,"$each_slice",p=function(a){var c=p.$$p,e=c||g,f;c&&(p.$$p=null);c&&(p.$$p=null);a=l(P,"Opal").$coerce_to(a,l(P,"Integer"),"to_int");w(0>=a)&&this.$raise(l(P,"ArgumentError"),"invalid slice size");if(e===g)return r(this,"enum_for",["each_slice",a],(f=function(){var b=f.$$s||this;return w(b["$respond_to?"]("size"))?(b=b.$size(),("number"===typeof b&&"number"===typeof a?b/ +a:b["$/"](a)).$ceil()):g},f.$$s=this,f.$$arity=0,f));var d=[];this.$each.$$p=function(){var c=l(P,"Opal").$destructure(arguments);d.push(c);d.length===a&&(b.yield1(e,d),d=[])};this.$each();0a)&&this.$raise(l(P,"ArgumentError"),"attempt to take negative size");if(w(0==a))return[]; +d=0;r(this,"each",[],(e=function(c){var e=b.slice.call(arguments,0,arguments.length);f.push(l(P,"Opal").$destructure(e));if(w(a<=++d))b.ret(f);else return g},e.$$s=this,e.$$arity=-1,e));return f}catch(va){if(va===b.returner)return va.$v;throw va;}},W.$$arity=-1);b.alias(q,"flat_map","collect_concat");b.def(q,"$grep",U=function(a){var c=U.$$p,e=c||g,f,d=g;c&&(U.$$p=null);c&&(U.$$p=null);d=[];r(this,"each",[],(f=function(c){var f=b.slice.call(arguments,0,arguments.length);var m=x(f);if(!w(r(a,"__send__", +["==="].concat(b.to_a(m)))))return g;e!==g?(w(t(f.$length(),1))&&(f=[f]),f=b.yieldX(e,b.to_a(f))):w(v(f.$length(),1))&&(f=f["$[]"](0));return d.$push(f)},f.$$s=this,f.$$arity=-1,f));return d},U.$$arity=1);b.def(q,"$grep_v",ja=function(a){var c=ja.$$p,e=c||g,f,d=g;c&&(ja.$$p=null);c&&(ja.$$p=null);d=[];r(this,"each",[],(f=function(c){var f=b.slice.call(arguments,0,arguments.length);var m=x(f);if(w(r(a,"__send__",["==="].concat(b.to_a(m)))))return g;e!==g?(w(t(f.$length(),1))&&(f=[f]),f=b.yieldX(e, +b.to_a(f))):w(v(f.$length(),1))&&(f=f["$[]"](0));return d.$push(f)},f.$$s=this,f.$$arity=-1,f));return d},ja.$$arity=1);b.def(q,"$group_by",L=function(){var a=L.$$p,c=a||g,e,f,d=g,m=g;a&&(L.$$p=null);a&&(L.$$p=null);if(c===g)return r(this,"enum_for",["group_by"],(e=function(){return(e.$$s||this).$enumerator_size()},e.$$s=this,e.$$arity=0,e));d=M([],{});this.$each.$$p=function(){var a=l(P,"Opal").$destructure(arguments),e=b.yield1(c,a);(w(f=d["$[]"](e))?f:(m=[e,[]],r(d,"[]=",b.to_a(m)),m[D(m.length, +1)]))["$<<"](a)};this.$each();return d},L.$$arity=0);b.def(q,"$include?",S=function(a){try{var c;r(this,"each",[],(c=function(c){var e=b.slice.call(arguments,0,arguments.length);if(l(P,"Opal").$destructure(e)["$=="](a))b.ret(!0);else return g},c.$$s=this,c.$$arity=-1,c));return!1}catch(Ra){if(Ra===b.returner)return Ra.$v;throw Ra;}},S.$$arity=1);b.def(q,"$inject",da=function(a,c){var e=da.$$p,f=e||g;e&&(da.$$p=null);e&&(da.$$p=null);var d=a;f!==g&&void 0===c?this.$each.$$p=function(){var a=l(P,"Opal").$destructure(arguments); +void 0!==d&&(a=b.yieldX(f,[d,a]));d=a}:(void 0===c&&(l(P,"Symbol")["$==="](a)||this.$raise(l(P,"TypeError"),""+a.$inspect()+" is not a Symbol"),c=a,d=void 0),this.$each.$$p=function(){var a=l(P,"Opal").$destructure(arguments);d=void 0===d?a:d.$__send__(c,a)});this.$each();return void 0==d?g:d},da.$$arity=-1);b.def(q,"$lazy",y=function(){var a;return r(H(l(P,"Enumerator"),"Lazy"),"new",[this,this.$enumerator_size()],(a=function(a,c){null==a&&(a=g);var e=b.slice.call(arguments,1,arguments.length);return r(a, +"yield",b.to_a(e))},a.$$s=this,a.$$arity=-2,a))},y.$$arity=0);b.def(q,"$enumerator_size",ha=function(){return w(this["$respond_to?"]("size"))?this.$size():g},ha.$$arity=0);b.alias(q,"map","collect");b.def(q,"$max",ca=function(a){var c=ca.$$p,e=c||g,f=this;c&&(ca.$$p=null);c&&(ca.$$p=null);if(void 0===a||a===g){var d,m;f.$each.$$p=function(){var a=l(P,"Opal").$destructure(arguments);void 0===d?d=a:(m=e!==g?b.yieldX(e,[a,d]):a["$<=>"](d),m===g&&f.$raise(l(P,"ArgumentError"),"comparison failed"),0"](d)&& +(f=a,d=e)};this.$each();return void 0===f?g:f},sa.$$arity=0);b.alias(q,"member?","include?");b.def(q,"$min",ta=function(){var a=ta.$$p,b=a||g,c=this;a&&(ta.$$p=null);a&&(ta.$$p=null);var e;c.$each.$$p=b!==g?function(){var a=l(P,"Opal").$destructure(arguments);if(void 0===e)e=a;else{var f=b(a,e);f===g&&c.$raise(l(P,"ArgumentError"),"comparison failed");0>f&&(e=a)}}:function(){var a=l(P,"Opal").$destructure(arguments);void 0===e?e=a:0>l(P,"Opal").$compare(a,e)&&(e=a)};c.$each();return void 0===e?g: +e},ta.$$arity=0);b.def(q,"$min_by",oa=function(){var a=oa.$$p,c=a||g,e;a&&(oa.$$p=null);a&&(oa.$$p=null);if(!w(c))return r(this,"enum_for",["min_by"],(e=function(){return(e.$$s||this).$enumerator_size()},e.$$s=this,e.$$arity=0,e));var f,d;this.$each.$$p=function(){var a=l(P,"Opal").$destructure(arguments),e=b.yield1(c,a);void 0===f?(f=a,d=e):0>e["$<=>"](d)&&(f=a,d=e)};this.$each();return void 0===f?g:f},oa.$$arity=0);b.def(q,"$minmax",pa=function(){var a=pa.$$p,b=a||g,c,e,f=this;a&&(pa.$$p=null); +a&&(pa.$$p=null);b=w(c=b)?c:r(f,"proc",[],(e=function(a,b){null==a&&(a=g);null==b&&(b=g);return a["$<=>"](b)},e.$$s=f,e.$$arity=2,e));var d=g,m=g,p=!0;f.$each.$$p=function(){var a=l(P,"Opal").$destructure(arguments);if(p)d=m=a,p=!1;else{var c=b.$call(d,a);c===g?f.$raise(l(P,"ArgumentError"),"comparison failed"):0c&&(m=a)}};f.$each();return[d,m]},pa.$$arity=0);b.def(q,"$minmax_by",aa=function(){var a=aa.$$p;a&&(aa.$$p= +null);a&&(aa.$$p=null);return this.$raise(l(P,"NotImplementedError"))},aa.$$arity=0);b.def(q,"$none?",X=function(a){try{var c=X.$$p,e=c||g,f,d,m;c&&(X.$$p=null);c&&(X.$$p=null);w(void 0!==a)?r(this,"each",[],(f=function(c){var e=b.slice.call(arguments,0,arguments.length);e=x(e);if(w(r(a,"public_send",["==="].concat(b.to_a(e)))))b.ret(!1);else return g},f.$$s=this,f.$$arity=-1,f)):e!==g?r(this,"each",[],(d=function(a){var c=b.slice.call(arguments,0,arguments.length);if(w(b.yieldX(e,b.to_a(c))))b.ret(!1); +else return g},d.$$s=this,d.$$arity=-1,d)):r(this,"each",[],(m=function(a){var c=b.slice.call(arguments,0,arguments.length);c=l(P,"Opal").$destructure(c);if(w(c))b.ret(!1);else return g},m.$$s=this,m.$$arity=-1,m));return!0}catch(fa){if(fa===b.returner)return fa.$v;throw fa;}},X.$$arity=-1);b.def(q,"$one?",Aa=function(a){try{var c=Aa.$$p,e=c||g,f,d,m,p=g;c&&(Aa.$$p=null);c&&(Aa.$$p=null);p=0;w(void 0!==a)?r(this,"each",[],(f=function(c){var e=b.slice.call(arguments,0,arguments.length);e=x(e);if(w(r(a, +"public_send",["==="].concat(b.to_a(e)))))if(p=B(p,1),w(t(p,1)))b.ret(!1);else return g;else return g},f.$$s=this,f.$$arity=-1,f)):e!==g?r(this,"each",[],(d=function(a){var c=b.slice.call(arguments,0,arguments.length);if(!w(b.yieldX(e,b.to_a(c))))return g;p=B(p,1);if(w(t(p,1)))b.ret(!1);else return g},d.$$s=this,d.$$arity=-1,d)):r(this,"each",[],(m=function(a){var c=b.slice.call(arguments,0,arguments.length);if(!w(l(P,"Opal").$destructure(c)))return g;p=B(p,1);if(w(t(p,1)))b.ret(!1);else return g}, +m.$$s=this,m.$$arity=-1,m));return p["$=="](1)}catch(wa){if(wa===b.returner)return wa.$v;throw wa;}},Aa.$$arity=-1);b.def(q,"$partition",La=function(){var a=La.$$p,c=a||g,e;a&&(La.$$p=null);a&&(La.$$p=null);if(c===g)return r(this,"enum_for",["partition"],(e=function(){return(e.$$s||this).$enumerator_size()},e.$$s=this,e.$$arity=0,e));var f=[],d=[];this.$each.$$p=function(){var a=l(P,"Opal").$destructure(arguments),e=b.yield1(c,a);w(e)?f.push(a):d.push(a)};this.$each();return[f,d]},La.$$arity=0);b.alias(q, +"reduce","inject");b.def(q,"$reject",Ba=function(){var a=Ba.$$p,c=a||g,e;a&&(Ba.$$p=null);a&&(Ba.$$p=null);if(c===g)return r(this,"enum_for",["reject"],(e=function(){return(e.$$s||this).$enumerator_size()},e.$$s=this,e.$$arity=0,e));var f=[];this.$each.$$p=function(){var a=l(P,"Opal").$destructure(arguments),e=b.yield1(c,a);N(e)&&f.push(a)};this.$each();return f},Ba.$$arity=0);b.def(q,"$reverse_each",za=function(){var a=za.$$p,c=a||g,e;a&&(za.$$p=null);a&&(za.$$p=null);if(c===g)return r(this,"enum_for", +["reverse_each"],(e=function(){return(e.$$s||this).$enumerator_size()},e.$$s=this,e.$$arity=0,e));var f=[];this.$each.$$p=function(){f.push(arguments)};this.$each();for(a=f.length-1;0<=a;a--)b.yieldX(c,f[a]);return f},za.$$arity=0);b.alias(q,"select","find_all");b.def(q,"$slice_before",xa=function(a){var c=xa.$$p,e=c||g,f;c&&(xa.$$p=null);c&&(xa.$$p=null);w(void 0===a&&e===g)&&this.$raise(l(P,"ArgumentError"),"both pattern and block are given");w(void 0!==a&&e!==g||1"](b)},c.$$s=this,c.$$arity=2,c)));return r(e,"sort",[],b.$to_proc())},na.$$arity=0);b.def(q,"$sort_by",Z=function(){var a=Z.$$p,c=a||g,e,f,d,m,p=g;a&&(Z.$$p=null);a&&(Z.$$p=null);if(c===g)return r(this,"enum_for",["sort_by"],(e=function(){return(e.$$s||this).$enumerator_size()},e.$$s=this,e.$$arity=0,e));p=r(this,"map",[],(f=function(){var a=l(P,"Opal").$destructure(arguments);return[b.yield1(c,a),a]},f.$$s=this,f.$$arity=0,f));r(p,"sort!",[],(d=function(a,b){null== +a&&(a=g);null==b&&(b=g);return a[0]["$<=>"](b[0])},d.$$s=this,d.$$arity=2,d));return r(p,"map!",[],(m=function(a){null==a&&(a=g);return a[1]},m.$$s=this,m.$$arity=1,m))},Z.$$arity=0);b.def(q,"$sum",Na=function(a){var c,e=Na.$$p,f=e||g,d=g;e&&(Na.$$p=null);null==a&&(a=0);d=a;r(this,"each",[],(c=function(a){var c=b.slice.call(arguments,0,arguments.length);c=f!==g?b.yieldX(f,b.to_a(c)):l(P,"Opal").$destructure(c);return d=B(d,c)},c.$$s=this,c.$$arity=-1,c));return d},Na.$$arity=-1);b.def(q,"$take",ua= +function(a){return this.$first(a)},ua.$$arity=1);b.def(q,"$take_while",Pa=function(){try{var a=Pa.$$p,c=a||g,e,f=g;a&&(Pa.$$p=null);a&&(Pa.$$p=null);if(!w(c))return this.$enum_for("take_while");f=[];return r(this,"each",[],(e=function(a){var e=b.slice.call(arguments,0,arguments.length);e=l(P,"Opal").$destructure(e);w(b.yield1(c,e))||b.ret(f);return f.push(e)},e.$$s=this,e.$$arity=-1,e))}catch(ia){if(ia===b.returner)return ia.$v;throw ia;}},Pa.$$arity=0);b.def(q,"$uniq",ba=function(){var a=ba.$$p, +c=a||g,e,f=g;a&&(ba.$$p=null);a&&(ba.$$p=null);f=M([],{});r(this,"each",[],(e=function(a){var e=b.slice.call(arguments,0,arguments.length);e=l(P,"Opal").$destructure(e);var d=c!==g?b.yield1(c,e):e;if(w(f["$key?"](d)))return g;e=[d,e];r(f,"[]=",b.to_a(e));return e[D(e.length,1)]},e.$$s=this,e.$$arity=-1,e));return f.$values()},ba.$$arity=0);b.alias(q,"to_a","entries");b.def(q,"$zip",ka=function(a){var c=ka.$$p;c&&(ka.$$p=null);c&&(ka.$$p=null);c=b.slice.call(arguments,0,arguments.length);return r(this.$to_a(), +"zip",b.to_a(c))},ka.$$arity=-1)}(q[0],q)}; +Opal.modules["corelib/enumerator"]=function(b){function t(b,g){return"number"===typeof b&&"number"===typeof g?b+g:b["$+"](g)}function B(b,g){return"number"===typeof b&&"number"===typeof g?b")},Y.$$arity=0);(function(a,$super,u){a=F(a,$super,"Generator");var k=[a].concat(u),l,n;a.$$prototype.block=q;a.$include(g(k,"Enumerable"));b.def(a,"$initialize",l=function(){var a=l.$$p,b=a||q;a&&(l.$$p=null);a&&(l.$$p=null);w(b)||this.$raise(g(k,"LocalJumpError"),"no block given");return this.block=b},l.$$arity=0);return(b.def(a,"$each",n=function(a){var c=n.$$p,h=c||q;c&& +(n.$$p=null);c&&(n.$$p=null);c=b.slice.call(arguments,0,arguments.length);h=r(g(k,"Yielder"),"new",[],h.$to_proc());try{c.unshift(h),b.yieldX(this.block,c)}catch(p){if(p===H)return H.$v;throw p;}return this},n.$$arity=-1),q)&&"each"})(k[0],null,k);(function(a,$super,g){a=F(a,$super,"Yielder");[a].concat(g);var u,k,n;a.$$prototype.block=q;b.def(a,"$initialize",u=function(){var a=u.$$p,b=a||q;a&&(u.$$p=null);a&&(u.$$p=null);return this.block=b},u.$$arity=0);b.def(a,"$yield",k=function(a){var c=b.slice.call(arguments, +0,arguments.length);c=b.yieldX(this.block,c);if(c===H)throw H;return c},k.$$arity=-1);return(b.def(a,"$<<",n=function(a){var c=b.slice.call(arguments,0,arguments.length);r(this,"yield",b.to_a(c));return this},n.$$arity=-1),q)&&"<<"})(k[0],null,k);return function(a,$super,u){a=F(a,$super,"Lazy");var k=[a].concat(u),l,n,h,c,z,p,T,O,m,e,f,W,U;a.$$prototype.enumerator=q;(function(a,$super,b){[F(a,$super,"StopLazyError")].concat(b);return q})(k[0],g(k,"Exception"),k);b.def(a,"$initialize",l=function(a, +c){var e=l.$$p,f=e||q,m;e&&(l.$$p=null);e&&(l.$$p=null);null==c&&(c=q);f===q&&this.$raise(g(k,"ArgumentError"),"tried to call lazy new without a block");this.enumerator=a;return r(this,b.find_super_dispatcher(this,"initialize",l,!1),[c],(m=function(c,e){var p=m.$$s||this,h;null==c&&(c=q);var n=b.slice.call(arguments,1,arguments.length);try{return r(a,"each",b.to_a(n),(h=function(a){var e=b.slice.call(arguments,0,arguments.length);e.unshift(c);b.yieldX(f,e)},h.$$s=p,h.$$arity=-1,h))}catch(pa){if(b.rescue(pa, +[g(k,"Exception")]))try{return q}finally{b.pop_exception()}else throw pa;}},m.$$s=this,m.$$arity=-2,m))},l.$$arity=-2);b.alias(a,"force","to_a");b.def(a,"$lazy",n=function(){return this},n.$$arity=0);b.def(a,"$collect",h=function(){var a=h.$$p,c=a||q,e;a&&(h.$$p=null);a&&(h.$$p=null);w(c)||this.$raise(g(k,"ArgumentError"),"tried to call lazy map without a block");return r(g(k,"Lazy"),"new",[this,this.$enumerator_size()],(e=function(a,e){null==a&&(a=q);var f=b.slice.call(arguments,1,arguments.length); +f=b.yieldX(c,f);a.$yield(f)},e.$$s=this,e.$$arity=-2,e))},h.$$arity=0);b.def(a,"$collect_concat",c=function(){var a=c.$$p,e=a||q,f;a&&(c.$$p=null);a&&(c.$$p=null);w(e)||this.$raise(g(k,"ArgumentError"),"tried to call lazy map without a block");return r(g(k,"Lazy"),"new",[this,q],(f=function(a,c){var m=f.$$s||this,p,h;null==a&&(a=q);var n=b.slice.call(arguments,1,arguments.length);n=b.yieldX(e,n);n["$respond_to?"]("force")&&n["$respond_to?"]("each")?r(n,"each",[],(p=function(b){null==b&&(b=q);return a.$yield(b)}, +p.$$s=m,p.$$arity=1,p)):g(k,"Opal").$try_convert(n,g(k,"Array"),"to_ary")===q?a.$yield(n):r(n,"each",[],(h=function(b){null==b&&(b=q);return a.$yield(b)},h.$$s=m,h.$$arity=1,h))},f.$$s=this,f.$$arity=-2,f))},c.$$arity=0);b.def(a,"$drop",z=function(a){var c,e=q,f=e=q;a=g(k,"Opal").$coerce_to(a,g(k,"Integer"),"to_int");w(B(a,0))&&this.$raise(g(k,"ArgumentError"),"attempt to drop negative size");e=this.$enumerator_size();e=w(g(k,"Integer")["$==="](e))?w(B(a,e))?a:e:e;f=0;return r(g(k,"Lazy"),"new",[this, +e],(c=function(c,e){null==c&&(c=q);var m=b.slice.call(arguments,1,arguments.length);return w(B(f,a))?f=t(f,1):r(c,"yield",b.to_a(m))},c.$$s=this,c.$$arity=-2,c))},z.$$arity=1);b.def(a,"$drop_while",p=function(){var a=p.$$p,c=a||q,e,f=q;a&&(p.$$p=null);a&&(p.$$p=null);w(c)||this.$raise(g(k,"ArgumentError"),"tried to call lazy drop_while without a block");f=!0;return r(g(k,"Lazy"),"new",[this,q],(e=function(a,e){null==a&&(a=q);var m=b.slice.call(arguments,1,arguments.length);if(w(f)){var p=b.yieldX(c, +m);N(p)&&(f=!1,r(a,"yield",b.to_a(m)))}else return r(a,"yield",b.to_a(m))},e.$$s=this,e.$$arity=-2,e))},p.$$arity=0);b.def(a,"$enum_for",T=function(a,c){var e=T.$$p,f=e||q;e&&(T.$$p=null);e&&(T.$$p=null);e=b.slice.call(arguments,0,arguments.length);if(0"},U.$$arity=0),q)&&"inspect"}(k[0],v,k)}(v[0],null,v)}; +Opal.modules["corelib/numeric"]=function(b){function t(b,g){return"number"===typeof b&&"number"===typeof g?b-g:b["$-"](g)}function B(b,g){return"number"===typeof b&&"number"===typeof g?b*g:b["$*"](g)}function D(b,g){return"number"===typeof b&&"number"===typeof g?b".split(" ")); +q.$require("corelib/comparable");return function(g,$super,q){g=w(g,$super,"Numeric");var k=[g].concat(q),x,M,E,I,ea,Y,a,d,u,C,J,n,h,c,z,p,T,O,m,e,f,W,U,ja,L,S,da,y,ha,ca,sa,ta,oa,pa,aa,X,Aa;g.$include(F(k,"Comparable"));b.def(g,"$coerce",x=function(a){return r(a["$instance_of?"](this.$class()))?[a,this]:[this.$Float(a),this.$Float(this)]},x.$$arity=1);b.def(g,"$__coerced__",M=function(a,c){if(r(c["$respond_to?"]("coerce"))){c=c.$coerce(this);var e=b.to_ary(c);var f=null==e[0]?H:e[0];e=null==e[1]? +H:e[1];c;return f.$__send__(a,e)}return"+"["$==="](a)||"-"["$==="](a)||"*"["$==="](a)||"/"["$==="](a)||"%"["$==="](a)||"&"["$==="](a)||"|"["$==="](a)||"^"["$==="](a)||"**"["$==="](a)?this.$raise(F(k,"TypeError"),""+c.$class()+" can't be coerced into Numeric"):">"["$==="](a)||">="["$==="](a)||"<"["$==="](a)||"<="["$==="](a)||"<=>"["$==="](a)?this.$raise(F(k,"ArgumentError"),"comparison of "+this.$class()+" with "+c.$class()+" failed"):H},M.$$arity=2);b.def(g,"$<=>",E=function(a){return r(this["$equal?"](a))? +0:H},E.$$arity=1);b.def(g,"$+@",I=function(){return this},I.$$arity=0);b.def(g,"$-@",ea=function(){return t(0,this)},ea.$$arity=0);b.def(g,"$%",Y=function(a){return t(this,B(a,this.$div(a)))},Y.$$arity=1);b.def(g,"$abs",a=function(){return D(this,0)?this["$-@"]():this},a.$$arity=0);b.def(g,"$abs2",d=function(){return B(this,this)},d.$$arity=0);b.def(g,"$angle",u=function(){return D(this,0)?l(F(k,"Math"),"PI"):0},u.$$arity=0);b.alias(g,"arg","angle");b.def(g,"$ceil",C=function(a){null==a&&(a=0);return this.$to_f().$ceil(a)}, +C.$$arity=-1);b.def(g,"$conj",J=function(){return this},J.$$arity=0);b.alias(g,"conjugate","conj");b.def(g,"$denominator",n=function(){return this.$to_r().$denominator()},n.$$arity=0);b.def(g,"$div",h=function(a){a["$=="](0)&&this.$raise(F(k,"ZeroDivisionError"),"divided by o");return v(this,a).$floor()},h.$$arity=1);b.def(g,"$divmod",c=function(a){return[this.$div(a),this["$%"](a)]},c.$$arity=1);b.def(g,"$fdiv",z=function(a){return v(this.$to_f(),a)},z.$$arity=1);b.def(g,"$floor",p=function(a){null== +a&&(a=0);return this.$to_f().$floor(a)},p.$$arity=-1);b.def(g,"$i",T=function(){return this.$Complex(0,this)},T.$$arity=0);b.def(g,"$imag",O=function(){return 0},O.$$arity=0);b.alias(g,"imaginary","imag");b.def(g,"$integer?",m=function(){return!1},m.$$arity=0);b.alias(g,"magnitude","abs");b.alias(g,"modulo","%");b.def(g,"$nonzero?",e=function(){return r(this["$zero?"]())?H:this},e.$$arity=0);b.def(g,"$numerator",f=function(){return this.$to_r().$numerator()},f.$$arity=0);b.alias(g,"phase","arg"); +b.def(g,"$polar",W=function(){return[this.$abs(),this.$arg()]},W.$$arity=0);b.def(g,"$quo",U=function(a){return v(F(k,"Opal")["$coerce_to!"](this,F(k,"Rational"),"to_r"),a)},U.$$arity=1);b.def(g,"$real",ja=function(){return this},ja.$$arity=0);b.def(g,"$real?",L=function(){return!0},L.$$arity=0);b.def(g,"$rect",S=function(){return[this,0]},S.$$arity=0);b.alias(g,"rectangular","rect");b.def(g,"$round",da=function(a){return this.$to_f().$round(a)},da.$$arity=-1);b.def(g,"$to_c",y=function(){return this.$Complex(this, +0)},y.$$arity=0);b.def(g,"$to_int",ha=function(){return this.$to_i()},ha.$$arity=0);b.def(g,"$truncate",ca=function(a){null==a&&(a=0);return this.$to_f().$truncate(a)},ca.$$arity=-1);b.def(g,"$zero?",sa=function(){return this["$=="](0)},sa.$$arity=0);b.def(g,"$positive?",ta=function(){return"number"===typeof this?0"](0)},ta.$$arity=0);b.def(g,"$negative?",oa=function(){return D(this,0)},oa.$$arity=0);b.def(g,"$dup",pa=function(){return this},pa.$$arity=0);b.def(g,"$clone",aa=function(a){if(null== +a)N([],{});else if(!a.$$is_hash)throw b.ArgumentError.$new("expected kwargs");return this},aa.$$arity=-1);b.def(g,"$finite?",X=function(){return!0},X.$$arity=0);return(b.def(g,"$infinite?",Aa=function(){return H},Aa.$$arity=0),H)&&"infinite?"}(g[0],null,g)}; +Opal.modules["corelib/array"]=function(b){function t(b,g){return"number"===typeof b&&"number"===typeof g?b>g:b["$>"](g)}var B=b.top,D=[],v=b.nil,q=b.const_get_qualified,g=b.const_get_relative,H=b.klass,l=b.truthy,F=b.hash2,w=b.send,r=b.gvars;b.add_stubs("$require $include $to_a $warn $raise $replace $respond_to? $to_ary $coerce_to $coerce_to? $=== $join $to_str $class $hash $<=> $== $object_id $inspect $enum_for $bsearch_index $to_proc $nil? $coerce_to! $> $* $enumerator_size $empty? $size $map $equal? $dup $each $[] $dig $eql? $length $begin $end $exclude_end? $flatten $__id__ $to_s $new $max $min $! $>= $** $delete_if $reverse $rotate $rand $at $keep_if $shuffle! $< $sort $sort_by $!= $times $[]= $- $<< $values $is_a? $last $first $upto $reject $pristine $singleton_class".split(" "));B.$require("corelib/enumerable"); +B.$require("corelib/numeric");return function(D,$super,B){function x(a,c){return c.$$name===b.Array?a:c.$allocate().$replace(a.$to_a())}function k(a,c){var e=a.length;var f=c.excl;var d=b.Opal.$coerce_to(c.begin,b.Integer,"to_int");c=b.Opal.$coerce_to(c.end,b.Integer,"to_int");if(0>d&&(d+=e,0>d)||d>e)return v;if(0>c&&(c+=e,0>c))return[];f||(c+=1);e=a.slice(d,c);return x(e,a.$class())}function K(a,c,e){var f=a.length;c=b.Opal.$coerce_to(c,b.Integer,"to_int");if(0>c&&(c+=f,0>c))return v;if(void 0=== +e)return c>=f||0>c?v:a[c];e=b.Opal.$coerce_to(e,b.Integer,"to_int");if(0>e||c>f||0>c)return v;c=a.slice(c,c+e);return x(c,a.$class())}function P(a,b){return a===b||0===b?1:0b?P(a-1,b-1)+P(a-1,b):0}var E=H(D,$super,"Array"),I=[E].concat(B),N,Y,a,d,u,C,J,n,h,c,z,p,T,O,m,e,f,W,U,ja,L,S,da,y,ha,ca,sa,ta,oa,pa,aa,X,Aa,La,Ba,za,xa,la,V,na,Z,Na,ua,Pa,ba,ka,Ua,Ma,Ra,$a,ia,va,fa,wa,ya,qa,Ga,Fa,Ha,ab,Sa,Ka,Ca,Ia,Wa,Va,Xa,Ya,Za,A,Q,G,R,Ja,Qa,Da,Ea,ra,db,Oa,nb,hb,lb,fb,mb,Ta,bb,gb,pb,ib,eb,cb,qb;E.$include(g(I, +"Enumerable"));b.defineProperty(E.$$prototype,"$$is_array",!0);b.defs(E,"$[]",N=function(a){var c=b.slice.call(arguments,0,arguments.length);return x(c,this)},N.$$arity=-1);b.def(E,"$initialize",Y=function(a,b){var c=Y.$$p,e=c||v;c&&(Y.$$p=null);c&&(Y.$$p=null);null==a&&(a=v);null==b&&(b=v);b!==v&&e!==v&&this.$warn("warning: block supersedes default value argument");a>q(g(I,"Integer"),"MAX")&&this.$raise(g(I,"ArgumentError"),"array size too big");2a&&this.$raise(g(I,"ArgumentError"),"negative array size");this.splice(0,this.length);if(e===v)for(c=0;ca)&&this.$raise(g(I,"ArgumentError"),"negative argument");for(var b=[],c=this.$to_a(),e=0;e",c=function(a){if(l(g(I,"Array")["$==="](a)))a=a.$to_a();else if(l(a["$respond_to?"]("to_ary")))a=a.$to_ary().$to_a();else return v;if(this.$hash()===a.$hash())return 0;for(var b=Math.min(this.length,a.length),c=0;c"](a[c]);if(0!==e)return e}return this.length["$<=>"](a.length)},c.$$arity=1);b.def(E,"$==",z=function(a){function b(a,e){var f;if(a===e)return!0;if(!e.$$is_array)return g(I,"Opal")["$respond_to?"](e, +"to_ary")?e["$=="](a):!1;a.$$constructor!==Array&&(a=a.$to_a());e.$$constructor!==Array&&(e=e.$to_a());if(a.length!==e.length)return!1;c[a.$object_id()]=!0;var d=0;for(f=a.length;dc&&(c+=f,0>c&&this.$raise(g(I,"RangeError"),""+a.$inspect()+" out of range"));0>m&&(m+=f);d||(m+=1);if(c>f)for(;fm?this.splice.apply(this,[c,0].concat(e)):this.splice.apply(this,[c,m-c].concat(e))}else{l(void 0=== +c)?m=1:(m=b,b=c,e=l(g(I,"Array")["$==="](b))?b.$to_a():l(b["$respond_to?"]("to_ary"))?b.$to_ary().$to_a():[b]);a=g(I,"Opal").$coerce_to(a,g(I,"Integer"),"to_int");m=g(I,"Opal").$coerce_to(m,g(I,"Integer"),"to_int");0>a&&(d=a,a+=f,0>a&&this.$raise(g(I,"IndexError"),"index "+d+" too small for array; minimum "+-this.length));0>m&&this.$raise(g(I,"IndexError"),"negative length ("+m+")");if(a>f)for(;fa&&(a+=this.length);return 0>a||a>=this.length? +v:this[a]},e.$$arity=1);b.def(E,"$bsearch_index",f=function(){var a=f.$$p,c=a||v;a&&(f.$$p=null);a&&(f.$$p=null);if(c===v)return this.$enum_for("bsearch_index");a=0;for(var e=this.length,d,m,p=!1,h=v;am}else this.$raise(g(I,"TypeError"),"wrong argument type "+m.$class()+" (must be numeric, true, false or nil)");p?e=d:a=d+1}return h},f.$$arity=0);b.def(E, +"$bsearch",W=function(){var a=W.$$p,b=a||v;a&&(W.$$p=null);a&&(W.$$p=null);if(b===v)return this.$enum_for("bsearch");a=w(this,"bsearch_index",[],b.$to_proc());return null!=a&&a.$$is_number?this[a]:a},W.$$arity=0);b.def(E,"$cycle",U=function(a){var c=U.$$p,e=c||v,f,d;c&&(U.$$p=null);c&&(U.$$p=null);null==a&&(a=v);if(e===v)return w(this,"enum_for",["cycle",a],(f=function(){var b=f.$$s||this;if(l(a["$nil?"]()))return q(g(I,"Float"),"INFINITY");a=g(I,"Opal")["$coerce_to!"](a,g(I,"Integer"),"to_int"); +return l(t(a,0))?(b=b.$enumerator_size(),"number"===typeof b&&"number"===typeof a?b*a:b["$*"](a)):0},f.$$s=this,f.$$arity=0,f));if(l(l(d=this["$empty?"]())?d:a["$=="](0)))return v;if(a===v)for(;;)for(c=0,d=this.length;c=a)return this;for(;0a&&(a+=this.length);if(0>a||a>=this.length)return v;var b=this[a];this.splice(a,1);return b},aa.$$arity=1);b.def(E,"$delete_if",X=function(){var a=X.$$p,b=a||v,c;a&&(X.$$p=null);a&&(X.$$p=null);if(b===v)return w(this,"enum_for",["delete_if"],(c=function(){return(c.$$s||this).$size()},c.$$s=this,c.$$arity=0,c));a=0;for(var e=this.length,f;aa&&this.$raise(g(I,"ArgumentError"));return this.slice(a)},La.$$arity=1);b.def(E,"$dup",Ba=function(){var a=Ba.$$p,c;a&&(Ba.$$p=null); +var e=0;var f=arguments.length;for(c=Array(f);ea&&(a+=this.length);if(0<=a&&ad)&&(d+=this.length),l(0>d)&&this.$raise(g(I,"RangeError"),""+c.$inspect()+" out of range"),m=g(I,"Opal").$coerce_to(c.$end(),g(I,"Integer"),"to_int"),l(0>m)&&(m+=this.length),l(c["$exclude_end?"]())||(m+=1),l(m<=d))return this}else if(l(c))if(d=g(I,"Opal").$coerce_to(c,g(I,"Integer"),"to_int"),l(0>d)&&(d+=this.length),l(0>d)&&(d=0),l(m)){m=g(I,"Opal").$coerce_to(m,g(I,"Integer"),"to_int");if(l(0==m))return this;m+=d}else m=this.length; +else d=0,m=this.length;if(l(d>this.length))for(c=this.length;cthis.length)&&(this.length=m);if(l(e))for(;da&&this.$raise(g(I,"ArgumentError"),"negative array size");return this.slice(0,a)},Na.$$arity=-1);b.def(E,"$flatten",ua=function(a){function b(a,e){var f=[],d;a=a.$to_a(); +var m=0;for(d=a.length;ma&&(a+=this.length+1,0>a&&this.$raise(g(I,"IndexError"),""+a+" is out of bounds"));if(a>this.length)for(var f=this.length;fa&&this.$raise(g(I,"ArgumentError"),"negative array size");a>this.length&&(a=this.length);return this.slice(this.length-a,this.length)},va.$$arity=-1);b.def(E,"$length",fa=function(){return this.length},fa.$$arity=0);b.alias(E,"map","collect");b.alias(E,"map!","collect!");b.def(E,"$max",wa=function(a){var b= +wa.$$p,c=b||v;b&&(wa.$$p=null);b&&(wa.$$p=null);return w(this.$each(),"max",[a],c.$to_proc())},wa.$$arity=-1);b.def(E,"$min",ya=function(){var a=ya.$$p,b=a||v;a&&(ya.$$p=null);a&&(ya.$$p=null);return w(this.$each(),"min",[],b.$to_proc())},ya.$$arity=0);b.def(E,"$permutation",qa=function(a){var c=qa.$$p,e=c||v,f,d=this,m=v,p=v;c&&(qa.$$p=null);c&&(qa.$$p=null);if(e===v)return w(d,"enum_for",["permutation",a],(f=function(){var b=f.$$s||this,c=b.length;b=void 0===a?b.length:a;for(var e=0<=b?1:0;b;)e*= +c,c--,b--;return e},f.$$s=d,f.$$arity=0,f));var h;a=void 0===a?d.length:g(I,"Opal").$coerce_to(a,g(I,"Integer"),"to_int");if(!(0>a||d.length="](0))?a.$size()["$**"](m):0},e.$$s= +this,e.$$arity=0,e));c(m,[],this.slice());return this},Ga.$$arity=1);b.def(E,"$pop",Fa=function(a){if(l(void 0===a))return l(0===this.length)?v:this.pop();a=g(I,"Opal").$coerce_to(a,g(I,"Integer"),"to_int");l(0>a)&&this.$raise(g(I,"ArgumentError"),"negative array size");return l(0===this.length)?[]:l(a>this.length)?this.splice(0,this.length):this.splice(this.length-a,this.length)},Fa.$$arity=-1);b.def(E,"$product",Ha=function(a){var c=Ha.$$p,e=c||v;c&&(Ha.$$p=null);c&&(Ha.$$p=null);var f=b.slice.call(arguments, +0,arguments.length);c=e!==v?null:[];var d=f.length+1,m=Array(d),p=Array(d),h=Array(d),n;var Oa=1;h[0]=this;for(n=1;n--n)break a;m[n]++}}return c||this},Ha.$$arity=-1);b.def(E, +"$push",ab=function(a){var c=b.slice.call(arguments,0,arguments.length);for(var e=0,f=c.length;e=this.length);b--){if(this[b]["$=="](a))return b}else if(c!==v)for(b=this.length-1;0<=b&&!(b>=this.length);b--){if(a=c(this[b]),!1!==a&&a!==v)return b}else if(null==a)return this.$enum_for("rindex");return v},Ya.$$arity=-1);b.def(E,"$rotate", +Za=function(a){null==a&&(a=1);a=g(I,"Opal").$coerce_to(a,g(I,"Integer"),"to_int");if(1===this.length)return this.slice();if(0===this.length)return[];var b=this.slice();var c=a%b.length;a=b.slice(c);b=b.slice(0,c);return a.concat(b)},Za.$$arity=-1);b.def(E,"$rotate!",A=function(a){null==a&&(a=1);if(0===this.length||1===this.length)return this;a=g(I,"Opal").$coerce_to(a,g(I,"Integer"),"to_int");a=this.$rotate(a);return this.$replace(a)},A.$$arity=-1);(function(a,$super,c){a=H(a,$super,"SampleRandom"); +var e=[a].concat(c),f,d;a.$$prototype.rng=v;b.def(a,"$initialize",f=function(a){return this.rng=a},f.$$arity=1);return(b.def(a,"$rand",d=function(a){var b=g(e,"Opal").$coerce_to(this.rng.$rand(a),g(e,"Integer"),"to_int");l(0>b)&&this.$raise(g(e,"RangeError"),"random value must be >= 0");l(ba:c)&&this.$raise(g(I,"ArgumentError"),"count must be greater than 0");l(b)&&(e=b["$[]"]("random"));e=l(l(c=e)?e["$respond_to?"]("rand"):c)?g(I,"SampleRandom").$new(e):g(I,"Kernel");if(!l(a))return this[e.$rand(this.length)]; +a>this.length&&(a=this.length);switch(a){case 0:return[];case 1:return[this[e.$rand(this.length)]];case 2:var f=e.$rand(this.length);var d=e.$rand(this.length);f===d&&(d=0===f?f+1:f-1);return[this[f],this[d]];default:if(3a)&&this.$raise(g(I,"ArgumentError"),"negative array size");return l(0===this.length)?[]:this.splice(0,a)},Ja.$$arity= +-1);b.alias(E,"size","length");b.def(E,"$shuffle",Qa=function(a){return this.$dup().$to_a()["$shuffle!"](a)},Qa.$$arity=-1);b.def(E,"$shuffle!",Da=function(a){var b,c=this.length;void 0!==a&&(a=g(I,"Opal")["$coerce_to?"](a,g(I,"Hash"),"to_hash"),a!==v&&(a=a["$[]"]("random"),a!==v&&a["$respond_to?"]("rand")&&(b=a)));for(;c;){b?(a=b.$rand(c).$to_int(),0>a&&this.$raise(g(I,"RangeError"),"random number too small "+a),a>=c&&this.$raise(g(I,"RangeError"),"random number too big "+a)):a=this.$rand(c);var e= +this[--c];this[c]=this[a];this[a]=e}return this},Da.$$arity=-1);b.alias(E,"slice","[]");b.def(E,"$slice!",Ea=function(a,b){if(l(void 0===b))if(l(g(I,"Range")["$==="](a))){var c=this["$[]"](a);b=g(I,"Opal").$coerce_to(a.$begin(),g(I,"Integer"),"to_int");var e=g(I,"Opal").$coerce_to(a.$end(),g(I,"Integer"),"to_int");0>b&&(b+=this.length);0>e?e+=this.length:e>=this.length&&(e=this.length-1,a.excl&&(e+=1));var f=e-b;a.excl?--e:f+=1;ba&&(a+=this.length);if(0>a||a>=this.length)return v;c=this[a];0===a?this.shift():this.splice(a,1)}else{a=g(I,"Opal").$coerce_to(a,g(I,"Integer"),"to_int");b=g(I,"Opal").$coerce_to(b,g(I,"Integer"),"to_int");if(0>b)return v;c=this["$[]"](a,b);0>a&&(a+=this.length);a+b>this.length&&(b=this.length-a);a"](b)});return c.slice().sort(function(a,e){var f=b(a,e);f===v&&c.$raise(g(I,"ArgumentError"),"comparison of "+a.$inspect()+" with "+e.$inspect()+" failed");return t(f,0)?1:("number"===typeof f?0>f:f["$<"](0))?-1:0})},ra.$$arity=0);b.def(E,"$sort!",db=function(){var a=db.$$p,b=a||v;a&&(db.$$p=null);a&&(db.$$p=null);a=b!==v?w(this.slice(),"sort",[],b.$to_proc()):this.slice().$sort();b=this.length=0;for(var c=a.length;ba&&this.$raise(g(I,"ArgumentError"));return this.slice(0,a)},nb.$$arity=1);b.def(E,"$take_while",hb=function(){var a=hb.$$p,b=a||v;a&&(hb.$$p=null);a&&(hb.$$p=null);a=[];for(var c= +0,e=this.length,f,d;cm)return m+=b.length,v;0>d&&(d+=b.length); +a["$exclude_end?"]()&&d--;return d=g:b["$>="](g)}var B=b.top,D=[],v=b.nil,q=b.const_get_relative,g=b.klass,H=b.send,l=b.hash2,F=b.truthy;b.add_stubs("$require $include $coerce_to? $[] $merge! $allocate $raise $coerce_to! $each $fetch $>= $> $== $compare_by_identity $lambda? $abs $arity $enum_for $size $respond_to? $class $dig $new $inspect $map $to_proc $flatten $eql? $default $dup $default_proc $default_proc= $- $default= $proc".split(" "));B.$require("corelib/enumerable"); +return function(w,$super,D){w=g(w,$super,"Hash");var B=[w].concat(D),K,x,k,N,P,E,I,ea,Y,a,d,u,C,J,n,h,c,z,p,T,O,m,e,f,W,U,ja,L,S,da,y,ha,ca,sa,ta,oa,pa,aa,X,Aa,La,Ba,za,xa,la,V,na,Z,Na,ua,Pa,ba,ka,Ua,Ma,Ra,$a,ia,va,fa,wa,ya;w.$include(q(B,"Enumerable"));w.$$prototype.$$is_hash=!0;b.defs(w,"$[]",K=function(a){var c=b.slice.call(arguments,0,arguments.length);var e=c.length,f;if(1===e){var d=q(B,"Opal")["$coerce_to?"](c["$[]"](0),q(B,"Hash"),"to_hash");if(d!==v)return this.$allocate()["$merge!"](d); +c=q(B,"Opal")["$coerce_to?"](c["$[]"](0),q(B,"Array"),"to_ary");c===v&&this.$raise(q(B,"ArgumentError"),"odd number of arguments for Hash");e=c.length;d=this.$allocate();for(f=0;f=",E=function(a){var b,c=v;a=q(B,"Opal")["$coerce_to!"](a,q(B,"Hash"),"to_hash");if(this.$$keys.length",I=function(a){a=q(B,"Opal")["$coerce_to!"](a,q(B,"Hash"),"to_hash");return this.$$keys.length<=a.$$keys.length?!1:t(this,a)},I.$$arity=1);b.def(w,"$<",ea=function(a){a=q(B,"Opal")["$coerce_to!"](a,q(B,"Hash"),"to_hash");return"number"===typeof a&&"number"===typeof this?a>this:a["$>"](this)},ea.$$arity=1);b.def(w,"$<=",Y=function(a){a= +q(B,"Opal")["$coerce_to!"](a,q(B,"Hash"),"to_hash");return t(a,this)},Y.$$arity=1);b.def(w,"$[]",a=function(a){var c=b.hash_get(this,a);return void 0!==c?c:this.$default(a)},a.$$arity=1);b.def(w,"$[]=",d=function(a,c){b.hash_put(this,a,c);return c},d.$$arity=2);b.def(w,"$assoc",u=function(a){for(var b=0,c=this.$$keys,e=c.length,f;b"+m.$inspect());return"{"+c.join(", ")+"}"}finally{a&&(qa=void 0)}},aa.$$arity=0);b.def(w,"$invert",X=function(){for(var a=b.hash(), +c=0,e=this.$$keys,f=e.length,d,m;cg:b["$>"](g)}function B(b,g){return"number"===typeof b&&"number"===typeof g?b $** $new $< $to_f $== $nan? $infinite? $enum_for $+ $- $gcd $lcm $% $/ $frexp $to_i $ldexp $rationalize $* $<< $to_r $truncate $-@ $size $<= $>= $<=> $compare $any?".split(" "));H.$require("corelib/numeric");(function(k,$super,l){k=N(k,$super,"Number");var E=[k].concat(l),I,H,P,a,d, +u,C,J,n,h,c,z,p,T,O,m,e,f,W,U,ja,L,S,da,y,ha,ca,sa,ta,oa,pa,aa,X,Aa,La,Ba,za,xa,la,V,na,Z,Na,ua,Pa,ba,ka,Ua,Ma,Ra,$a,ia,va,fa,wa,ya,qa,Ga,Fa,Ha,ab,Sa,Ka,Ca,Ia,Wa,Va,Xa,Ya,Za,A,Q;r(E,"Opal").$bridge(Number,k);b.defineProperty(k.$$prototype,"$$is_number",!0);k.$$is_number_class=!0;(function(a,c){var e=[a].concat(c),f;b.def(a,"$allocate",f=function(){return this.$raise(r(e,"TypeError"),"allocator undefined for "+this.$name())},f.$$arity=0);b.udef(a,"$new");return F})(b.get_singleton_class(k),E);b.def(k, +"$coerce",I=function(a){if(a!==F){if(a.$$is_string)return[this.$Float(a),this];if(a["$respond_to?"]("to_f"))return[r(E,"Opal")["$coerce_to!"](a,r(E,"Float"),"to_f"),this];if(a.$$is_number)return[a,this]}this.$raise(r(E,"TypeError"),"can't convert "+a.$class()+" into Float")},I.$$arity=1);b.def(k,"$__id__",H=function(){return 2*this+1},H.$$arity=0);b.alias(k,"object_id","__id__");b.def(k,"$+",P=function(a){return a.$$is_number?this+a:this.$__coerced__("+",a)},P.$$arity=1);b.def(k,"$-",a=function(a){return a.$$is_number? +this-a:this.$__coerced__("-",a)},a.$$arity=1);b.def(k,"$*",d=function(a){return a.$$is_number?this*a:this.$__coerced__("*",a)},d.$$arity=1);b.def(k,"$/",u=function(a){return a.$$is_number?this/a:this.$__coerced__("/",a)},u.$$arity=1);b.alias(k,"fdiv","/");b.def(k,"$%",C=function(a){if(a.$$is_number){if(-Infinity==a)return a;if(0==a)this.$raise(r(E,"ZeroDivisionError"),"divided by 0");else return 0>a||0>this?(this%a+a)%a:this%a}else return this.$__coerced__("%",a)},C.$$arity=1);b.def(k,"$&",J=function(a){return a.$$is_number? +this&a:this.$__coerced__("&",a)},J.$$arity=1);b.def(k,"$|",n=function(a){return a.$$is_number?this|a:this.$__coerced__("|",a)},n.$$arity=1);b.def(k,"$^",h=function(a){return a.$$is_number?this^a:this.$__coerced__("^",a)},h.$$arity=1);b.def(k,"$<",c=function(a){return a.$$is_number?this",p=function(a){return a.$$is_number?this>a:this.$__coerced__(">", +a)},p.$$arity=1);b.def(k,"$>=",T=function(a){return a.$$is_number?this>=a:this.$__coerced__(">=",a)},T.$$arity=1);b.def(k,"$<=>",O=function(a){try{return a.$$is_number?isNaN(this)||isNaN(a)?F:this>a?1:this",a)}catch(R){if(b.rescue(R,[r(E,"ArgumentError")]))try{return F}finally{b.pop_exception()}else throw R;}},O.$$arity=1);b.def(k,"$<<",m=function(a){a=r(E,"Opal")["$coerce_to!"](a,r(E,"Integer"),"to_int");return 0>-a},m.$$arity=1);b.def(k,"$>>",e=function(a){a= +r(E,"Opal")["$coerce_to!"](a,r(E,"Integer"),"to_int");return 0>a:this<<-a},e.$$arity=1);b.def(k,"$[]",f=function(a){a=r(E,"Opal")["$coerce_to!"](a,r(E,"Integer"),"to_int");return 0>a?0:32<=a?0>this?1:0:this>>a&1},f.$$arity=1);b.def(k,"$+@",W=function(){return+this},W.$$arity=0);b.def(k,"$-@",U=function(){return-this},U.$$arity=0);b.def(k,"$~",ja=function(){return~this},ja.$$arity=0);b.def(k,"$**",L=function(a){var b,c;return M(r(E,"Integer")["$==="](a))?M(M(b=r(E,"Integer")["$==="](this)["$!"]())? +b:t(a,0))?Math.pow(this,a):r(E,"Rational").$new(this,1)["$**"](a):M(B(this,0)?M(c=r(E,"Float")["$==="](a))?c:r(E,"Rational")["$==="](a):B(this,0))?r(E,"Complex").$new(this,0)["$**"](a.$to_f()):M(null!=a.$$is_number)?Math.pow(this,a):this.$__coerced__("**",a)},L.$$arity=1);b.def(k,"$===",S=function(a){return a.$$is_number?this.valueOf()===a.valueOf():a["$respond_to?"]("==")?a["$=="](this):!1},S.$$arity=1);b.def(k,"$==",da=function(a){return a.$$is_number?this.valueOf()===a.valueOf():a["$respond_to?"]("==")? +a["$=="](this):!1},da.$$arity=1);b.def(k,"$abs",y=function(){return Math.abs(this)},y.$$arity=0);b.def(k,"$abs2",ha=function(){return Math.abs(this*this)},ha.$$arity=0);b.def(k,"$allbits?",ca=function(a){a=r(E,"Opal")["$coerce_to!"](a,r(E,"Integer"),"to_int");return(this&a)==a},ca.$$arity=1);b.def(k,"$anybits?",sa=function(a){a=r(E,"Opal")["$coerce_to!"](a,r(E,"Integer"),"to_int");return 0!==(this&a)},sa.$$arity=1);b.def(k,"$angle",ta=function(){return M(this["$nan?"]())?this:0==this?0<1/this?0:Math.PI: +0>this?Math.PI:0},ta.$$arity=0);b.alias(k,"arg","angle");b.alias(k,"phase","angle");b.def(k,"$bit_length",oa=function(){M(r(E,"Integer")["$==="](this))||this.$raise(r(E,"NoMethodError").$new("undefined method `bit_length` for "+this+":Float","bit_length"));if(0===this||-1===this)return 0;for(var a=0,b=0>this?~this:this;0!=b;)a+=1,b>>>=1;return a},oa.$$arity=0);b.def(k,"$ceil",pa=function(a){null==a&&(a=0);var b=this.$to_f();if(0===b%1&&0<=a)return b;a=Math.pow(10,a);a=Math.ceil(b*a)/a;0===b%1&&(a= +Math.round(a));return a},pa.$$arity=-1);b.def(k,"$chr",aa=function(a){return String.fromCharCode(this)},aa.$$arity=-1);b.def(k,"$denominator",X=function(){var a,c=X.$$p,e;c&&(X.$$p=null);var f=0;var d=arguments.length;for(e=Array(d);f=a;b--)c(b);return this},Aa.$$arity=1);b.alias(k,"eql?","==");b.def(k,"$equal?",La=function(a){var b;return M(b=this["$=="](a))?b:isNaN(this)&&isNaN(a)}, +La.$$arity=1);b.def(k,"$even?",Ba=function(){return 0===this%2},Ba.$$arity=0);b.def(k,"$floor",za=function(a){null==a&&(a=0);var b=this.$to_f();if(0===b%1&&0<=a)return b;a=Math.pow(10,a);a=Math.floor(b*a)/a;0===b%1&&(a=Math.round(a));return a},za.$$arity=-1);b.def(k,"$gcd",xa=function(a){M(r(E,"Integer")["$==="](a))||this.$raise(r(E,"TypeError"),"not an integer");var b=Math.abs(this);for(a=Math.abs(a);0a&&this.$raise(r(E,"TypeError"),"Integer#pow() 1st argument cannot be negative when 2nd argument specified");r(E,"Integer")["$==="](b)||this.$raise(r(E,"TypeError"),"Integer#pow() 2nd argument not allowed unless all arguments are integers");0===b&&this.$raise(r(E,"ZeroDivisionError"),"divided by 0");return this["$**"](a)["$%"](b)},Ra.$$arity= +-2);b.def(k,"$pred",$a=function(){return this-1},$a.$$arity=0);b.def(k,"$quo",ia=function(a){var c=ia.$$p,e;c&&(ia.$$p=null);var f=0;var d=arguments.length;for(e=Array(d);fthis.$size())return 0; +a=Math.pow(10,a);var e=Math.floor((Math.abs(e)+a/2)/a)*a;return 0>this?-e:e}M(M(c=this["$nan?"]())?null==a:c)&&this.$raise(r(E,"FloatDomainError"),"NaN");a=r(E,"Opal")["$coerce_to!"](a||0,r(E,"Integer"),"to_int");if(M("number"===typeof a?0>=a:a["$<="](0)))M(this["$nan?"]())?this.$raise(r(E,"RangeError"),"NaN"):M(this["$infinite?"]())&&this.$raise(r(E,"FloatDomainError"),"Infinity");else{if(a["$=="](0))return Math.round(this);if(M(M(c=this["$nan?"]())?c:this["$infinite?"]()))return this}e=r(E,"Math").$frexp(this); +c=b.to_ary(e);c=null==c[1]?F:c[1];e;e=v(D(w(r(E,"Float"),"DIG"),2),M(t(c,0))?q(c,4):v(q(c,3),1));e="number"===typeof a&&"number"===typeof e?a>=e:a["$>="](e);return M(e)?this:M(B(a,(M(t(c,0))?D(q(c,3),1):q(c,4))["$-@"]()))?0:Math.round(this*Math.pow(10,a))/Math.pow(10,a)},wa.$$arity=-1);b.def(k,"$step",ya=function(a,c,e){function f(){void 0!==Q&&(k=Q);void 0===k&&(k=F);A===F&&y.$raise(r(E,"TypeError"),"step must be numeric");0===A&&y.$raise(r(E,"ArgumentError"),"step can't be 0");void 0!==l&&(A=l); +if(A===F||null==A)A=1;var a=A["$<=>"](0);a===F&&y.$raise(r(E,"ArgumentError"),"0 can't be coerced into "+A.$class());if(k===F||null==k)k=0k||0>A&&yk||0>A&&yn&&(n=k),h(n),p+=1}else if(g=y,0=k;)h(g),g+=A;return y},ya.$$arity=-1);b.alias(k,"succ","next");b.def(k,"$times",qa=function(){var a=qa.$$p,b=a||F,c;a&&(qa.$$p=null);a&&(qa.$$p=null);if(!M(b))return K(this,"enum_for",["times"],(c=function(){return c.$$s||this},c.$$s=this,c.$$arity=0,c));for(a=0;a1/this},Q.$$arity=0),F)&&"negative?"})(l[0],r(l,"Numeric"),l);b.const_set(l[0],"Fixnum",r(l,"Number"));(function(g,$super,l){g=N(g,$super,"Integer");l=[g].concat(l);g.$$is_number_class=!0;(function(g,k){var l=[g].concat(k),q,a,d;b.def(g,"$allocate",q=function(){return this.$raise(r(l,"TypeError"),"allocator undefined for "+this.$name())},q.$$arity=0);b.udef(g,"$new");b.def(g,"$===",a=function(a){return a.$$is_number?0===a%1:!1},a.$$arity=1);return(b.def(g, +"$sqrt",d=function(a){a=r(l,"Opal")["$coerce_to!"](a,r(l,"Integer"),"to_int");0>a&&this.$raise(w(r(l,"Math"),"DomainError"),'Numerical argument is out of domain - "isqrt"');return parseInt(Math.sqrt(a),10)},d.$$arity=1),F)&&"sqrt"})(b.get_singleton_class(g),l);b.const_set(l[0],"MAX",Math.pow(2,30)-1);return b.const_set(l[0],"MIN",-Math.pow(2,30))})(l[0],r(l,"Numeric"),l);return function(g,$super,l){g=N(g,$super,"Float");l=[g].concat(l);g.$$is_number_class=!0;(function(g,k){var l=[g].concat(k),q,a; +b.def(g,"$allocate",q=function(){return this.$raise(r(l,"TypeError"),"allocator undefined for "+this.$name())},q.$$arity=0);b.udef(g,"$new");return(b.def(g,"$===",a=function(a){return!!a.$$is_number},a.$$arity=1),F)&&"==="})(b.get_singleton_class(g),l);b.const_set(l[0],"INFINITY",Infinity);b.const_set(l[0],"MAX",Number.MAX_VALUE);b.const_set(l[0],"MIN",Number.MIN_VALUE);b.const_set(l[0],"NAN",NaN);b.const_set(l[0],"DIG",15);b.const_set(l[0],"MANT_DIG",53);b.const_set(l[0],"RADIX",2);return b.const_set(l[0], +"EPSILON",Number.EPSILON||2.220446049250313E-16)}(l[0],r(l,"Numeric"),l)}; +Opal.modules["corelib/range"]=function(b){function t(b,g){return"number"===typeof b&&"number"===typeof g?b<=g:b["$<="](g)}function B(b,g){return"number"===typeof b&&"number"===typeof g?bg:b["$>"](g)}function v(b,g){return"number"===typeof b&&"number"===typeof g?b+g:b["$+"](g)}var q=b.top,g=[],H=b.nil,l=b.const_get_qualified,F=b.const_get_relative,w=b.klass,r=b.truthy,N=b.send;b.add_stubs("$require $include $attr_reader $raise $<=> $include? $<= $< $enum_for $upto $to_proc $respond_to? $class $succ $! $== $=== $exclude_end? $eql? $begin $end $last $to_a $> $- $abs $to_i $coerce_to! $ceil $/ $size $loop $+ $* $>= $each_with_index $% $bsearch $inspect $[] $hash".split(" ")); +q.$require("corelib/enumerable");return function(g,$super,q){g=w(g,$super,"Range");var k=[g].concat(q),x,P,E,I,M,Y,a,d,u,C,J,n,h,c,z,p,T,O;g.$$prototype.begin=g.$$prototype.end=g.$$prototype.excl=H;g.$include(F(k,"Enumerable"));g.$$prototype.$$is_range=!0;g.$attr_reader("begin","end");b.def(g,"$initialize",x=function(a,b,c){null==c&&(c=!1);r(this.begin)&&this.$raise(F(k,"NameError"),"'initialize' called twice");r(a["$<=>"](b))||this.$raise(F(k,"ArgumentError"),"bad value for range");this.begin=a; +this.end=b;return this.excl=c},x.$$arity=-3);b.def(g,"$==",P=function(a){return a.$$is_range?this.excl===a.excl&&this.begin==a.begin&&this.end==a.end:!1},P.$$arity=1);b.def(g,"$===",E=function(a){return this["$include?"](a)},E.$$arity=1);b.def(g,"$cover?",I=function(a){var b;var c=this.begin["$<=>"](a);if(!r(r(b=c)?t(c,0):b))return!1;a=a["$<=>"](this.end);return r(this.excl)?r(b=a)?B(a,0):b:r(b=a)?t(a,0):b},I.$$arity=1);b.def(g,"$each",M=function(){var a=M.$$p,c=a||H;a&&(M.$$p=null);a&&(M.$$p=null); +if(c===H)return this.$enum_for("each");if(this.begin.$$is_number&&this.end.$$is_number){0===this.begin%1&&0===this.end%1||this.$raise(F(k,"TypeError"),"can't iterate from Float");var f=this.begin;for(a=this.end+(r(this.excl)?0:1);f"](d), +0));)b.yield1(c,a),a=a.$succ();r(r(f=this.excl["$!"]())?a["$=="](d):f)&&b.yield1(c,a);return this},M.$$arity=0);b.def(g,"$eql?",Y=function(a){var b,c;return r(F(k,"Range")["$==="](a))?r(b=r(c=this.excl["$==="](a["$exclude_end?"]()))?this.begin["$eql?"](a.$begin()):c)?this.end["$eql?"](a.$end()):b:!1},Y.$$arity=1);b.def(g,"$exclude_end?",a=function(){return this.excl},a.$$arity=0);b.def(g,"$first",d=function(a){var c=d.$$p,f;c&&(d.$$p=null);var m=0;var p=arguments.length;for(f=Array(p);ma?u.$raise(F(k,"ArgumentError"),"step can't be negative"):0===a&&u.$raise(F(k,"ArgumentError"),"step can't be 0")}function f(){if(!u.begin["$respond_to?"]("succ")||u.begin.$$is_string&& +u.end.$$is_string)return H;if(0===a%1){var b=u.$size();return("number"===typeof b&&"number"===typeof a?b/a:b["$/"](a)).$ceil()}b=u.begin;var c=u.end,e=Math.abs,f=Math.floor;e=(e(b)+e(c)+e(c-b))/e(a)*l(F(k,"Float"),"EPSILON");.5=e:f["$>="](e),r(e)&&b.brk(H,c)):r(D(f,e.end))&&b.brk(H,c);b.yield1(n,f);return y=v(y,1)},m.$$s=u,m.$$brk=c,m.$$arity=0,m))}catch(ca){if(ca===c)return ca.$v;throw ca;}}()):(u.begin.$$is_string&&u.end.$$is_string&& +0!==a%1&&u.$raise(F(k,"TypeError"),"no implicit conversion to float from string"),N(u,"each_with_index",[],(p=function(c,e){null==c&&(c=H);null==e&&(e=H);return e["$%"](a)["$=="](0)?b.yield1(n,c):H},p.$$s=u,p.$$arity=2,p)));return u},h.$$arity=-1);b.def(g,"$bsearch",c=function(){var a=c.$$p,b=a||H;a&&(c.$$p=null);a&&(c.$$p=null);if(b===H)return this.$enum_for("bsearch");r(this.begin.$$is_number&&this.end.$$is_number)||this.$raise(F(k,"TypeError"),"can't do binary search for "+this.begin.$class()); +return N(this.$to_a(),"bsearch",[],b.$to_proc())},c.$$arity=0);b.def(g,"$to_s",z=function(){return""+this.begin+(r(this.excl)?"...":"..")+this.end},z.$$arity=0);b.def(g,"$inspect",p=function(){return""+this.begin.$inspect()+(r(this.excl)?"...":"..")+this.end.$inspect()},p.$$arity=0);b.def(g,"$marshal_load",T=function(a){this.begin=a["$[]"]("begin");this.end=a["$[]"]("end");return this.excl=a["$[]"]("excl")},T.$$arity=1);return(b.def(g,"$hash",O=function(){return[this.begin,this.end,this.excl].$hash()}, +O.$$arity=0),H)&&"hash"}(g[0],null,g)}; +Opal.modules["corelib/proc"]=function(b){var t=[],B=b.nil,D=b.const_get_relative,v=b.slice,q=b.klass,g=b.truthy;b.add_stubs(["$raise","$coerce_to!"]);return function(t,$super,F){t=q(t,$super,"Proc");var w=[t].concat(F),r,H,M,K,x,k,ma,P,E,I;b.defineProperty(t.$$prototype,"$$is_proc",!0);b.defineProperty(t.$$prototype,"$$is_lambda",!1);b.defs(t,"$new",r=function(){var b=r.$$p,k=b||B;b&&(r.$$p=null);b&&(r.$$p=null);g(k)||this.$raise(D(w,"ArgumentError"),"tried to create a Proc object without a block");return k}, +r.$$arity=0);b.def(t,"$call",H=function(g){var k=H.$$p,a=k||B;k&&(H.$$p=null);k&&(H.$$p=null);k=b.slice.call(arguments,0,arguments.length);a!==B&&(this.$$p=a);if(a=this.$$brk)try{var d=this.$$is_lambda?this.apply(null,k):b.yieldX(this,k)}catch(u){if(u===a)return a.$v;throw u;}else d=this.$$is_lambda?this.apply(null,k):b.yieldX(this,k);return d},H.$$arity=-1);b.alias(t,"[]","call");b.alias(t,"===","call");b.alias(t,"yield","call");b.def(t,"$to_proc",M=function(){return this},M.$$arity=0);b.def(t,"$lambda?", +K=function(){return!!this.$$is_lambda},K.$$arity=0);b.def(t,"$arity",x=function(){return this.$$is_curried?-1:this.$$arity},x.$$arity=0);b.def(t,"$source_location",k=function(){return B},k.$$arity=0);b.def(t,"$binding",ma=function(){this.$$is_curried&&this.$raise(D(w,"ArgumentError"),"Can't create Binding");return B},ma.$$arity=0);b.def(t,"$parameters",P=function(){if(this.$$is_curried)return[["rest"]];if(this.$$parameters){if(this.$$is_lambda)return this.$$parameters;var b=[],g;var a=0;for(g=this.$$parameters.length;a< +g;a++){var d=this.$$parameters[a];"req"===d[0]&&(d=["opt",d[1]]);b.push(d)}return b}return[]},P.$$arity=0);b.def(t,"$curry",E=function(b){function g(){var d=v.call(arguments),u=d.length;u>b&&a.$$is_lambda&&!a.$$is_curried&&a.$raise(D(w,"ArgumentError"),"wrong number of arguments ("+u+" for "+b+")");if(u>=b)return a.$call.apply(a,d);u=function(){return g.apply(null,d.concat(v.call(arguments)))};u.$$is_lambda=a.$$is_lambda;u.$$is_curried=!0;return u}var a=this;void 0===b?b=a.length:(b=D(w,"Opal")["$coerce_to!"](b, +D(w,"Integer"),"to_int"),a.$$is_lambda&&b!==a.length&&a.$raise(D(w,"ArgumentError"),"wrong number of arguments ("+b+" for "+a.length+")"));g.$$is_lambda=a.$$is_lambda;g.$$is_curried=!0;return g},E.$$arity=-1);b.def(t,"$dup",I=function(){var b=this.$$original_proc||this,g=function(){return b.apply(this,arguments)},a;for(a in this)this.hasOwnProperty(a)&&(g[a]=this[a]);return g},I.$$arity=0);return b.alias(t,"clone","dup")}(t[0],Function,t)}; +Opal.modules["corelib/method"]=function(b){var t=[],B=b.nil,D=b.const_get_relative,v=b.klass,q=b.truthy;b.add_stubs("$attr_reader $arity $new $class $join $source_location $raise".split(" "));(function(g,$super,l){g=v(g,$super,"Method");var t=[g].concat(l),w,r,N,M,K,x,k,ma,P;g.$$prototype.method=g.$$prototype.receiver=g.$$prototype.owner=g.$$prototype.name=B;g.$attr_reader("owner","receiver","name");b.def(g,"$initialize",w=function(b,g,k,l){this.receiver=b;this.owner=g;this.name=l;return this.method= +k},w.$$arity=4);b.def(g,"$arity",r=function(){return this.method.$arity()},r.$$arity=0);b.def(g,"$parameters",N=function(){return this.method.$$parameters},N.$$arity=0);b.def(g,"$source_location",M=function(){var b;return q(b=this.method.$$source_location)?b:["(eval)",0]},M.$$arity=0);b.def(g,"$comments",K=function(){var b;return q(b=this.method.$$comments)?b:[]},K.$$arity=0);b.def(g,"$call",x=function(g){var k=x.$$p,l=k||B;k&&(x.$$p=null);k&&(x.$$p=null);k=b.slice.call(arguments,0,arguments.length); +this.method.$$p=l;return this.method.apply(this.receiver,k)},x.$$arity=-1);b.alias(g,"[]","call");b.def(g,"$unbind",k=function(){return D(t,"UnboundMethod").$new(this.receiver.$class(),this.owner,this.method,this.name)},k.$$arity=0);b.def(g,"$to_proc",ma=function(){var b=this.$call.bind(this);b.$$unbound=this.method;b.$$is_lambda=!0;b.$$arity=this.method.$$arity;b.$$parameters=this.method.$$parameters;return b},ma.$$arity=0);return(b.def(g,"$inspect",P=function(){return"#<"+this.$class()+": "+this.receiver.$class()+ +"#"+this.name+" (defined in "+this.owner+" in "+this.$source_location().$join(":")+")>"},P.$$arity=0),B)&&"inspect"})(t[0],null,t);return function(g,$super,l){g=v(g,$super,"UnboundMethod");var t=[g].concat(l),w,r,N,M,K,x,k;g.$$prototype.method=g.$$prototype.owner=g.$$prototype.name=g.$$prototype.source=B;g.$attr_reader("source","owner","name");b.def(g,"$initialize",w=function(b,g,k,l){this.source=b;this.owner=g;this.method=k;return this.name=l},w.$$arity=4);b.def(g,"$arity",r=function(){return this.method.$arity()}, +r.$$arity=0);b.def(g,"$parameters",N=function(){return this.method.$$parameters},N.$$arity=0);b.def(g,"$source_location",M=function(){var b;return q(b=this.method.$$source_location)?b:["(eval)",0]},M.$$arity=0);b.def(g,"$comments",K=function(){var b;return q(b=this.method.$$comments)?b:[]},K.$$arity=0);b.def(g,"$bind",x=function(g){if(this.owner.$$is_module||b.is_a(g,this.owner))return D(t,"Method").$new(g,this.owner,this.method,this.name);this.$raise(D(t,"TypeError"),"can't bind singleton method to a different class (expected "+ +g+".kind_of?("+this.owner+" to be true)")},x.$$arity=1);return(b.def(g,"$inspect",k=function(){return"#<"+this.$class()+": "+this.source+"#"+this.name+" (defined in "+this.owner+" in "+this.$source_location().$join(":")+")>"},k.$$arity=0),B)&&"inspect"}(t[0],null,t)}; +Opal.modules["corelib/variables"]=function(b){var t=[],B=b.nil,D=b.const_get_relative,v=b.gvars,q=b.hash2;b.add_stubs(["$new"]);v["&"]=v["~"]=v["`"]=v["'"]=B;v.LOADED_FEATURES=v['"']=b.loaded_features;v.LOAD_PATH=v[":"]=[];v["/"]="\n";v[","]=B;b.const_set(t[0],"ARGV",[]);b.const_set(t[0],"ARGF",D(t,"Object").$new());b.const_set(t[0],"ENV",q([],{}));v.VERBOSE=!1;v.DEBUG=!1;return v.SAFE=0}; +Opal.modules["opal/regexp_anchors"]=function(b){var t=[],B=b.nil,D=b.const_get_relative,v=b.module;b.add_stubs(["$==","$new"]);t=[v(t[0],"Opal")].concat(t);b.const_set(t[0],"REGEXP_START",D(t,"RUBY_ENGINE")["$=="]("opal")?"^":B);b.const_set(t[0],"REGEXP_END",D(t,"RUBY_ENGINE")["$=="]("opal")?"$":B);b.const_set(t[0],"FORBIDDEN_STARTING_IDENTIFIER_CHARS","\\u0001-\\u002F\\u003A-\\u0040\\u005B-\\u005E\\u0060\\u007B-\\u007F");b.const_set(t[0],"FORBIDDEN_ENDING_IDENTIFIER_CHARS","\\u0001-\\u0020\\u0022-\\u002F\\u003A-\\u003E\\u0040\\u005B-\\u005E\\u0060\\u007B-\\u007F"); +b.const_set(t[0],"INLINE_IDENTIFIER_REGEXP",D(t,"Regexp").$new("[^"+D(t,"FORBIDDEN_STARTING_IDENTIFIER_CHARS")+"]*[^"+D(t,"FORBIDDEN_ENDING_IDENTIFIER_CHARS")+"]"));b.const_set(t[0],"FORBIDDEN_CONST_NAME_CHARS","\\u0001-\\u0020\\u0021-\\u002F\\u003B-\\u003F\\u0040\\u005B-\\u005E\\u0060\\u007B-\\u007F");b.const_set(t[0],"CONST_NAME_REGEXP",D(t,"Regexp").$new(""+D(t,"REGEXP_START")+"(::)?[A-Z][^"+D(t,"FORBIDDEN_CONST_NAME_CHARS")+"]*"+D(t,"REGEXP_END")))}; +Opal.modules["opal/mini"]=function(b){var t=b.top;b.add_stubs(["$require"]);t.$require("opal/base");t.$require("corelib/nil");t.$require("corelib/boolean");t.$require("corelib/string");t.$require("corelib/comparable");t.$require("corelib/enumerable");t.$require("corelib/enumerator");t.$require("corelib/array");t.$require("corelib/hash");t.$require("corelib/number");t.$require("corelib/range");t.$require("corelib/proc");t.$require("corelib/method");t.$require("corelib/regexp");t.$require("corelib/variables"); +return t.$require("opal/regexp_anchors")}; +Opal.modules["corelib/string/encoding"]=function(b){function t(b,g){return"number"===typeof b&&"number"===typeof g?b+g:b["$+"](g)}var B,D,v,q,g,H=b.top,l=[],F=b.nil,w=b.const_get_qualified,r=b.const_get_relative,N=b.klass,M=b.hash2,K=b.truthy,x=b.send;b.add_stubs("$require $+ $[] $new $to_proc $each $const_set $sub $== $default_external $upcase $raise $attr_accessor $attr_reader $register $length $bytes $to_a $each_byte $bytesize $enum_for $force_encoding $dup $coerce_to! $find $getbyte".split(" "));H.$require("corelib/string"); +(function(g,$super,l){g=N(g,$super,"Encoding");var k=[g].concat(l),q,w,v,a,d,u,C,J,n,h;g.$$prototype.ascii=g.$$prototype.dummy=g.$$prototype.name=F;b.defineProperty(g,"$$register",{});b.defs(g,"$register",q=function(a,b){var c=q.$$p,d=c||F,h,m,e=F,f=F,g=F;c&&(q.$$p=null);c&&(q.$$p=null);null==b&&(b=M([],{}));e=t([a],K(h=b["$[]"]("aliases"))?h:[]);f=x(r(k,"Class"),"new",[this],d.$to_proc()).$new(a,e,K(h=b["$[]"]("ascii"))?h:!1,K(h=b["$[]"]("dummy"))?h:!1);g=this.$$register;return x(e,"each",[],(m= +function(a){var b=m.$$s||this;null==a&&(a=F);b.$const_set(a.$sub("-","_"),f);return g["$$"+a]=f},m.$$s=this,m.$$arity=1,m))},q.$$arity=-2);b.defs(g,"$find",w=function(a){var b;if(a["$=="]("default_external"))return this.$default_external();var c=this.$$register;c=K(b=c["$$"+a])?b:c["$$"+a.$upcase()];K(c)||this.$raise(r(k,"ArgumentError"),"unknown encoding name - "+a);return c},w.$$arity=1);(function(a,b){[a].concat(b);return a.$attr_accessor("default_external")})(b.get_singleton_class(g),k);g.$attr_reader("name", +"names");b.def(g,"$initialize",v=function(a,b,d,h){this.name=a;this.names=b;this.ascii=d;return this.dummy=h},v.$$arity=4);b.def(g,"$ascii_compatible?",a=function(){return this.ascii},a.$$arity=0);b.def(g,"$dummy?",d=function(){return this.dummy},d.$$arity=0);b.def(g,"$to_s",u=function(){return this.name},u.$$arity=0);b.def(g,"$inspect",C=function(){return"#"},C.$$arity=0);b.def(g,"$each_byte",J=function(a){b.slice.call(arguments,0,arguments.length); +return this.$raise(r(k,"NotImplementedError"))},J.$$arity=-1);b.def(g,"$getbyte",n=function(a){b.slice.call(arguments,0,arguments.length);return this.$raise(r(k,"NotImplementedError"))},n.$$arity=-1);b.def(g,"$bytesize",h=function(a){b.slice.call(arguments,0,arguments.length);return this.$raise(r(k,"NotImplementedError"))},h.$$arity=-1);(function(a,$super,b){[N(a,$super,"EncodingError")].concat(b);return F})(k[0],r(k,"StandardError"),k);return function(a,$super,b){[N(a,$super,"CompatibilityError")].concat(b); +return F}(k[0],r(k,"EncodingError"),k)})(l[0],null,l);x(r(l,"Encoding"),"register",["UTF-8",M(["aliases","ascii"],{aliases:["CP65001"],ascii:!0})],(B=function(){var g=B.$$s||this,l,r;b.def(g,"$each_byte",l=function(g){var k=l.$$p,r=k||F;k&&(l.$$p=null);k&&(l.$$p=null);k=0;for(var q=g.length;k=a)b.yield1(r,a);else{a=encodeURIComponent(g.charAt(k)).substr(1).split("%");for(var d=0,u=a.length;d>8)}},l.$$arity=1);return(b.def(g,"$bytesize",r=function(b){return b.$bytes().$length()},r.$$arity=1),F)&&"bytesize"},D.$$s=H,D.$$arity=0,D));x(r(l,"Encoding"), +"register",["UTF-16BE"],(v=function(){var g=v.$$s||this,l,r;b.def(g,"$each_byte",l=function(g){var k=l.$$p,r=k||F;k&&(l.$$p=null);k&&(l.$$p=null);k=0;for(var q=g.length;k>8);b.yield1(r,a&255)}},l.$$arity=1);return(b.def(g,"$bytesize",r=function(b){return b.$bytes().$length()},r.$$arity=1),F)&&"bytesize"},v.$$s=H,v.$$arity=0,v));x(r(l,"Encoding"),"register",["UTF-32LE"],(q=function(){var g=q.$$s||this,l,r;b.def(g,"$each_byte",l=function(g){var k=l.$$p,r=k|| +F;k&&(l.$$p=null);k&&(l.$$p=null);k=0;for(var q=g.length;k>8)}},l.$$arity=1);return(b.def(g,"$bytesize",r=function(b){return b.$bytes().$length()},r.$$arity=1),F)&&"bytesize"},q.$$s=H,q.$$arity=0,q));x(r(l,"Encoding"),"register",["ASCII-8BIT",M(["aliases","ascii","dummy"],{aliases:["BINARY","US-ASCII","ASCII"],ascii:!0,dummy:!0})],(g=function(){var k=g.$$s||this,l,r;b.def(k,"$each_byte",l=function(g){var k=l.$$p,r=k||F;k&&(l.$$p=null);k&& +(l.$$p=null);k=0;for(var q=g.length;k>8)}},l.$$arity=1);return(b.def(k,"$bytesize",r=function(b){return b.$bytes().$length()},r.$$arity=1),F)&&"bytesize"},g.$$s=H,g.$$arity=0,g));return function(g,$super,l){g=N(g,$super,"String");var k=[g].concat(l),q,t,v,a,d,u,C;g.$$prototype.encoding=F;g.$attr_reader("encoding");b.defineProperty(String.prototype,"encoding",w(r(k,"Encoding"),"UTF_16LE"));b.def(g,"$bytes",q=function(){return this.$each_byte().$to_a()}, +q.$$arity=0);b.def(g,"$bytesize",t=function(){return this.encoding.$bytesize(this)},t.$$arity=0);b.def(g,"$each_byte",v=function(){var a=v.$$p,b=a||F;a&&(v.$$p=null);a&&(v.$$p=null);if(b===F)return this.$enum_for("each_byte");x(this.encoding,"each_byte",[this],b.$to_proc());return this},v.$$arity=0);b.def(g,"$encode",a=function(a){return this.$dup().$force_encoding(a)},a.$$arity=1);b.def(g,"$force_encoding",d=function(a){if(a===this.encoding)return this;a=r(k,"Opal")["$coerce_to!"](a,r(k,"String"), +"to_s");a=r(k,"Encoding").$find(a);if(a===this.encoding)return this;this.encoding=a;return this},d.$$arity=1);b.def(g,"$getbyte",u=function(a){return this.encoding.$getbyte(this,a)},u.$$arity=1);return(b.def(g,"$valid_encoding?",C=function(){return!0},C.$$arity=0),F)&&"valid_encoding?"}(l[0],null,l)}; +Opal.modules["corelib/struct"]=function(b){function t(b,g){return"number"===typeof b&&"number"===typeof g?b>g:b["$>"](g)}function B(b,g){return"number"===typeof b&&"number"===typeof g?b-g:b["$-"](g)}function D(b,g){return"number"===typeof b&&"number"===typeof g?b=g:b["$>="](g)}function q(b,g){return"number"===typeof b&&"number"===typeof g?b+g:b["$+"](g)}var g=b.top,H=[],l=b.nil,F=b.const_get_relative,w=b.klass,r=b.hash2, +N=b.truthy,M=b.send;b.add_stubs("$require $include $const_name! $unshift $map $coerce_to! $new $each $define_struct_attribute $allocate $initialize $alias_method $module_eval $to_proc $const_set $== $raise $<< $members $define_method $instance_eval $class $last $> $length $- $keys $any? $join $[] $[]= $each_with_index $hash $=== $< $-@ $size $>= $include? $to_sym $instance_of? $__id__ $eql? $enum_for $name $+ $each_pair $inspect $each_with_object $flatten $to_a $respond_to? $dig".split(" "));g.$require("corelib/enumerable"); +return function(g,$super,k){g=w(g,$super,"Struct");var H=[g].concat(k),K,E,I,ea,Y,a,d,u,C,J,n,h,c,z,p,T,O,m,e;g.$include(F(H,"Enumerable"));b.defs(g,"$new",K=function(a,c,e){var f=K.$$p,d=f||l,m,p;var g=l;f&&(K.$$p=null);f&&(K.$$p=null);var h=b.slice.call(arguments,1,arguments.length);g=b.extract_kwargs(h);if(null==g)g=r([],{});else if(!g.$$is_hash)throw b.ArgumentError.$new("expected kwargs");f=g.$$smap.keyword_init;null==f&&(f=!1);if(N(a))try{a=F(H,"Opal")["$const_name!"](a)}catch(ca){if(b.rescue(ca, +[F(H,"TypeError"),F(H,"NameError")]))try{h.$unshift(a),a=l}finally{b.pop_exception()}else throw ca;}M(h,"map",[],(m=function(a){null==a&&(a=l);return F(H,"Opal")["$coerce_to!"](a,F(H,"String"),"to_str")},m.$$s=this,m.$$arity=1,m));g=M(F(H,"Class"),"new",[this],(p=function(){var a=p.$$s||this,c;M(h,"each",[],(c=function(a){var b=c.$$s||this;null==a&&(a=l);return b.$define_struct_attribute(a)},c.$$s=a,c.$$arity=1,c));return function(a,c){[a].concat(c);var e;b.def(a,"$new",e=function(a){var c=b.slice.call(arguments, +0,arguments.length);var e=this.$allocate();e.$$data={};M(e,"initialize",b.to_a(c));return e},e.$$arity=-1);return a.$alias_method("[]","new")}(b.get_singleton_class(a),H)},p.$$s=this,p.$$arity=0,p));N(d)&&M(g,"module_eval",[],d.$to_proc());g.$$keyword_init=f;N(a)&&F(H,"Struct").$const_set(a,g);return g},K.$$arity=-2);b.defs(g,"$define_struct_attribute",E=function(a){var b,c;this["$=="](F(H,"Struct"))&&this.$raise(F(H,"ArgumentError"),"you cannot define attributes to the Struct class");this.$members()["$<<"](a); +M(this,"define_method",[a],(b=function(){return(b.$$s||this).$$data[a]},b.$$s=this,b.$$arity=0,b));return M(this,"define_method",[""+a+"="],(c=function(b){var e=c.$$s||this;null==b&&(b=l);return e.$$data[a]=b},c.$$s=this,c.$$arity=1,c))},E.$$arity=1);b.defs(g,"$members",I=function(){var a;null==this.members&&(this.members=l);this["$=="](F(H,"Struct"))&&this.$raise(F(H,"ArgumentError"),"the Struct class has no members");return this.members=N(a=this.members)?a:[]},I.$$arity=0);b.defs(g,"$inherited", +ea=function(a){var b,c=l;null==this.members&&(this.members=l);c=this.members;return M(a,"instance_eval",[],(b=function(){return(b.$$s||this).members=c},b.$$s=this,b.$$arity=0,b))},ea.$$arity=1);b.def(g,"$initialize",Y=function(a){var c,e,f,d=l,m=l;var p=b.slice.call(arguments,0,arguments.length);if(N(this.$class().$$keyword_init))return d=N(c=p.$last())?c:r([],{}),N(N(c=t(p.$length(),1))?c:1===p.length&&!d.$$is_hash)&&this.$raise(F(H,"ArgumentError"),"wrong number of arguments (given "+p.$length()+ +", expected 0)"),m=B(d.$keys(),this.$class().$members()),N(m["$any?"]())&&this.$raise(F(H,"ArgumentError"),"unknown keywords: "+m.$join(", ")),M(this.$class().$members(),"each",[],(e=function(a){var c=e.$$s||this;null==a&&(a=l);a=[a,d["$[]"](a)];M(c,"[]=",b.to_a(a));return a[B(a.length,1)]},e.$$s=this,e.$$arity=1,e));N(t(p.$length(),this.$class().$members().$length()))&&this.$raise(F(H,"ArgumentError"),"struct size differs");return M(this.$class().$members(),"each_with_index",[],(f=function(a,c){var e= +f.$$s||this;null==a&&(a=l);null==c&&(c=l);a=[a,p["$[]"](c)];M(e,"[]=",b.to_a(a));return a[B(a.length,1)]},f.$$s=this,f.$$arity=2,f))},Y.$$arity=-1);b.def(g,"$members",a=function(){return this.$class().$members()},a.$$arity=0);b.def(g,"$hash",d=function(){return F(H,"Hash").$new(this.$$data).$hash()},d.$$arity=0);b.def(g,"$[]",u=function(a){N(F(H,"Integer")["$==="](a))?(N(D(a,this.$class().$members().$size()["$-@"]()))&&this.$raise(F(H,"IndexError"),"offset "+a+" too small for struct(size:"+this.$class().$members().$size()+ +")"),N(v(a,this.$class().$members().$size()))&&this.$raise(F(H,"IndexError"),"offset "+a+" too large for struct(size:"+this.$class().$members().$size()+")"),a=this.$class().$members()["$[]"](a)):N(F(H,"String")["$==="](a))?this.$$data.hasOwnProperty(a)||this.$raise(F(H,"NameError").$new("no member '"+a+"' in struct",a)):this.$raise(F(H,"TypeError"),"no implicit conversion of "+a.$class()+" into Integer");a=F(H,"Opal")["$coerce_to!"](a,F(H,"String"),"to_str");return this.$$data[a]},u.$$arity=1);b.def(g, +"$[]=",C=function(a,b){N(F(H,"Integer")["$==="](a))?(N(D(a,this.$class().$members().$size()["$-@"]()))&&this.$raise(F(H,"IndexError"),"offset "+a+" too small for struct(size:"+this.$class().$members().$size()+")"),N(v(a,this.$class().$members().$size()))&&this.$raise(F(H,"IndexError"),"offset "+a+" too large for struct(size:"+this.$class().$members().$size()+")"),a=this.$class().$members()["$[]"](a)):N(F(H,"String")["$==="](a))?N(this.$class().$members()["$include?"](a.$to_sym()))||this.$raise(F(H, +"NameError").$new("no member '"+a+"' in struct",a)):this.$raise(F(H,"TypeError"),"no implicit conversion of "+a.$class()+" into Integer");a=F(H,"Opal")["$coerce_to!"](a,F(H,"String"),"to_str");return this.$$data[a]=b},C.$$arity=2);b.def(g,"$==",J=function(a){function b(a,f){var d;c[a.$__id__()]=!0;e[f.$__id__()]=!0;for(d in a.$$data){var m=a.$$data[d];var p=f.$$data[d];if(F(H,"Struct")["$==="](m)){if(!(c.hasOwnProperty(m.$__id__())&&e.hasOwnProperty(p.$__id__())||b(m,p)))return!1}else if(!m["$=="](p))return!1}return!0} +if(!N(a["$instance_of?"](this.$class())))return!1;var c={},e={};return b(this,a)},J.$$arity=1);b.def(g,"$eql?",n=function(a){function b(a,f){var d;c[a.$__id__()]=!0;e[f.$__id__()]=!0;for(d in a.$$data){var m=a.$$data[d];var p=f.$$data[d];if(F(H,"Struct")["$==="](m)){if(!(c.hasOwnProperty(m.$__id__())&&e.hasOwnProperty(p.$__id__())||b(m,p)))return!1}else if(!m["$eql?"](p))return!1}return!0}if(!N(a["$instance_of?"](this.$class())))return!1;var c={},e={};return b(this,a)},n.$$arity=1);b.def(g,"$each", +h=function(){var a,c,e=h.$$p,d=e||l;e&&(h.$$p=null);if(d===l)return M(this,"enum_for",["each"],(a=function(){return(a.$$s||this).$size()},a.$$s=this,a.$$arity=0,a));M(this.$class().$members(),"each",[],(c=function(a){var e=c.$$s||this;null==a&&(a=l);return b.yield1(d,e["$[]"](a))},c.$$s=this,c.$$arity=1,c));return this},h.$$arity=0);b.def(g,"$each_pair",c=function(){var a,e,d=c.$$p,m=d||l;d&&(c.$$p=null);if(m===l)return M(this,"enum_for",["each_pair"],(a=function(){return(a.$$s||this).$size()},a.$$s= +this,a.$$arity=0,a));M(this.$class().$members(),"each",[],(e=function(a){var c=e.$$s||this;null==a&&(a=l);return b.yield1(m,[a,c["$[]"](a)])},e.$$s=this,e.$$arity=1,e));return this},c.$$arity=0);b.def(g,"$length",z=function(){return this.$class().$members().$length()},z.$$arity=0);b.alias(g,"size","length");b.def(g,"$to_a",p=function(){var a;return M(this.$class().$members(),"map",[],(a=function(b){var c=a.$$s||this;null==b&&(b=l);return c["$[]"](b)},a.$$s=this,a.$$arity=1,a))},p.$$arity=0);b.alias(g, +"values","to_a");b.def(g,"$inspect",T=function(){var a,b,c=l;c="#")},T.$$arity=0);b.alias(g,"to_s","inspect");b.def(g,"$to_h",O=function(){var a;return M(this.$class().$members(),"each_with_object",[r([],{})],(a=function(c,e){var f=a.$$s|| +this;null==c&&(c=l);null==e&&(e=l);c=[c,f["$[]"](c)];M(e,"[]=",b.to_a(c));return c[B(c.length,1)]},a.$$s=this,a.$$arity=2,a))},O.$$arity=0);b.def(g,"$values_at",m=function(a){var c;var e=b.slice.call(arguments,0,arguments.length);e=M(e,"map",[],(c=function(a){null==a&&(a=l);return a.$$is_range?a.$to_a():a},c.$$s=this,c.$$arity=1,c)).$flatten();c=[];for(var f=0,d=e.length;f"},C.$$arity=0);a.def(d,"$==",y=function(a){var b,c;return p(this["$equal?"](a))?!0:p(a["$instance_of?"](this.$class()))?this.hash["$=="](a.$instance_variable_get("@hash")):p(p(b=a["$is_a?"](h(m,"Set")))?this.$size()["$=="](a.$size()):b)?r(a,"all?",[],(c=function(a){var b=c.$$s||this;null==b.hash&&(b.hash=n);null==a&&(a=n);return b.hash["$include?"](a)},c.$$s=this,c.$$arity=1,c)):!1},y.$$arity=1);a.def(d,"$add",q=function(c){c=[c,!0];r(this.hash,"[]=",a.to_a(c));c[b(c.length, +1)];return this},q.$$arity=1);a.alias(d,"<<","add");a.def(d,"$classify",J=function(){var c=J.$$p,f=c||n,d,p,g=n;c&&(J.$$p=null);c&&(J.$$p=null);if(f===n)return this.$enum_for("classify");g=r(h(m,"Hash"),"new",[],(d=function(c,f){var m=d.$$s||this;null==c&&(c=n);null==f&&(f=n);f=[f,m.$class().$new()];r(c,"[]=",a.to_a(f));return f[b(f.length,1)]},d.$$s=this,d.$$arity=2,d));r(this,"each",[],(p=function(b){null==b&&(b=n);return g["$[]"](a.yield1(f,b)).$add(b)},p.$$s=this,p.$$arity=1,p));return g},J.$$arity= +0);a.def(d,"$collect!",t=function(){var b=t.$$p,c=b||n,f,d=n;b&&(t.$$p=null);b&&(t.$$p=null);if(c===n)return this.$enum_for("collect!");d=this.$class().$new();r(this,"each",[],(f=function(b){null==b&&(b=n);return d["$<<"](a.yield1(c,b))},f.$$s=this,f.$$arity=1,f));return this.$replace(d)},t.$$arity=0);a.alias(d,"map!","collect!");a.def(d,"$delete",T=function(a){this.hash.$delete(a);return this},T.$$arity=1);a.def(d,"$delete?",v=function(a){return p(this["$include?"](a))?(this.$delete(a),this):n}, +v.$$arity=1);a.def(d,"$delete_if",w=function(){var b,c,f=w.$$p,d=f||n;f&&(w.$$p=null);if(d===n)return this.$enum_for("delete_if");r(r(this,"select",[],(b=function(b){null==b&&(b=n);return a.yield1(d,b)},b.$$s=this,b.$$arity=1,b)),"each",[],(c=function(a){var b=c.$$s||this;null==b.hash&&(b.hash=n);null==a&&(a=n);return b.hash.$delete(a)},c.$$s=this,c.$$arity=1,c));return this},w.$$arity=0);a.def(d,"$add?",aa=function(a){return p(this["$include?"](a))?n:this.$add(a)},aa.$$arity=1);a.def(d,"$each",X= +function(){var a=X.$$p,b=a||n;a&&(X.$$p=null);a&&(X.$$p=null);if(b===n)return this.$enum_for("each");r(this.hash,"each_key",[],b.$to_proc());return this},X.$$arity=0);a.def(d,"$empty?",B=function(){return this.hash["$empty?"]()},B.$$arity=0);a.def(d,"$eql?",E=function(a){var b;return this.hash["$eql?"](r(a,"instance_eval",[],(b=function(){var a=b.$$s||this;null==a.hash&&(a.hash=n);return a.hash},b.$$s=this,b.$$arity=0,b)))},E.$$arity=1);a.def(d,"$clear",D=function(){this.hash.$clear();return this}, +D.$$arity=0);a.def(d,"$include?",za=function(a){return this.hash["$include?"](a)},za.$$arity=1);a.alias(d,"member?","include?");a.def(d,"$merge",xa=function(a){var b;r(a,"each",[],(b=function(a){var c=b.$$s||this;null==a&&(a=n);return c.$add(a)},b.$$s=this,b.$$arity=1,b));return this},xa.$$arity=1);a.def(d,"$replace",la=function(a){this.$clear();this.$merge(a);return this},la.$$arity=1);a.def(d,"$size",V=function(){return this.hash.$size()},V.$$arity=0);a.alias(d,"length","size");a.def(d,"$subtract", +F=function(a){var b;r(a,"each",[],(b=function(a){var c=b.$$s||this;null==a&&(a=n);return c.$delete(a)},b.$$s=this,b.$$arity=1,b));return this},F.$$arity=1);a.def(d,"$|",Z=function(a){p(a["$respond_to?"]("each"))||this.$raise(h(m,"ArgumentError"),"value must be enumerable");return this.$dup().$merge(a)},Z.$$arity=1);a.def(d,"$superset?",H=function(a){var b,c;p(b=a["$is_a?"](h(m,"Set")))?b:this.$raise(h(m,"ArgumentError"),"value must be a set");return p(g(this.$size(),a.$size()))?!1:r(a,"all?",[],(c= +function(a){var b=c.$$s||this;null==a&&(a=n);return b["$include?"](a)},c.$$s=this,c.$$arity=1,c))},H.$$arity=1);a.alias(d,">=","superset?");a.def(d,"$proper_superset?",x=function(a){var b,c;p(b=a["$is_a?"](h(m,"Set")))?b:this.$raise(h(m,"ArgumentError"),"value must be a set");return p(k(this.$size(),a.$size()))?!1:r(a,"all?",[],(c=function(a){var b=c.$$s||this;null==a&&(a=n);return b["$include?"](a)},c.$$s=this,c.$$arity=1,c))},x.$$arity=1);a.alias(d,">","proper_superset?");a.def(d,"$subset?",I=function(a){var b, +c;p(b=a["$is_a?"](h(m,"Set")))?b:this.$raise(h(m,"ArgumentError"),"value must be a set");return p(g(a.$size(),this.$size()))?!1:r(this,"all?",[],(c=function(b){null==b&&(b=n);return a["$include?"](b)},c.$$s=this,c.$$arity=1,c))},I.$$arity=1);a.alias(d,"<=","subset?");a.def(d,"$proper_subset?",ba=function(a){var b,c;p(b=a["$is_a?"](h(m,"Set")))?b:this.$raise(h(m,"ArgumentError"),"value must be a set");return p(k(a.$size(),this.$size()))?!1:r(this,"all?",[],(c=function(b){null==b&&(b=n);return a["$include?"](b)}, +c.$$s=this,c.$$arity=1,c))},ba.$$arity=1);a.alias(d,"<","proper_subset?");a.alias(d,"+","|");a.alias(d,"union","|");return(a.def(d,"$to_a",ka=function(){return this.hash.$keys()},ka.$$arity=0),n)&&"to_a"})(l[0],null,l);return function(b,c){b=O(b,"Enumerable");var e=[b].concat(c),d;a.def(b,"$to_set",d=function(b,c){var f=d.$$p,m=f||n;f&&(d.$$p=null);f&&(d.$$p=null);f=a.slice.call(arguments,0,arguments.length);if(0"]);return function(b,$super,d){b=l(b,$super,"Number");var p=[b].concat(d),h;return(a.def(b,"$round",h=function(a){a=k(p,"Opal")["$coerce_to!"](a,k(p,"Integer"),"to_int");return n("number"===typeof a?0"](0))?Number(this.toFixed(a)):Math.round(this)},h.$$arity=-1),g)&&"round"}(b[0],k(b,"Numeric"),b)};Opal.modules["asciidoctor/js/opal_ext"]= +function(a){var b=a.top;a.add_stubs(["$require"]);b.$require("asciidoctor/js/opal_ext/kernel");b.$require("asciidoctor/js/opal_ext/file");b.$require("asciidoctor/js/opal_ext/match_data");b.$require("asciidoctor/js/opal_ext/string");b.$require("asciidoctor/js/opal_ext/uri");b.$require("asciidoctor/js/opal_ext/base64");b.$require("asciidoctor/js/opal_ext/number");a.config.unsupported_features_severity="ignore";b.$require("asciidoctor/js/opal_ext/browser")};Opal.modules["asciidoctor/js/rx"]=function(a){function b(a, +b){return"number"===typeof a&&"number"===typeof b?a+b:a["$+"](b)}var g=[],k=a.nil,l=a.const_get_relative,n=a.module,h=a.send,c=a.gvars,z=a.truthy;a.add_stubs(["$gsub","$+","$unpack_hex_range"]);return function(d,g){d=n(d,"Asciidoctor");var p=[d].concat(g),m;a.const_set(p[0],"HEX_RANGE_RX",/([A-F0-9]{4})(?:-([A-F0-9]{4}))?/);a.defs(d,"$unpack_hex_range",m=function(a){var b;return h(a,"gsub",[l(p,"HEX_RANGE_RX")],(b=function(){var a,b;return"\\u"+((a=c["~"])===k?k:a["$[]"](1))+(z(a=(b=c["~"])===k?k: +b["$[]"](2))?"-\\u"+((b=c["~"])===k?k:b["$[]"](2)):a)},b.$$s=this,b.$$arity=0,b))},m.$$arity=1);a.const_set(p[0],"P_L",b("A-Za-z",d.$unpack_hex_range("00AA00B500BA00C0-00D600D8-00F600F8-02C102C6-02D102E0-02E402EC02EE0370-037403760377037A-037D037F03860388-038A038C038E-03A103A3-03F503F7-0481048A-052F0531-055605590561-058705D0-05EA05F0-05F20620-064A066E066F0671-06D306D506E506E606EE06EF06FA-06FC06FF07100712-072F074D-07A507B107CA-07EA07F407F507FA0800-0815081A082408280840-085808A0-08B20904-0939093D09500958-09610971-09800985-098C098F09900993-09A809AA-09B009B209B6-09B909BD09CE09DC09DD09DF-09E109F009F10A05-0A0A0A0F0A100A13-0A280A2A-0A300A320A330A350A360A380A390A59-0A5C0A5E0A72-0A740A85-0A8D0A8F-0A910A93-0AA80AAA-0AB00AB20AB30AB5-0AB90ABD0AD00AE00AE10B05-0B0C0B0F0B100B13-0B280B2A-0B300B320B330B35-0B390B3D0B5C0B5D0B5F-0B610B710B830B85-0B8A0B8E-0B900B92-0B950B990B9A0B9C0B9E0B9F0BA30BA40BA8-0BAA0BAE-0BB90BD00C05-0C0C0C0E-0C100C12-0C280C2A-0C390C3D0C580C590C600C610C85-0C8C0C8E-0C900C92-0CA80CAA-0CB30CB5-0CB90CBD0CDE0CE00CE10CF10CF20D05-0D0C0D0E-0D100D12-0D3A0D3D0D4E0D600D610D7A-0D7F0D85-0D960D9A-0DB10DB3-0DBB0DBD0DC0-0DC60E01-0E300E320E330E40-0E460E810E820E840E870E880E8A0E8D0E94-0E970E99-0E9F0EA1-0EA30EA50EA70EAA0EAB0EAD-0EB00EB20EB30EBD0EC0-0EC40EC60EDC-0EDF0F000F40-0F470F49-0F6C0F88-0F8C1000-102A103F1050-1055105A-105D106110651066106E-10701075-1081108E10A0-10C510C710CD10D0-10FA10FC-1248124A-124D1250-12561258125A-125D1260-1288128A-128D1290-12B012B2-12B512B8-12BE12C012C2-12C512C8-12D612D8-13101312-13151318-135A1380-138F13A0-13F41401-166C166F-167F1681-169A16A0-16EA16F1-16F81700-170C170E-17111720-17311740-17511760-176C176E-17701780-17B317D717DC1820-18771880-18A818AA18B0-18F51900-191E1950-196D1970-19741980-19AB19C1-19C71A00-1A161A20-1A541AA71B05-1B331B45-1B4B1B83-1BA01BAE1BAF1BBA-1BE51C00-1C231C4D-1C4F1C5A-1C7D1CE9-1CEC1CEE-1CF11CF51CF61D00-1DBF1E00-1F151F18-1F1D1F20-1F451F48-1F4D1F50-1F571F591F5B1F5D1F5F-1F7D1F80-1FB41FB6-1FBC1FBE1FC2-1FC41FC6-1FCC1FD0-1FD31FD6-1FDB1FE0-1FEC1FF2-1FF41FF6-1FFC2071207F2090-209C21022107210A-211321152119-211D212421262128212A-212D212F-2139213C-213F2145-2149214E218321842C00-2C2E2C30-2C5E2C60-2CE42CEB-2CEE2CF22CF32D00-2D252D272D2D2D30-2D672D6F2D80-2D962DA0-2DA62DA8-2DAE2DB0-2DB62DB8-2DBE2DC0-2DC62DC8-2DCE2DD0-2DD62DD8-2DDE2E2F300530063031-3035303B303C3041-3096309D-309F30A1-30FA30FC-30FF3105-312D3131-318E31A0-31BA31F0-31FF3400-4DB54E00-9FCCA000-A48CA4D0-A4FDA500-A60CA610-A61FA62AA62BA640-A66EA67F-A69DA6A0-A6E5A717-A71FA722-A788A78B-A78EA790-A7ADA7B0A7B1A7F7-A801A803-A805A807-A80AA80C-A822A840-A873A882-A8B3A8F2-A8F7A8FBA90A-A925A930-A946A960-A97CA984-A9B2A9CFA9E0-A9E4A9E6-A9EFA9FA-A9FEAA00-AA28AA40-AA42AA44-AA4BAA60-AA76AA7AAA7E-AAAFAAB1AAB5AAB6AAB9-AABDAAC0AAC2AADB-AADDAAE0-AAEAAAF2-AAF4AB01-AB06AB09-AB0EAB11-AB16AB20-AB26AB28-AB2EAB30-AB5AAB5C-AB5FAB64AB65ABC0-ABE2AC00-D7A3D7B0-D7C6D7CB-D7FBF900-FA6DFA70-FAD9FB00-FB06FB13-FB17FB1DFB1F-FB28FB2A-FB36FB38-FB3CFB3EFB40FB41FB43FB44FB46-FBB1FBD3-FD3DFD50-FD8FFD92-FDC7FDF0-FDFBFE70-FE74FE76-FEFCFF21-FF3AFF41-FF5AFF66-FFBEFFC2-FFC7FFCA-FFCFFFD2-FFD7FFDA-FFDC"))); +a.const_set(p[0],"P_Nl",d.$unpack_hex_range("16EE-16F02160-21822185-218830073021-30293038-303AA6E6-A6EF"));a.const_set(p[0],"P_Nd",b("0-9",d.$unpack_hex_range("0660-066906F0-06F907C0-07C90966-096F09E6-09EF0A66-0A6F0AE6-0AEF0B66-0B6F0BE6-0BEF0C66-0C6F0CE6-0CEF0D66-0D6F0DE6-0DEF0E50-0E590ED0-0ED90F20-0F291040-10491090-109917E0-17E91810-18191946-194F19D0-19D91A80-1A891A90-1A991B50-1B591BB0-1BB91C40-1C491C50-1C59A620-A629A8D0-A8D9A900-A909A9D0-A9D9A9F0-A9F9AA50-AA59ABF0-ABF9FF10-FF19")));a.const_set(p[0], +"P_Pc",d.$unpack_hex_range("005F203F20402054FE33FE34FE4D-FE4FFF3F"));a.const_set(p[0],"CC_ALPHA",""+l(p,"P_L")+l(p,"P_Nl"));a.const_set(p[0],"CG_ALPHA","["+l(p,"CC_ALPHA")+"]");a.const_set(p[0],"CC_ALNUM",""+l(p,"CC_ALPHA")+l(p,"P_Nd"));a.const_set(p[0],"CG_ALNUM","["+l(p,"CC_ALNUM")+"]");a.const_set(p[0],"CC_WORD",""+l(p,"CC_ALNUM")+l(p,"P_Pc"));a.const_set(p[0],"CG_WORD","["+l(p,"CC_WORD")+"]");a.const_set(p[0],"CG_BLANK","[ \\t]");a.const_set(p[0],"CC_EOL","(?=\\n|$)");a.const_set(p[0],"CG_GRAPH", +"[^\\s\\x00-\\x1F\\x7F]");a.const_set(p[0],"CC_ALL","[\\s\\S]");a.const_set(p[0],"CC_ANY","[^\\n]")}(g[0],g)};Opal.modules.strscan=function(a){var b=[],g=a.nil,k=a.klass,l=a.send;a.add_stubs("$attr_reader $anchor $scan_until $length $size $rest $pos= $- $private".split(" "));return function(b,$super,c){b=k(b,$super,"StringScanner");[b].concat(c);var d,p,n,u,m,e,f,r,q,C,t,S,J,y,v,w,sa,ta,B,E,aa,X,D,F,H;b.$$prototype.pos=b.$$prototype.string=b.$$prototype.working=b.$$prototype.matched=b.$$prototype.prev_pos= +b.$$prototype.match=g;b.$attr_reader("pos");b.$attr_reader("matched");a.def(b,"$initialize",d=function(a){this.string=a;this.pos=0;this.matched=g;this.working=a;return this.match=[]},d.$$arity=1);b.$attr_reader("string");a.def(b,"$beginning_of_line?",p=function(){return 0===this.pos||"\n"===this.string.charAt(this.pos-1)},p.$$arity=0);a.alias(b,"bol?","beginning_of_line?");a.def(b,"$scan",n=function(a){a=this.$anchor(a);a=a.exec(this.working);return null==a?this.matched=g:"object"===typeof a?(this.prev_pos= +this.pos,this.pos+=a[0].length,this.working=this.working.substring(a[0].length),this.matched=a[0],this.match=a,a[0]):"string"===typeof a?(this.pos+=a.length,this.working=this.working.substring(a.length),a):g},n.$$arity=1);a.def(b,"$scan_until",u=function(a){a=this.$anchor(a);for(var b=this.pos,c=this.working,e;;)if(e=a.exec(c),b+=1,c=c.substr(1),null==e){if(0===c.length)return this.matched=g}else return this.matched=this.string.substr(this.pos,b-this.pos-1+e[0].length),this.prev_pos=b-1,this.pos= +b,this.working=c.substr(e[0].length),this.matched},u.$$arity=1);a.def(b,"$[]",m=function(a){var b=this.match;0>a&&(a+=b.length);return 0>a||a>=b.length||null==b[a]?g:b[a]},m.$$arity=1);a.def(b,"$check",e=function(a){a=this.$anchor(a);a=a.exec(this.working);return null==a?this.matched=g:this.matched=a[0]},e.$$arity=1);a.def(b,"$check_until",f=function(a){var b=this.prev_pos,c=this.pos;a=this.$scan_until(a);a!==g&&(this.matched=a.substr(-1),this.working=this.string.substr(c));this.prev_pos=b;this.pos= +c;return a},f.$$arity=1);a.def(b,"$peek",r=function(a){return this.working.substring(0,a)},r.$$arity=1);a.def(b,"$eos?",q=function(){return 0===this.working.length},q.$$arity=0);a.def(b,"$exist?",C=function(a){a=a.exec(this.working);return null==a?g:0==a.index?0:a.index+1},C.$$arity=1);a.def(b,"$skip",t=function(a){a=this.$anchor(a);a=a.exec(this.working);if(null==a)return this.matched=g;a=a[0];var b=a.length;this.matched=a;this.prev_pos=this.pos;this.pos+=b;this.working=this.working.substring(b); +return b},t.$$arity=1);a.def(b,"$skip_until",S=function(a){a=this.$scan_until(a);if(a===g)return g;this.matched=a.substr(-1);return a.length},S.$$arity=1);a.def(b,"$get_byte",J=function(){var a=g;this.posa&&(a+=this.string.$length());this.pos=a;return this.working=this.string.slice(a)},v.$$arity=1);a.def(b,"$matched_size",w=function(){return this.matched===g?g:this.matched.length},w.$$arity=0);a.def(b,"$post_match",sa=function(){return this.matched===g?g:this.string.substr(this.pos)},sa.$$arity=0);a.def(b,"$pre_match",ta=function(){return this.matched===g?g:this.string.substr(0,this.prev_pos)},ta.$$arity=0);a.def(b, +"$reset",B=function(){this.working=this.string;this.matched=g;return this.pos=0},B.$$arity=0);a.def(b,"$rest",E=function(){return this.working},E.$$arity=0);a.def(b,"$rest?",aa=function(){return 0!==this.working.length},aa.$$arity=0);a.def(b,"$rest_size",X=function(){return this.$rest().$size()},X.$$arity=0);a.def(b,"$terminate",D=function(){this.match=g;var b=[this.string.$length()];l(this,"pos=",a.to_a(b));var c=b.length;c="number"===typeof c?c-1:c["$-"](1);return b[c]},D.$$arity=0);a.def(b,"$unscan", +F=function(){this.pos=this.prev_pos;this.match=this.prev_pos=g;return this},F.$$arity=0);b.$private();return(a.def(b,"$anchor",H=function(a){var b=a.toString().match(/\/([^\/]+)$/);b=b?b[1]:void 0;return new RegExp("^(?:"+a.source+")",b)},H.$$arity=1),g)&&"anchor"}(b[0],null,b)};Opal.modules["asciidoctor/js"]=function(a){var b=a.top;a.add_stubs(["$require"]);b.$require("asciidoctor/js/opal_ext");b.$require("asciidoctor/js/rx");return b.$require("strscan")};Opal.modules["asciidoctor/core_ext/nil_or_empty"]= +function(a){var b=[],g=a.nil,k=a.klass,l=a.truthy;a.add_stubs(["$method_defined?"]);(function(b,$super,c){b=k(b,$super,"NilClass");[b].concat(c);return l(b["$method_defined?"]("nil_or_empty?"))?g:a.alias(b,"nil_or_empty?","nil?")})(b[0],null,b);(function(b,$super,c){b=k(b,$super,"String");[b].concat(c);return l(b["$method_defined?"]("nil_or_empty?"))?g:a.alias(b,"nil_or_empty?","empty?")})(b[0],null,b);(function(b,$super,c){b=k(b,$super,"Array");[b].concat(c);return l(b["$method_defined?"]("nil_or_empty?"))? +g:a.alias(b,"nil_or_empty?","empty?")})(b[0],null,b);(function(b,$super,c){b=k(b,$super,"Hash");[b].concat(c);return l(b["$method_defined?"]("nil_or_empty?"))?g:a.alias(b,"nil_or_empty?","empty?")})(b[0],null,b);return function(b,$super,c){b=k(b,$super,"Numeric");[b].concat(c);return l(b["$method_defined?"]("nil_or_empty?"))?g:a.alias(b,"nil_or_empty?","nil?")}(b[0],null,b)};Opal.modules["asciidoctor/core_ext/hash/merge"]=function(a){function b(a,b){return"number"===typeof a&&"number"===typeof b? +a $inject $merge $[]".split(" "));return h(l,"Hash").$instance_method("merge").$arity()["$=="](1)?h(l,"Hash").$send("prepend",c(h(l,"Module"),"new",[],(g=function(){var d;return(a.def(g.$$s||this,"$merge",d=function(g){var m,e=n;d.$$p&&(d.$$p=null);var f=a.slice.call(arguments,0,arguments.length);return z(b(e=f.$length(),1))?c(this,a.find_super_dispatcher(this, +"merge",d,!1),[p([],{})],null):z("number"===typeof e?1"](1))?c(f,"inject",[this],(m=function(a,b){null==a&&(a=n);null==b&&(b=n);return a.$merge(b)},m.$$s=this,m.$$arity=2,m)):c(this,a.find_super_dispatcher(this,"merge",d,!1),[f["$[]"](0)],null)},d.$$arity=-1),n)&&"merge"},g.$$s=k,g.$$arity=0,g))):n};Opal.modules["asciidoctor/core_ext/match_data/names"]=function(a){var b=[],g=a.nil,k=a.const_get_relative,l=a.truthy,n=a.klass;a.add_stubs(["$method_defined?"]);return l(k(b,"MatchData")["$method_defined?"]("names"))? +g:function(b,$super,d){b=n(b,$super,"MatchData");[b].concat(d);var p;return(a.def(b,"$names",p=function(){return[]},p.$$arity=0),g)&&"names"}(b[0],null,b)};Opal.modules["asciidoctor/core_ext"]=function(a){var b=a.top,g=a.nil,k=a.const_get_relative;a.add_stubs(["$=="]);b.$require("asciidoctor/core_ext.rb/../core_ext/nil_or_empty");b.$require("asciidoctor/core_ext.rb/../core_ext/hash/merge");return k([],"RUBY_ENGINE")["$=="]("opal")?b.$require("asciidoctor/core_ext.rb/../core_ext/match_data/names"): +g};Opal.modules["asciidoctor/helpers"]=function(a){function b(a,b){return"number"===typeof a&&"number"===typeof b?a-b:a["$-"](b)}function g(a,b){return"number"===typeof a&&"number"===typeof b?a+b:a["$+"](b)}var k=[],l=a.nil,n=a.const_get_qualified,h=a.const_get_relative,c=a.module,z=a.truthy,p=a.gvars,r=a.send,q=a.hash2;a.add_stubs("$module_function $require $include? $include $== $=== $path $message $raise $warn $logger $chomp $empty? $slice $unpack $[] $byteslice $bytesize $[]= $- $map $rstrip $encode $encoding $nil_or_empty? $!= $tap $each_line $<< $match? $gsub $rindex $index $basename $extname $! $length $directory? $dirname $mkdir_p $mkdir $private_constant $join $divmod $* $+ $to_i $to_s $chr $ord $class_for_name $const_get".split(" ")); +return function(d,e){d=[c(d,"Asciidoctor")].concat(e);(function(e,d){e=c(e,"Helpers");var f=[e].concat(d),m,k,u,t,y,C,O,J,W,v,w,T,X,B,E,D;e.$module_function();a.def(e,"$require_library",m=function(b,c,e){var d=l,m=l;null==p["!"]&&(p["!"]=l);null==c&&(c=!0);null==e&&(e="abort");try{return this.$require(b)}catch(Z){if(a.rescue(Z,[n("::","LoadError")]))try{return z(this["$include?"](h(f,"Logging")))||this.$include(h(f,"Logging")),z(c)?(c["$=="](!0)&&(c=b),d=e,"abort"["$==="](d)?(m=p["!"].$path()["$=="](c)? +"":" (reason: "+(z(p["!"].$path())?"cannot load '"+p["!"].$path()+"'":p["!"].$message())+")",this.$raise(n("::","LoadError"),"asciidoctor: FAILED: required gem '"+c+"' is not available"+m+". Processing aborted.")):"warn"["$==="](d)&&(m=p["!"].$path()["$=="](c)?"":" (reason: "+(z(p["!"].$path())?"cannot load '"+p["!"].$path()+"'":p["!"].$message())+")",this.$logger().$warn("optional gem '"+c+"' is not available"+m+". Functionality disabled."))):(d=e,"abort"["$==="](d)?this.$raise(n("::","LoadError"), +"asciidoctor: FAILED: "+p["!"].$message().$chomp(".")+". Processing aborted."):"warn"["$==="](d)&&this.$logger().$warn(""+p["!"].$message().$chomp(".")+". Functionality disabled.")),l}finally{a.pop_exception()}else throw Z;}},m.$$arity=-2);a.def(e,"$prepare_source_array",k=function(c,e){var d,m,g,p,k,y,u,S,q=this,t=l,C=l,O=l;t=l;null==e&&(e=!0);if(z(c["$empty?"]()))return[];if((t=(C=(O=c["$[]"](0)).$unpack("C3")).$slice(0,2))["$=="](h(f,"BOM_BYTES_UTF_16LE")))return t=[0,O.$byteslice(2,O.$bytesize())], +r(c,"[]=",a.to_a(t)),t[b(t.length,1)],function(){return z(e)?r(c,"map",[],(d=function(a){null==a&&(a=l);return a.$encode(h(f,"UTF_8"),n(n("::","Encoding"),"UTF_16LE")).$rstrip()},d.$$s=q,d.$$arity=1,d)):r(c,"map",[],(m=function(a){null==a&&(a=l);return a.$encode(h(f,"UTF_8"),n(n("::","Encoding"),"UTF_16LE")).$chomp()},m.$$s=q,m.$$arity=1,m))}();if(t["$=="](h(f,"BOM_BYTES_UTF_16BE")))return t=[0,O.$byteslice(2,O.$bytesize())],r(c,"[]=",a.to_a(t)),t[b(t.length,1)],function(){return z(e)?r(c,"map",[], +(g=function(a){null==a&&(a=l);return a.$encode(h(f,"UTF_8"),n(n("::","Encoding"),"UTF_16BE")).$rstrip()},g.$$s=q,g.$$arity=1,g)):r(c,"map",[],(p=function(a){null==a&&(a=l);return a.$encode(h(f,"UTF_8"),n(n("::","Encoding"),"UTF_16BE")).$chomp()},p.$$s=q,p.$$arity=1,p))}();C["$=="](h(f,"BOM_BYTES_UTF_8"))&&(t=[0,O.$byteslice(3,O.$bytesize())],r(c,"[]=",a.to_a(t)),t[b(t.length,1)]);return O.$encoding()["$=="](h(f,"UTF_8"))?z(e)?r(c,"map",[],(k=function(a){null==a&&(a=l);return a.$rstrip()},k.$$s=q, +k.$$arity=1,k)):r(c,"map",[],(y=function(a){null==a&&(a=l);return a.$chomp()},y.$$s=q,y.$$arity=1,y)):z(e)?r(c,"map",[],(u=function(a){null==a&&(a=l);return a.$encode(h(f,"UTF_8")).$rstrip()},u.$$s=q,u.$$arity=1,u)):r(c,"map",[],(S=function(a){null==a&&(a=l);return a.$encode(h(f,"UTF_8")).$chomp()},S.$$s=q,S.$$arity=1,S))},k.$$arity=-2);a.def(e,"$prepare_source_string",u=function(a,b){var c,e,d=l,m=l;null==b&&(b=!0);if(z(a["$nil_or_empty?"]()))return[];(d=(m=a.$unpack("C3")).$slice(0,2))["$=="](h(f, +"BOM_BYTES_UTF_16LE"))?a=a.$byteslice(2,a.$bytesize()).$encode(h(f,"UTF_8"),n(n("::","Encoding"),"UTF_16LE")):d["$=="](h(f,"BOM_BYTES_UTF_16BE"))?a=a.$byteslice(2,a.$bytesize()).$encode(h(f,"UTF_8"),n(n("::","Encoding"),"UTF_16BE")):m["$=="](h(f,"BOM_BYTES_UTF_8"))?(a=a.$byteslice(3,a.$bytesize()),a.$encoding()["$=="](h(f,"UTF_8"))||(a=a.$encode(h(f,"UTF_8")))):z(a.$encoding()["$!="](h(f,"UTF_8")))&&(a=a.$encode(h(f,"UTF_8")));return z(b)?r([],"tap",[],(c=function(b){var e=c.$$s||this,f;null==b&& +(b=l);return r(a,"each_line",[],(f=function(a){null==a&&(a=l);return b["$<<"](a.$rstrip())},f.$$s=e,f.$$arity=1,f))},c.$$s=this,c.$$arity=1,c)):r([],"tap",[],(e=function(b){var c=e.$$s||this,f;null==b&&(b=l);return r(a,"each_line",[],(f=function(a){null==a&&(a=l);return b["$<<"](a.$chomp())},f.$$s=c,f.$$arity=1,f))},e.$$s=this,e.$$arity=1,e))},u.$$arity=-2);a.def(e,"$uriish?",t=function(a){var b;return z(b=a["$include?"](":"))?h(f,"UriSniffRx")["$match?"](a):b},t.$$arity=1);h(f,"RUBY_ENGINE")["$=="]("opal")? +a.def(e,"$encode_uri_component",y=function(a){return encodeURIComponent(a).replace(/%20|[!'()*]/g,function(a){return"%20"===a?"+":"%"+a.charCodeAt(0).toString(16)})},y.$$arity=1):l;a.def(e,"$encode_spaces_in_uri",C=function(a){return z(a["$include?"](" "))?a.$gsub(" ","%20"):a},C.$$arity=1);a.def(e,"$rootname",O=function(a){var b;return z(b=a.$rindex("."))?z(a.$index("/",b))?a:a.$slice(0,b):a},O.$$arity=1);a.def(e,"$basename",J=function(a,b){null==b&&(b=l);return z(b)?n("::","File").$basename(a,b["$=="](!0)? +this.$extname(a):b):n("::","File").$basename(a)},J.$$arity=-2);a.def(e,"$extname?",W=function(a){var b,c=l;return z(b=c=a.$rindex("."))?a.$index("/",c)["$!"]():b},W.$$arity=1);z(n(n("::","File"),"ALT_SEPARATOR"))?a.def(e,"$extname",v=function(a,b){var c,e;null==b&&(b="");return z(e=a.$rindex("."))?z(z(c=a.$index("/",e))?c:a.$index(n(n("::","File"),"ALT_SEPARATOR"),e))?b:a.$slice(e,a.$length()):b},v.$$arity=-2):a.def(e,"$extname",w=function(a,b){var c;null==b&&(b="");return z(c=a.$rindex("."))?z(a.$index("/", +c))?b:a.$slice(c,a.$length()):b},w.$$arity=-2);a.def(e,"$mkdir_p",T=function(b){var c;if(z(n("::","File")["$directory?"](b)))return l;(c=n("::","File").$dirname(b))["$=="](".")||this.$mkdir_p(c);try{return n("::","Dir").$mkdir(b)}catch(la){if(a.rescue(la,[n("::","SystemCallError")]))try{return z(n("::","File")["$directory?"](b))?l:this.$raise()}finally{a.pop_exception()}else throw la;}},T.$$arity=1);a.const_set(f[0],"ROMAN_NUMERALS",q("M CM D CD C XC L XL X IX V IV I".split(" "),{M:1E3,CM:900,D:500, +CD:400,C:100,XC:90,L:50,XL:40,X:10,IX:9,V:5,IV:4,I:1}));e.$private_constant("ROMAN_NUMERALS");a.def(e,"$int_to_roman",X=function(b){var c;return r(h(f,"ROMAN_NUMERALS"),"map",[],(c=function(c,e){null==c&&(c=l);null==e&&(e=l);var f=b.$divmod(e);e=a.to_ary(f);var d=null==e[0]?l:e[0];b=null==e[1]?l:e[1];f;return"number"===typeof c&&"number"===typeof d?c*d:c["$*"](d)},c.$$s=this,c.$$arity=2,c)).$join()},X.$$arity=1);a.def(e,"$nextval",B=function(a){if(z(n("::","Integer")["$==="](a)))return g(a,1);var b= +a.$to_i();return z(b.$to_s()["$!="](a.$to_s()))?g(a["$[]"](0).$ord(),1).$chr():g(b,1)},B.$$arity=1);a.def(e,"$resolve_class",E=function(a){return z(n("::","Class")["$==="](a))?a:z(n("::","String")["$==="](a))?this.$class_for_name(a):l},E.$$arity=1);a.def(e,"$class_for_name",D=function(b){var c=l;try{return z(n("::","Class")["$==="](c=n("::","Object").$const_get(b,!1)))||this.$raise(),c}catch(la){if(a.rescue(la,[h(f,"StandardError")]))try{return this.$raise(n("::","NameError"),"Could not resolve class for name: "+ +b)}finally{a.pop_exception()}else throw la;}},D.$$arity=1)})(d[0],d)}(k[0],k)};Opal.modules.logger=function(a){function b(a,b){return"number"===typeof a&&"number"===typeof b?a<=b:a["$<="](b)}var g=[],k=a.nil,l=a.const_get_qualified,n=a.const_get_relative,h=a.klass,c=a.module,z=a.send,p=a.truthy;a.add_stubs("$include $to_h $map $constants $const_get $to_s $format $chr $strftime $message_as_string $=== $+ $message $class $join $backtrace $inspect $attr_reader $attr_accessor $new $key $upcase $raise $add $to_proc $<= $< $write $call $[] $now".split(" ")); +return function(d,$super,m){d=h(d,$super,"Logger");var e=[d].concat(m),f,g,u,r,q,S,t,y,C,J,v,w,T,B,aa;d.$$prototype.level=d.$$prototype.progname=d.$$prototype.pipe=d.$$prototype.formatter=k;(function(b,e){b=[c(b,"Severity")].concat(e);a.const_set(b[0],"DEBUG",0);a.const_set(b[0],"INFO",1);a.const_set(b[0],"WARN",2);a.const_set(b[0],"ERROR",3);a.const_set(b[0],"FATAL",4);a.const_set(b[0],"UNKNOWN",5)})(e[0],e);d.$include(n(e,"Severity"));a.const_set(e[0],"SEVERITY_LABELS",z(n(e,"Severity").$constants(), +"map",[],(f=function(a){null==a&&(a=k);return[n(e,"Severity").$const_get(a),a.$to_s()]},f.$$s=d,f.$$arity=1,f)).$to_h());(function(b,$super,c){b=h(b,$super,"Formatter");var e=[b].concat(c),f,d;a.const_set(e[0],"MESSAGE_FORMAT","%s, [%s] %5s -- %s: %s\n");a.const_set(e[0],"DATE_TIME_FORMAT","%Y-%m-%dT%H:%M:%S.%6N");a.def(b,"$call",f=function(a,b,c,f){return this.$format(n(e,"MESSAGE_FORMAT"),a.$chr(),b.$strftime(n(e,"DATE_TIME_FORMAT")),a,c,this.$message_as_string(f))},f.$$arity=4);return(a.def(b, +"$message_as_string",d=function(a){var b,c=k;return function(){c=a;if(l("::","String")["$==="](c))return a;if(l("::","Exception")["$==="](c)){var e=""+a.$message()+" ("+a.$class()+")\n",f=(p(b=a.$backtrace())?b:[]).$join("\n");return"number"===typeof e&&"number"===typeof f?e+f:e["$+"](f)}return a.$inspect()}()},d.$$arity=1),k)&&"message_as_string"})(e[0],null,e);d.$attr_reader("level");d.$attr_accessor("progname");d.$attr_accessor("formatter");a.def(d,"$initialize",g=function(a){this.pipe=a;this.level= +n(e,"DEBUG");return this.formatter=n(e,"Formatter").$new()},g.$$arity=1);a.def(d,"$level=",u=function(a){var b;return p(l("::","Integer")["$==="](a))?this.level=a:p(b=n(e,"SEVERITY_LABELS").$key(a.$to_s().$upcase()))?this.level=b:this.$raise(n(e,"ArgumentError"),"invalid log level: "+a)},u.$$arity=1);a.def(d,"$info",r=function(a){var b=r.$$p,c=b||k;b&&(r.$$p=null);b&&(r.$$p=null);null==a&&(a=k);return z(this,"add",[n(e,"INFO"),k,a],c.$to_proc())},r.$$arity=-1);a.def(d,"$debug",q=function(a){var b= +q.$$p,c=b||k;b&&(q.$$p=null);b&&(q.$$p=null);null==a&&(a=k);return z(this,"add",[n(e,"DEBUG"),k,a],c.$to_proc())},q.$$arity=-1);a.def(d,"$warn",S=function(a){var b=S.$$p,c=b||k;b&&(S.$$p=null);b&&(S.$$p=null);null==a&&(a=k);return z(this,"add",[n(e,"WARN"),k,a],c.$to_proc())},S.$$arity=-1);a.def(d,"$error",t=function(a){var b=t.$$p,c=b||k;b&&(t.$$p=null);b&&(t.$$p=null);null==a&&(a=k);return z(this,"add",[n(e,"ERROR"),k,a],c.$to_proc())},t.$$arity=-1);a.def(d,"$fatal",y=function(a){var b=y.$$p,c= +b||k;b&&(y.$$p=null);b&&(y.$$p=null);null==a&&(a=k);return z(this,"add",[n(e,"FATAL"),k,a],c.$to_proc())},y.$$arity=-1);a.def(d,"$unknown",C=function(a){var b=C.$$p,c=b||k;b&&(C.$$p=null);b&&(C.$$p=null);null==a&&(a=k);return z(this,"add",[n(e,"UNKNOWN"),k,a],c.$to_proc())},C.$$arity=-1);a.def(d,"$info?",J=function(){return b(this.level,n(e,"INFO"))},J.$$arity=0);a.def(d,"$debug?",v=function(){return b(this.level,n(e,"DEBUG"))},v.$$arity=0);a.def(d,"$warn?",w=function(){return b(this.level,n(e,"WARN"))}, +w.$$arity=0);a.def(d,"$error?",T=function(){return b(this.level,n(e,"ERROR"))},T.$$arity=0);a.def(d,"$fatal?",B=function(){return b(this.level,n(e,"FATAL"))},B.$$arity=0);return(a.def(d,"$add",aa=function(b,c,f){var d=aa.$$p,m=d||k,g;d&&(aa.$$p=null);d&&(aa.$$p=null);null==c&&(c=k);null==f&&(f=k);d=b=p(g=b)?g:n(e,"UNKNOWN");var h=this.level;d="number"===typeof d&&"number"===typeof h?db:a["$>"](b)}var k=a.top,l=[],n=a.nil,h=a.const_get_qualified,c=a.const_get_relative,z=a.module,p=a.klass,r=a.send,q=a.truthy,m=a.hash2,e=a.gvars;a.add_stubs("$require $attr_reader $progname= $- $new $formatter= $level= $> $[] $=== $inspect $tap $each $constants $const_get $[]= $<< $clear $empty? $max $map $attr_accessor $memoize_logger $private $private_class_method $extend $logger $merge".split(" ")); +k.$require("logger");return function(f,d){f=[z(f,"Asciidoctor")].concat(d);(function(e,$super,f){e=p(e,$super,"Logger");var d=[e].concat(f),k,l;e.$$prototype.max_severity=n;e.$attr_reader("max_severity");a.def(e,"$initialize",k=function(e){var f=k.$$p,m;f&&(k.$$p=null);var g=0;var p=arguments.length;for(m=Array(p);g]+)>)?$"));a.const_set(e[0],"AuthorDelimiterRx",/;(?: |$)/);a.const_set(e[0],"RevisionInfoLineRx",new RegExp("^(?:[^\\d{]*("+n(e,"CC_ANY")+"*?),)? *(?!:)("+n(e,"CC_ANY")+"*?)(?: *(?!^),?: *("+ +n(e,"CC_ANY")+"*))?$"));a.const_set(e[0],"ManpageTitleVolnumRx",new RegExp("^("+n(e,"CC_ANY")+"+?) *\\( *("+n(e,"CC_ANY")+"+?) *\\)$"));a.const_set(e[0],"ManpageNamePurposeRx",new RegExp("^("+n(e,"CC_ANY")+"+?) +- +("+n(e,"CC_ANY")+"+)$"));a.const_set(e[0],"ConditionalDirectiveRx",new RegExp("^(\\\\)?(ifdef|ifndef|ifeval|endif)::(\\S*?(?:([,+])\\S*?)?)\\[("+n(e,"CC_ANY")+"+)?\\]$"));a.const_set(e[0],"EvalExpressionRx",new RegExp("^("+n(e,"CC_ANY")+"+?) *([=!><]=|[><]) *("+n(e,"CC_ANY")+"+)$"));a.const_set(e[0], +"IncludeDirectiveRx",new RegExp("^(\\\\)?include::([^\\[][^\\[]*)\\[("+n(e,"CC_ANY")+"+)?\\]$"));a.const_set(e[0],"TagDirectiveRx",/\b(?:tag|(e)nd)::(\S+?)\[\](?=$|[ \r])/m);a.const_set(e[0],"AttributeEntryRx",new RegExp("^:(!?"+n(e,"CG_WORD")+"[^:]*):(?:[ \\t]+("+n(e,"CC_ANY")+"*))?$"));a.const_set(e[0],"InvalidAttributeNameCharsRx",new RegExp("[^"+n(e,"CC_WORD")+"-]"));n(e,"RUBY_ENGINE")["$=="]("opal")?a.const_set(e[0],"AttributeEntryPassMacroRx",new RegExp("^pass:([a-z]+(?:,[a-z-]+)*)?\\[("+n(e, +"CC_ALL")+"*)\\]$")):k;a.const_set(e[0],"AttributeReferenceRx",new RegExp("(\\\\)?\\{("+n(e,"CG_WORD")+"["+n(e,"CC_WORD")+"-]*|(set|counter2?):"+n(e,"CC_ANY")+"+?)(\\\\)?\\}"));a.const_set(e[0],"BlockAnchorRx",new RegExp("^\\[\\[(?:|(["+n(e,"CC_ALPHA")+"_:]["+n(e,"CC_WORD")+"\\-:.]*)(?:, *("+n(e,"CC_ANY")+"+))?)\\]\\]$"));a.const_set(e[0],"BlockAttributeListRx",new RegExp("^\\[(|["+n(e,"CC_WORD")+".#%{,\"']"+n(e,"CC_ANY")+"*)\\]$"));a.const_set(e[0],"BlockAttributeLineRx",new RegExp("^\\[(?:|["+n(e, +"CC_WORD")+".#%{,\"']"+n(e,"CC_ANY")+"*|\\[(?:|["+n(e,"CC_ALPHA")+"_:]["+n(e,"CC_WORD")+"\\-:.]*(?:, *"+n(e,"CC_ANY")+"+)?)\\])\\]$"));a.const_set(e[0],"BlockTitleRx",new RegExp("^\\.(\\.?[^ \\t.]"+n(e,"CC_ANY")+"*)$"));a.const_set(e[0],"AdmonitionParagraphRx",new RegExp("^("+n(e,"ADMONITION_STYLES").$to_a().$join("|")+"):[ \\t]+"));a.const_set(e[0],"LiteralParagraphRx",new RegExp("^([ \\t]+"+n(e,"CC_ANY")+"*)$"));a.const_set(e[0],"AtxSectionTitleRx",new RegExp("^(=={0,5})[ \\t]+("+n(e,"CC_ANY")+ +"+?)(?:[ \\t]+\\1)?$"));a.const_set(e[0],"ExtAtxSectionTitleRx",new RegExp("^(=={0,5}|#\\#{0,5})[ \\t]+("+n(e,"CC_ANY")+"+?)(?:[ \\t]+\\1)?$"));a.const_set(e[0],"SetextSectionTitleRx",new RegExp("^((?!\\.)"+n(e,"CC_ANY")+"*?"+n(e,"CG_ALNUM")+n(e,"CC_ANY")+"*)$"));a.const_set(e[0],"InlineSectionAnchorRx",new RegExp(" (\\\\)?\\[\\[(["+n(e,"CC_ALPHA")+"_:]["+n(e,"CC_WORD")+"\\-:.]*)(?:, *("+n(e,"CC_ANY")+"+))?\\]\\]$"));a.const_set(e[0],"InvalidSectionIdCharsRx",new RegExp("<[^>]+>|&(?:[a-z][a-z]+\\d{0,2}|#\\d\\d\\d{0,4}|#x[\\da-f][\\da-f][\\da-f]{0,3});|[^ "+ +n(e,"CC_WORD")+"\\-.]+?"));a.const_set(e[0],"SectionLevelStyleRx",/^sect\d$/);a.const_set(e[0],"AnyListRx",new RegExp("^(?:[ \\t]*(?:-|\\*\\**|\\.\\.*|\\u2022|\\d+\\.|[a-zA-Z]\\.|[IVXivx]+\\))[ \\t]|(?!//[^/])[ \\t]*[^ \\t]"+n(e,"CC_ANY")+"*?(?::::{0,2}|;;)(?:$|[ \\t])|<(?:\\d+|\\.)>[ \\t])"));a.const_set(e[0],"UnorderedListRx",new RegExp("^[ \\t]*(-|\\*\\**|\\u2022)[ \\t]+("+n(e,"CC_ANY")+"*)$"));a.const_set(e[0],"OrderedListRx",new RegExp("^[ \\t]*(\\.\\.*|\\d+\\.|[a-zA-Z]\\.|[IVXivx]+\\))[ \\t]+("+ +n(e,"CC_ANY")+"*)$"));a.const_set(e[0],"OrderedListMarkerRxMap",c(["arabic","loweralpha","lowerroman","upperalpha","upperroman"],{arabic:/\d+\./,loweralpha:/[a-z]\./,lowerroman:/[ivx]+\)/,upperalpha:/[A-Z]\./,upperroman:/[IVX]+\)/}));a.const_set(e[0],"DescriptionListRx",new RegExp("^(?!//[^/])[ \\t]*([^ \\t]"+n(e,"CC_ANY")+"*?)(:::{0,2}|;;)(?:$|[ \\t]+("+n(e,"CC_ANY")+"*)$)"));a.const_set(e[0],"DescriptionListSiblingRx",c(["::",":::","::::",";;"],{"::":new RegExp("^(?!//[^/])[ \\t]*([^ \\t]"+n(e, +"CC_ANY")+"*?[^:]|[^ \\t:])(::)(?:$|[ \\t]+("+n(e,"CC_ANY")+"*)$)"),":::":new RegExp("^(?!//[^/])[ \\t]*([^ \\t]"+n(e,"CC_ANY")+"*?[^:]|[^ \\t:])(:::)(?:$|[ \\t]+("+n(e,"CC_ANY")+"*)$)"),"::::":new RegExp("^(?!//[^/])[ \\t]*([^ \\t]"+n(e,"CC_ANY")+"*?[^:]|[^ \\t:])(::::)(?:$|[ \\t]+("+n(e,"CC_ANY")+"*)$)"),";;":new RegExp("^(?!//[^/])[ \\t]*([^ \\t]"+n(e,"CC_ANY")+"*?)(;;)(?:$|[ \\t]+("+n(e,"CC_ANY")+"*)$)")}));a.const_set(e[0],"CalloutListRx",new RegExp("^<(\\d+|\\.)>[ \\t]+("+n(e,"CC_ANY")+"*)$")); +a.const_set(e[0],"CalloutExtractRx",/((?:\/\/|#|--|;;) ?)?(\\)?(?=(?: ?\\?)*$)/);a.const_set(e[0],"CalloutExtractRxt","(\\\\)?<()(\\d+|\\.)>(?=(?: ?\\\\?<(?:\\d+|\\.)>)*$)");a.const_set(e[0],"CalloutExtractRxMap",r(l("::","Hash"),"new",[],(f=function(c,f){null==c&&(c=k);null==f&&(f=k);f=[f,new RegExp("("+(p(f["$empty?"]())?"":""+l("::","Regexp").$escape(f)+" ?")+")?"+n(e,"CalloutExtractRxt"))];r(c,"[]=",a.to_a(f));return f[b(f.length,1)]},f.$$s=d,f.$$arity=2,f))); +a.const_set(e[0],"CalloutScanRx",new RegExp("\\\\?(?=(?: ?\\\\?)*"+n(e,"CC_EOL")+")"));a.const_set(e[0],"CalloutSourceRx",new RegExp("((?://|#|--|;;) ?)?(\\\\)?<!?(|--)(\\d+|\\.)\\3>(?=(?: ?\\\\?<!?\\3(?:\\d+|\\.)\\3>)*"+n(e,"CC_EOL")+")"));a.const_set(e[0],"CalloutSourceRxt","(\\\\)?<()(\\d+|\\.)>(?=(?: ?\\\\?<(?:\\d+|\\.)>)*"+n(e,"CC_EOL")+")");a.const_set(e[0],"CalloutSourceRxMap",r(l("::","Hash"),"new",[],(g=function(c,f){null== +c&&(c=k);null==f&&(f=k);f=[f,new RegExp("("+(p(f["$empty?"]())?"":""+l("::","Regexp").$escape(f)+" ?")+")?"+n(e,"CalloutSourceRxt"))];r(c,"[]=",a.to_a(f));return f[b(f.length,1)]},g.$$s=d,g.$$arity=2,g)));a.const_set(e[0],"ListRxMap",c(["ulist","olist","dlist","colist"],{ulist:n(e,"UnorderedListRx"),olist:n(e,"OrderedListRx"),dlist:n(e,"DescriptionListRx"),colist:n(e,"CalloutListRx")}));a.const_set(e[0],"ColumnSpecRx",/^(?:(\d+)\*)?([<^>](?:\.[<^>]?)?|(?:[<^>]?\.)?[<^>])?(\d+%?|~)?([a-z])?$/);a.const_set(e[0], +"CellSpecStartRx",/^[ \t]*(?:(\d+(?:\.\d*)?|(?:\d*\.)?\d+)([*+]))?([<^>](?:\.[<^>]?)?|(?:[<^>]?\.)?[<^>])?([a-z])?$/);a.const_set(e[0],"CellSpecEndRx",/[ \t]+(?:(\d+(?:\.\d*)?|(?:\d*\.)?\d+)([*+]))?([<^>](?:\.[<^>]?)?|(?:[<^>]?\.)?[<^>])?([a-z])?$/);a.const_set(e[0],"CustomBlockMacroRx",new RegExp("^("+n(e,"CG_WORD")+"["+n(e,"CC_WORD")+"-]*)::(|\\S|\\S"+n(e,"CC_ANY")+"*?\\S)\\[("+n(e,"CC_ANY")+"+)?\\]$"));a.const_set(e[0],"BlockMediaMacroRx",new RegExp("^(image|video|audio)::(\\S|\\S"+n(e,"CC_ANY")+ +"*?\\S)\\[("+n(e,"CC_ANY")+"+)?\\]$"));a.const_set(e[0],"BlockTocMacroRx",new RegExp("^toc::\\[("+n(e,"CC_ANY")+"+)?\\]$"));a.const_set(e[0],"InlineAnchorRx",new RegExp("(\\\\)?(?:\\[\\[(["+n(e,"CC_ALPHA")+"_:]["+n(e,"CC_WORD")+"\\-:.]*)(?:, *("+n(e,"CC_ANY")+"+?))?\\]\\]|anchor:(["+n(e,"CC_ALPHA")+"_:]["+n(e,"CC_WORD")+"\\-:.]*)\\[(?:\\]|("+n(e,"CC_ANY")+"*?[^\\\\])\\]))"));a.const_set(e[0],"InlineAnchorScanRx",new RegExp("(?:^|[^\\\\\\[])\\[\\[(["+n(e,"CC_ALPHA")+"_:]["+n(e,"CC_WORD")+"\\-:.]*)(?:, *("+ +n(e,"CC_ANY")+"+?))?\\]\\]|(?:^|[^\\\\])anchor:(["+n(e,"CC_ALPHA")+"_:]["+n(e,"CC_WORD")+"\\-:.]*)\\[(?:\\]|("+n(e,"CC_ANY")+"*?[^\\\\])\\])"));a.const_set(e[0],"LeadingInlineAnchorRx",new RegExp("^\\[\\[(["+n(e,"CC_ALPHA")+"_:]["+n(e,"CC_WORD")+"\\-:.]*)(?:, *("+n(e,"CC_ANY")+"+?))?\\]\\]"));a.const_set(e[0],"InlineBiblioAnchorRx",new RegExp("^\\[\\[\\[(["+n(e,"CC_ALPHA")+"_:]["+n(e,"CC_WORD")+"\\-:.]*)(?:, *("+n(e,"CC_ANY")+"+?))?\\]\\]\\]"));a.const_set(e[0],"InlineEmailRx",new RegExp("([\\\\>:/])?"+ +n(e,"CG_WORD")+"(?:&|["+n(e,"CC_WORD")+"\\-.%+])*@"+n(e,"CG_ALNUM")+"["+n(e,"CC_ALNUM")+"_\\-.]*\\.[a-zA-Z]{2,5}\\b"));a.const_set(e[0],"InlineFootnoteMacroRx",new RegExp("\\\\?footnote(?:(ref):|:(["+n(e,"CC_WORD")+"-]+)?)\\[(?:|("+n(e,"CC_ALL")+"*?[^\\\\]))\\](?!)","m"));a.const_set(e[0],"InlineImageMacroRx",new RegExp("\\\\?i(?:mage|con):([^:\\s\\[](?:[^\\n\\[]*[^\\s\\[])?)\\[(|"+n(e,"CC_ALL")+"*?[^\\\\])\\]","m"));a.const_set(e[0],"InlineIndextermMacroRx",new RegExp("\\\\?(?:(indexterm2?):\\[("+ +n(e,"CC_ALL")+"*?[^\\\\])\\]|\\(\\(("+n(e,"CC_ALL")+"+?)\\)\\)(?!\\)))","m"));a.const_set(e[0],"InlineKbdBtnMacroRx",new RegExp("(\\\\)?(kbd|btn):\\[("+n(e,"CC_ALL")+"*?[^\\\\])\\]","m"));a.const_set(e[0],"InlineLinkRx",new RegExp("(^|link:|"+n(e,"CG_BLANK")+"|<|[>\\(\\)\\[\\];\"'])(\\\\?(?:https?|file|ftp|irc)://[^\\s\\[\\]<]*([^\\s.,\\[\\]<]))(?:\\[(|"+n(e,"CC_ALL")+"*?[^\\\\])\\])?","m"));a.const_set(e[0],"InlineLinkMacroRx",new RegExp("\\\\?(?:link|(mailto)):(|[^:\\s\\[][^\\s\\[]*)\\[(|"+n(e, +"CC_ALL")+"*?[^\\\\])\\]","m"));a.const_set(e[0],"MacroNameRx",new RegExp("^"+n(e,"CG_WORD")+"["+n(e,"CC_WORD")+"-]*$"));a.const_set(e[0],"InlineStemMacroRx",new RegExp("\\\\?(stem|(?:latex|ascii)math):([a-z]+(?:,[a-z-]+)*)?\\[("+n(e,"CC_ALL")+"*?[^\\\\])\\]","m"));a.const_set(e[0],"InlineMenuMacroRx",new RegExp("\\\\?menu:("+n(e,"CG_WORD")+"|["+n(e,"CC_WORD")+"&][^\\n\\[]*[^\\s\\[])\\[ *(?:|("+n(e,"CC_ALL")+"*?[^\\\\]))\\]","m"));a.const_set(e[0],"InlineMenuRx",new RegExp('\\\\?"(['+n(e,"CC_WORD")+ +'&][^"]*?[ \\n]+>[ \\n]+[^"]*)"'));a.const_set(e[0],"InlinePassRx",q(!1,["+","`",new RegExp("(^|[^"+n(e,"CC_WORD")+";:])(?:\\[([^\\]]+)\\])?(\\\\?(\\+|`)(\\S|\\S"+n(e,"CC_ALL")+"*?\\S)\\4)(?!"+n(e,"CG_WORD")+")","m")],!0,["`",k,new RegExp("(^|[^`"+n(e,"CC_WORD")+"])(?:\\[([^\\]]+)\\])?(\\\\?(`)([^`\\s]|[^`\\s]"+n(e,"CC_ALL")+"*?\\S)\\4)(?![`"+n(e,"CC_WORD")+"])","m")]));a.const_set(e[0],"SinglePlusInlinePassRx",new RegExp("^(\\\\)?\\+(\\S|\\S"+n(e,"CC_ALL")+"*?\\S)\\+$","m"));a.const_set(e[0], +"InlinePassMacroRx",new RegExp("(?:(?:(\\\\?)\\[([^\\]]+)\\])?(\\\\{0,2})(\\+\\+\\+?|\\$\\$)("+n(e,"CC_ALL")+"*?)\\4|(\\\\?)pass:([a-z]+(?:,[a-z-]+)*)?\\[(|"+n(e,"CC_ALL")+"*?[^\\\\])\\])","m"));a.const_set(e[0],"InlineXrefMacroRx",new RegExp("\\\\?(?:<<(["+n(e,"CC_WORD")+"#/.:{]"+n(e,"CC_ALL")+"*?)>>|xref:(["+n(e,"CC_WORD")+"#/.:{]"+n(e,"CC_ALL")+"*?)\\[(?:\\]|("+n(e,"CC_ALL")+"*?[^\\\\])\\]))","m"));n(e,"RUBY_ENGINE")["$=="]("opal")?a.const_set(e[0],"HardLineBreakRx",new RegExp("^("+ +n(e,"CC_ANY")+"*) \\+$","m")):k;a.const_set(e[0],"MarkdownThematicBreakRx",/^ {0,3}([-*_])( *)\1\2\1$/);a.const_set(e[0],"ExtLayoutBreakRx",/^(?:'{3,}|<{3,}|([-*_])( *)\1\2\1)$/);a.const_set(e[0],"BlankLineRx",/\n{2,}/);a.const_set(e[0],"EscapedSpaceRx",/\\([ \t\n])/);a.const_set(e[0],"ReplaceableTextRx",/[&']|--|\.\.\.|\([CRT]M?\)/);a.const_set(e[0],"SpaceDelimiterRx",/([^\\])[ \t\n]+/);a.const_set(e[0],"SubModifierSniffRx",/[+-]/);a.const_set(e[0],"TrailingDigitsRx",/\d+$/);a.const_set(e[0],"UriSniffRx", +new RegExp("^"+n(e,"CG_ALPHA")+"["+n(e,"CC_ALNUM")+".+-]+:/{0,2}"));a.const_set(e[0],"XmlSanitizeRx",/<[^>]+>/)}(g[0],g)};Opal.modules["asciidoctor/substitutors"]=function(a){function b(a,b){return"number"===typeof a&&"number"===typeof b?a+b:a["$+"](b)}function g(a,b){return"number"===typeof a&&"number"===typeof b?a-b:a["$-"](b)}function k(a,b){return"number"===typeof a&&"number"===typeof b?a>b:a["$>"](b)}function l(a,b){return"number"===typeof a&&"number"===typeof b?a $index $min $compact $end_with? $map $chop $new $pop $rstrip $register $tr $basename $parse $<< $lstrip $split_simple_csv $partition $extract_attributes_from_text $sub $encode_uri_component $style $extname? $rindex $info? $catalog $fetch $outfilesuffix $natural_xrefs $resolve_id $find $footnotes $id $< $size $attr? $attr $to_s $read_next_id $callouts $syntax_highlighter $highlight? $sub_source $extract_callouts $name $to_sym $to_i $resolve_lines_to_highlight $highlight $nil_or_empty? $restore_callouts $count $to_a $| $sort $* $parse_quoted_text_attributes $resolve_pass_subs $extract_inner_passthrough $basebackend? $error $chr $drop $& $resolve_subs $resolve_block_subs $parse_into $private $=~ $shorthand_property_syntax $concat $each_char".split(" ")); +return function(d,h){d=[t(d,"Asciidoctor")].concat(h);(function(d,h){d=t(d,"Substitutors");var y=[d].concat(h),u,z,S,O,C,L,J,T,W,B,E,D,ja,F,V,H,x,I,ua,U,ba,ka,da,K,M,N,ia,va,fa,wa,ya;a.const_set(y[0],"SpecialCharsRx",/[<&>]/);a.const_set(y[0],"SpecialCharsTr",m([">","<","&"],{">":">","<":"<","&":"&"}));a.const_set(y[0],"QuotedTextSniffRx",e(!1,/[*_`#^~]/,!0,/[*'_+#^~]/));a.const_set(y[0],"BASIC_SUBS",["specialcharacters"]).$freeze();a.const_set(y[0],"HEADER_SUBS",["specialcharacters","attributes"]).$freeze(); +a.const_set(y[0],"NO_SUBS",[]).$freeze();a.const_set(y[0],"NORMAL_SUBS","specialcharacters quotes attributes replacements macros post_replacements".split(" ")).$freeze();a.const_set(y[0],"REFTEXT_SUBS",["specialcharacters","quotes","replacements"]).$freeze();a.const_set(y[0],"VERBATIM_SUBS",["specialcharacters","callouts"]).$freeze();a.const_set(y[0],"SUB_GROUPS",m(["none","normal","verbatim","specialchars"],{none:p(y,"NO_SUBS"),normal:p(y,"NORMAL_SUBS"),verbatim:p(y,"VERBATIM_SUBS"),specialchars:p(y, +"BASIC_SUBS")}));a.const_set(y[0],"SUB_HINTS",m("amnpqrcv".split(""),{a:"attributes",m:"macros",n:"normal",p:"post_replacements",q:"quotes",r:"replacements",c:"specialcharacters",v:"verbatim"}));a.const_set(y[0],"SUB_OPTIONS",m(["block","inline"],{block:b(b(p(y,"SUB_GROUPS").$keys(),p(y,"NORMAL_SUBS")),["callouts"]),inline:b(p(y,"SUB_GROUPS").$keys(),p(y,"NORMAL_SUBS"))}));a.const_set(y[0],"CAN","\u0018");a.const_set(y[0],"DEL","\u007f");a.const_set(y[0],"PASS_START","\u0096");a.const_set(y[0],"PASS_END", +"\u0097");a.const_set(y[0],"PassSlotRx",new RegExp(""+p(y,"PASS_START")+"(\\d+)"+p(y,"PASS_END")));a.const_set(y[0],"HighlightedPassSlotRx",new RegExp("]*>"+p(y,"PASS_START")+"[^\\d]*(\\d+)[^\\d]*]*>"+p(y,"PASS_END")+""));a.const_set(y[0],"RS","\\");a.const_set(y[0],"R_SB","]");a.const_set(y[0],"ESC_R_SB","\\]");a.const_set(y[0],"PLUS","+");a.def(d,"$apply_subs",u=function(a,b){var e,d,m=c,g=c,h=c;null==this.passthroughs&&(this.passthroughs=c);null==this.passthroughs_locked&& +(this.passthroughs_locked=c);null==b&&(b=p(y,"NORMAL_SUBS"));if(f(f(e=a["$empty?"]())?e:b["$!"]()))return a;f(m=r("::","Array")["$==="](a))&&(a=f(a["$[]"](1))?a.$join(p(y,"LF")):a["$[]"](0));f(b["$include?"]("macros"))&&(a=this.$extract_passthroughs(a),f(this.passthroughs["$empty?"]())||(g=this.passthroughs,this.passthroughs_locked=f(e=this.passthroughs_locked)?e:h=!0));v(b,"each",[],(d=function(e){var m=d.$$s||this;null==e&&(e=c);var g=e;return"specialcharacters"["$==="](g)?a=m.$sub_specialchars(a): +"quotes"["$==="](g)?a=m.$sub_quotes(a):"attributes"["$==="](g)?f(a["$include?"](p(y,"ATTR_REF_HEAD")))?a=m.$sub_attributes(a):c:"replacements"["$==="](g)?a=m.$sub_replacements(a):"macros"["$==="](g)?a=m.$sub_macros(a):"highlight"["$==="](g)?a=m.$highlight_source(a,b["$include?"]("callouts")):"callouts"["$==="](g)?f(b["$include?"]("highlight"))?c:a=m.$sub_callouts(a):"post_replacements"["$==="](g)?a=m.$sub_post_replacements(a):m.$logger().$warn("unknown substitution type "+e)},d.$$s=this,d.$$arity= +1,d));f(g)&&(a=this.$restore_passthroughs(a),f(h)&&(g.$clear(),this.passthroughs_locked=c));return f(m)?a.$split(p(y,"LF"),-1):a},u.$$arity=-2);a.def(d,"$apply_normal_subs",z=function(a){return this.$apply_subs(a,p(y,"NORMAL_SUBS"))},z.$$arity=1);a.def(d,"$apply_header_subs",S=function(a){return this.$apply_subs(a,p(y,"HEADER_SUBS"))},S.$$arity=1);a.alias(d,"apply_title_subs","apply_subs");a.def(d,"$apply_reftext_subs",O=function(a){return this.$apply_subs(a,p(y,"REFTEXT_SUBS"))},O.$$arity=1);p(y, +"RUBY_ENGINE")["$=="]("opal")?a.def(d,"$sub_specialchars",C=function(a){var b,c;return f(f(b=f(c=a["$include?"](">"))?c:a["$include?"]("&"))?b:a["$include?"]("<"))?a.$gsub(p(y,"SpecialCharsRx"),p(y,"SpecialCharsTr")):a},C.$$arity=1):c;a.alias(d,"sub_specialcharacters","sub_specialchars");a.def(d,"$sub_quotes",L=function(a){var b,e=c;null==this.document&&(this.document=c);f(p(y,"QuotedTextSniffRx")["$[]"](e=this.document.$compat_mode())["$match?"](a))&&v(p(y,"QUOTE_SUBS")["$[]"](e),"each",[],(b=function(e, +f,d){var m=b.$$s||this,g;null==e&&(e=c);null==f&&(f=c);null==d&&(d=c);return a=v(a,"gsub",[d],(g=function(){var a=g.$$s||this;null==w["~"]&&(w["~"]=c);return a.$convert_quoted_text(w["~"],e,f)},g.$$s=m,g.$$arity=0,g))},b.$$s=this,b.$$arity=3,b));return a},L.$$arity=1);a.def(d,"$sub_attributes",J=function(b,e){var d,g,h,k,l=c,n=c,u=c,r=c,z=c,q=c,S=c,t=c;null==this.document&&(this.document=c);null==e&&(e=m([],{}));l=this.document.$attributes();n=u=r=z=q=S=c;b=v(b,"gsub",[p(y,"AttributeReferenceRx")], +(d=function(){var b=d.$$s||this,m,g,h,k,t=c,Da=c,O=c,ra=c;null==b.document&&(b.document=c);return f(f(m=((g=w["~"])===c?c:g["$[]"](1))["$=="](p(y,"RS")))?m:((g=w["~"])===c?c:g["$[]"](4))["$=="](p(y,"RS")))?"{"+((m=w["~"])===c?c:m["$[]"](2))+"}":f((m=w["~"])===c?c:m["$[]"](3))?function(){t=(Da=((m=w["~"])===c?c:m["$[]"](2)).$split(":",3)).$shift();return"set"["$==="](t)?(g=p(y,"Parser").$store_attribute(Da["$[]"](0),f(h=Da["$[]"](1))?h:"",b.document),m=a.to_ary(g),O=null==m[1]?c:m[1],g,f(f(m=O)?m: +(q=f(g=q)?g:f(h=l["$[]"]("attribute-undefined"))?h:p(y,"Compliance").$attribute_undefined())["$!="]("drop-line"))?n=z=p(y,"DEL"):n=u=p(y,"CAN")):"counter2"["$==="](t)?(v(b.document,"counter",a.to_a(Da)),n=z=p(y,"DEL")):v(b.document,"counter",a.to_a(Da))}():f(l["$key?"](ra=((m=w["~"])===c?c:m["$[]"](2)).$downcase()))?l["$[]"](ra):f(O=p(y,"INTRINSIC_ATTRIBUTES")["$[]"](ra))?O:function(){t=S=f(m=S)?m:f(g=f(h=e["$[]"]("attribute_missing"))?h:l["$[]"]("attribute-missing"))?g:p(y,"Compliance").$attribute_missing(); +if("drop"["$==="](t))return n=z=p(y,"DEL");if("drop-line"["$==="](t))return(r=f(m=r)?m:f(g=e["$[]"]("drop_line_severity"))?g:"info")["$=="]("info")&&v(b.$logger(),"info",[],(k=function(){return"dropping line containing reference to missing attribute: "+ra},k.$$s=b,k.$$arity=0,k)),n=u=p(y,"CAN");"warn"["$==="](t)&&b.$logger().$warn("skipping reference to missing attribute: "+ra);return(m=w["~"])===c?c:m["$[]"](0)}()},d.$$s=this,d.$$arity=0,d));return f(n)?f(z)?(t=b.$squeeze(p(y,"DEL")).$split(p(y, +"LF"),-1),f(u)?v(t,"reject",[],(g=function(a){var b,e,d;null==a&&(a=c);return f(b=f(e=f(d=a["$=="](p(y,"DEL")))?d:a["$=="](p(y,"CAN")))?e:a["$start_with?"](p(y,"CAN")))?b:a["$include?"](p(y,"CAN"))},g.$$s=this,g.$$arity=1,g)).$join(p(y,"LF")).$delete(p(y,"DEL")):v(t,"reject",[],(h=function(a){null==a&&(a=c);return a["$=="](p(y,"DEL"))},h.$$s=this,h.$$arity=1,h)).$join(p(y,"LF")).$delete(p(y,"DEL"))):f(b["$include?"](p(y,"LF")))?v(b.$split(p(y,"LF"),-1),"reject",[],(k=function(a){var b,e;null==a&& +(a=c);return f(b=f(e=a["$=="](p(y,"CAN")))?e:a["$start_with?"](p(y,"CAN")))?b:a["$include?"](p(y,"CAN"))},k.$$s=this,k.$$arity=1,k)).$join(p(y,"LF")):"":b},J.$$arity=-2);a.def(d,"$sub_replacements",T=function(a){var b;f(p(y,"ReplaceableTextRx")["$match?"](a))&&v(p(y,"REPLACEMENTS"),"each",[],(b=function(e,f,d){var m=b.$$s||this,g;null==e&&(e=c);null==f&&(f=c);null==d&&(d=c);return a=v(a,"gsub",[e],(g=function(){var a=g.$$s||this;null==w["~"]&&(w["~"]=c);return a.$do_replacement(w["~"],f,d)},g.$$s= +m,g.$$arity=0,g))},b.$$s=this,b.$$arity=3,b));return a},T.$$arity=1);a.def(d,"$sub_macros",W=function(e){var d,h,l,n,u,z,S,t,O,C,L,J,T,A,Q,G=c,R=c,Ja=c,Qa=c,Da=c,Ea=c,ra=c;null==this.document&&(this.document=c);null==this.context&&(this.context=c);null==this.parent&&(this.parent=c);G=e["$include?"]("[");R=e["$include?"](":");Ja=f(d=G)?R:d;Qa=f(d=Ja)?e["$include?"](":["):d;Da=(Ea=this.document).$attributes();f(f(d=ra=Ea.$extensions())?ra["$inline_macros?"]():d)&&v(ra.$inline_macros(),"each",[],(h= +function(b){var d=h.$$s||this,k;null==b&&(b=c);return e=v(e,"gsub",[b.$instance().$regexp()],(k=function(){var e=k.$$s||this,d,h,l,Oa=c,n;null==w["~"]&&(w["~"]=c);if(f((l=(d=w["~"])===c?c:d["$[]"](0))["$start_with?"](p(y,"RS"))))return((d=w["~"])===c?c:d["$[]"](0)).$slice(1,((d=w["~"])===c?c:d["$[]"](0)).$length());if(f(w["~"].$names()["$empty?"]()))d=[(h=w["~"])===c?c:h["$[]"](1),(h=w["~"])===c?c:h["$[]"](2)];else{a:{try{var A=w["~"]["$[]"]("target");break a}catch(eb){if(a.rescue(eb,[p(y,"StandardError")]))try{A= +c;break a}finally{a.pop_exception()}else throw eb;}A=void 0}d=A;a:{try{var Q=w["~"]["$[]"]("content");break a}catch(eb){if(a.rescue(eb,[p(y,"StandardError")]))try{Q=c;break a}finally{a.pop_exception()}else throw eb;}Q=void 0}d=[d,Q]}Q=d[0];A=d[1];d;var u=f(Oa=(n=b.$config())["$[]"]("default_attrs"))?Oa.$merge():m([],{});f(A)&&(f(A["$empty?"]())?n["$[]"]("content_model")["$=="]("attributes")||(h=["text",A],v(u,"[]=",a.to_a(h)),h[g(h.length,1)]):(A=e.$normalize_text(A,!0,!0),n["$[]"]("content_model")["$=="]("attributes")? +e.$parse_attributes(A,f(d=f(h=n["$[]"]("positional_attrs"))?h:n["$[]"]("pos_attrs"))?d:[],m(["into"],{into:u})):(h=["text",A],v(u,"[]=",a.to_a(h)),h[g(h.length,1)])),Q=f(d=Q)?d:n["$[]"]("format")["$=="]("short")?A:Q);return f(p(y,"Inline")["$==="](d=b.$process_method()["$[]"](e,Q,u)))?(f(l=d.$attributes().$delete("subs"))&&(h=[e.$apply_subs(d.$text(),e.$expand_subs(l))],v(d,"text=",a.to_a(h)),h[g(h.length,1)]),d.$convert()):f(d)?(e.$logger().$info("expected substitution value for custom inline macro to be of type Inline; got "+ +d.$class()+": "+l),d):""},k.$$s=d,k.$$arity=0,k))},h.$$s=this,h.$$arity=1,h));f(Da["$key?"]("experimental"))&&(f(f(d=Qa)?f(l=e["$include?"]("kbd:"))?l:e["$include?"]("btn:"):d)&&(e=v(e,"gsub",[p(y,"InlineKbdBtnMacroRx")],(n=function(){var e=n.$$s||this,d,h,l,A=c,Q=c,u=c;u=c;return f((d=w["~"])===c?c:d["$[]"](1))?((d=w["~"])===c?c:d["$[]"](0)).$slice(1,((d=w["~"])===c?c:d["$[]"](0)).$length()):((d=w["~"])===c?c:d["$[]"](2))["$=="]("kbd")?(f((A=((d=w["~"])===c?c:d["$[]"](3)).$strip())["$include?"](p(y, +"R_SB")))&&(A=A.$gsub(p(y,"ESC_R_SB"),p(y,"R_SB"))),f(f(d=k(A.$length(),1))?Q=f(Q=A.$index(",",1))?[Q,A.$index("+",1)].$compact().$min():A.$index("+",1):d)?(u=A.$slice(Q,1),f(A["$end_with?"](u))?(A=v(A.$chop().$split(u,-1),"map",[],(h=function(a){null==a&&(a=c);return a.$strip()},h.$$s=e,h.$$arity=1,h)),u=[-1,b(A["$[]"](-1),u)],v(A,"[]=",a.to_a(u)),u[g(u.length,1)]):A=v(A.$split(u),"map",[],(l=function(a){null==a&&(a=c);return a.$strip()},l.$$s=e,l.$$arity=1,l))):A=[A],p(y,"Inline").$new(e,"kbd", +c,m(["attributes"],{attributes:m(["keys"],{keys:A})})).$convert()):p(y,"Inline").$new(e,"button",e.$normalize_text((d=w["~"])===c?c:d["$[]"](3),!0,!0)).$convert()},n.$$s=this,n.$$arity=0,n))),f(f(d=Ja)?e["$include?"]("menu:"):d)&&(e=v(e,"gsub",[p(y,"InlineMenuMacroRx")],(u=function(){var a=u.$$s||this,b,e,d=c,g=c,h=c;h=g=c;if(f(((b=w["~"])===c?c:b["$[]"](0))["$start_with?"](p(y,"RS"))))return((b=w["~"])===c?c:b["$[]"](0)).$slice(1,((b=w["~"])===c?c:b["$[]"](0)).$length());d=(b=w["~"])===c?c:b["$[]"](1); +f(g=(b=w["~"])===c?c:b["$[]"](2))?(f(g["$include?"](p(y,"R_SB")))&&(g=g.$gsub(p(y,"ESC_R_SB"),p(y,"R_SB"))),f(h=f(g["$include?"](">"))?">":f(g["$include?"](","))?",":c)?(g=v(g.$split(h),"map",[],(e=function(a){null==a&&(a=c);return a.$strip()},e.$$s=a,e.$$arity=1,e)),h=g.$pop()):(b=[[],g.$rstrip()],g=b[0],h=b[1],b)):(b=[[],c],g=b[0],h=b[1],b);return p(y,"Inline").$new(a,"menu",c,m(["attributes"],{attributes:m(["menu","submenus","menuitem"],{menu:d,submenus:g,menuitem:h})})).$convert()},u.$$s= +this,u.$$arity=0,u))),f(f(d=e["$include?"]('"'))?e["$include?"](">"):d)&&(e=v(e,"gsub",[p(y,"InlineMenuRx")],(z=function(){var b=z.$$s||this,e,d,g,h=c,k=c;var l=c;if(f(((e=w["~"])===c?c:e["$[]"](0))["$start_with?"](p(y,"RS"))))return((e=w["~"])===c?c:e["$[]"](0)).$slice(1,((e=w["~"])===c?c:e["$[]"](0)).$length());l=v(((d=w["~"])===c?c:d["$[]"](1)).$split(">"),"map",[],(g=function(a){null==a&&(a=c);return a.$strip()},g.$$s=b,g.$$arity=1,g));e=a.to_ary(l);h=null==e[0]?c:e[0];k=q.call(e,1);l;l= +k.$pop();return p(y,"Inline").$new(b,"menu",c,m(["attributes"],{attributes:m(["menu","submenus","menuitem"],{menu:h,submenus:k,menuitem:l})})).$convert()},z.$$s=this,z.$$arity=0,z))));f(f(d=Ja)?f(l=e["$include?"]("image:"))?l:e["$include?"]("icon:"):d)&&(e=v(e,"gsub",[p(y,"InlineImageMacroRx")],(S=function(){var b=S.$$s||this,e,d,h,k=c;if(f(((e=w["~"])===c?c:e["$[]"](0))["$start_with?"](p(y,"RS"))))return((e=w["~"])===c?c:e["$[]"](0)).$slice(1,((e=w["~"])===c?c:e["$[]"](0)).$length());f(((e=w["~"])=== +c?c:e["$[]"](0))["$start_with?"]("icon:"))?(e=["icon",["size"]],d=e[0],h=e[1]):(e=["image",["alt","width","height"]],d=e[0],h=e[1]);e;var l=(e=w["~"])===c?c:e["$[]"](1);h=b.$parse_attributes((e=w["~"])===c?c:e["$[]"](2),h,m(["unescape_input"],{unescape_input:!0}));d["$=="]("icon")||(Ea.$register("images",l),k=["imagesdir",Da["$[]"]("imagesdir")],v(h,"[]=",a.to_a(k)),k[g(k.length,1)]);f(e=h["$[]"]("alt"))?e:(k=["alt",(k=["default-alt",p(y,"Helpers").$basename(l,!0).$tr("_-"," ")],v(h,"[]=",a.to_a(k)), +k[g(k.length,1)])],v(h,"[]=",a.to_a(k)),k[g(k.length,1)]);return p(y,"Inline").$new(b,"image",c,m(["type","target","attributes"],{type:d,target:l,attributes:h})).$convert()},S.$$s=this,S.$$arity=0,S)));f(f(d=f(l=e["$include?"]("(("))?e["$include?"]("))"):l)?d:f(l=Qa)?e["$include?"]("dexterm"):l)&&(e=v(e,"gsub",[p(y,"InlineIndextermMacroRx")],(t=function(){var b=t.$$s||this,d,h,k,l,n=c,A=c,Q=c,u=c,R=c,r=c,z=c,S=c,G=c,Da=c,O=c,ra=c,C=c,Qa=c,Ja=c;return function(){n=(d=w["~"])===c?c:d["$[]"](1);if("indexterm"["$==="](n)){if(f(((d= +w["~"])===c?c:d["$[]"](0))["$start_with?"](p(y,"RS"))))return((d=w["~"])===c?c:d["$[]"](0)).$slice(1,((d=w["~"])===c?c:d["$[]"](0)).$length());if(f((A=b.$normalize_text((d=w["~"])===c?c:d["$[]"](2),!0,!0))["$include?"]("=")))if(f(Q=(u=p(y,"AttributeList").$new(A,b).$parse())["$[]"](1))){R=["terms",r=[Q]];v(u,"[]=",a.to_a(R));R[g(R.length,1)];if(f(z=u["$[]"](2))&&(r["$<<"](z),f(S=u["$[]"](3))))r["$<<"](S);f(G=u["$[]"]("see-also"))&&(R=["see-also",function(){return f(G["$include?"](","))?v(G.$split(","), +"map",[],(h=function(a){null==a&&(a=c);return a.$lstrip()},h.$$s=b,h.$$arity=1,h)):[G]}()],v(u,"[]=",a.to_a(R)),R[g(R.length,1)])}else u=m(["terms"],{terms:r=A});else u=m(["terms"],{terms:r=b.$split_simple_csv(A)});return p(y,"Inline").$new(b,"indexterm",c,m(["attributes"],{attributes:u})).$convert()}if("indexterm2"["$==="](n)){if(f(((d=w["~"])===c?c:d["$[]"](0))["$start_with?"](p(y,"RS"))))return((d=w["~"])===c?c:d["$[]"](0)).$slice(1,((d=w["~"])===c?c:d["$[]"](0)).$length());f((Da=b.$normalize_text((d= +w["~"])===c?c:d["$[]"](2),!0,!0))["$include?"]("="))&&(Da=f(d=f(k=(u=p(y,"AttributeList").$new(Da,b).$parse())["$[]"](1))?k:u=c)?d:Da,f(f(d=u)?G=u["$[]"]("see-also"):d)&&(R=["see-also",function(){return f(G["$include?"](","))?v(G.$split(","),"map",[],(l=function(a){null==a&&(a=c);return a.$lstrip()},l.$$s=b,l.$$arity=1,l)):[G]}()],v(u,"[]=",a.to_a(R)),R[g(R.length,1)]));return p(y,"Inline").$new(b,"indexterm",Da,m(["attributes","type"],{attributes:u,type:"visible"})).$convert()}e=(d=w["~"])===c?c: +d["$[]"](3);if(f(((d=w["~"])===c?c:d["$[]"](0))["$start_with?"](p(y,"RS"))))if(f(f(d=e["$start_with?"]("("))?e["$end_with?"](")"):d))e=e.$slice(1,g(e.$length(),2)),d=[!0,"(",")"],O=d[0],ra=d[1],C=d[2],d;else return((d=w["~"])===c?c:d["$[]"](0)).$slice(1,((d=w["~"])===c?c:d["$[]"](0)).$length());else O=!0,f(e["$start_with?"]("("))?(f(e["$end_with?"](")"))?(d=[e.$slice(1,g(e.$length(),2)),!1],e=d[0],O=d[1]):(d=[e.$slice(1,e.$length()),"(",""],e=d[0],ra=d[1],C=d[2]),d):f(e["$end_with?"](")"))&&(d=[e.$chop(), +"",")"],e=d[0],ra=d[1],C=d[2],d);f(O)?(f((Da=b.$normalize_text(e,!0))["$include?"](";&"))&&(f(Da["$include?"](" >> "))?(k=Da.$partition(" >> "),d=a.to_ary(k),Da=null==d[0]?c:d[0],Qa=null==d[2]?c:d[2],k,u=m(["see"],{see:Qa})):f(Da["$include?"](" &> "))&&(k=Da.$split(" &> "),d=a.to_ary(k),Da=null==d[0]?c:d[0],G=q.call(d,1),k,u=m(["see-also"],{"see-also":G}))),Ja=p(y,"Inline").$new(b,"indexterm",Da,m(["attributes","type"],{attributes:u,type:"visible"})).$convert()):(u=m([], +{}),f((r=b.$normalize_text(e,!0))["$include?"](";&"))&&(f(r["$include?"](" >> "))?(k=r.$partition(" >> "),d=a.to_ary(k),r=null==d[0]?c:d[0],Qa=null==d[2]?c:d[2],k,R=["see",Qa],v(u,"[]=",a.to_a(R)),R[g(R.length,1)]):f(r["$include?"](" &> "))&&(k=r.$split(" &> "),d=a.to_ary(k),r=null==d[0]?c:d[0],G=q.call(d,1),k,R=["see-also",G],v(u,"[]=",a.to_a(R)),R[g(R.length,1)])),R=["terms",r=b.$split_simple_csv(r)],v(u,"[]=",a.to_a(R)),R[g(R.length,1)],Ja=p(y,"Inline").$new(b,"indexterm", +c,m(["attributes"],{attributes:u})).$convert());return f(ra)?""+ra+Ja+C:Ja}()},t.$$s=this,t.$$arity=0,t)));f(f(d=R)?e["$include?"]("://"):d)&&(e=v(e,"gsub",[p(y,"InlineLinkRx")],(O=function(){var b=O.$$s||this,d,h,k,l=c;if(f((k=(d=w["~"])===c?c:d["$[]"](2))["$start_with?"](p(y,"RS"))))return""+((d=w["~"])===c?c:d["$[]"](1))+k.$slice(1,k.$length())+((d=w["~"])===c?c:d["$[]"](4));d=[(h=w["~"])===c?c:h["$[]"](1),""];var n=d[0];var A=d[1];d;if(f((d=w["~"])===c?c:d["$[]"](4)))n["$=="]("link:")&&(n=""), +e=(d=w["~"])===c?c:d["$[]"](4);else{h=n;if("link:"["$==="](h)||'"'["$==="](h)||"'"["$==="](h))return(d=w["~"])===c?c:d["$[]"](0);e="";h=(d=w["~"])===c?c:d["$[]"](3);if(")"["$==="](h)){if(k=k.$chop(),A=")",f(k["$end_with?"]("://")))return(d=w["~"])===c?c:d["$[]"](0)}else if(";"["$==="](h)){if(f(f(d=n["$start_with?"]("<"))?k["$end_with?"](">"):d)?(n=n.$slice(4,n.$length()),k=k.$slice(0,g(k.$length(),4))):f((k=k.$chop())["$end_with?"](")"))?(k=k.$chop(),A=");"):A=";",f(k["$end_with?"]("://")))return(d= +w["~"])===c?c:d["$[]"](0)}else if(":"["$==="](h)&&(f((k=k.$chop())["$end_with?"](")"))?(k=k.$chop(),A="):"):A=":",f(k["$end_with?"]("://"))))return(d=w["~"])===c?c:d["$[]"](0)}d=[c,m(["type"],{type:"link"})];var u=d[0];var Q=d[1];d;f(e["$empty?"]())||(f(e["$include?"](p(y,"R_SB")))&&(e=e.$gsub(p(y,"ESC_R_SB"),p(y,"R_SB"))),f(f(d=Ea.$compat_mode()["$!"]())?e["$include?"]("="):d)&&(h=b.$extract_attributes_from_text(e,""),d=a.to_ary(h),e=null==d[0]?c:d[0],u=null==d[1]?c:d[1],h,l=["id",u["$[]"]("id")], +v(Q,"[]=",a.to_a(l)),l[g(l.length,1)]),f(e["$end_with?"]("^"))&&(e=e.$chop(),f(u)?f(d=u["$[]"]("window"))?d:(l=["window","_blank"],v(u,"[]=",a.to_a(l)),l[g(l.length,1)]):u=m(["window"],{window:"_blank"})));f(e["$empty?"]())&&(e=f(Da["$key?"]("hide-uri-scheme"))?k.$sub(p(y,"UriSniffRx"),""):k,f(u)?(l=["role",f(u["$key?"]("role"))?"bare "+u["$[]"]("role"):"bare"],v(u,"[]=",a.to_a(l)),l[g(l.length,1)]):u=m(["role"],{role:"bare"}));Ea.$register("links",(l=["target",k],v(Q,"[]=",a.to_a(l)),l[g(l.length, +1)]));f(u)&&(l=["attributes",u],v(Q,"[]=",a.to_a(l)),l[g(l.length,1)]);return""+n+p(y,"Inline").$new(b,"anchor",e,Q).$convert()+A},O.$$s=this,O.$$arity=0,O)));f(f(d=Ja)?f(l=e["$include?"]("link:"))?l:e["$include?"]("ilto:"):d)&&(e=v(e,"gsub",[p(y,"InlineLinkMacroRx")],(C=function(){var d=C.$$s||this,h,k,l=c;var n=c;if(f(((h=w["~"])===c?c:h["$[]"](0))["$start_with?"](p(y,"RS"))))return((h=w["~"])===c?c:h["$[]"](0)).$slice(1,((h=w["~"])===c?c:h["$[]"](0)).$length());var A=f(k=(h=w["~"])===c?c:h["$[]"](1))? +b("mailto:",l=(h=w["~"])===c?c:h["$[]"](2)):(h=w["~"])===c?c:h["$[]"](2);h=[c,m(["type"],{type:"link"})];var u=h[0];var Q=h[1];h;f((e=(h=w["~"])===c?c:h["$[]"](3))["$empty?"]())||(f(e["$include?"](p(y,"R_SB")))&&(e=e.$gsub(p(y,"ESC_R_SB"),p(y,"R_SB"))),f(k)?f(f(h=Ea.$compat_mode()["$!"]())?e["$include?"](","):h)&&(n=d.$extract_attributes_from_text(e,""),h=a.to_ary(n),e=null==h[0]?c:h[0],u=null==h[1]?c:h[1],n,n=["id",u["$[]"]("id")],v(Q,"[]=",a.to_a(n)),n[g(n.length,1)],f(u["$key?"](2))&&(A=f(u["$key?"](3))? +""+A+"?subject="+p(y,"Helpers").$encode_uri_component(u["$[]"](2))+"&body="+p(y,"Helpers").$encode_uri_component(u["$[]"](3)):""+A+"?subject="+p(y,"Helpers").$encode_uri_component(u["$[]"](2)))):f(f(h=Ea.$compat_mode()["$!"]())?e["$include?"]("="):h)&&(n=d.$extract_attributes_from_text(e,""),h=a.to_ary(n),e=null==h[0]?c:h[0],u=null==h[1]?c:h[1],n,n=["id",u["$[]"]("id")],v(Q,"[]=",a.to_a(n)),n[g(n.length,1)]),f(e["$end_with?"]("^"))&&(e=e.$chop(),f(u)?f(h=u["$[]"]("window"))?h:(n=["window","_blank"], +v(u,"[]=",a.to_a(n)),n[g(n.length,1)]):u=m(["window"],{window:"_blank"})));f(e["$empty?"]())&&(f(k)?e=l:(f(Da["$key?"]("hide-uri-scheme"))?f((e=A.$sub(p(y,"UriSniffRx"),""))["$empty?"]())&&(e=A):e=A,f(u)?(n=["role",f(u["$key?"]("role"))?"bare "+u["$[]"]("role"):"bare"],v(u,"[]=",a.to_a(n)),n[g(n.length,1)]):u=m(["role"],{role:"bare"})));Ea.$register("links",(n=["target",A],v(Q,"[]=",a.to_a(n)),n[g(n.length,1)]));f(u)&&(n=["attributes",u],v(Q,"[]=",a.to_a(n)),n[g(n.length,1)]);return p(y,"Inline").$new(d, +"anchor",e,Q).$convert()},C.$$s=this,C.$$arity=0,C)));f(e["$include?"]("@"))&&(e=v(e,"gsub",[p(y,"InlineEmailRx")],(L=function(){var a=L.$$s||this,e,d;if(f((e=w["~"])===c?c:e["$[]"](1)))return((e=w["~"])===c?c:e["$[]"](1))["$=="](p(y,"RS"))?((e=w["~"])===c?c:e["$[]"](0)).$slice(1,((e=w["~"])===c?c:e["$[]"](0)).$length()):(e=w["~"])===c?c:e["$[]"](0);var g=b("mailto:",d=(e=w["~"])===c?c:e["$[]"](0));Ea.$register("links",g);return p(y,"Inline").$new(a,"anchor",d,m(["type","target"],{type:"link",target:g})).$convert()}, +L.$$s=this,L.$$arity=0,L)));f(f(d=f(l=G)?this.context["$=="]("list_item"):l)?this.parent.$style()["$=="]("bibliography"):d)&&(e=v(e,"sub",[p(y,"InlineBiblioAnchorRx")],(J=function(){var a=J.$$s||this,b;return p(y,"Inline").$new(a,"anchor",(b=w["~"])===c?c:b["$[]"](2),m(["type","id"],{type:"bibref",id:(b=w["~"])===c?c:b["$[]"](1)})).$convert()},J.$$s=this,J.$$arity=0,J)));f(f(d=f(l=G)?e["$include?"]("[["):l)?d:f(l=Ja)?e["$include?"]("or:"):l)&&(e=v(e,"gsub",[p(y,"InlineAnchorRx")],(T=function(){var a= +T.$$s||this,b,e,d,g=c;if(f((b=w["~"])===c?c:b["$[]"](1)))return((b=w["~"])===c?c:b["$[]"](0)).$slice(1,((b=w["~"])===c?c:b["$[]"](0)).$length());f(d=(b=w["~"])===c?c:b["$[]"](2))?g=(b=w["~"])===c?c:b["$[]"](3):(d=(b=w["~"])===c?c:b["$[]"](4),f(f(b=g=(e=w["~"])===c?c:e["$[]"](5))?g["$include?"](p(y,"R_SB")):b)&&(g=g.$gsub(p(y,"ESC_R_SB"),p(y,"R_SB"))));return p(y,"Inline").$new(a,"anchor",g,m(["type","id"],{type:"ref",id:d})).$convert()},T.$$s=this,T.$$arity=0,T)));f(f(d=f(l=e["$include?"]("&"))?e["$include?"](";&l"): +l)?d:f(l=Ja)?e["$include?"]("xref:"):l)&&(e=v(e,"gsub",[p(y,"InlineXrefMacroRx")],(A=function(){var d=A.$$s||this,h,l,n=c,u=c,Q,R,r=R=c,z=c;if(f(((h=w["~"])===c?c:h["$[]"](0))["$start_with?"](p(y,"RS"))))return((h=w["~"])===c?c:h["$[]"](0)).$slice(1,((h=w["~"])===c?c:h["$[]"](0)).$length());var q=m([],{});if(f(l=(h=w["~"])===c?c:h["$[]"](1))){var S=l.$split(",",2);h=a.to_ary(S);l=null==h[0]?c:h[0];e=null==h[1]?c:h[1];S;f(e)&&(e=e.$lstrip())}else n=!0,l=(h=w["~"])===c?c:h["$[]"](2),f(e=(h=w["~"])=== +c?c:h["$[]"](3))&&(f(e["$include?"](p(y,"R_SB")))&&(e=e.$gsub(p(y,"ESC_R_SB"),p(y,"R_SB"))),f(f(h=Ea.$compat_mode()["$!"]())?e["$include?"]("="):h)&&(S=d.$extract_attributes_from_text(e),h=a.to_ary(S),e=null==h[0]?c:h[0],q=null==h[1]?c:h[1],S));f(Ea.$compat_mode())?u=l:f(Q=l.$index("#"))?f(k(Q,0))?(f(k(R=g(g(l.$length(),1),Q),0))?(h=[l.$slice(0,Q),l.$slice(b(Q,1),R)],R=h[0],u=h[1],h):R=l.$chop(),f(n)?f(R["$end_with?"](".adoc"))?r=R=R.$slice(0,g(R.$length(),5)):f(p(y,"Helpers")["$extname?"](R)["$!"]())&& +(r=R):r=f(v(R,"end_with?",a.to_a(p(y,"ASCIIDOC_EXTENSIONS").$keys())))?R=R.$slice(0,R.$rindex(".")):R):(h=[l,l.$slice(1,l.$length())],z=h[0],u=h[1],h):f(n)?f(l["$end_with?"](".adoc"))?r=R=l.$slice(0,g(l.$length(),5)):f(p(y,"Helpers")["$extname?"](l))?R=l:u=l:u=l;f(z)?(l=u,f(f(h=d.$logger()["$info?"]())?Ea.$catalog()["$[]"]("refs")["$[]"](l)["$!"]():h)&&d.$logger().$info("possible invalid reference: "+l)):f(R)?f(f(h=r)?f(S=Ea.$attributes()["$[]"]("docname")["$=="](R))?S:Ea.$catalog()["$[]"]("includes")["$[]"](R): +h)?f(u)?(h=[u,c,"#"+u],l=h[0],R=h[1],z=h[2],h,f(f(h=d.$logger()["$info?"]())?Ea.$catalog()["$[]"]("refs")["$[]"](l)["$!"]():h)&&d.$logger().$info("possible invalid reference: "+l)):(h=[c,c,"#"],l=h[0],R=h[1],z=h[2],h):(h=[R,""+Ea.$attributes()["$[]"]("relfileprefix")+R+(f(r)?Ea.$attributes().$fetch("relfilesuffix",Ea.$outfilesuffix()):"")],l=h[0],R=h[1],h,f(u)?(h=[""+l+"#"+u,""+R+"#"+u],l=h[0],z=h[1],h):z=R):f(f(h=Ea.$compat_mode())?h:p(y,"Compliance").$natural_xrefs()["$!"]())?(h=[u,"#"+u],l=h[0], +z=h[1],h,f(f(h=d.$logger()["$info?"]())?Ea.$catalog()["$[]"]("refs")["$[]"](l)["$!"]():h)&&d.$logger().$info("possible invalid reference: "+l)):f(Ea.$catalog()["$[]"]("refs")["$[]"](u))?(h=[u,"#"+u],l=h[0],z=h[1],h):f(f(h=f(S=u["$include?"](" "))?S:u.$downcase()["$!="](u))?l=Ea.$resolve_id(u):h)?(h=[l,"#"+l],u=h[0],z=h[1],h):(h=[u,"#"+u],l=h[0],z=h[1],h,f(d.$logger()["$info?"]())&&d.$logger().$info("possible invalid reference: "+l));h=["path",R];v(q,"[]=",a.to_a(h));h[g(h.length,1)];h=["fragment", +u];v(q,"[]=",a.to_a(h));h[g(h.length,1)];h=["refid",l];v(q,"[]=",a.to_a(h));h[g(h.length,1)];return p(y,"Inline").$new(d,"anchor",e,m(["type","target","attributes"],{type:"xref",target:z,attributes:q})).$convert()},A.$$s=this,A.$$arity=0,A)));f(f(d=Ja)?e["$include?"]("tnote"):d)&&(e=v(e,"gsub",[p(y,"InlineFootnoteMacroRx")],(Q=function(){var b=Q.$$s||this,d,g,h,k,l=c,n=g=c,A=g=c;if(f(((d=w["~"])===c?c:d["$[]"](0))["$start_with?"](p(y,"RS"))))return((d=w["~"])===c?c:d["$[]"](0)).$slice(1,((d=w["~"])=== +c?c:d["$[]"](0)).$length());if(f((d=w["~"])===c?c:d["$[]"](1)))if(f((d=w["~"])===c?c:d["$[]"](3)))g=((h=w["~"])===c?c:h["$[]"](3)).$split(",",2),d=a.to_ary(g),l=null==d[0]?c:d[0],e=null==d[1]?c:d[1],g,f(Ea.$compat_mode())||b.$logger().$warn("found deprecated footnoteref macro: "+((d=w["~"])===c?c:d["$[]"](0))+"; use footnote macro with target instead");else return(d=w["~"])===c?c:d["$[]"](0);else l=(d=w["~"])===c?c:d["$[]"](2),e=(d=w["~"])===c?c:d["$[]"](3);if(f(l))f(g=v(Ea.$footnotes(),"find",[], +(k=function(a){null==a&&(a=c);return a.$id()["$=="](l)},k.$$s=b,k.$$arity=1,k)))?(d=[g.$index(),g.$text()],n=d[0],e=d[1],d,d=["xref",l,c],g=d[0],A=d[1],l=d[2]):f(e)?(e=b.$restore_passthroughs(b.$normalize_text(e,!0,!0)),n=Ea.$counter("footnote-number"),Ea.$register("footnotes",r(p(y,"Document"),"Footnote").$new(n,l,e)),d=["ref",c],g=d[0],A=d[1]):(b.$logger().$warn("invalid footnote reference: "+l),d=["xref",l,l,c],g=d[0],A=d[1],e=d[2],l=d[3]),d;else if(f(e))e=b.$restore_passthroughs(b.$normalize_text(e, +!0,!0)),n=Ea.$counter("footnote-number"),Ea.$register("footnotes",r(p(y,"Document"),"Footnote").$new(n,l,e)),g=A=c;else return(d=w["~"])===c?c:d["$[]"](0);return p(y,"Inline").$new(b,"footnote",e,m(["attributes","id","target","type"],{attributes:m(["index"],{index:n}),id:l,target:A,type:g})).$convert()},Q.$$s=this,Q.$$arity=0,Q)));return e},W.$$arity=1);a.def(d,"$sub_post_replacements",B=function(a){var b,e,d,h=c,k=c;null==this.attributes&&(this.attributes=c);null==this.document&&(this.document=c); +if(f(f(b=this.attributes["$[]"]("hardbreaks-option"))?b:this.document.$attributes()["$[]"]("hardbreaks-option"))){h=a.$split(p(y,"LF"),-1);if(f(l(h.$size(),2)))return a;k=h.$pop();return v(h,"map",[],(e=function(a){var b=e.$$s||this;null==a&&(a=c);return p(y,"Inline").$new(b,"break",f(a["$end_with?"](p(y,"HARD_LINE_BREAK")))?a.$slice(0,g(a.$length(),2)):a,m(["type"],{type:"line"})).$convert()},e.$$s=this,e.$$arity=1,e))["$<<"](k).$join(p(y,"LF"))}return f(f(b=a["$include?"](p(y,"PLUS")))?a["$include?"](p(y, +"HARD_LINE_BREAK")):b)?v(a,"gsub",[p(y,"HardLineBreakRx")],(d=function(){var a=d.$$s||this,b;return p(y,"Inline").$new(a,"break",(b=w["~"])===c?c:b["$[]"](1),m(["type"],{type:"line"})).$convert()},d.$$s=this,d.$$arity=0,d)):a},B.$$arity=1);a.def(d,"$sub_source",E=function(a,b){return f(b)?this.$sub_callouts(this.$sub_specialchars(a)):this.$sub_specialchars(a)},E.$$arity=2);a.def(d,"$sub_callouts",D=function(a){var e,d=c,g=c;d=f(this["$attr?"]("line-comment"))?p(y,"CalloutSourceRxMap")["$[]"](this.$attr("line-comment")): +p(y,"CalloutSourceRx");g=0;return v(a,"gsub",[d],(e=function(){var a=e.$$s||this,d,h;null==a.document&&(a.document=c);return f((d=w["~"])===c?c:d["$[]"](2))?((d=w["~"])===c?c:d["$[]"](0)).$sub(p(y,"RS"),""):p(y,"Inline").$new(a,"callout",((d=w["~"])===c?c:d["$[]"](4))["$=="](".")?(g=b(g,1)).$to_s():(d=w["~"])===c?c:d["$[]"](4),m(["id","attributes"],{id:a.document.$callouts().$read_next_id(),attributes:m(["guard"],{guard:f(d=(h=w["~"])===c?c:h["$[]"](1))?d:((h=w["~"])===c?c:h["$[]"](3))["$=="]("--")? +["\x3c!--","--\x3e"]:c})})).$convert()},e.$$s=this,e.$$arity=0,e))},D.$$arity=1);a.def(d,"$highlight_source",ja=function(b,e){var d,g,h=c,k=c,n,u=c,r=c;null==this.document&&(this.document=c);null==this.passthroughs&&(this.passthroughs=c);if(!f(f(d=h=this.document.$syntax_highlighter())?h["$highlight?"]():d))return this.$sub_source(b,e);f(e)&&(e=this.$extract_callouts(b),d=a.to_ary(e),b=null==d[0]?c:d[0],k=null==d[1]?c:d[1],e);e=this.document.$attributes();var z=h.$name();f(n=f(this["$attr?"]("linenums"))? +(f(d=e["$[]"](""+z+"-linenums-mode"))?d:"table").$to_sym():c)&&f(l(u=this.$attr("start",1).$to_i(),1))&&(u=1);f(this["$attr?"]("highlight"))&&(r=this.$resolve_lines_to_highlight(b,this.$attr("highlight"),u));e=h.$highlight(this,b,this.$attr("language"),m("callouts css_mode highlight_lines number_lines start_line_number style".split(" "),{callouts:k,css_mode:(f(g=e["$[]"](""+z+"-css"))?g:"class").$to_sym(),highlight_lines:r,number_lines:n,start_line_number:u,style:e["$[]"](""+z+"-style")}));d=a.to_ary(e); +b=null==d[0]?c:d[0];d=null==d[1]?c:d[1];e;f(this.passthroughs["$empty?"]())||(b=b.$gsub(p(y,"HighlightedPassSlotRx"),""+p(y,"PASS_START")+"\\1"+p(y,"PASS_END")));return f(k["$nil_or_empty?"]())?b:this.$restore_callouts(b,k,d)},ja.$$arity=2);a.def(d,"$resolve_lines_to_highlight",F=function(e,d,m){var h,k,n=c,u=c;null==m&&(m=c);n=[];f(d["$include?"](" "))&&(d=d.$delete(" "));v(f(d["$include?"](","))?d.$split(","):d.$split(";"),"map",[],(h=function(d){var m,h=c;var k=c;null==d&&(d=c);f(d["$start_with?"]("!"))&& +(d=d.$slice(1,d.$length()),h=!0);if(f(m=f(d["$include?"](".."))?"..":f(d["$include?"]("-"))?"-":c)){m=d.$partition(m);d=a.to_ary(m);k=null==d[0]?c:d[0];var u=null==d[2]?c:d[2];m;f(f(d=u["$empty?"]())?d:l(u=u.$to_i(),0))&&(u=b(e.$count(p(y,"LF")),1));return f(h)?n=g(n,a.Range.$new(k.$to_i(),u,!1).$to_a()):n=n["$|"](a.Range.$new(k.$to_i(),u,!1).$to_a())}return f(h)?n.$delete(d.$to_i()):f(n["$include?"](k=d.$to_i())["$!"]())?n["$<<"](k):c},h.$$s=this,h.$$arity=1,h));(u=f(m)?g(m,1):0)["$=="](0)||(n=v(n, +"map",[],(k=function(a){null==a&&(a=c);return g(a,u)},k.$$s=this,k.$$arity=1,k)));return n.$sort()},F.$$arity=-3);a.def(d,"$extract_passthroughs",V=function(b){var e,d,h,l,u,r=c,z=c,q=c,S=c,t=c;null==this.document&&(this.document=c);null==this.passthroughs&&(this.passthroughs=c);r=this.document.$compat_mode();z=this.passthroughs;f(f(e=f(d=b["$include?"]("++"))?d:b["$include?"]("$$"))?e:b["$include?"]("ss:"))&&(b=v(b,"gsub",[p(y,"InlinePassMacroRx")],(h=function(){var b=h.$$s||this,e,d,l,u,q=c,R=c, +S=c,t=l=c;if(f(d=(e=w["~"])===c?c:e["$[]"](4))){if(f(f(e=r)?d["$=="]("++"):e))return(f((e=w["~"])===c?c:e["$[]"](2))?""+((e=w["~"])===c?c:e["$[]"](1))+"["+((e=w["~"])===c?c:e["$[]"](2))+"]"+((e=w["~"])===c?c:e["$[]"](3)):""+((e=w["~"])===c?c:e["$[]"](1))+((e=w["~"])===c?c:e["$[]"](3)))+"++"+b.$extract_passthroughs((e=w["~"])===c?c:e["$[]"](5))+"++";if(f(l=(e=w["~"])===c?c:e["$[]"](2))){if(f(k(u=((e=w["~"])===c?c:e["$[]"](3)).$length(),0)))return""+((e=w["~"])===c?c:e["$[]"](1))+"["+l+"]"+n(p(y,"RS"), +g(u,1))+d+((e=w["~"])===c?c:e["$[]"](5))+d;((e=w["~"])===c?c:e["$[]"](1))["$=="](p(y,"RS"))?q="["+l+"]":(f((e=d["$=="]("++"))?l["$end_with?"]("x-"):d["$=="]("++"))&&(R=!0,l=l.$slice(0,g(l.$length(),2))),S=b.$parse_quoted_text_attributes(l))}else if(f(k(u=((e=w["~"])===c?c:e["$[]"](3)).$length(),0)))return""+n(p(y,"RS"),g(u,1))+d+((e=w["~"])===c?c:e["$[]"](5))+d;l=d["$=="]("+++")?[]:p(y,"BASIC_SUBS");b=f(S)?f(R)?[t=z.$size(),m(["text","subs","type","attributes"],{text:(e=w["~"])===c?c:e["$[]"](5), +subs:p(y,"NORMAL_SUBS"),type:"monospaced",attributes:S})]:[t=z.$size(),m(["text","subs","type","attributes"],{text:(e=w["~"])===c?c:e["$[]"](5),subs:l,type:"unquoted",attributes:S})]:[t=z.$size(),m(["text","subs"],{text:(e=w["~"])===c?c:e["$[]"](5),subs:l})]}else{if(((e=w["~"])===c?c:e["$[]"](6))["$=="](p(y,"RS")))return((e=w["~"])===c?c:e["$[]"](0)).$slice(1,((e=w["~"])===c?c:e["$[]"](0)).$length());b=f(l=(e=w["~"])===c?c:e["$[]"](7))?[t=z.$size(),m(["text","subs"],{text:b.$normalize_text((e=w["~"])=== +c?c:e["$[]"](8),c,!0),subs:b.$resolve_pass_subs(l)})]:[t=z.$size(),m(["text"],{text:b.$normalize_text((e=w["~"])===c?c:e["$[]"](8),c,!0)})]}v(z,"[]=",a.to_a(b));b[g(b.length,1)];return""+(f(e=q)?e:"")+p(y,"PASS_START")+t+p(y,"PASS_END")},h.$$s=this,h.$$arity=0,h)));d=p(y,"InlinePassRx")["$[]"](r);e=a.to_ary(d);q=null==e[0]?c:e[0];S=null==e[1]?c:e[1];t=null==e[2]?c:e[2];d;f(f(e=b["$include?"](q))?e:f(d=S)?b["$include?"](S):d)&&(b=v(b,"gsub",[t],(l=function(){var b=l.$$s||this,e,d,h=c,k=c,n=c;var u= +(e=w["~"])===c?c:e["$[]"](1);var q=(e=w["~"])===c?c:e["$[]"](2);f((d=(e=w["~"])===c?c:e["$[]"](3))["$start_with?"](p(y,"RS")))&&(h=p(y,"RS"));var S=(e=w["~"])===c?c:e["$[]"](4);var t=(e=w["~"])===c?c:e["$[]"](5);f(r)?k=!0:f(k=f(e=q)?q["$end_with?"]("x-"):e)&&(q=q.$slice(0,g(q.$length(),2)));if(f(q)){if(f(S["$=="]("`")?k["$!"]():S["$=="]("`")))return b.$extract_inner_passthrough(t,""+u+"["+q+"]"+h);if(f(h))return""+u+"["+q+"]"+d.$slice(1,d.$length());u["$=="](p(y,"RS"))?u="["+q+"]":n=b.$parse_quoted_text_attributes(q)}else{if(f(S["$=="]("`")? +k["$!"]():S["$=="]("`")))return b.$extract_inner_passthrough(t,""+u+h);if(f(h))return""+u+d.$slice(1,d.$length())}f(r)?t=[b=z.$size(),m(["text","subs","attributes","type"],{text:t,subs:p(y,"BASIC_SUBS"),attributes:n,type:"monospaced"})]:f(n)?f(k)?(e=S["$=="]("`")?p(y,"BASIC_SUBS"):p(y,"NORMAL_SUBS"),t=[b=z.$size(),m(["text","subs","attributes","type"],{text:t,subs:e,attributes:n,type:"monospaced"})]):t=[b=z.$size(),m(["text","subs","attributes","type"],{text:t,subs:p(y,"BASIC_SUBS"),attributes:n, +type:"unquoted"})]:t=[b=z.$size(),m(["text","subs"],{text:t,subs:p(y,"BASIC_SUBS")})];v(z,"[]=",a.to_a(t));t[g(t.length,1)];return""+u+p(y,"PASS_START")+b+p(y,"PASS_END")},l.$$s=this,l.$$arity=0,l)));f(f(e=b["$include?"](":"))?f(d=b["$include?"]("stem:"))?d:b["$include?"]("math:"):e)&&(b=v(b,"gsub",[p(y,"InlineStemMacroRx")],(u=function(){var b=u.$$s||this,e,d;null==b.document&&(b.document=c);if(f(((e=w["~"])===c?c:e["$[]"](0))["$start_with?"](p(y,"RS"))))return((e=w["~"])===c?c:e["$[]"](0)).$slice(1, +((e=w["~"])===c?c:e["$[]"](0)).$length());(d=((e=w["~"])===c?c:e["$[]"](1)).$to_sym())["$=="]("stem")&&(d=p(y,"STEM_TYPE_ALIASES")["$[]"](b.document.$attributes()["$[]"]("stem")).$to_sym());var h=(e=w["~"])===c?c:e["$[]"](2);var k=b.$normalize_text((e=w["~"])===c?c:e["$[]"](3),c,!0);f(f(e=d["$=="]("latexmath")?k["$start_with?"]("$"):d["$=="]("latexmath"))?k["$end_with?"]("$"):e)&&(k=k.$slice(1,g(k.$length(),2)));h=f(h)?b.$resolve_pass_subs(h):f(b.document["$basebackend?"]("html"))?p(y,"BASIC_SUBS"): +c;d=[b=z.$size(),m(["text","subs","type"],{text:k,subs:h,type:d})];v(z,"[]=",a.to_a(d));d[g(d.length,1)];return""+p(y,"PASS_START")+b+p(y,"PASS_END")},u.$$s=this,u.$$arity=0,u)));return b},V.$$arity=1);a.def(d,"$restore_passthroughs",H=function(a){var b,e=c;null==this.passthroughs&&(this.passthroughs=c);e=this.passthroughs;return v(a,"gsub",[p(y,"PassSlotRx")],(b=function(){var d=b.$$s||this,g,h,k,l,n=c;if(f(h=e["$[]"](((g=w["~"])===c?c:g["$[]"](1)).$to_i())))return g=d.$apply_subs(h["$[]"]("text"), +h["$[]"]("subs")),f(k=h["$[]"]("type"))&&(f(l=h["$[]"]("attributes"))&&(n=l["$[]"]("id")),g=p(y,"Inline").$new(d,"quoted",g,m(["type","id","attributes"],{type:k,id:n,attributes:l})).$convert()),f(g["$include?"](p(y,"PASS_START")))?d.$restore_passthroughs(g):g;d.$logger().$error("unresolved passthrough detected: "+a);return"??pass??"},b.$$s=this,b.$$arity=0,b))},H.$$arity=1);a.def(d,"$resolve_subs",x=function(a,e,d,m){var h,l=c,n=c,u=c,r=c;null==e&&(e="block");null==d&&(d=c);null==m&&(m=c);if(f(a["$nil_or_empty?"]()))return c; +l=c;f(a["$include?"](" "))&&(a=a.$delete(" "));n=p(y,"SubModifierSniffRx")["$match?"](a);v(a.$split(","),"each",[],(h=function(a){var m,h,k=c;null==a&&(a=c);var u=c;f(n)&&((m=a.$chr())["$=="]("+")?(u="append",a=a.$slice(1,a.$length())):m["$=="]("-")?(u="remove",a=a.$slice(1,a.$length())):f(a["$end_with?"]("+"))&&(u="prepend",a=a.$chop()));a=a.$to_sym();f((m=e["$=="]("inline"))?f(h=a["$=="]("verbatim"))?h:a["$=="]("v"):e["$=="]("inline"))?a=p(y,"BASIC_SUBS"):f(p(y,"SUB_GROUPS")["$key?"](a))?a=p(y, +"SUB_GROUPS")["$[]"](a):f(f(m=e["$=="]("inline")?a.$length()["$=="](1):e["$=="]("inline"))?p(y,"SUB_HINTS")["$key?"](a):m)?(a=p(y,"SUB_HINTS")["$[]"](a),a=f(k=p(y,"SUB_GROUPS")["$[]"](a))?k:[a]):a=[a];if(f(u))return l=f(m=l)?m:f(d)?d.$drop(0):[],"append"["$==="](u)?l=b(l,a):"prepend"["$==="](u)?l=b(a,l):"remove"["$==="](u)?l=g(l,a):c;l=f(m=l)?m:[];return l=b(l,a)},h.$$s=this,h.$$arity=1,h));if(!f(l))return c;u=l["$&"](p(y,"SUB_OPTIONS")["$[]"](e));f(g(l,u)["$empty?"]())||(r=g(l,u),this.$logger().$warn("invalid substitution type"+ +(f(k(r.$size(),1))?"s":"")+(f(m)?" for ":"")+m+": "+r.$join(", ")));return u},x.$$arity=-2);a.def(d,"$resolve_block_subs",I=function(a,b,c){return this.$resolve_subs(a,"block",b,c)},I.$$arity=3);a.def(d,"$resolve_pass_subs",ua=function(a){return this.$resolve_subs(a,"inline",c,"passthrough macro")},ua.$$arity=1);a.def(d,"$expand_subs",U=function(a){var e,d,m=c;if(f(r("::","Symbol")["$==="](a)))return a["$=="]("none")?c:f(e=p(y,"SUB_GROUPS")["$[]"](a))?e:[a];m=[];v(a,"each",[],(d=function(a){var e; +null==a&&(a=c);return a["$=="]("none")?c:f(e=p(y,"SUB_GROUPS")["$[]"](a))?m=b(m,e):m["$<<"](a)},d.$$s=this,d.$$arity=1,d));return f(m["$empty?"]())?c:m},U.$$arity=1);a.def(d,"$commit_subs",ba=function(){var b,e,d,m,h=c,l=c,k=c;null==this.default_subs&&(this.default_subs=c);null==this.content_model&&(this.content_model=c);null==this.context&&(this.context=c);null==this.subs&&(this.subs=c);null==this.attributes&&(this.attributes=c);null==this.style&&(this.style=c);null==this.document&&(this.document= +c);if(!f(m=this.default_subs))if(m=this.content_model,"simple"["$==="](m))m=p(y,"NORMAL_SUBS");else if("verbatim"["$==="](m))m=this.context["$=="]("verse")?p(y,"NORMAL_SUBS"):p(y,"VERBATIM_SUBS");else if("raw"["$==="](m))m=this.context["$=="]("stem")?p(y,"BASIC_SUBS"):p(y,"NO_SUBS");else return this.subs;f(h=this.attributes["$[]"]("subs"))?this.subs=f(b=this.$resolve_block_subs(h,m,this.context))?b:[]:this.subs=m.$drop(0);f(f(b=f(e=f(d=this.context["$=="]("listing")?this.style["$=="]("source"):this.context["$=="]("listing"))? +l=this.document.$syntax_highlighter():d)?l["$highlight?"]():e)?k=this.subs.$index("specialcharacters"):b)&&(b=[k,"highlight"],v(this.subs,"[]=",a.to_a(b)),b[g(b.length,1)]);return c},ba.$$arity=0);a.def(d,"$parse_attributes",ka=function(a,b,e){var d,g=c,h=c;null==this.document&&(this.document=c);null==b&&(b=[]);null==e&&(e=m([],{}));if(f(f(a)?a["$empty?"]():!0))return m([],{});f(e["$[]"]("unescape_input"))&&(a=this.$normalize_text(a,!0,!0));f(f(d=e["$[]"]("sub_input"))?a["$include?"](p(y,"ATTR_REF_HEAD")): +d)&&(a=this.document.$sub_attributes(a));f(e["$[]"]("sub_result"))&&(g=this);return f(h=e["$[]"]("into"))?p(y,"AttributeList").$new(a,g).$parse_into(h,b):p(y,"AttributeList").$new(a,g).$parse(b)},ka.$$arity=-2);d.$private();a.def(d,"$extract_attributes_from_text",da=function(a,b){var e=c,d=c;null==b&&(b=c);var m=f(a["$include?"](p(y,"LF")))?a.$tr(p(y,"LF")," "):a;return f(e=(d=p(y,"AttributeList").$new(m,this).$parse())["$[]"](1))?e["$=="](m)?[a,d.$clear()]:[e,d]:[b,d]},da.$$arity=-2);a.def(d,"$extract_callouts", +K=function(e){var d,h=c,l=c,k=c,n=c,u=c;h=m([],{});l=k=0;n=c;u=f(this["$attr?"]("line-comment"))?p(y,"CalloutExtractRxMap")["$[]"](this.$attr("line-comment")):p(y,"CalloutExtractRx");e=v(e.$split(p(y,"LF"),-1),"map",[],(d=function(e){var m=d.$$s||this,r;null==e&&(e=c);k=b(k,1);return v(e,"gsub",[u],(r=function(){var e,d,m=c;if(f((e=w["~"])===c?c:e["$[]"](2)))return((e=w["~"])===c?c:e["$[]"](0)).$sub(p(y,"RS"),"");(f(e=h["$[]"](k))?e:(m=[k,[]],v(h,"[]=",a.to_a(m)),m[g(m.length,1)]))["$<<"]([f(e=(d= +w["~"])===c?c:d["$[]"](1))?e:((d=w["~"])===c?c:d["$[]"](3))["$=="]("--")?["\x3c!--","--\x3e"]:c,((e=w["~"])===c?c:e["$[]"](4))["$=="](".")?(l=b(l,1)).$to_s():(e=w["~"])===c?c:e["$[]"](4)]);n=k;return""},r.$$s=m,r.$$arity=0,r))},d.$$s=this,d.$$arity=1,d)).$join(p(y,"LF"));f(n)?n["$=="](k)&&(e=""+e+p(y,"LF")):h=c;return[e,h]},K.$$arity=1);a.def(d,"$restore_callouts",M=function(e,d,g){var h,l=c,k=c;null==g&&(g=c);f(g)?(l=e.$slice(0,g),e=e.$slice(g,e.$length())):l="";k=0;return b(l,v(e.$split(p(y,"LF"), +-1),"map",[],(h=function(e){var g=h.$$s||this,l,n,u=l=c;var r=c;null==g.document&&(g.document=c);null==e&&(e=c);return f(l=d.$delete(k=b(k,1)))?l.$size()["$=="](1)?(l=l["$[]"](0),r=a.to_ary(l),u=null==r[0]?c:r[0],r=null==r[1]?c:r[1],l,""+e+p(y,"Inline").$new(g,"callout",r,m(["id","attributes"],{id:g.document.$callouts().$read_next_id(),attributes:m(["guard"],{guard:u})})).$convert()):""+e+v(l,"map",[],(n=function(a,b){var e=n.$$s||this;null==e.document&&(e.document=c);null==a&&(a=c);null==b&&(b=c); +return p(y,"Inline").$new(e,"callout",b,m(["id","attributes"],{id:e.document.$callouts().$read_next_id(),attributes:m(["guard"],{guard:a})})).$convert()},n.$$s=g,n.$$arity=2,n)).$join(" "):e},h.$$s=this,h.$$arity=1,h)).$join(p(y,"LF")))},M.$$arity=-3);a.def(d,"$extract_inner_passthrough",N=function(b,e){var d,h;null==this.passthroughs&&(this.passthroughs=c);if(f(f(d=f(h=b["$end_with?"]("+"))?b["$start_with?"]("+","\\+"):h)?p(y,"SinglePlusInlinePassRx")["$=~"](b):d)){if(f((d=w["~"])===c?c:d["$[]"](1)))return""+ +e+"`+"+((d=w["~"])===c?c:d["$[]"](2))+"+`";b=[h=this.passthroughs.$size(),m(["text","subs"],{text:(d=w["~"])===c?c:d["$[]"](2),subs:p(y,"BASIC_SUBS")})];v(this.passthroughs,"[]=",a.to_a(b));b[g(b.length,1)];return""+e+"`"+p(y,"PASS_START")+h+p(y,"PASS_END")+"`"}return""+e+"`"+b+"`"},N.$$arity=2);a.def(d,"$convert_quoted_text",ia=function(a,b,e){var d=c,g=c,h=c,l=c;if(f(a["$[]"](0)["$start_with?"](p(y,"RS"))))if(f(e["$=="]("constrained")?d=a["$[]"](2):e["$=="]("constrained")))g="["+d+"]";else return a["$[]"](0).$slice(1, +a["$[]"](0).$length());if(e["$=="]("constrained")){if(f(g))return""+g+p(y,"Inline").$new(this,"quoted",a["$[]"](3),m(["type"],{type:b})).$convert();f(e=a["$[]"](2))&&(h=(l=this.$parse_quoted_text_attributes(e))["$[]"]("id"),b["$=="]("mark")&&(b="unquoted"));return""+a["$[]"](1)+p(y,"Inline").$new(this,"quoted",a["$[]"](3),m(["type","id","attributes"],{type:b,id:h,attributes:l})).$convert()}f(e=a["$[]"](1))&&(h=(l=this.$parse_quoted_text_attributes(e))["$[]"]("id"),b["$=="]("mark")&&(b="unquoted")); +return p(y,"Inline").$new(this,"quoted",a["$[]"](2),m(["type","id","attributes"],{type:b,id:h,attributes:l})).$convert()},ia.$$arity=3);a.def(d,"$do_replacement",va=function(a,c,e){var d;return f((d=a["$[]"](0))["$include?"](p(y,"RS")))?d.$sub(p(y,"RS"),""):"none"["$==="](e)?c:"bounding"["$==="](e)?b(b(a["$[]"](1),c),a["$[]"](2)):b(a["$[]"](1),c)},va.$$arity=3);p(y,"RUBY_ENGINE")["$=="]("opal")||c;a.def(d,"$parse_quoted_text_attributes",fa=function(b){var e,d=c;if(f((b=b.$rstrip())["$empty?"]()))return m([], +{});f(b["$include?"](p(y,"ATTR_REF_HEAD")))&&(b=this.$sub_attributes(b));f(b["$include?"](","))&&(b=b.$slice(0,b.$index(",")));if(f(f(e=b["$start_with?"](".","#"))?p(y,"Compliance").$shorthand_property_syntax():e)){var h=b.$split("#",2);f(k(h.$size(),1))?(b=h["$[]"](1).$split("."),e=a.to_ary(b),d=null==e[0]?c:e[0],e=q.call(e,1),b):e=[];b=f(h["$[]"](0)["$empty?"]())?[]:h["$[]"](0).$split(".");f(k(b.$size(),1))&&b.$shift();f(k(e.$size(),0))&&b.$concat(e);e=m([],{});f(d)&&(d=["id",d],v(e,"[]=",a.to_a(d)), +d[g(d.length,1)]);f(b["$empty?"]())||(d=["role",b.$join(" ")],v(e,"[]=",a.to_a(d)),d[g(d.length,1)]);return e}return m(["role"],{role:b})},fa.$$arity=1);a.def(d,"$normalize_text",wa=function(a,b,e){var d;null==b&&(b=c);null==e&&(e=c);f(a["$empty?"]())||(f(b)&&(a=a.$strip().$tr(p(y,"LF")," ")),f(f(d=e)?a["$include?"](p(y,"R_SB")):d)&&(a=a.$gsub(p(y,"ESC_R_SB"),p(y,"R_SB"))));return a},wa.$$arity=-2);a.def(d,"$split_simple_csv",ya=function(a){var e,d,m=c,g=c,p=c;return f(a["$empty?"]())?[]:f(a["$include?"]('"'))? +(m=[],g="",p=c,v(a,"each_char",[],(e=function(a){var e=c;null==a&&(a=c);return function(){e=a;if(","["$==="](e)){if(f(p))return g=b(g,a);m["$<<"](g.$strip());return g=""}return'"'["$==="](e)?p=p["$!"]():g=b(g,a)}()},e.$$s=this,e.$$arity=1,e)),m["$<<"](g.$strip())):v(a.$split(","),"map",[],(d=function(a){null==a&&(a=c);return a.$strip()},d.$$s=this,d.$$arity=1,d))},ya.$$arity=1)})(d[0],d)}(h[0],h)};Opal.modules["asciidoctor/version"]=function(a){var b=[],g=a.module;b=[g(b[0],"Asciidoctor")].concat(b); +a.const_set(b[0],"VERSION","2.0.12")};Opal.modules["asciidoctor/abstract_node"]=function(a){function b(a,b){return"number"===typeof a&&"number"===typeof b?a-b:a["$-"](b)}function g(a,b){return"number"===typeof a&&"number"===typeof b?a")+": "+(q(c=b["$[]"]("label"))?c:"file")+" does not exist or cannot be read: "+a);return k},ia.$$arity=-2);a.def(c,"$read_contents",va=function(b,c){var e,f,m,g,l,u=k,y=k,r=k;null==c&&(c=p([],{}));u=this.document;if(q(q(e=h(d,"Helpers")["$uriish?"](b))?e:q(f=q(m=y=c["$[]"]("start"))?h(d,"Helpers")["$uriish?"](y):m)?b=u.$path_resolver().$web_path(b,y):f))if(q(u["$attr?"]("allow-uri-read"))){q(u["$attr?"]("cache-uri"))&& +h(d,"Helpers").$require_library("open-uri/cached","open-uri-cached");try{r=q(c["$[]"]("normalize"))?h(d,"Helpers").$prepare_source_string(t(n("::","OpenURI"),"open_uri",[b,h(d,"URI_READ_MODE")],(g=function(a){null==a&&(a=k);return a.$read()},g.$$s=this,g.$$arity=1,g))).$join(h(d,"LF")):t(n("::","OpenURI"),"open_uri",[b,h(d,"URI_READ_MODE")],(l=function(a){null==a&&(a=k);return a.$read()},l.$$s=this,l.$$arity=1,l))}catch(Ia){if(a.rescue(Ia,[h(d,"StandardError")]))try{q(c.$fetch("warn_on_failure",!0))&& +this.$logger().$warn("could not retrieve contents of "+(q(e=c["$[]"]("label"))?e:"asset")+" at URI: "+b)}finally{a.pop_exception()}else throw Ia;}}else q(c.$fetch("warn_on_failure",!0))&&this.$logger().$warn("cannot retrieve contents of "+(q(e=c["$[]"]("label"))?e:"asset")+" at URI: "+b+" (allow-uri-read attribute not enabled)");else b=this.$normalize_system_path(b,c["$[]"]("start"),k,p(["target_name"],{target_name:q(e=c["$[]"]("label"))?e:"asset"})),r=this.$read_asset(b,p(["normalize","warn_on_failure", +"label"],{normalize:c["$[]"]("normalize"),warn_on_failure:c.$fetch("warn_on_failure",!0),label:c["$[]"]("label")}));q(q(e=q(f=r)?c["$[]"]("warn_if_empty"):f)?r["$empty?"]():e)&&this.$logger().$warn("contents of "+(q(e=c["$[]"]("label"))?e:"asset")+" is empty: "+b);return r},va.$$arity=-2);return(a.def(c,"$is_uri?",fa=function(a){return h(d,"Helpers")["$uriish?"](a)},fa.$$arity=1),k)&&"is_uri?"})(d[0],null,d)}(l[0],l)};Opal.modules["asciidoctor/abstract_block"]=function(a){function b(a,b){return"number"=== +typeof a&&"number"===typeof b?a-b:a["$-"](b)}function g(a,b){return"number"===typeof a&&"number"===typeof b?a+b:a["$+"](b)}var k=[],l=a.nil,n=a.const_get_qualified,h=a.const_get_relative,c=a.module,r=a.klass,p=a.hash2,q=a.send,t=a.truthy;a.add_stubs("$attr_reader $attr_writer $attr_accessor $== $=== $level $file $lineno $playback_attributes $convert $converter $join $map $to_s $parent $parent= $- $<< $empty? $> $Integer $find_by_internal $to_proc $context $[] $items $+ $find_index $include? $next_adjacent_block $blocks $select $sub_specialchars $match? $sub_replacements $title $apply_title_subs $delete $reftext $! $nil_or_empty? $sub_placeholder $sub_quotes $compat_mode $attributes $chomp $increment_and_store_counter $index= $numbered $sectname $counter $numeral= $numeral $caption= $int_to_roman $each $assign_numeral $reindex_sections $protected $has_role? $raise $header? $!= $flatten $head $rows $merge $body $foot $style $inner_document".split(" ")); +return function(d,e){d=[c(d,"Asciidoctor")].concat(e);(function(c,$super,e){c=r(c,$super,"AbstractBlock");var d=[c].concat(e),f,m,k,u,z,w,v,C,O,J,B,E,D,F,T,H,x,la,V,na,Z,I,ua,U,ba,ka,K,M,N,P;c.$$prototype.source_location=c.$$prototype.document=c.$$prototype.attributes=c.$$prototype.blocks=c.$$prototype.next_section_index=c.$$prototype.numeral=c.$$prototype.context=c.$$prototype.parent=c.$$prototype.caption=c.$$prototype.style=c.$$prototype.converted_title=c.$$prototype.title=c.$$prototype.subs=c.$$prototype.next_section_ordinal= +c.$$prototype.id=c.$$prototype.header=l;c.$attr_reader("blocks");c.$attr_writer("caption");c.$attr_accessor("content_model");c.$attr_accessor("level");c.$attr_accessor("numeral");c.$attr_accessor("source_location");c.$attr_accessor("style");c.$attr_reader("subs");a.def(c,"$initialize",f=function(b,c,e){var g,m=f.$$p,k;m&&(f.$$p=null);var n=0;var u=arguments.length;for(k=Array(u);n"](0)},B.$$arity= +0);a.def(c,"$number",E=function(){try{return this.$Integer(this.numeral)}catch(ia){if(a.rescue(ia,[h(d,"StandardError")]))try{return this.numeral}finally{a.pop_exception()}else throw ia;}},E.$$arity=0);a.def(c,"$number=",D=function(a){return this.numeral=a.$to_s()},D.$$arity=1);a.def(c,"$find_by",F=function(b){var c=F.$$p,e=c||l,d=l;c&&(F.$$p=null);c&&(F.$$p=null);null==b&&(b=p([],{}));try{return q(this,"find_by_internal",[b,d=[]],e.$to_proc())}catch(ya){if(a.rescue(ya,[n("::","StopIteration")]))try{return d}finally{a.pop_exception()}else throw ya; +}},F.$$arity=-1);a.alias(c,"query","find_by");a.def(c,"$next_adjacent_block",T=function(){var a,b=l,c=l;return this.context["$=="]("document")?l:t((b=this.parent).$context()["$=="]("dlist")?this.context["$=="]("list_item"):(b=this.parent).$context()["$=="]("dlist"))?t(c=b.$items()["$[]"](g(q(b.$items(),"find_index",[],(a=function(b,c){var e=a.$$s||this,d;null==b&&(b=l);null==c&&(c=l);return t(d=b["$include?"](e))?d:c["$=="](e)},a.$$s=this,a.$$arity=2,a)),1)))?c:b.$next_adjacent_block():t(c=b.$blocks()["$[]"](g(b.$blocks().$find_index(this), +1)))?c:b.$next_adjacent_block()},T.$$arity=0);a.def(c,"$sections",H=function(){var a;return q(this.blocks,"select",[],(a=function(a){null==a&&(a=l);return a.$context()["$=="]("section")},a.$$s=this,a.$$arity=1,a))},H.$$arity=0);a.def(c,"$alt",x=function(){var a;if(t(a=this.attributes["$[]"]("alt"))){if(a["$=="](this.attributes["$[]"]("default-alt")))return this.$sub_specialchars(a);a=this.$sub_specialchars(a);return t(h(d,"ReplaceableTextRx")["$match?"](a))?this.$sub_replacements(a):a}return""},x.$$arity= +0);a.def(c,"$caption",la=function(){return this.context["$=="]("admonition")?this.attributes["$[]"]("textlabel"):this.caption},la.$$arity=0);a.def(c,"$captioned_title",V=function(){return""+this.caption+this.$title()},V.$$arity=0);a.def(c,"$list_marker_keyword",na=function(a){var b;null==a&&(a=l);return h(d,"ORDERED_LIST_KEYWORDS")["$[]"](t(b=a)?b:this.style)},na.$$arity=-1);a.def(c,"$title",Z=function(){var a,b;return this.converted_title=t(a=this.converted_title)?a:t(b=this.title)?this.$apply_title_subs(this.title): +b},Z.$$arity=0);a.def(c,"$title?",I=function(){return t(this.title)?!0:!1},I.$$arity=0);a.def(c,"$title=",ua=function(a){this.converted_title=l;return this.title=a},ua.$$arity=1);a.def(c,"$sub?",U=function(a){return this.subs["$include?"](a)},U.$$arity=1);a.def(c,"$remove_sub",ba=function(a){this.subs.$delete(a);return l},ba.$$arity=1);a.def(c,"$xreftext",ka=function(a){var b,c,e=l,f=l,g=l;null==a&&(a=l);t(t(b=e=this.$reftext())?e["$empty?"]()["$!"]():b)?b=e:(t(t(b=t(c=a)?this.title:c)?this.caption["$nil_or_empty?"]()["$!"](): +b)?"full"["$==="](a)?(a=this.$sub_placeholder(this.$sub_quotes(t(this.document.$compat_mode())?"``%s''":'"`%s`"'),this.$title()),a=t(t(b=t(c=this.numeral)?f=h(d,"CAPTION_ATTRIBUTE_NAMES")["$[]"](this.context):c)?g=this.document.$attributes()["$[]"](f):b)?""+g+" "+this.numeral+", "+a:""+this.caption.$chomp(". ")+", "+a):a="short"["$==="](a)?t(t(b=t(c=this.numeral)?f=h(d,"CAPTION_ATTRIBUTE_NAMES")["$[]"](this.context):c)?g=this.document.$attributes()["$[]"](f):b)?""+g+" "+this.numeral:this.caption.$chomp(". "): +this.$title():a=this.$title(),b=a);return b},ka.$$arity=-1);a.def(c,"$assign_caption",K=function(a,b){var c,e,f=l,g=l;null==b&&(b=this.context);!t(t(c=t(e=this.caption)?e:this.title["$!"]())?c:this.caption=t(e=a)?e:this.document.$attributes()["$[]"]("caption"))&&t(t(c=f=h(d,"CAPTION_ATTRIBUTE_NAMES")["$[]"](b))?g=this.document.$attributes()["$[]"](f):c)&&(this.caption=""+g+" "+(this.numeral=this.document.$increment_and_store_counter(""+b+"-number",this))+". ");return l},K.$$arity=-2);a.def(c,"$assign_numeral", +M=function(c){var e,f=l,m,p=l;this.next_section_index=g((f=[this.next_section_index],q(c,"index=",a.to_a(f)),f[b(f.length,1)]),1);t(f=c.$numbered())&&((m=c.$sectname())["$=="]("appendix")?(f=[this.document.$counter("appendix-number","A")],q(c,"numeral=",a.to_a(f)),f[b(f.length,1)],f=[t(p=this.document.$attributes()["$[]"]("appendix-caption"))?""+p+" "+c.$numeral()+": ":""+c.$numeral()+". "],q(c,"caption=",a.to_a(f)),f[b(f.length,1)]):t(t(e=m["$=="]("chapter"))?e:f["$=="]("chapter"))?(f=[this.document.$counter("chapter-number", +1).$to_s()],q(c,"numeral=",a.to_a(f)),f[b(f.length,1)]):(f=[m["$=="]("part")?h(d,"Helpers").$int_to_roman(this.next_section_ordinal):this.next_section_ordinal.$to_s()],q(c,"numeral=",a.to_a(f)),f[b(f.length,1)],this.next_section_ordinal=g(this.next_section_ordinal,1)));return l},M.$$arity=1);a.def(c,"$reindex_sections",N=function(){var a;this.next_section_index=0;this.next_section_ordinal=1;return q(this.blocks,"each",[],(a=function(b){var c=a.$$s||this;null==b&&(b=l);return b.$context()["$=="]("section")? +(c.$assign_numeral(b),b.$reindex_sections()):l},a.$$s=this,a.$$arity=1,a))},N.$$arity=0);c.$protected();return(a.def(c,"$find_by_internal",P=function(b,c){var e=P.$$p,d=e||l,f,m,h,k,u,y,r,z,S,w,v=l,C=l,L=l,O=l,J=l,A=l;A=l;e&&(P.$$p=null);e&&(P.$$p=null);null==b&&(b=p([],{}));null==c&&(c=[]);if(t(t(f=t(m=t(h=t(k=v=t(C=b["$[]"]("context"))?l:!0)?k:C["$=="](this.context))?t(k=(L=b["$[]"]("style"))["$!"]())?k:L["$=="](this.style):h)?t(h=(O=b["$[]"]("role"))["$!"]())?h:this["$has_role?"](O):m)?t(m=(J= +b["$[]"]("id"))["$!"]())?m:J["$=="](this.id):f))if(d!==l)if(t(A=a.yield1(d,this))){if("prune"["$==="](A))return c["$<<"](this),t(J)&&this.$raise(n("::","StopIteration")),c;if("reject"["$==="](A))return t(J)&&this.$raise(n("::","StopIteration")),c;"stop"["$==="](A)?this.$raise(n("::","StopIteration")):(c["$<<"](this),t(J)&&this.$raise(n("::","StopIteration")))}else t(J)&&this.$raise(n("::","StopIteration"));else c["$<<"](this),t(J)&&this.$raise(n("::","StopIteration"));A=this.context;"document"["$==="](A)? +C["$=="]("document")||(t(t(f=this["$header?"]())?t(m=v)?m:C["$=="]("section"):f)&&q(this.header,"find_by_internal",[b,c],d.$to_proc()),q(this.blocks,"each",[],(u=function(a){null==a&&(a=l);return t(C["$=="]("section")?a.$context()["$!="]("section"):C["$=="]("section"))?l:q(a,"find_by_internal",[b,c],d.$to_proc())},u.$$s=this,u.$$arity=1,u))):"dlist"["$==="](A)?t(t(f=v)?f:C["$!="]("section"))&&q(this.blocks.$flatten(),"each",[],(y=function(a){null==a&&(a=l);return t(a)?q(a,"find_by_internal",[b,c], +d.$to_proc()):l},y.$$s=this,y.$$arity=1,y)):"table"["$==="](A)?t(b["$[]"]("traverse_documents"))?(q(this.$rows().$head(),"each",[],(r=function(a){var e=r.$$s||this,f;null==a&&(a=l);return q(a,"each",[],(f=function(a){null==a&&(a=l);return q(a,"find_by_internal",[b,c],d.$to_proc())},f.$$s=e,f.$$arity=1,f))},r.$$s=this,r.$$arity=1,r)),C["$=="]("inner_document")&&(b=b.$merge(p(["context"],{context:"document"}))),q(g(this.$rows().$body(),this.$rows().$foot()),"each",[],(z=function(a){var e=z.$$s||this, +f;null==a&&(a=l);return q(a,"each",[],(f=function(a){null==a&&(a=l);q(a,"find_by_internal",[b,c],d.$to_proc());return a.$style()["$=="]("asciidoc")?q(a.$inner_document(),"find_by_internal",[b,c],d.$to_proc()):l},f.$$s=e,f.$$arity=1,f))},z.$$s=this,z.$$arity=1,z))):q(g(g(this.$rows().$head(),this.$rows().$body()),this.$rows().$foot()),"each",[],(S=function(a){var e=S.$$s||this,f;null==a&&(a=l);return q(a,"each",[],(f=function(a){null==a&&(a=l);return q(a,"find_by_internal",[b,c],d.$to_proc())},f.$$s= +e,f.$$arity=1,f))},S.$$s=this,S.$$arity=1,S)):q(this.blocks,"each",[],(w=function(a){null==a&&(a=l);return t(C["$=="]("section")?a.$context()["$!="]("section"):C["$=="]("section"))?l:q(a,"find_by_internal",[b,c],d.$to_proc())},w.$$s=this,w.$$arity=1,w));return c},P.$$arity=-1),l)&&"find_by_internal"})(d[0],h(d,"AbstractNode"),d)}(k[0],k)};Opal.modules["asciidoctor/attribute_list"]=function(a){function b(a,b){return"number"===typeof a&&"number"===typeof b?a+b:a["$+"](b)}function g(a,b){return"number"=== +typeof a&&"number"===typeof b?a-b:a["$-"](b)}var l=[],k=a.nil,n=a.const_get_qualified,h=a.const_get_relative,c=a.module,q=a.klass,p=a.hash,r=a.hash2,t=a.truthy,m=a.send;a.add_stubs("$new $[] $update $parse $parse_attribute $eos? $skip_delimiter $+ $rekey $each_with_index $[]= $- $private $skip_blank $peek $=== $parse_attribute_value $get_byte $start_with? $scan_name $end_with? $rstrip $string $== $unscan $scan_to_delimiter $* $include? $delete $each $split $empty? $apply_subs $scan_to_quote $gsub $skip $scan".split(" ")); +return function(e,d){e=[c(e,"Asciidoctor")].concat(d);(function(c,$super,e){c=q(c,$super,"AttributeList");var d=[c].concat(e),f,l,u,z,w,v,C,O,J,B,E,W;c.$$prototype.attributes=c.$$prototype.scanner=c.$$prototype.delimiter=c.$$prototype.block=c.$$prototype.delimiter_skip_pattern=c.$$prototype.delimiter_boundary_pattern=k;a.const_set(d[0],"APOS","'");a.const_set(d[0],"BACKSLASH","\\");a.const_set(d[0],"QUOT",'"');a.const_set(d[0],"BoundaryRxs",p(h(d,"QUOT"),/.*?[^\\](?=")/,h(d,"APOS"),/.*?[^\\](?=')/, +",",/.*?(?=[ \t]*(,|$))/));a.const_set(d[0],"EscapedQuotes",p(h(d,"QUOT"),'\\"',h(d,"APOS"),"\\'"));a.const_set(d[0],"NameRx",new RegExp(""+h(d,"CG_WORD")+"["+h(d,"CC_WORD")+"\\-.]*"));a.const_set(d[0],"BlankRx",/[ \t]+/);a.const_set(d[0],"SkipRxs",r([","],{",":/[ \t]*(,|$)/}));a.def(c,"$initialize",f=function(a,b,c){null==b&&(b=k);null==c&&(c=",");this.scanner=n("::","StringScanner").$new(a);this.block=b;this.delimiter=c;this.delimiter_skip_pattern=h(d,"SkipRxs")["$[]"](c);this.delimiter_boundary_pattern= +h(d,"BoundaryRxs")["$[]"](c);return this.attributes=k},f.$$arity=-2);a.def(c,"$parse_into",l=function(a,b){null==b&&(b=[]);return a.$update(this.$parse(b))},l.$$arity=-2);a.def(c,"$parse",u=function(a){var c;null==a&&(a=[]);if(t(this.attributes))return this.attributes;this.attributes=r([],{});for(c=0;t(this.$parse_attribute(c,a))&&!t(this.scanner["$eos?"]());)this.$skip_delimiter(),c=b(c,1);return this.attributes},u.$$arity=-1);a.def(c,"$rekey",z=function(a){return h(d,"AttributeList").$rekey(this.attributes, +a)},z.$$arity=1);a.defs(c,"$rekey",w=function(c,e){var d;m(e,"each_with_index",[],(d=function(e,d){var f,p=k;null==e&&(e=k);null==d&&(d=k);return t(t(f=e)?p=c["$[]"](b(d,1)):f)?(e=[e,p],m(c,"[]=",a.to_a(e)),e[g(e.length,1)]):k},d.$$s=this,d.$$arity=2,d));return c},w.$$arity=2);c.$private();a.def(c,"$parse_attribute",v=function(c,e){var f,p,l,n=k,u=k,y=k,q=k,r=u=k,z=k;r=r=k;n=!0;this.$skip_blank();u=this.scanner.$peek(1);if(h(d,"QUOT")["$==="](u))y=this.$parse_attribute_value(this.scanner.$get_byte()); +else if(h(d,"APOS")["$==="](u))y=this.$parse_attribute_value(this.scanner.$get_byte()),t(y["$start_with?"](h(d,"APOS")))||(q=!0);else if(u=t(f=t(p=y=this.$scan_name())?this.$skip_blank():p)?f:0,t(this.scanner["$eos?"]())){if(!t(t(f=y)?f:this.scanner.$string().$rstrip()["$end_with?"](this.delimiter)))return k;n=k}else if((r=this.scanner.$get_byte())["$=="](this.delimiter))this.scanner.$unscan();else if(t(y))if(r["$=="]("="))if(this.$skip_blank(),u=r=this.scanner.$get_byte(),h(d,"QUOT")["$==="](u))z= +this.$parse_attribute_value(r);else if(h(d,"APOS")["$==="](u))z=this.$parse_attribute_value(r),t(z["$start_with?"](h(d,"APOS")))||(q=!0);else if(this.delimiter["$==="](u))z="",this.scanner.$unscan();else if(k["$==="](u))z="";else{if(z=""+r+this.$scan_to_delimiter(),z["$=="]("None"))return!0}else y=""+y+" "["$*"](u)+r+this.$scan_to_delimiter();else y=""+r+this.$scan_to_delimiter();t(z)?(u=y,"options"["$==="](u)||"opts"["$==="](u)?t(z["$include?"](","))?(t(z["$include?"](" "))&&(z=z.$delete(" ")),m(z.$split(","), +"each",[],(l=function(b){var c=l.$$s||this;null==c.attributes&&(c.attributes=k);null==b&&(b=k);if(t(b["$empty?"]()))return k;b=[""+b+"-option",""];m(c.attributes,"[]=",a.to_a(b));return b[g(b.length,1)]},l.$$s=this,l.$$arity=1,l))):t(z["$empty?"]())||(r=[""+z+"-option",""],m(this.attributes,"[]=",a.to_a(r)),r[g(r.length,1)]):(t(t(f=q)?this.block:f)?(u=y,r="title"["$==="](u)||"reftext"["$==="](u)?[y,z]:[y,this.block.$apply_subs(z)]):r=[y,z],m(this.attributes,"[]=",a.to_a(r)),r[g(r.length,1)])):(t(t(f= +q)?this.block:f)&&(y=this.block.$apply_subs(y)),t(r=e["$[]"](c))&&(r=[r,y],m(this.attributes,"[]=",a.to_a(r)),r[g(r.length,1)]),r=[b(c,1),y],m(this.attributes,"[]=",a.to_a(r)),r[g(r.length,1)]);return n},v.$$arity=2);a.def(c,"$parse_attribute_value",C=function(a){var b;return this.scanner.$peek(1)["$=="](a)?(this.scanner.$get_byte(),""):t(b=this.$scan_to_quote(a))?(this.scanner.$get_byte(),t(b["$include?"](h(d,"BACKSLASH")))?b.$gsub(h(d,"EscapedQuotes")["$[]"](a),a):b):""+a+this.$scan_to_delimiter()}, +C.$$arity=1);a.def(c,"$skip_blank",O=function(){return this.scanner.$skip(h(d,"BlankRx"))},O.$$arity=0);a.def(c,"$skip_delimiter",J=function(){return this.scanner.$skip(this.delimiter_skip_pattern)},J.$$arity=0);a.def(c,"$scan_name",B=function(){return this.scanner.$scan(h(d,"NameRx"))},B.$$arity=0);a.def(c,"$scan_to_delimiter",E=function(){return this.scanner.$scan(this.delimiter_boundary_pattern)},E.$$arity=0);return(a.def(c,"$scan_to_quote",W=function(a){return this.scanner.$scan(h(d,"BoundaryRxs")["$[]"](a))}, +W.$$arity=1),k)&&"scan_to_quote"})(e[0],null,e)}(l[0],l)};Opal.modules["asciidoctor/block"]=function(a){function b(a,b){return"number"===typeof a&&"number"===typeof b?a-b:a["$-"](b)}var g=[],l=a.nil,k=a.const_get_qualified,n=a.const_get_relative,h=a.module,c=a.klass,r=a.send,p=a.hash2,q=a.truthy;a.add_stubs("$default= $- $attr_accessor $[] $key? $== $=== $drop $delete $[]= $commit_subs $nil_or_empty? $prepare_source_string $apply_subs $join $< $size $empty? $rstrip $shift $pop $warn $logger $to_s $class $object_id $inspect".split(" ")); +return function(d,g){d=[h(d,"Asciidoctor")].concat(g);(function(e,$super,d){e=c(e,$super,"Block");var g=[e].concat(d),m,h,u,t;d=l;e.$$prototype.attributes=e.$$prototype.content_model=e.$$prototype.lines=e.$$prototype.subs=e.$$prototype.blocks=e.$$prototype.context=e.$$prototype.style=l;d=["simple"];r(a.const_set(g[0],"DEFAULT_CONTENT_MODEL",p("audio image listing literal stem open page_break pass thematic_break video".split(" "),{audio:"empty",image:"empty",listing:"verbatim",literal:"verbatim",stem:"raw", +open:"compound",page_break:"empty",pass:"raw",thematic_break:"empty",video:"empty"})),"default=",a.to_a(d));d[b(d.length,1)];a.alias(e,"blockname","context");e.$attr_accessor("lines");a.def(e,"$initialize",m=function(c,e,d){var h,u=m.$$p,y,t;u&&(m.$$p=null);var z=0;var S=arguments.length;for(t=Array(S);zy:y["$<"](2);if(q(y))return m["$[]"](0);for(;q(q(b=p=m["$[]"](0))?p.$rstrip()["$empty?"]():b);)m.$shift();for(;q(q(b=k=m["$[]"](-1))?k.$rstrip()["$empty?"]():b);)m.$pop();return m.$join(n(g,"LF"))}e.content_model["$=="]("empty")||e.$logger().$warn("Unknown content model '"+e.content_model+"' for block: "+e.$to_s());return l}()},h.$$arity=0);a.def(e,"$source",u=function(){return this.lines.$join(n(g,"LF"))},u.$$arity=0);return(a.def(e,"$to_s",t=function(){var a=this.content_model["$=="]("compound")? +"blocks: "+this.blocks.$size():"lines: "+this.lines.$size();return"#<"+this.$class()+"@"+this.$object_id()+" {context: "+this.context.$inspect()+", content_model: "+this.content_model.$inspect()+", style: "+this.style.$inspect()+", "+a+"}>"},t.$$arity=0),l)&&"to_s"})(d[0],n(d,"AbstractBlock"),d)}(g[0],g)};Opal.modules["asciidoctor/callouts"]=function(a){function b(a,b){return"number"===typeof a&&"number"===typeof b?a+b:a["$+"](b)}function g(a,b){return"number"===typeof a&&"number"===typeof b?a-b: +a["$-"](b)}var l=[],k=a.nil,n=a.module,h=a.klass,c=a.hash2,r=a.truthy,p=a.send;a.add_stubs("$next_list $<< $current_list $to_i $generate_next_callout_id $+ $<= $size $[] $- $chop $join $map $== $< $private $generate_callout_id".split(" "));return function(d,l){d=[n(d,"Asciidoctor")].concat(l);(function(d,$super,f){d=h(d,$super,"Callouts");[d].concat(f);var m,l,n,u,q,t,y,z,w;d.$$prototype.co_index=d.$$prototype.lists=d.$$prototype.list_index=k;a.def(d,"$initialize",m=function(){this.lists=[];this.list_index= +0;return this.$next_list()},m.$$arity=0);a.def(d,"$register",l=function(a){this.$current_list()["$<<"](c(["ordinal","id"],{ordinal:a.$to_i(),id:a=this.$generate_next_callout_id()}));this.co_index=b(this.co_index,1);return a},l.$$arity=1);a.def(d,"$read_next_id",n=function(){var a=k;var c=this.$current_list();var d=this.co_index;var f=c.$size();d="number"===typeof d&&"number"===typeof f?d<=f:d["$<="](f);r(d)&&(a=c["$[]"](g(this.co_index,1))["$[]"]("id"));this.co_index=b(this.co_index,1);return a}, +n.$$arity=0);a.def(d,"$callout_ids",u=function(a){var b;return p(this.$current_list(),"map",[],(b=function(b){null==b&&(b=k);return b["$[]"]("ordinal")["$=="](a)?""+b["$[]"]("id")+" ":""},b.$$s=this,b.$$arity=1,b)).$join().$chop()},u.$$arity=1);a.def(d,"$current_list",q=function(){return this.lists["$[]"](g(this.list_index,1))},q.$$arity=0);a.def(d,"$next_list",t=function(){this.list_index=b(this.list_index,1);var a=this.lists.$size();var c=this.list_index;a="number"===typeof a&&"number"===typeof c? +a=b:a["$>="](b)}function l(a,b){return"number"===typeof a&&"number"===typeof b?a+b:a["$+"](b)}function k(a,b){return"number"===typeof a&&"number"===typeof b?a>b:a["$>"](b)}function n(a,b){return"number"===typeof a&&"number"===typeof b?a= $+ $abs $to_i $delete_if $update_doctype_attributes $cursor $parse $restore_attributes $update_backend_attributes $fetch $fill_datetime_attributes $activate $groups $create $to_proc $preprocessors? $preprocessors $process_method $tree_processors? $tree_processors $!= $counter $nil_or_empty? $nextval $to_s $value $save_to $register $tap $xreftext $source $source_lines $doctitle $sectname= $title= $first_section $title $reftext $> $< $find $context $assign_numeral $clear_playback_attributes $save_attributes $name $negate $rewind $replace $attribute_locked? $apply_attribute_value_subs $delete? $start $doctype $content_model $warn $logger $content $convert $postprocessors? $postprocessors $record $write $respond_to? $chomp $class $write_alternate_pages $map $split $resolve_docinfo_subs $normalize_system_path $read_asset $apply_subs $docinfo_processors? $join $concat $compact $docinfo_processors $object_id $inspect $size $private $=~ $resolve_pass_subs $apply_header_subs $limit_bytesize $bytesize $valid_encoding? $byteslice $resolve_subs $utc $at $Integer $now $index $strftime $year $utc_offset $partition $create_converter $basebackend $filetype $htmlsyntax $derive_backend_traits $raise".split(" ")); +return function(d,h){d=[q(d,"Asciidoctor")].concat(h);(function(d,$super,h){d=t(d,$super,"Document");var u=[d].concat(h),y,q,z,S,C,L,O,B,E,D,J,W,F,V,H,x,I,T,ja,ba,ka,U,K,M,N,P,va,fa,wa,ya,qa,Ga,Fa,Ha,Y,Sa,Ka,Ca,Ia,Wa,Va,Xa,Ya,Za,A,Q,G,R,Ja,Qa,Da,Ea;d.$$prototype.attributes=d.$$prototype.safe=d.$$prototype.sourcemap=d.$$prototype.reader=d.$$prototype.base_dir=d.$$prototype.parsed=d.$$prototype.parent_document=d.$$prototype.extensions=d.$$prototype.options=d.$$prototype.counters=d.$$prototype.catalog= +d.$$prototype.reftexts=d.$$prototype.header=d.$$prototype.blocks=d.$$prototype.header_attributes=d.$$prototype.attributes_modified=d.$$prototype.backend=d.$$prototype.attribute_overrides=d.$$prototype.timings=d.$$prototype.converter=d.$$prototype.outfilesuffix=d.$$prototype.docinfo_processor_extensions=d.$$prototype.document=d.$$prototype.max_attribute_value_size=d.$$prototype.id=d.$$prototype.doctype=c;a.const_set(u[0],"ImageReference",m(r("::","Struct"),"new",["target","imagesdir"],(y=function(){return a.alias(y.$$s|| +this,"to_s","target")},y.$$s=d,y.$$arity=0,y)));a.const_set(u[0],"Footnote",r("::","Struct").$new("index","id","text"));(function(d,$super,f){d=t(d,$super,"AttributeEntry");[d].concat(f);var g,p;d.$attr_reader("name","value","negate");a.def(d,"$initialize",g=function(a,b,d){null==d&&(d=c);this.name=a;this.value=b;return this.negate=e(d["$nil?"]())?b["$nil?"]():d},g.$$arity=-3);return(a.def(d,"$save_to",p=function(d){var f,g=c;(e(f=d["$[]"]("attribute_entries"))?f:(g=["attribute_entries",[]],m(d,"[]=", +a.to_a(g)),g[b(g.length,1)]))["$<<"](this);return this},p.$$arity=1),c)&&"save_to"})(u[0],null,u);(function(b,$super,d){b=t(b,$super,"Title");var g=[b].concat(d),m,h,l,k;b.$$prototype.sanitized=b.$$prototype.subtitle=b.$$prototype.combined=c;b.$attr_reader("main");a.alias(b,"title","main");b.$attr_reader("subtitle");b.$attr_reader("combined");a.def(b,"$initialize",m=function(b,d){var m,h,l=c;null==d&&(d=f([],{}));e(e(m=this.sanitized=d["$[]"]("sanitize"))?b["$include?"]("<"):m)&&(b=b.$gsub(p(g,"XmlSanitizeRx"), +"").$squeeze(" ").$strip());e(e(m=(l=e(h=d["$[]"]("separator"))?h:":")["$empty?"]())?m:b["$include?"](l=""+l+" ")["$!"]())?(this.main=b,this.subtitle=c):(h=b.$rpartition(l),m=a.to_ary(h),this.main=null==m[0]?c:m[0],this.subtitle=null==m[2]?c:m[2],h);return this.combined=b},m.$$arity=-2);a.def(b,"$sanitized?",h=function(){return this.sanitized},h.$$arity=0);a.def(b,"$subtitle?",l=function(){return e(this.subtitle)?!0:!1},l.$$arity=0);return(a.def(b,"$to_s",k=function(){return this.combined},k.$$arity= +0),c)&&"to_s"})(u[0],null,u);a.const_set(u[0],"Author",r("::","Struct").$new("name","firstname","middlename","lastname","initials","email"));d.$attr_reader("safe");d.$attr_reader("compat_mode");d.$attr_reader("backend");d.$attr_reader("doctype");d.$attr_accessor("sourcemap");d.$attr_reader("catalog");a.alias(d,"references","catalog");d.$attr_reader("counters");d.$attr_reader("header");d.$attr_reader("base_dir");d.$attr_reader("options");d.$attr_reader("outfilesuffix");d.$attr_reader("parent_document"); +d.$attr_reader("reader");d.$attr_reader("path_resolver");d.$attr_reader("converter");d.$attr_reader("syntax_highlighter");d.$attr_reader("extensions");a.def(d,"$initialize",q=function(d,h){var k,n,y,A,t,Q,R,z=c,G=c,v=c,Da=c,S=c,C=c,Qa=C=C=c,ra=c,db=Qa=c,Ja=Qa=Qa=c;z=z=z=c;q.$$p&&(q.$$p=null);null==d&&(d=c);null==h&&(h=f([],{}));m(this,a.find_super_dispatcher(this,"initialize",q,!1),[this,"document"],null);if(e(z=h.$delete("parent")))this.parent_document=z,e(k=h["$[]"]("base_dir"))?k:(G=["base_dir", +z.$base_dir()],m(h,"[]=",a.to_a(G)),G[b(G.length,1)]),e(z.$options()["$[]"]("catalog_assets"))&&(G=["catalog_assets",!0],m(h,"[]=",a.to_a(G)),G[b(G.length,1)]),this.catalog=z.$catalog().$merge(f(["footnotes"],{footnotes:[]})),this.attribute_overrides=v=z.$attributes().$merge(),Da=v.$delete("doctype"),v.$delete("compat-mode"),v.$delete("toc"),v.$delete("toc-placement"),v.$delete("toc-position"),this.safe=z.$safe(),e(this.compat_mode=z.$compat_mode())&&(G=["compat-mode",""],m(this.attributes,"[]=", +a.to_a(G)),G[b(G.length,1)]),this.outfilesuffix=z.$outfilesuffix(),this.sourcemap=z.$sourcemap(),this.timings=c,this.path_resolver=z.$path_resolver(),this.converter=z.$converter(),S=c,this.extensions=z.$extensions(),this.syntax_highlighter=z.$syntax_highlighter();else{this.parent_document=c;this.catalog=f("ids refs footnotes links images callouts includes".split(" "),{ids:f([],{}),refs:f([],{}),footnotes:[],links:[],images:[],callouts:p(u,"Callouts").$new(),includes:f([],{})});this.attribute_overrides= +v=f([],{});m(e(k=h["$[]"]("attributes"))?k:f([],{}),"each",[],(n=function(d,f){var g;null==d&&(d=c);null==f&&(f=c);e(d["$end_with?"]("@"))?(e(d["$start_with?"]("!"))?(g=[d.$slice(1,b(d.$length(),2)),!1],d=g[0],f=g[1]):e(d["$end_with?"]("!@"))?(g=[d.$slice(0,b(d.$length(),2)),!1],d=g[0],f=g[1]):(g=[d.$chop(),""+f+"@"],d=g[0],f=g[1]),g):e(d["$start_with?"]("!"))?(g=[d.$slice(1,d.$length()),f["$=="]("@")?!1:c],d=g[0],f=g[1],g):e(d["$end_with?"]("!"))&&(g=[d.$chop(),f["$=="]("@")?!1:c],d=g[0],f=g[1], +g);G=[d.$downcase(),f];m(v,"[]=",a.to_a(G));return G[b(G.length,1)]},n.$$s=this,n.$$arity=2,n));e(C=h["$[]"]("to_file"))&&(G=["outfilesuffix",p(u,"Helpers").$extname(C)],m(v,"[]=",a.to_a(G)),G[b(G.length,1)]);if(e((C=h["$[]"]("safe"))["$!"]()))this.safe=r(p(u,"SafeMode"),"SECURE");else if(e(r("::","Integer")["$==="](C)))this.safe=C;else{a:{try{var L=p(u,"SafeMode").$value_for_name(C);break a}catch(ob){if(a.rescue(ob,[p(u,"StandardError")]))try{L=r(p(u,"SafeMode"),"SECURE");break a}finally{a.pop_exception()}else throw ob; +}L=void 0}this.safe=L}C=h.$delete("input_mtime");this.compat_mode=v["$key?"]("compat-mode");this.sourcemap=h["$[]"]("sourcemap");this.timings=h.$delete("timings");this.path_resolver=p(u,"PathResolver").$new();S=e(e(k=(y=r("::","Asciidoctor","skip_raise"))&&r(y,"Extensions","skip_raise")?"constant":c)?k:h["$key?"]("extensions"))?r(r("::","Asciidoctor"),"Extensions"):c;this.extensions=c;e(e(k=h["$key?"]("header_footer"))?h["$key?"]("standalone")["$!"]():k)&&(G=["standalone",h["$[]"]("header_footer")], +m(h,"[]=",a.to_a(G)),G[b(G.length,1)])}this.parsed=this.reftexts=this.header=this.header_attributes=c;this.counters=f([],{});this.attributes_modified=r("::","Set").$new();this.docinfo_processor_extensions=f([],{});Qa=h["$[]"]("standalone");(this.options=h).$freeze();ra=this.attributes;G=["attribute-undefined",p(u,"Compliance").$attribute_undefined()];m(ra,"[]=",a.to_a(G));G[b(G.length,1)];G=["attribute-missing",p(u,"Compliance").$attribute_missing()];m(ra,"[]=",a.to_a(G));G[b(G.length,1)];ra.$update(p(u, +"DEFAULT_ATTRIBUTES"));e(Qa)?(G=["embedded",c],m(v,"[]=",a.to_a(G)),G[b(G.length,1)],G=["copycss",""],m(ra,"[]=",a.to_a(G)),G[b(G.length,1)],G=["iconfont-remote",""],m(ra,"[]=",a.to_a(G)),G[b(G.length,1)],G=["stylesheet",""],m(ra,"[]=",a.to_a(G)),G[b(G.length,1)],G=["webfonts",""],m(ra,"[]=",a.to_a(G))):(G=["embedded",""],m(v,"[]=",a.to_a(G)),G[b(G.length,1)],e(e(k=v["$key?"]("showtitle"))?v.$keys()["$&"](["notitle","showtitle"])["$[]"](-1)["$=="]("showtitle"):k)?(G=["notitle",w(c,"",!1,"@","@",!1)["$[]"](v["$[]"]("showtitle"))], +m(v,"[]=",a.to_a(G))):e(v["$key?"]("notitle"))?(G=["showtitle",w(c,"",!1,"@","@",!1)["$[]"](v["$[]"]("notitle"))],m(v,"[]=",a.to_a(G))):(G=["notitle",""],m(ra,"[]=",a.to_a(G))));G[b(G.length,1)];G=["asciidoctor",""];m(v,"[]=",a.to_a(G));G[b(G.length,1)];G=["asciidoctor-version",r(r("::","Asciidoctor"),"VERSION")];m(v,"[]=",a.to_a(G));G[b(G.length,1)];G=["safe-mode-name",Qa=p(u,"SafeMode").$name_for_value(this.safe)];m(v,"[]=",a.to_a(G));G[b(G.length,1)];G=["safe-mode-"+Qa,""];m(v,"[]=",a.to_a(G)); +G[b(G.length,1)];G=["safe-mode-level",this.safe];m(v,"[]=",a.to_a(G));G[b(G.length,1)];e(k=v["$[]"]("max-include-depth"))?k:(G=["max-include-depth",64],m(v,"[]=",a.to_a(G)),G[b(G.length,1)]);e(k=v["$[]"]("allow-uri-read"))?k:(G=["allow-uri-read",c],m(v,"[]=",a.to_a(G)),G[b(G.length,1)]);G=["user-home",p(u,"USER_HOME")];m(v,"[]=",a.to_a(G));G[b(G.length,1)];e(v["$key?"]("numbered"))&&(G=["sectnums",v.$delete("numbered")],m(v,"[]=",a.to_a(G)),G[b(G.length,1)]);e(v["$key?"]("hardbreaks"))&&(G=["hardbreaks-option", +v.$delete("hardbreaks")],m(v,"[]=",a.to_a(G)),G[b(G.length,1)]);e(db=h["$[]"]("base_dir"))?this.base_dir=(G=["docdir",r("::","File").$expand_path(db)],m(v,"[]=",a.to_a(G)),G[b(G.length,1)]):e(v["$[]"]("docdir"))?this.base_dir=v["$[]"]("docdir"):this.base_dir=(G=["docdir",r("::","Dir").$pwd()],m(v,"[]=",a.to_a(G)),G[b(G.length,1)]);e(Qa=h["$[]"]("backend"))&&(G=["backend",""+Qa],m(v,"[]=",a.to_a(G)),G[b(G.length,1)]);e(Qa=h["$[]"]("doctype"))&&(G=["doctype",""+Qa],m(v,"[]=",a.to_a(G)),G[b(G.length, +1)]);e(g(this.safe,r(p(u,"SafeMode"),"SERVER")))&&(e(k=v["$[]"]("copycss"))?k:(G=["copycss",c],m(v,"[]=",a.to_a(G)),G[b(G.length,1)]),e(k=v["$[]"]("source-highlighter"))?k:(G=["source-highlighter",c],m(v,"[]=",a.to_a(G)),G[b(G.length,1)]),e(k=v["$[]"]("backend"))?k:(G=["backend",p(u,"DEFAULT_BACKEND")],m(v,"[]=",a.to_a(G)),G[b(G.length,1)]),e(e(k=z["$!"]())?v["$key?"]("docfile"):k)&&(G=["docfile",v["$[]"]("docfile")["$[]"](a.Range.$new(l(v["$[]"]("docdir").$length(),1),-1,!1))],m(v,"[]=",a.to_a(G)), +G[b(G.length,1)]),G=["docdir",""],m(v,"[]=",a.to_a(G)),G[b(G.length,1)],G=["user-home","."],m(v,"[]=",a.to_a(G)),G[b(G.length,1)],e(g(this.safe,r(p(u,"SafeMode"),"SECURE")))&&(e(v["$key?"]("max-attribute-value-size"))||(G=["max-attribute-value-size",4096],m(v,"[]=",a.to_a(G)),G[b(G.length,1)]),e(v["$key?"]("linkcss"))||(G=["linkcss",""],m(v,"[]=",a.to_a(G)),G[b(G.length,1)]),e(k=v["$[]"]("icons"))?k:(G=["icons",c],m(v,"[]=",a.to_a(G)),G[b(G.length,1)])));this.max_attribute_value_size=e(Ja=e(k=v["$[]"]("max-attribute-value-size"))? +k:(G=["max-attribute-value-size",c],m(v,"[]=",a.to_a(G)),G[b(G.length,1)]))?Ja.$to_i().$abs():c;m(v,"delete_if",[],(A=function(d,f){var g,h=c;null==d&&(d=c);null==f&&(f=c);e(f)?(e(e(g=r("::","String")["$==="](f))?f["$end_with?"]("@"):g)&&(g=[f.$chop(),!0],f=g[0],h=g[1],g),G=[d,f],m(ra,"[]=",a.to_a(G)),G[b(G.length,1)]):(ra.$delete(d),h=f["$=="](!1));return h},A.$$s=this,A.$$arity=2,A));if(e(z))return this.backend=ra["$[]"]("backend"),(this.doctype=(G=["doctype",Da],m(ra,"[]=",a.to_a(G)),G[b(G.length, +1)]))["$=="](p(u,"DEFAULT_DOCTYPE"))||this.$update_doctype_attributes(p(u,"DEFAULT_DOCTYPE")),this.reader=p(u,"Reader").$new(d,h["$[]"]("cursor")),e(this.sourcemap)&&(this.source_location=this.reader.$cursor()),p(u,"Parser").$parse(this.reader,this),this.$restore_attributes(),this.parsed=!0;this.backend=c;(z=e(k=ra["$[]"]("backend"))?k:p(u,"DEFAULT_BACKEND"))["$=="]("manpage")?this.doctype=(G=["doctype",(G=["doctype","manpage"],m(v,"[]=",a.to_a(G)),G[b(G.length,1)])],m(ra,"[]=",a.to_a(G)),G[b(G.length, +1)]):this.doctype=e(k=ra["$[]"]("doctype"))?k:(G=["doctype",p(u,"DEFAULT_DOCTYPE")],m(ra,"[]=",a.to_a(G)),G[b(G.length,1)]);this.$update_backend_attributes(z,!0);e(k=ra["$[]"]("stylesdir"))?k:(G=["stylesdir","."],m(ra,"[]=",a.to_a(G)),G[b(G.length,1)]);e(k=ra["$[]"]("iconsdir"))?k:(G=["iconsdir",""+ra.$fetch("imagesdir","./images")+"/icons"],m(ra,"[]=",a.to_a(G)),G[b(G.length,1)]);this.$fill_datetime_attributes(ra,C);e(S)&&(e(z=h["$[]"]("extension_registry"))?e(e(k=r(p(u,"Extensions"),"Registry")["$==="](z))? +k:e(t=(R=r("::","AsciidoctorJ","skip_raise"))&&(Q=r(R,"Extensions","skip_raise"))&&r(Q,"ExtensionRegistry","skip_raise")?"constant":c)?r(r(r("::","AsciidoctorJ"),"Extensions"),"ExtensionRegistry")["$==="](z):t)&&(this.extensions=z.$activate(this)):e((z=h["$[]"]("extensions"))["$nil?"]())?e(p(u,"Extensions").$groups()["$empty?"]())||(this.extensions=r(p(u,"Extensions"),"Registry").$new().$activate(this)):e(r("::","Proc")["$==="](z))&&(this.extensions=m(p(u,"Extensions"),"create",[],z.$to_proc()).$activate(this))); +this.reader=p(u,"PreprocessorReader").$new(this,d,r(p(u,"Reader"),"Cursor").$new(ra["$[]"]("docfile"),this.base_dir),f(["normalize"],{normalize:!0}));return e(this.sourcemap)?this.source_location=this.reader.$cursor():c},q.$$arity=-1);a.def(d,"$parse",z=function(a){var b,d,g,h=c,k=c;null==a&&(a=c);if(e(this.parsed))return this;h=this;e(a)&&(this.reader=p(u,"PreprocessorReader").$new(h,a,r(p(u,"Reader"),"Cursor").$new(this.attributes["$[]"]("docfile"),this.base_dir),f(["normalize"],{normalize:!0})), +e(this.sourcemap)&&(this.source_location=this.reader.$cursor()));e(e(b=k=e(this.parent_document)?c:this.extensions)?k["$preprocessors?"]():b)&&m(k.$preprocessors(),"each",[],(d=function(a){var b=d.$$s||this,f;null==b.reader&&(b.reader=c);null==a&&(a=c);return b.reader=e(f=a.$process_method()["$[]"](h,b.reader))?f:b.reader},d.$$s=this,d.$$arity=1,d));p(u,"Parser").$parse(this.reader,h,f(["header_only"],{header_only:this.options["$[]"]("parse_header_only")}));this.$restore_attributes();e(e(b=k)?k["$tree_processors?"](): +b)&&m(k.$tree_processors(),"each",[],(g=function(a){var b,d,f=c;null==a&&(a=c);return e(e(b=e(d=f=a.$process_method()["$[]"](h))?p(u,"Document")["$==="](f):d)?f["$!="](h):b)?h=f:c},g.$$s=this,g.$$arity=1,g));this.parsed=!0;return h},z.$$arity=-1);a.def(d,"$parsed?",S=function(){return this.parsed},S.$$arity=0);a.def(d,"$counter",C=function(d,f){var g,h=c,k=c,l=c;null==f&&(f=c);if(e(this.parent_document))return this.parent_document.$counter(d,f);l=e(e(g=h=(k=this.attributes["$[]"](d))["$nil_or_empty?"]()["$!"]())? +this.counters["$key?"](d):g)?[d,(l=[d,p(u,"Helpers").$nextval(k)],m(this.counters,"[]=",a.to_a(l)),l[b(l.length,1)])]:e(f)?[d,(l=[d,f["$=="](f.$to_i().$to_s())?f.$to_i():f],m(this.counters,"[]=",a.to_a(l)),l[b(l.length,1)])]:[d,(l=[d,p(u,"Helpers").$nextval(e(h)?k:0)],m(this.counters,"[]=",a.to_a(l)),l[b(l.length,1)])];m(this.attributes,"[]=",a.to_a(l));return l[b(l.length,1)]},C.$$arity=-2);a.def(d,"$increment_and_store_counter",L=function(a,b){return p(u,"AttributeEntry").$new(a,this.$counter(a)).$save_to(b.$attributes()).$value()}, +L.$$arity=2);a.alias(d,"counter_increment","increment_and_store_counter");a.def(d,"$register",O=function(d,g){var h,k=this,l=c,n=c,y=c,r=c,A=c;return function(){l=d;return"ids"["$==="](l)?k.$register("refs",[n=g["$[]"](0),p(u,"Inline").$new(k,"anchor",g["$[]"](1),f(["type","id"],{type:"ref",id:n}))]):"refs"["$==="](l)?(y=k.catalog["$[]"]("refs"),e(h=y["$[]"](g["$[]"](0)))?h:(r=[g["$[]"](0),A=g["$[]"](1)],m(y,"[]=",a.to_a(r)),r[b(r.length,1)]),A):"footnotes"["$==="](l)?k.catalog["$[]"](d)["$<<"](g): +e(k.options["$[]"]("catalog_assets"))?k.catalog["$[]"](d)["$<<"](d["$=="]("images")?p(u,"ImageReference").$new(g,k.attributes["$[]"]("imagesdir")):g):c}()},O.$$arity=2);a.def(d,"$resolve_id",B=function(d){var g,h,p=this,k=c;if(e(p.reftexts))return p.reftexts["$[]"](d);if(e(p.parsed))return m(p.reftexts=f([],{}),"tap",[],(g=function(d){var f=g.$$s||this,h;null==f.catalog&&(f.catalog=c);null==d&&(d=c);return m(f.catalog["$[]"]("refs"),"each",[],(h=function(f,g){var h,p=c;null==f&&(f=c);null==g&&(g= +c);return e(h=d["$[]"](g.$xreftext()))?h:(p=[g.$xreftext(),f],m(d,"[]=",a.to_a(p)),p[b(p.length,1)])},h.$$s=f,h.$$arity=2,h))},g.$$s=p,g.$$arity=1,g))["$[]"](d);k=c;(function(){var g=a.new_brk();try{return m(p.reftexts=f([],{}),"tap",[],(h=function(f){var g=h.$$s||this,p;null==g.catalog&&(g.catalog=c);null==f&&(f=c);return function(){var h=a.new_brk();try{return m(g.catalog["$[]"]("refs"),"each",[],(p=function(g,p){var l,n=c;null==g&&(g=c);null==p&&(p=c);if((p=p.$xreftext())["$=="](d))a.brk(k=g,h); +else return e(l=f["$[]"](p))?l:(n=[p,g],m(f,"[]=",a.to_a(n)),n[b(n.length,1)])},p.$$s=g,p.$$brk=h,p.$$arity=2,p))}catch(gb){if(gb===h)return gb.$v;throw gb;}}()},h.$$s=p,h.$$brk=g,h.$$arity=1,h))}catch(fb){if(fb===g)return fb.$v;throw fb;}})();p.reftexts=c;return k},B.$$arity=1);a.def(d,"$footnotes?",E=function(){return e(this.catalog["$[]"]("footnotes")["$empty?"]())?!1:!0},E.$$arity=0);a.def(d,"$footnotes",D=function(){return this.catalog["$[]"]("footnotes")},D.$$arity=0);a.def(d,"$callouts",J= +function(){return this.catalog["$[]"]("callouts")},J.$$arity=0);a.def(d,"$nested?",W=function(){return e(this.parent_document)?!0:!1},W.$$arity=0);a.def(d,"$embedded?",F=function(){return this.attributes["$key?"]("embedded")},F.$$arity=0);a.def(d,"$extensions?",V=function(){return e(this.extensions)?!0:!1},V.$$arity=0);a.def(d,"$source",H=function(){return e(this.reader)?this.reader.$source():c},H.$$arity=0);a.def(d,"$source_lines",x=function(){return e(this.reader)?this.reader.$source_lines():c}, +x.$$arity=0);a.def(d,"$basebackend?",I=function(a){return this.attributes["$[]"]("basebackend")["$=="](a)},I.$$arity=1);a.def(d,"$title",T=function(){return this.$doctitle()},T.$$arity=0);a.def(d,"$title=",ja=function(c){var d;if(!e(d=this.header)){var f=["header"];m(d=this.header=p(u,"Section").$new(this,0),"sectname=",a.to_a(f));f[b(f.length,1)]}f=[c];m(d,"title=",a.to_a(f));return f[b(f.length,1)]},ja.$$arity=1);a.def(d,"$doctitle",ba=function(a){var b,d,g,m=c;null==a&&(a=f([],{}));if(!e(d=this.attributes["$[]"]("title")))if(e(g= +this.$first_section()))d=g.$title();else if(e((e(b=a["$[]"]("use_fallback"))?d=this.attributes["$[]"]("untitled-label"):b)["$!"]()))return c;return e(m=a["$[]"]("partition"))?p(u,"Title").$new(d,a.$merge(f(["separator"],{separator:m["$=="](!0)?this.attributes["$[]"]("title-separator"):m}))):e(e(b=a["$[]"]("sanitize"))?d["$include?"]("<"):b)?d.$gsub(p(u,"XmlSanitizeRx"),"").$squeeze(" ").$strip():d},ba.$$arity=-1);a.alias(d,"name","doctitle");a.def(d,"$xreftext",ka=function(a){var b;a=c;return e(e(b= +a=this.$reftext())?a["$empty?"]()["$!"]():b)?a:this.$title()},ka.$$arity=-1);a.def(d,"$author",U=function(){return this.attributes["$[]"]("author")},U.$$arity=0);a.def(d,"$authors",K=function(){var a,b,c;if(e((b=this.attributes)["$key?"]("author"))){var d=[p(u,"Author").$new(b["$[]"]("author"),b["$[]"]("firstname"),b["$[]"]("middlename"),b["$[]"]("lastname"),b["$[]"]("authorinitials"),b["$[]"]("email"))];if(e(k(c=e(a=b["$[]"]("authorcount"))?a:0,1)))for(a=1;e(n(a,c));)a=l(a,1),d["$<<"](p(u,"Author").$new(b["$[]"]("author_"+ +a),b["$[]"]("firstname_"+a),b["$[]"]("middlename_"+a),b["$[]"]("lastname_"+a),b["$[]"]("authorinitials_"+a),b["$[]"]("email_"+a)));return d}return[]},K.$$arity=0);a.def(d,"$revdate",M=function(){return this.attributes["$[]"]("revdate")},M.$$arity=0);a.def(d,"$notitle",N=function(){return this.attributes["$key?"]("notitle")},N.$$arity=0);a.def(d,"$noheader",P=function(){return this.attributes["$key?"]("noheader")},P.$$arity=0);a.def(d,"$nofooter",va=function(){return this.attributes["$key?"]("nofooter")}, +va.$$arity=0);a.def(d,"$first_section",fa=function(){var a,b;return e(a=this.header)?a:m(this.blocks,"find",[],(b=function(a){null==a&&(a=c);return a.$context()["$=="]("section")},b.$$s=this,b.$$arity=1,b))},fa.$$arity=0);a.def(d,"$header?",wa=function(){return e(this.header)?!0:!1},wa.$$arity=0);a.alias(d,"has_header?","header?");a.def(d,"$<<",ya=function(b){var c=ya.$$p,e;c&&(ya.$$p=null);var d=0;var f=arguments.length;for(e=Array(f);d"},Ya.$$arity=0);d.$private();a.def(d,"$apply_attribute_value_subs",Za=function(a){var b; +e(p(u,"AttributeEntryPassMacroRx")["$=~"](a))?(a=(b=v["~"])===c?c:b["$[]"](2),e((b=v["~"])===c?c:b["$[]"](1))&&(a=this.$apply_subs(a,this.$resolve_pass_subs((b=v["~"])===c?c:b["$[]"](1))))):a=this.$apply_header_subs(a);return e(this.max_attribute_value_size)?this.$limit_bytesize(a,this.max_attribute_value_size):a},Za.$$arity=1);a.def(d,"$limit_bytesize",A=function(a,c){if(e(k(a.$bytesize(),c)))for(;!e((a=a.$byteslice(0,c))["$valid_encoding?"]());)c=b(c,1);return a},A.$$arity=2);a.def(d,"$resolve_docinfo_subs", +Q=function(){return e(this.attributes["$key?"]("docinfosubs"))?this.$resolve_subs(this.attributes["$[]"]("docinfosubs"),"block",c,"docinfo"):["attributes"]},Q.$$arity=0);a.def(d,"$create_converter",G=function(d,g){var h,k,l=c,n;var y=f(["document","htmlsyntax"],{document:this,htmlsyntax:this.attributes["$[]"]("htmlsyntax")});e(k=e(h=(l=this.options)["$[]"]("template_dirs"))?h:l["$[]"]("template_dir"))&&(h=["template_dirs",[].concat(a.to_a(k))],m(y,"[]=",a.to_a(h)),h[b(h.length,1)],h=["template_cache", +l.$fetch("template_cache",!0)],m(y,"[]=",a.to_a(h)),h[b(h.length,1)],h=["template_engine",l["$[]"]("template_engine")],m(y,"[]=",a.to_a(h)),h[b(h.length,1)],h=["template_engine_options",l["$[]"]("template_engine_options")],m(y,"[]=",a.to_a(h)),h[b(h.length,1)],h=["eruby",l["$[]"]("eruby")],m(y,"[]=",a.to_a(h)),h[b(h.length,1)],h=["safe",this.safe],m(y,"[]=",a.to_a(h)),h[b(h.length,1)],e(g)&&(h=["delegate_backend",g],m(y,"[]=",a.to_a(h)),h[b(h.length,1)]));return e(n=l["$[]"]("converter"))?r(p(u,"Converter"), +"CustomFactory").$new(w(d,n)).$create(d,y):l.$fetch("converter_factory",p(u,"Converter")).$create(d,y)},G.$$arity=2);a.def(d,"$clear_playback_attributes",R=function(a){return a.$delete("attribute_entries")},R.$$arity=1);a.def(d,"$save_attributes",Ja=function(){var d,g,h=c,k=c,l=c,n=l=c,y=c,A=c,q=c,G=q=q=n=A=c,t=c,Q=c;e(e(d=(h=this.attributes)["$key?"]("doctitle"))?d:(k=this.$doctitle())["$!"]())||(l=["doctitle",k],m(h,"[]=",a.to_a(l)),l[b(l.length,1)]);this.id=e(d=this.id)?d:h["$[]"]("css-signature"); +e(l=e(h.$delete("toc2"))?"left":h["$[]"]("toc"))&&(n=e(e(d=y=h.$fetch("toc-placement","macro"))?y["$!="]("auto"):d)?y:h["$[]"]("toc-position"),e(e(d=l["$empty?"]())?n["$nil_or_empty?"]():d)||(A="left",q="toc2",A=e(n["$nil_or_empty?"]())?e(l["$empty?"]())?A:l:n,l=["toc",""],m(h,"[]=",a.to_a(l)),l[b(l.length,1)],l=["toc-placement","auto"],m(h,"[]=",a.to_a(l)),l[b(l.length,1)],n=A,"left"["$==="](n)||"<"["$==="](n)||"<"["$==="](n)?(l=["toc-position","left"],m(h,"[]=",a.to_a(l)),l[b(l.length,1)]):"right"["$==="](n)|| +">"["$==="](n)||">"["$==="](n)?(l=["toc-position","right"],m(h,"[]=",a.to_a(l)),l[b(l.length,1)]):"top"["$==="](n)||"^"["$==="](n)?(l=["toc-position","top"],m(h,"[]=",a.to_a(l)),l[b(l.length,1)]):"bottom"["$==="](n)||"v"["$==="](n)?(l=["toc-position","bottom"],m(h,"[]=",a.to_a(l)),l[b(l.length,1)]):("preamble"["$==="](n)||"macro"["$==="](n)?(l=["toc-position","content"],m(h,"[]=",a.to_a(l)),l[b(l.length,1)],l=["toc-placement",A],m(h,"[]=",a.to_a(l)),l[b(l.length,1)]):h.$delete("toc-position"), +q=c),e(q)&&(e(d=h["$[]"]("toc-class"))?d:(l=["toc-class",q],m(h,"[]=",a.to_a(l)),l[b(l.length,1)]))));e(e(d=q=h["$[]"]("icons"))?h["$key?"]("icontype")["$!"]():d)&&(n=q,""["$==="](n)||"font"["$==="](n)?c:(l=["icons",""],m(h,"[]=",a.to_a(l)),l[b(l.length,1)],q["$=="]("image")||(l=["icontype",q],m(h,"[]=",a.to_a(l)),l[b(l.length,1)])));e(this.compat_mode=h["$key?"]("compat-mode"))&&e(h["$key?"]("language"))&&(l=["source-language",h["$[]"]("language")],m(h,"[]=",a.to_a(l)),l[b(l.length,1)]);e(this.parent_document)|| +((q=h["$[]"]("basebackend"))["$=="]("html")?e(e(d=G=h["$[]"]("source-highlighter"))?h["$[]"](""+G+"-unavailable")["$!"]():d)&&(e(t=this.options["$[]"]("syntax_highlighter_factory"))?this.syntax_highlighter=t.$create(G,this.backend,f(["document"],{document:this})):e(Q=this.options["$[]"]("syntax_highlighters"))?this.syntax_highlighter=r(p(u,"SyntaxHighlighter"),"DefaultFactoryProxy").$new(Q).$create(G,this.backend,f(["document"],{document:this})):this.syntax_highlighter=p(u,"SyntaxHighlighter").$create(G, +this.backend,f(["document"],{document:this}))):q["$=="]("docbook")&&(e(e(d=this["$attribute_locked?"]("toc"))?d:this.attributes_modified["$include?"]("toc"))||(l=["toc",""],m(h,"[]=",a.to_a(l)),l[b(l.length,1)]),e(e(d=this["$attribute_locked?"]("sectnums"))?d:this.attributes_modified["$include?"]("sectnums"))||(l=["sectnums",""],m(h,"[]=",a.to_a(l)),l[b(l.length,1)])),this.outfilesuffix=h["$[]"]("outfilesuffix"),m(p(u,"FLEXIBLE_ATTRIBUTES"),"each",[],(g=function(a){var b=g.$$s||this,d;null==b.attribute_overrides&& +(b.attribute_overrides=c);null==a&&(a=c);return e(e(d=b.attribute_overrides["$key?"](a))?b.attribute_overrides["$[]"](a):d)?b.attribute_overrides.$delete(a):c},g.$$s=this,g.$$arity=1,g)));return this.header_attributes=h.$merge()},Ja.$$arity=0);a.def(d,"$fill_datetime_attributes",Qa=function(d,f){var g,h,p=c,l,k=c;var n=e(r("::","ENV")["$key?"]("SOURCE_DATE_EPOCH"))?p=r("::","Time").$at(this.$Integer(r("::","ENV")["$[]"]("SOURCE_DATE_EPOCH"))).$utc():r("::","Time").$now();e(l=d["$[]"]("localdate"))? +e(g=d["$[]"]("localyear"))?g:(k=["localyear",l.$index("-")["$=="](4)?l.$slice(0,4):c],m(d,"[]=",a.to_a(k)),k[b(k.length,1)]):(l=(k=["localdate",n.$strftime("%F")],m(d,"[]=",a.to_a(k)),k[b(k.length,1)]),e(g=d["$[]"]("localyear"))?g:(k=["localyear",n.$year().$to_s()],m(d,"[]=",a.to_a(k)),k[b(k.length,1)]));var u=e(g=d["$[]"]("localtime"))?g:(k=["localtime",n.$strftime("%T "+(n.$utc_offset()["$=="](0)?"UTC":"%z"))],m(d,"[]=",a.to_a(k)),k[b(k.length,1)]);e(g=d["$[]"]("localdatetime"))?g:(k=["localdatetime", +""+l+" "+u],m(d,"[]=",a.to_a(k)),k[b(k.length,1)]);f=e(g=e(h=p)?h:f)?g:n;e(h=d["$[]"]("docdate"))?e(g=d["$[]"]("docyear"))?g:(k=["docyear",h.$index("-")["$=="](4)?h.$slice(0,4):c],m(d,"[]=",a.to_a(k)),k[b(k.length,1)]):(h=(k=["docdate",f.$strftime("%F")],m(d,"[]=",a.to_a(k)),k[b(k.length,1)]),e(g=d["$[]"]("docyear"))?g:(k=["docyear",f.$year().$to_s()],m(d,"[]=",a.to_a(k)),k[b(k.length,1)]));f=e(g=d["$[]"]("doctime"))?g:(k=["doctime",f.$strftime("%T "+(f.$utc_offset()["$=="](0)?"UTC":"%z"))],m(d,"[]=", +a.to_a(k)),k[b(k.length,1)]);e(g=d["$[]"]("docdatetime"))?g:(k=["docdatetime",""+h+" "+f],m(d,"[]=",a.to_a(k)),k[b(k.length,1)]);return c},Qa.$$arity=2);a.def(d,"$update_backend_attributes",Da=function(d,f){var g,h,l=c,k=c,n=c,y=c,A=c,q;null==f&&(f=c);if(e(e(g=f)?g:d["$!="](this.backend))){var G=this.backend;var t=(h=this.attributes)["$[]"]("basebackend");var Q=this.doctype;if(e(d["$include?"](":"))){var z=d.$partition(":");g=a.to_ary(z);l=null==g[0]?c:g[0];d=null==g[2]?c:g[2];z}e(d["$start_with?"]("xhtml"))? +(k=["htmlsyntax","xml"],m(h,"[]=",a.to_a(k)),k[b(k.length,1)],d=d.$slice(1,d.$length())):e(d["$start_with?"]("html"))&&(e(g=h["$[]"]("htmlsyntax"))?g:(k=["htmlsyntax","html"],m(h,"[]=",a.to_a(k)),k[b(k.length,1)]));d=e(g=p(u,"BACKEND_ALIASES")["$[]"](d))?g:d;e(l)&&(g=[l,d],d=g[0],n=g[1],g);e(Q)?(e(G)&&(h.$delete("backend-"+G),h.$delete("backend-"+G+"-doctype-"+Q)),k=["backend-"+d+"-doctype-"+Q,""],m(h,"[]=",a.to_a(k)),k[b(k.length,1)],k=["doctype-"+Q,""],m(h,"[]=",a.to_a(k)),k[b(k.length,1)]):e(G)&& +h.$delete("backend-"+G);k=["backend-"+d,""];m(h,"[]=",a.to_a(k));k[b(k.length,1)];this.backend=(k=["backend",d],m(h,"[]=",a.to_a(k)),k[b(k.length,1)]);e(r(p(u,"Converter"),"BackendTraits")["$==="](z=this.$create_converter(d,n)))?(y=z.$basebackend(),A=z.$filetype(),e(G=z.$htmlsyntax())&&(k=["htmlsyntax",G],m(h,"[]=",a.to_a(k)),k[b(k.length,1)]),e(f)?e(g=h["$[]"]("outfilesuffix"))?g:(k=["outfilesuffix",z.$outfilesuffix()],m(h,"[]=",a.to_a(k)),k[b(k.length,1)]):e(this["$attribute_locked?"]("outfilesuffix"))|| +(k=["outfilesuffix",z.$outfilesuffix()],m(h,"[]=",a.to_a(k)),k[b(k.length,1)])):e(z)?(G=p(u,"Converter").$derive_backend_traits(d),y=G["$[]"]("basebackend"),A=G["$[]"]("filetype"),e(f)?e(g=h["$[]"]("outfilesuffix"))?g:(k=["outfilesuffix",G["$[]"]("outfilesuffix")],m(h,"[]=",a.to_a(k)),k[b(k.length,1)]):e(this["$attribute_locked?"]("outfilesuffix"))||(k=["outfilesuffix",G["$[]"]("outfilesuffix")],m(h,"[]=",a.to_a(k)),k[b(k.length,1)])):this.$raise(r("::","NotImplementedError"),"asciidoctor: FAILED: missing converter for backend '"+ +d+"'. Processing aborted.");this.converter=z;e(q=h["$[]"]("filetype"))&&h.$delete("filetype-"+q);k=["filetype",A];m(h,"[]=",a.to_a(k));k[b(k.length,1)];k=["filetype-"+A,""];m(h,"[]=",a.to_a(k));k[b(k.length,1)];e(f=p(u,"DEFAULT_PAGE_WIDTHS")["$[]"](y))?(k=["pagewidth",f],m(h,"[]=",a.to_a(k)),k[b(k.length,1)]):h.$delete("pagewidth");e(y["$!="](t))&&(e(Q)?(e(t)&&(h.$delete("basebackend-"+t),h.$delete("basebackend-"+t+"-doctype-"+Q)),k=["basebackend-"+y+"-doctype-"+Q,""],m(h,"[]=",a.to_a(k)),k[b(k.length, +1)]):e(t)&&h.$delete("basebackend-"+t),k=["basebackend-"+y,""],m(h,"[]=",a.to_a(k)),k[b(k.length,1)],k=["basebackend",y],m(h,"[]=",a.to_a(k)),k[b(k.length,1)]);return d}return c},Da.$$arity=-2);return(a.def(d,"$update_doctype_attributes",Ea=function(d){var f,g;if(e(e(f=d)?d["$!="](this.doctype):f)){f=[this.backend,(g=this.attributes)["$[]"]("basebackend"),this.doctype];var h=f[0];var p=f[1];var k=f[2];f;e(k)?(g.$delete("doctype-"+k),e(h)&&(g.$delete("backend-"+h+"-doctype-"+k),f=["backend-"+h+"-doctype-"+ +d,""],m(g,"[]=",a.to_a(f)),f[b(f.length,1)]),e(p)&&(g.$delete("basebackend-"+p+"-doctype-"+k),f=["basebackend-"+p+"-doctype-"+d,""],m(g,"[]=",a.to_a(f)),f[b(f.length,1)])):(e(h)&&(f=["backend-"+h+"-doctype-"+d,""],m(g,"[]=",a.to_a(f)),f[b(f.length,1)]),e(p)&&(f=["basebackend-"+p+"-doctype-"+d,""],m(g,"[]=",a.to_a(f)),f[b(f.length,1)]));f=["doctype-"+d,""];m(g,"[]=",a.to_a(f));f[b(f.length,1)];return this.doctype=(f=["doctype",d],m(g,"[]=",a.to_a(f)),f[b(f.length,1)])}return c},Ea.$$arity=1),c)&&"update_doctype_attributes"})(d[0], +p(d,"AbstractBlock"),d)}(h[0],h)};Opal.modules["asciidoctor/inline"]=function(a){var b=[],g=a.nil,k=a.const_get_relative,l=a.module,n=a.klass,h=a.hash2,c=a.send,r=a.truthy;a.add_stubs("$attr_accessor $attr_reader $[] $convert $converter $attr $== $apply_reftext_subs $reftext".split(" "));return function(b,d){b=[l(b,"Asciidoctor")].concat(d);(function(b,$super,e){b=n(b,$super,"Inline");[b].concat(e);var d,p,k,l,u,q,t,y;b.$$prototype.text=b.$$prototype.type=g;b.$attr_accessor("text");b.$attr_reader("type"); +b.$attr_accessor("target");a.def(b,"$initialize",d=function(b,e,f,p){d.$$p&&(d.$$p=null);null==f&&(f=g);null==p&&(p=h([],{}));c(this,a.find_super_dispatcher(this,"initialize",d,!1),[b,e,p],null);this.node_name="inline_"+e;this.text=f;this.id=p["$[]"]("id");this.type=p["$[]"]("type");return this.target=p["$[]"]("target")},d.$$arity=-3);a.def(b,"$block?",p=function(){return!1},p.$$arity=0);a.def(b,"$inline?",k=function(){return!0},k.$$arity=0);a.def(b,"$convert",l=function(){return this.$converter().$convert(this)}, +l.$$arity=0);a.alias(b,"render","convert");a.def(b,"$alt",u=function(){var a;return r(a=this.$attr("alt"))?a:""},u.$$arity=0);a.def(b,"$reftext?",q=function(){var a,b;return r(a=this.text)?r(b=this.type["$=="]("ref"))?b:this.type["$=="]("bibref"):a},q.$$arity=0);a.def(b,"$reftext",t=function(){var a;return r(a=this.text)?this.$apply_reftext_subs(a):g},t.$$arity=0);return(a.def(b,"$xreftext",y=function(a){return this.$reftext()},y.$$arity=-1),g)&&"xreftext"})(b[0],k(b,"AbstractNode"),b)}(b[0],b)}; +Opal.modules["asciidoctor/list"]=function(a){var b=[],g=a.nil,k=a.const_get_relative,l=a.module,n=a.klass,h=a.hash2,c=a.send,r=a.truthy;a.add_stubs("$== $next_list $callouts $class $object_id $inspect $size $items $attr_accessor $level $drop $nil_or_empty? $apply_subs $empty? $=== $[] $outline? $! $simple? $source $shift $context $parent".split(" "));return function(b,d){b=[l(b,"Asciidoctor")].concat(d);(function(b,$super,e){b=n(b,$super,"List");[b].concat(e);var d,p,k,l;b.$$prototype.context=b.$$prototype.document= +b.$$prototype.style=g;a.alias(b,"items","blocks");a.alias(b,"content","blocks");a.alias(b,"items?","blocks?");a.def(b,"$initialize",d=function(b,e,f){var g=d.$$p,p;g&&(d.$$p=null);var k=0;var l=arguments.length;for(p=Array(l);k"},l.$$arity=0),g)&&"to_s"})(b[0],k(b,"AbstractBlock"),b);(function(b,$super,e){b=n(b,$super,"ListItem");var d=[b].concat(e),h,p,l,u,q,t,y,z;b.$$prototype.text=b.$$prototype.subs=b.$$prototype.blocks=g;a.alias(b,"list","parent");b.$attr_accessor("marker");a.def(b,"$initialize",h=function(b,e){h.$$p&&(h.$$p=null);null==e&&(e=g);c(this,a.find_super_dispatcher(this,"initialize",h,!1),[b,"list_item"],null);this.text=e;this.level=b.$level();return this.subs=k(d,"NORMAL_SUBS").$drop(0)}, +h.$$arity=-2);a.def(b,"$text?",p=function(){return r(this.text["$nil_or_empty?"]())?!1:!0},p.$$arity=0);a.def(b,"$text",l=function(){var a;return r(a=this.text)?this.$apply_subs(this.text,this.subs):a},l.$$arity=0);a.def(b,"$text=",u=function(a){return this.text=a},u.$$arity=1);a.def(b,"$simple?",q=function(){var a,b,c=g;return r(a=this.blocks["$empty?"]())?a:r(b=this.blocks.$size()["$=="](1)?k(d,"List")["$==="](c=this.blocks["$[]"](0)):this.blocks.$size()["$=="](1))?c["$outline?"]():b},q.$$arity= +0);a.def(b,"$compound?",t=function(){return this["$simple?"]()["$!"]()},t.$$arity=0);a.def(b,"$fold_first",y=function(){this.text=r(this.text["$nil_or_empty?"]())?this.blocks.$shift().$source():""+this.text+k(d,"LF")+this.blocks.$shift().$source();return g},y.$$arity=0);return(a.def(b,"$to_s",z=function(){var a;return"#<"+this.$class()+"@"+this.$object_id()+" {list_context: "+this.$parent().$context().$inspect()+", text: "+this.text.$inspect()+", blocks: "+(r(a=this.blocks)?a:[]).$size()+"}>"},z.$$arity= +0),g)&&"to_s"})(b[0],k(b,"AbstractBlock"),b)}(b[0],b)};Opal.modules["asciidoctor/parser"]=function(a){function b(a,b){return"number"===typeof a&&"number"===typeof b?a-b:a["$-"](b)}function g(a,b){return"number"===typeof a&&"number"===typeof b?a+b:a["$+"](b)}function k(a,b){return"number"===typeof a&&"number"===typeof b?ab:a["$>"](b)}function n(a,b){return"number"===typeof a&&"number"===typeof b?a*b:a["$*"](b)}var h=[], +c=a.nil,r=a.const_get_qualified,p=a.const_get_relative,q=a.module,t=a.klass,m=a.send,e=a.truthy,f=a.hash2,v=a.gvars;a.add_stubs("$include $new $proc $start_with? $match? $is_delimited_block? $private_class_method $parse_document_header $[] $has_more_lines? $next_section $assign_numeral $<< $blocks $parse_block_metadata_lines $attributes $is_next_line_doctitle? $finalize_header $nil_or_empty? $title= $- $sourcemap $cursor $parse_section_title $id= $apply_header_subs $[]= $source_location= $header $attribute_locked? $id $clear $delete $instance_variable_get $parse_header_metadata $include? $== $! $register $doctype $parse_manpage_header $=~ $downcase $sub_attributes $error $logger $message_with_context $cursor_at_line $backend $skip_blank_lines $save $update $is_next_line_section? $initialize_section $join $map $read_lines_until $lstrip $title $split $restore_save $discard_save $context $empty? $header? $!= $attr? $attr $key? $document $+ $level $special $sectname $to_i $< $> $warn $next_block $blocks? $style $context= $style= $parent= $size $content_model $shift $unwrap_standalone_preamble $source_location $merge $fetch $parse_block_metadata_line $extensions $block_macros? $mark $read_line $terminator $to_s $masq $to_sym $registered_for_block? $debug? $debug $cursor_at_mark $strict_verbatim_paragraphs $unshift_line $markdown_syntax $keys $chr $uniform? $length $end_with? $=== $parse_attributes $attribute_missing $tr $basename $assign_caption $registered_for_block_macro? $config $process_method $replace $parse_callout_list $callouts $parse_list $parse_description_list $underline_style_section_titles $is_section_title? $peek_line $atx_section_title? $generate_id $level= $read_paragraph_lines $adjust_indentation! $map! $slice $pop $build_block $apply_subs $chop $catalog_inline_anchors $rekey $index $strip $parse_table $each $raise $title? $update_attributes $commit_subs $sub? $catalog_callouts $source $remove_sub $block_terminates_paragraph $to_proc $nil? $lines $parse_blocks $parse_list_item $items $scan $gsub $count $advance $dup $match $callout_ids $next_list $catalog_inline_anchor $marker= $catalog_inline_biblio_anchor $set_option $text= $resolve_ordered_list_marker $read_lines_for_list_item $skip_line_comments $unshift_lines $fold_first $text? $is_sibling_list_item? $concat $find $casecmp $sectname= $special= $numbered= $numbered $lineno $peek_lines $setext_section_title? $abs $cursor_at_prev_line $process_attribute_entries $next_line_empty? $process_authors $rstrip $each_with_index $compact $squeeze $to_a $parse_style_attribute $process_attribute_entry $skip_comment_lines $store_attribute $sanitize_attribute_name $set_attribute $save_to $delete_attribute $ord $int_to_roman $resolve_list_marker $parse_colspecs $create_columns $has_header_option= $format $starts_with_delimiter? $close_open_cell $parse_cellspec $delimiter $match_delimiter $pre_match $post_match $buffer_has_unclosed_quotes? $skip_past_delimiter $buffer $buffer= $skip_past_escaped_delimiter $keep_cell_open $push_cellspec $close_cell $cell_open? $columns $assign_column_widths $partition_header_footer $upto $partition $shorthand_property_syntax $each_char $yield_buffered_attribute $any? $* $each_byte $%".split(" ")); +return function(d,h){d=[q(d,"Asciidoctor")].concat(h);(function(d,$super,h){d=t(d,$super,"Parser");var u=[d].concat(h),q,z,w,C,O,L,B,E,D,J,F,H,x,I,V,W,T,ja,ua,da,ba,ka,U,K,M,N,P,va,fa,wa,ya,qa,Ga,Fa,Ha,Y,Sa,Ka,Ca,Ia,Wa,Va,Xa,Ya,Za,A;d.$include(p(u,"Logging"));a.const_set(u[0],"BlockMatchData",p(u,"Struct").$new("context","masq","tip","terminator"));a.const_set(u[0],"TAB","\t");a.const_set(u[0],"TabIndentRx",/^\t+/);a.const_set(u[0],"StartOfBlockProc",m(d,"proc",[],(q=function(a){var b=q.$$s||this, +d,f;null==a&&(a=c);return e(d=e(f=a["$start_with?"]("["))?p(u,"BlockAttributeLineRx")["$match?"](a):f)?d:b["$is_delimited_block?"](a)},q.$$s=d,q.$$arity=1,q)));a.const_set(u[0],"StartOfListProc",m(d,"proc",[],(z=function(a){null==a&&(a=c);return p(u,"AnyListRx")["$match?"](a)},z.$$s=d,z.$$arity=1,z)));a.const_set(u[0],"StartOfBlockOrListProc",m(d,"proc",[],(w=function(a){var b=w.$$s||this,d,f,g;null==a&&(a=c);return e(d=e(f=b["$is_delimited_block?"](a))?f:e(g=a["$start_with?"]("["))?p(u,"BlockAttributeLineRx")["$match?"](a): +g)?d:p(u,"AnyListRx")["$match?"](a)},w.$$s=d,w.$$arity=1,w)));a.const_set(u[0],"NoOp",c);a.const_set(u[0],"AuthorKeys","author authorinitials firstname middlename lastname email".split(" "));a.const_set(u[0],"TableCellHorzAlignments",f(["<",">","^"],{"<":"left",">":"right","^":"center"}));a.const_set(u[0],"TableCellVertAlignments",f(["<",">","^"],{"<":"top",">":"bottom","^":"middle"}));a.const_set(u[0],"TableCellStyles",f("dsemhla".split(""),{d:"none",s:"strong",e:"emphasis",m:"monospaced",h:"header", +l:"literal",a:"asciidoc"}));d.$private_class_method("new");a.defs(d,"$parse",C=function(b,d,g){null==g&&(g=f([],{}));var m=this.$parse_document_header(b,d);if(!e(g["$[]"]("header_only")))for(;e(b["$has_more_lines?"]());){g=this.$next_section(b,d,m);m=a.to_ary(g);var h=null==m[0]?c:m[0];m=null==m[1]?c:m[1];g;e(h)&&(d.$assign_numeral(h),d.$blocks()["$<<"](h))}return d},C.$$arity=-3);a.defs(d,"$parse_document_header",O=function(d,f){var g,h,p,k=c,l=c;var u=this.$parse_block_metadata_lines(d,f);var n= +f.$attributes();if(e(e(g=h=this["$is_next_line_doctitle?"](d,u,n["$[]"]("leveloffset")))?u["$[]"]("title"):g))return f.$finalize_header(u,!1);if(!e((p=n["$[]"]("doctitle"))["$nil_or_empty?"]())){var r=[k=p];m(f,"title=",a.to_a(r));r[b(r.length,1)]}if(e(h)){e(f.$sourcemap())&&(l=d.$cursor());r=this.$parse_section_title(d,f);g=a.to_ary(r);f["$id="](null==g[0]?c:g[0]);h=null==g[2]?c:g[2];var A=null==g[4]?c:g[4];r;e(k)?h=c:(r=[h],m(f,"title=",a.to_a(r)),r[b(r.length,1)],r=["doctitle",k=f.$apply_header_subs(h)], +m(n,"[]=",a.to_a(r)),r[b(r.length,1)]);e(l)&&(r=[l],m(f.$header(),"source_location=",a.to_a(r)),r[b(r.length,1)]);e(e(g=A)?g:f["$attribute_locked?"]("compat-mode"))||(r=["compat-mode",""],m(n,"[]=",a.to_a(r)),r[b(r.length,1)]);e(r=u["$[]"]("separator"))&&!e(f["$attribute_locked?"]("title-separator"))&&(r=["title-separator",r],m(n,"[]=",a.to_a(r)),r[b(r.length,1)]);e(l=u["$[]"]("id"))?(r=[l],m(f,"id=",a.to_a(r)),r[b(r.length,1)]):l=f.$id();e(r=u["$[]"]("role"))&&(r=["role",r],m(n,"[]=",a.to_a(r)), +r[b(r.length,1)]);e(r=u["$[]"]("reftext"))&&(r=["reftext",r],m(n,"[]=",a.to_a(r)),r[b(r.length,1)]);u.$clear();(r=f.$instance_variable_get("@attributes_modified")).$delete("doctitle");this.$parse_header_metadata(d,f);if(e(r["$include?"]("doctitle")))e(e(g=(p=n["$[]"]("doctitle"))["$nil_or_empty?"]())?g:p["$=="](k))?(r=["doctitle",k],m(n,"[]=",a.to_a(r))):(r=[p],m(f,"title=",a.to_a(r))),r[b(r.length,1)];else if(e(h["$!"]()))r["$<<"]("doctitle");e(l)&&f.$register("refs",[l,f])}f.$doctype()["$=="]("manpage")&& +this.$parse_manpage_header(d,f,u);return f.$finalize_header(u)},O.$$arity=2);a.defs(d,"$parse_manpage_header",L=function(d,g,h){var k,l,n,r,A=c,q=c,t=c,G=c,y=c,z=c,Q=z=c,R=c,w=c;e(p(u,"ManpageTitleVolnumRx")["$=~"]((A=g.$attributes())["$[]"]("doctitle")))?(q=["manvolnum",t=(k=v["~"])===c?c:k["$[]"](2)],m(A,"[]=",a.to_a(q)),q[b(q.length,1)],q=["mantitle",(e((G=(k=v["~"])===c?c:k["$[]"](1))["$include?"](p(u,"ATTR_REF_HEAD")))?g.$sub_attributes(G):G).$downcase()]):(this.$logger().$error(this.$message_with_context("non-conforming manpage title", +f(["source_location"],{source_location:d.$cursor_at_line(1)}))),q=["mantitle",e(k=e(l=A["$[]"]("doctitle"))?l:A["$[]"]("docname"))?k:"command"],m(A,"[]=",a.to_a(q)),q[b(q.length,1)],q=["manvolnum",t="1"]);m(A,"[]=",a.to_a(q));q[b(q.length,1)];e(e(k=y=A["$[]"]("manname"))?A["$[]"]("manpurpose"):k)?(e(k=A["$[]"]("manname-title"))?k:(q=["manname-title","Name"],m(A,"[]=",a.to_a(q)),q[b(q.length,1)]),q=["mannames",[y]],m(A,"[]=",a.to_a(q)),q[b(q.length,1)],g.$backend()["$=="]("manpage")&&(q=["docname", +y],m(A,"[]=",a.to_a(q)),q[b(q.length,1)],q=["outfilesuffix","."+t],m(A,"[]=",a.to_a(q)),q[b(q.length,1)])):(d.$skip_blank_lines(),d.$save(),h.$update(this.$parse_block_metadata_lines(d,g)),e(z=this["$is_next_line_section?"](d,f([],{})))?z["$=="](1)?(z=this.$initialize_section(d,g,f([],{})),Q=m(d.$read_lines_until(f(["break_on_blank_lines","skip_line_comments"],{break_on_blank_lines:!0,skip_line_comments:!0})),"map",[],(n=function(a){null==a&&(a=c);return a.$lstrip()},n.$$s=this,n.$$arity=1,n)).$join(" "), +e(p(u,"ManpageNamePurposeRx")["$=~"](Q))?(e(k=A["$[]"]("manname-title"))?k:(q=["manname-title",z.$title()],m(A,"[]=",a.to_a(q)),q[b(q.length,1)]),e(z.$id())&&(q=["manname-id",z.$id()],m(A,"[]=",a.to_a(q)),q[b(q.length,1)]),q=["manpurpose",(k=v["~"])===c?c:k["$[]"](2)],m(A,"[]=",a.to_a(q)),q[b(q.length,1)],e((y=(k=v["~"])===c?c:k["$[]"](1))["$include?"](p(u,"ATTR_REF_HEAD")))&&(y=g.$sub_attributes(y)),e(y["$include?"](","))?y=(R=m(y.$split(","),"map",[],(r=function(a){null==a&&(a=c);return a.$lstrip()}, +r.$$s=this,r.$$arity=1,r)))["$[]"](0):R=[y],q=["manname",y],m(A,"[]=",a.to_a(q)),q[b(q.length,1)],q=["mannames",R],m(A,"[]=",a.to_a(q)),q[b(q.length,1)],g.$backend()["$=="]("manpage")&&(q=["docname",y],m(A,"[]=",a.to_a(q)),q[b(q.length,1)],q=["outfilesuffix","."+t],m(A,"[]=",a.to_a(q)),q[b(q.length,1)])):w="non-conforming name section body"):w="name section must be at level 1":w="name section expected",e(w)?(d.$restore_save(),this.$logger().$error(this.$message_with_context(w,f(["source_location"], +{source_location:d.$cursor()}))),q=["manname",y=e(k=A["$[]"]("docname"))?k:"command"],m(A,"[]=",a.to_a(q)),q[b(q.length,1)],q=["mannames",[y]],m(A,"[]=",a.to_a(q)),q[b(q.length,1)],g.$backend()["$=="]("manpage")&&(q=["docname",y],m(A,"[]=",a.to_a(q)),q[b(q.length,1)],q=["outfilesuffix","."+t],m(A,"[]=",a.to_a(q)),q[b(q.length,1)])):d.$discard_save());return c},L.$$arity=3);a.defs(d,"$next_section",B=function(d,h,n){var r,q,A,t,G,y,z=c,v,Q,R=c,w=Q=c,C;null==n&&(n=f([],{}));var O=G=y=!1;if(e(e(r=(q= +h.$context()["$=="]("document"))?h.$blocks()["$empty?"]():h.$context()["$=="]("document"))?e(q=e(A=z=h["$header?"]())?A:n.$delete("invalid-header"))?q:this["$is_next_line_section?"](d,n)["$!"]():r)){var L=(v=h).$doctype()["$=="]("book");if(e(e(r=z)?r:e(q=L)?n["$[]"](1)["$!="]("abstract"):q)){O=G=p(u,"Block").$new(h,"preamble",f(["content_model"],{content_model:"compound"}));if(e(e(r=L)?h["$attr?"]("preface-title"):r)){var B=[h.$attr("preface-title")];m(O,"title=",a.to_a(B));B[b(B.length,1)]}h.$blocks()["$<<"](O)}z= +h;Q=0;if(e(h.$attributes()["$key?"]("fragment")))var E=-1;else e(L)?(r=[1,0],E=r[0],R=r[1],r):E=1}else L=(v=h.$document()).$doctype()["$=="]("book"),z=this.$initialize_section(d,h,n),n=e(Q=n["$[]"]("title"))?f(["title"],{title:Q}):f([],{}),E=g(Q=z.$level(),1),Q["$=="](0)?y=L:e((r=Q["$=="](1))?z.$special():Q["$=="](1))&&!e(e(r=e(q=(w=z.$sectname())["$=="]("appendix"))?q:w["$=="]("preface"))?r:w["$=="]("abstract"))&&(E=c);for(d.$skip_blank_lines();e(d["$has_more_lines?"]());){this.$parse_block_metadata_lines(d, +v,n);if(e(C=this["$is_next_line_section?"](d,n)))if(e(v["$attr?"]("leveloffset"))&&(C=g(C,v.$attr("leveloffset").$to_i()),e(k(C,0))&&(C=0)),e(l(C,Q)))e(E)?e(e(q=e(A=C["$=="](E))?A:e(t=R)?C["$=="](R):t)?q:k(E,0))||(q=e(R)?"expected levels "+R+" or "+E:"expected level "+E,this.$logger().$warn(this.$message_with_context("section title out of sequence: "+q+", got level "+C,f(["source_location"],{source_location:d.$cursor()})))):this.$logger().$error(this.$message_with_context(""+w+" sections do not support nested sections", +f(["source_location"],{source_location:d.$cursor()}))),A=this.$next_section(d,z,n),q=a.to_ary(A),C=null==q[0]?c:q[0],n=null==q[1]?c:q[1],A,z.$assign_numeral(C),z.$blocks()["$<<"](C);else if(e((q=C["$=="](0))?z["$=="](v):C["$=="](0)))e(L)||this.$logger().$error(this.$message_with_context("level 0 sections can only be used when doctype is book",f(["source_location"],{source_location:d.$cursor()}))),A=this.$next_section(d,z,n),q=a.to_ary(A),C=null==q[0]?c:q[0],n=null==q[1]?c:q[1],A,z.$assign_numeral(C), +z.$blocks()["$<<"](C);else break;else if(B=d.$cursor(),e(C=this.$next_block(d,e(q=G)?q:z,n,f(["parse_metadata"],{parse_metadata:!1})))){if(e(y))if(e(z["$blocks?"]()["$!"]()))e(C.$style()["$!="]("partintro"))&&(C.$context()["$=="]("paragraph")?(B=["open"],m(C,"context=",a.to_a(B)),B[b(B.length,1)],B=["partintro"],m(C,"style=",a.to_a(B)),B[b(B.length,1)]):(B=[G=p(u,"Block").$new(z,"open",f(["content_model"],{content_model:"compound"}))],m(C,"parent=",a.to_a(B)),B[b(B.length,1)],B=["partintro"],m(G, +"style=",a.to_a(B)),B[b(B.length,1)],z.$blocks()["$<<"](G)));else if(z.$blocks().$size()["$=="](1)){var D=z.$blocks()["$[]"](0);e(e(q=G["$!"]())?D.$content_model()["$=="]("compound"):q)?this.$logger().$error(this.$message_with_context("illegal block content outside of partintro block",f(["source_location"],{source_location:B}))):e(D.$content_model()["$!="]("compound"))&&(B=[G=p(u,"Block").$new(z,"open",f(["content_model"],{content_model:"compound"}))],m(C,"parent=",a.to_a(B)),B[b(B.length,1)],B=["partintro"], +m(G,"style=",a.to_a(B)),B[b(B.length,1)],z.$blocks().$shift(),D.$style()["$=="]("partintro")&&(B=["paragraph"],m(D,"context=",a.to_a(B)),B[b(B.length,1)],B=[c],m(D,"style=",a.to_a(B)),B[b(B.length,1)]),G["$<<"](D),z.$blocks()["$<<"](G))}(e(q=G)?q:z).$blocks()["$<<"](C);n.$clear()}if(e(q=d.$skip_blank_lines()))q;else break}if(e(y))e(e(r=z["$blocks?"]())?z.$blocks()["$[]"](-1).$context()["$=="]("section"):r)||this.$logger().$error(this.$message_with_context("invalid part, must have at least one section (e.g., chapter, appendix, etc.)", +f(["source_location"],{source_location:d.$cursor()})));else if(e(O))if(e(O["$blocks?"]()))if(e(e(r=e(q=L)?q:v.$blocks()["$[]"](1))?r:p(u,"Compliance").$unwrap_standalone_preamble()["$!"]()))e(v.$sourcemap())&&(B=[O.$blocks()["$[]"](0).$source_location()],m(O,"source_location=",a.to_a(B)),B[b(B.length,1)]);else for(v.$blocks().$shift();e(d=O.$blocks().$shift());)v["$<<"](d);else v.$blocks().$shift();return[e(z["$!="](h))?z:c,n.$merge()]},B.$$arity=-3);a.defs(d,"$next_block",E=function(d,h,n,q){try{var r, +A,t,z,y,G,Q,w=c,R=c,C=c,Ja=c,B=c,O=c,L=c,E=c,D=c,J=c,F=c,V=c,aa=c,H=c,x=c,ca=c,I=c,ba=c,W=c,ka=c,T=c,ha=c,ta=c,X=c,xa=c,la=c,za=c,pa=c,Z=c,ja=c,oa=c,Ka=c,ua=c,da=c,sa=c,na=c,U=c,K=c,Ba=c,M=c,N=c,Ca=c,Ma=c,Na=c,Ua=c,P=c,Aa=c,La=c,Ia=c,Ra=c;null==v["~"]&&(v["~"]=c);null==n&&(n=f([],{}));null==q&&(q=f([],{}));if(!e(w=d.$skip_blank_lines()))return c;e(e(r=R=q["$[]"]("text_only"))?l(w,0):r)&&(q.$delete("text_only"),R=c);C=h.$document();if(e(q.$fetch("parse_metadata",!0)))for(;e(this.$parse_block_metadata_line(d, +C,n,q));)d.$shift(),e(A=d.$skip_blank_lines())?A:a.ret(c);e(Ja=C.$extensions())&&(r=[Ja["$blocks?"](),Ja["$block_macros?"]()],B=r[0],O=r[1],r);d.$mark();r=[d.$read_line(),C.$attributes(),n["$[]"](1)];L=r[0];E=r[1];D=r[2];r;J=F=V=aa=c;e(H=this["$is_delimited_block?"](L,!0))&&(F=V=H.$context(),aa=H.$terminator(),e(D)?D["$=="](F.$to_s())||(e(H.$masq()["$include?"](D))?F=D.$to_sym():e(e(r=H.$masq()["$include?"]("admonition"))?p(u,"ADMONITION_STYLES")["$include?"](D):r)?F="admonition":e(e(r=B)?Ja["$registered_for_block?"](D, +F):r)?F=D.$to_sym():(e(this.$logger()["$debug?"]())&&this.$logger().$debug(this.$message_with_context("unknown style for "+F+" block: "+D,f(["source_location"],{source_location:d.$cursor_at_mark()}))),D=F.$to_s())):D=(x=["style",F.$to_s()],m(n,"[]=",a.to_a(x)),x[b(x.length,1)]));if(!e(H))for(;e(!0);){if(e(e(A=e(t=D)?p(u,"Compliance").$strict_verbatim_paragraphs():t)?p(u,"VERBATIM_STYLES")["$include?"](D):A)){F=D.$to_sym();d.$unshift_line(L);break}if(e(R))ca=L["$start_with?"](" ",p(u,"TAB"));else if(I= +p(u,"Compliance").$markdown_syntax(),e(L["$start_with?"](" "))){if(A=[!0," "],ca=A[0],ba=A[1],A,e(e(A=e(t=I)?m(L.$lstrip(),"start_with?",a.to_a(p(u,"MARKDOWN_THEMATIC_BREAK_CHARS").$keys())):t)?p(u,"MarkdownThematicBreakRx")["$match?"](L):A)){J=p(u,"Block").$new(h,"thematic_break",f(["content_model"],{content_model:"empty"}));break}}else if(e(L["$start_with?"](p(u,"TAB"))))A=[!0,p(u,"TAB")],ca=A[0],ba=A[1],A;else if(A=[!1,L.$chr()],ca=A[0],ba=A[1],A,W=e(I)?p(u,"HYBRID_LAYOUT_BREAK_CHARS"):p(u,"LAYOUT_BREAK_CHARS"), +e(e(A=W["$key?"](ba))?e(I)?p(u,"ExtLayoutBreakRx")["$match?"](L):e(t=this["$uniform?"](L,ba,ka=L.$length()))?l(ka,2):t:A)){J=p(u,"Block").$new(h,W["$[]"](ba),f(["content_model"],{content_model:"empty"}));break}else if(e(e(A=L["$end_with?"]("]"))?L["$include?"]("::"):A))if(e(e(A=e(t=ba["$=="]("i"))?t:L["$start_with?"]("video:","audio:"))?p(u,"BlockMediaMacroRx")["$=~"](L):A)){A=[((t=v["~"])===c?c:t["$[]"](1)).$to_sym(),(t=v["~"])===c?c:t["$[]"](2),(t=v["~"])===c?c:t["$[]"](3)];T=A[0];ha=A[1];ta=A[2]; +A;J=p(u,"Block").$new(h,T,f(["content_model"],{content_model:"empty"}));e(ta)&&(X=T,xa="video"["$==="](X)?["poster","width","height"]:"audio"["$==="](X)?[]:["alt","width","height"],J.$parse_attributes(ta,xa,f(["sub_input","into"],{sub_input:!0,into:n})));e(n["$key?"]("style"))&&n.$delete("style");if(e(ha["$include?"](p(u,"ATTR_REF_HEAD")))){if(e(e(A=e(t=(la=J.$sub_attributes(ha))["$empty?"]())?(e(z=E["$[]"]("attribute-missing"))?z:p(u,"Compliance").$attribute_missing())["$=="]("drop-line"):t)?J.$sub_attributes(g(ha, +" "),f(["attribute_missing","drop_line_severity"],{attribute_missing:"drop-line",drop_line_severity:"ignore"}))["$empty?"]():A))return n.$clear(),c;ha=la}T["$=="]("image")&&(C.$register("images",ha),x=["imagesdir",E["$[]"]("imagesdir")],m(n,"[]=",a.to_a(x)),x[b(x.length,1)],e(A=n["$[]"]("alt"))?A:(x=["alt",e(t=D)?t:(x=["default-alt",p(u,"Helpers").$basename(ha,!0).$tr("_-"," ")],m(n,"[]=",a.to_a(x)),x[b(x.length,1)])],m(n,"[]=",a.to_a(x)),x[b(x.length,1)]),e((za=n.$delete("scaledwidth"))["$nil_or_empty?"]())|| +(x=["scaledwidth",e(p(u,"TrailingDigitsRx")["$match?"](za))?""+za+"%":za],m(n,"[]=",a.to_a(x)),x[b(x.length,1)]),e(n["$[]"]("title"))&&(x=[pa=n.$delete("title")],m(J,"title=",a.to_a(x)),x[b(x.length,1)],J.$assign_caption(n.$delete("caption"),"figure")));x=["target",ha];m(n,"[]=",a.to_a(x));x[b(x.length,1)];break}else if(e(e(A=(t=ba["$=="]("t"))?L["$start_with?"]("toc:"):ba["$=="]("t"))?p(u,"BlockTocMacroRx")["$=~"](L):A)){J=p(u,"Block").$new(h,"toc",f(["content_model"],{content_model:"empty"}));e((A= +v["~"])===c?c:A["$[]"](1))&&J.$parse_attributes((A=v["~"])===c?c:A["$[]"](1),[],f(["into"],{into:n}));break}else if(e(e(O)?e(A=e(t=p(u,"CustomBlockMacroRx")["$=~"](L))?Z=Ja["$registered_for_block_macro?"]((z=v["~"])===c?c:z["$[]"](1)):t)?A:ja=this.$logger()["$debug?"]():e(A=this.$logger()["$debug?"]())?ja=p(u,"CustomBlockMacroRx")["$=~"](L):A))if(e(ja))this.$logger().$debug(this.$message_with_context("unknown name for block macro: "+((A=v["~"])===c?c:A["$[]"](1)),f(["source_location"],{source_location:d.$cursor_at_mark()}))); +else{oa=(A=v["~"])===c?c:A["$[]"](3);if(e((ha=(A=v["~"])===c?c:A["$[]"](2))["$include?"](p(u,"ATTR_REF_HEAD")))){if(e(e(A=e(t=(la=h.$sub_attributes(ha))["$empty?"]())?(e(z=E["$[]"]("attribute-missing"))?z:p(u,"Compliance").$attribute_missing())["$=="]("drop-line"):t)?h.$sub_attributes(g(ha," "),f(["attribute_missing","drop_line_severity"],{attribute_missing:"drop-line",drop_line_severity:"ignore"}))["$empty?"]():A))return n.$clear(),c;ha=la}(Ka=Z.$config())["$[]"]("content_model")["$=="]("attributes")? +e(oa)&&C.$parse_attributes(oa,e(A=e(t=Ka["$[]"]("positional_attrs"))?t:Ka["$[]"]("pos_attrs"))?A:[],f(["sub_input","into"],{sub_input:!0,into:n})):(x=["text",e(A=oa)?A:""],m(n,"[]=",a.to_a(x)),x[b(x.length,1)]);e(ua=Ka["$[]"]("default_attrs"))&&m(n,"update",[ua],(y=function(a,b){null==b&&(b=c);return b},y.$$s=this,y.$$arity=2,y));if(e(J=Z.$process_method()["$[]"](h,ha,n))){n.$replace(J.$attributes());break}else return n.$clear(),c}if(e(e(A=e(t=ca["$!"]())?(ba=e(z=ba)?z:L.$chr())["$=="]("<"):t)?p(u, +"CalloutListRx")["$=~"](L):A)){d.$unshift_line(L);J=this.$parse_callout_list(d,v["~"],h,C.$callouts());x=["style","arabic"];m(n,"[]=",a.to_a(x));x[b(x.length,1)];break}else if(e(p(u,"UnorderedListRx")["$match?"](L))){d.$unshift_line(L);e(e(A=e(t=D["$!"]())?p(u,"Section")["$==="](h):t)?h.$sectname()["$=="]("bibliography"):A)&&(x=["style",D="bibliography"],m(n,"[]=",a.to_a(x)),x[b(x.length,1)]);J=this.$parse_list(d,"ulist",h,D);break}else if(e(p(u,"OrderedListRx")["$match?"](L))){d.$unshift_line(L); +J=this.$parse_list(d,"olist",h,D);e(J.$style())&&(x=["style",J.$style()],m(n,"[]=",a.to_a(x)),x[b(x.length,1)]);break}else if(e(e(A=e(t=L["$include?"]("::"))?t:L["$include?"](";;"))?p(u,"DescriptionListRx")["$=~"](L):A)){d.$unshift_line(L);J=this.$parse_description_list(d,v["~"],h);break}else if(e(e(A=e(t=D["$=="]("float"))?t:D["$=="]("discrete"))?e(p(u,"Compliance").$underline_style_section_titles())?this["$is_section_title?"](L,d.$peek_line()):e(t=ca["$!"]())?this["$atx_section_title?"](L):t:A)){d.$unshift_line(L); +t=this.$parse_section_title(d,C,n["$[]"]("id"));A=a.to_ary(t);da=null==A[0]?c:A[0];sa=null==A[1]?c:A[1];pa=null==A[2]?c:A[2];na=null==A[3]?c:A[3];t;e(sa)&&(x=["reftext",sa],m(n,"[]=",a.to_a(x)),x[b(x.length,1)]);J=p(u,"Block").$new(h,"floating_title",f(["content_model"],{content_model:"empty"}));x=[pa];m(J,"title=",a.to_a(x));x[b(x.length,1)];n.$delete("title");x=[e(A=da)?A:e(E["$key?"]("sectids"))?p(u,"Section").$generate_id(J.$title(),C):c];m(J,"id=",a.to_a(x));x[b(x.length,1)];x=[na];m(J,"level=", +a.to_a(x));x[b(x.length,1)];break}else if(e(e(A=D)?D["$!="]("normal"):A))if(e(p(u,"PARAGRAPH_STYLES")["$include?"](D))){F=D.$to_sym();V="paragraph";d.$unshift_line(L);break}else if(e(p(u,"ADMONITION_STYLES")["$include?"](D))){F="admonition";V="paragraph";d.$unshift_line(L);break}else if(e(e(A=B)?Ja["$registered_for_block?"](D,"paragraph"):A)){F=D.$to_sym();V="paragraph";d.$unshift_line(L);break}else e(this.$logger()["$debug?"]())&&this.$logger().$debug(this.$message_with_context("unknown style for paragraph: "+ +D,f(["source_location"],{source_location:d.$cursor_at_mark()}))),D=c;d.$unshift_line(L);if(e(e(A=ca)?D["$!"]():A))U=this.$read_paragraph_lines(d,K=w["$=="](0)?q["$[]"]("list_type"):c,f(["skip_line_comments"],{skip_line_comments:R})),this["$adjust_indentation!"](U),J=e(e(A=R)?A:K["$=="]("dlist"))?p(u,"Block").$new(h,"paragraph",f(["content_model","source","attributes"],{content_model:"simple",source:U,attributes:n})):p(u,"Block").$new(h,"literal",f(["content_model","source","attributes"],{content_model:"verbatim", +source:U,attributes:n}));else{U=this.$read_paragraph_lines(d,(A=w["$=="](0))?q["$[]"]("list_type"):w["$=="](0),f(["skip_line_comments"],{skip_line_comments:!0}));if(e(R)){if(e(e(A=ca)?D["$=="]("normal"):A))this["$adjust_indentation!"](U);J=p(u,"Block").$new(h,"paragraph",f(["content_model","source","attributes"],{content_model:"simple",source:U,attributes:n}))}else if(e(e(A=e(t=p(u,"ADMONITION_STYLE_HEADS")["$include?"](ba))?L["$include?"](":"):t)?p(u,"AdmonitionParagraphRx")["$=~"](L):A))x=[0,(A= +v["~"])===c?c:A.$post_match()],m(U,"[]=",a.to_a(x)),x[b(x.length,1)],x=["name",Ba=(x=["style",(A=v["~"])===c?c:A["$[]"](1)],m(n,"[]=",a.to_a(x)),x[b(x.length,1)]).$downcase()],m(n,"[]=",a.to_a(x)),x[b(x.length,1)],x=["textlabel",e(A=n.$delete("caption"))?A:E["$[]"](""+Ba+"-caption")],m(n,"[]=",a.to_a(x)),x[b(x.length,1)],J=p(u,"Block").$new(h,"admonition",f(["content_model","source","attributes"],{content_model:"simple",source:U,attributes:n}));else if(e(e(A=e(t=I)?ba["$=="](">"):t)?L["$start_with?"]("> "): +A)){m(U,"map!",[],(G=function(a){null==a&&(a=c);return a["$=="](">")?a.$slice(1,a.$length()):e(a["$start_with?"]("> "))?a.$slice(2,a.$length()):a},G.$$s=this,G.$$arity=1,G));if(e(U["$[]"](-1)["$start_with?"]("-- "))&&(M=(M=U.$pop()).$slice(3,M.$length()),!e(U["$empty?"]())))for(;e(U["$[]"](-1)["$empty?"]());)U.$pop();x=["style","quote"];m(n,"[]=",a.to_a(x));x[b(x.length,1)];J=this.$build_block("quote","compound",!1,h,p(u,"Reader").$new(U),n);e(M)&&(t=J.$apply_subs(M).$split(", ",2),A=a.to_ary(t), +N=null==A[0]?c:A[0],Ca=null==A[1]?c:A[1],t,e(N)&&(x=["attribution",N],m(n,"[]=",a.to_a(x)),x[b(x.length,1)]),e(Ca)&&(x=["citetitle",Ca],m(n,"[]=",a.to_a(x)),x[b(x.length,1)]))}else if(e(e(A=e(t=(z=ba["$=="]('"'))?l(U.$size(),1):ba["$=="]('"'))?U["$[]"](-1)["$start_with?"]("-- "):t)?U["$[]"](-2)["$end_with?"]('"'):A)){x=[0,L.$slice(1,L.$length())];m(U,"[]=",a.to_a(x));x[b(x.length,1)];for(M=(M=U.$pop()).$slice(3,M.$length());e(U["$[]"](-1)["$empty?"]());)U.$pop();U["$<<"](U.$pop().$chop());x=["style", +"quote"];m(n,"[]=",a.to_a(x));x[b(x.length,1)];J=p(u,"Block").$new(h,"quote",f(["content_model","source","attributes"],{content_model:"simple",source:U,attributes:n}));t=J.$apply_subs(M).$split(", ",2);A=a.to_ary(t);N=null==A[0]?c:A[0];Ca=null==A[1]?c:A[1];t;e(N)&&(x=["attribution",N],m(n,"[]=",a.to_a(x)),x[b(x.length,1)]);e(Ca)&&(x=["citetitle",Ca],m(n,"[]=",a.to_a(x)),x[b(x.length,1)])}else{if(e(e(A=ca)?D["$=="]("normal"):A))this["$adjust_indentation!"](U);J=p(u,"Block").$new(h,"paragraph",f(["content_model", +"source","attributes"],{content_model:"simple",source:U,attributes:n}))}this.$catalog_inline_anchors(U.$join(p(u,"LF")),J,C,d)}break}if(!e(J))if(X=F,"listing"["$==="](X)||"source"["$==="](X))e(e(r=F["$=="]("source"))?r:e(A=n["$[]"](1)["$!"]())?Ma=e(t=n["$[]"](2))?t:E["$[]"]("source-language"):A)&&(e(Ma)?(x=["style","source"],m(n,"[]=",a.to_a(x)),x[b(x.length,1)],x=["language",Ma],m(n,"[]=",a.to_a(x)),x[b(x.length,1)],p(u,"AttributeList").$rekey(n,[c,c,"linenums"])):(p(u,"AttributeList").$rekey(n, +[c,"language","linenums"]),!e(n["$key?"]("language"))&&e(E["$key?"]("source-language"))&&(x=["language",E["$[]"]("source-language")],m(n,"[]=",a.to_a(x)),x[b(x.length,1)])),!e(n["$key?"]("linenums"))&&e(e(r=n["$[]"]("linenums-option"))?r:E["$[]"]("source-linenums-option"))&&(x=["linenums",""],m(n,"[]=",a.to_a(x)),x[b(x.length,1)]),!e(n["$key?"]("indent"))&&e(E["$key?"]("source-indent"))&&(x=["indent",E["$[]"]("source-indent")],m(n,"[]=",a.to_a(x)),x[b(x.length,1)])),J=this.$build_block("listing", +"verbatim",aa,h,d,n);else if("fenced_code"["$==="](X))x=["style","source"],m(n,"[]=",a.to_a(x)),x[b(x.length,1)],e(l(ka=L.$length(),3))&&(e(Na=(Ma=L.$slice(3,ka)).$index(","))?e(l(Na,0))?(Ma=Ma.$slice(0,Na).$strip(),e(k(Na,b(ka,4)))&&(x=["linenums",""],m(n,"[]=",a.to_a(x)),x[b(x.length,1)])):e(l(ka,4))&&(x=["linenums",""],m(n,"[]=",a.to_a(x)),x[b(x.length,1)]):Ma=Ma.$lstrip()),e(Ma["$nil_or_empty?"]())?e(E["$key?"]("source-language"))&&(x=["language",E["$[]"]("source-language")],m(n,"[]=",a.to_a(x)), +x[b(x.length,1)]):(x=["language",Ma],m(n,"[]=",a.to_a(x)),x[b(x.length,1)]),!e(n["$key?"]("linenums"))&&e(e(r=n["$[]"]("linenums-option"))?r:E["$[]"]("source-linenums-option"))&&(x=["linenums",""],m(n,"[]=",a.to_a(x)),x[b(x.length,1)]),!e(n["$key?"]("indent"))&&e(E["$key?"]("source-indent"))&&(x=["indent",E["$[]"]("source-indent")],m(n,"[]=",a.to_a(x)),x[b(x.length,1)]),aa=aa.$slice(0,3),J=this.$build_block("listing","verbatim",aa,h,d,n);else if("table"["$==="](X))Ua=d.$cursor(),P=p(u,"Reader").$new(d.$read_lines_until(f(["terminator", +"skip_line_comments","context","cursor"],{terminator:aa,skip_line_comments:!0,context:"table",cursor:"at_mark"})),Ua),e(aa["$start_with?"]("|","!"))||(e(r=n["$[]"]("format"))?r:(x=["format",e(aa["$start_with?"](","))?"csv":"dsv"],m(n,"[]=",a.to_a(x)),x[b(x.length,1)])),J=this.$parse_table(P,h,n);else if("sidebar"["$==="](X))J=this.$build_block(F,"compound",aa,h,d,n);else if("admonition"["$==="](X))x=["name",Ba=D.$downcase()],m(n,"[]=",a.to_a(x)),x[b(x.length,1)],x=["textlabel",e(r=n.$delete("caption"))? +r:E["$[]"](""+Ba+"-caption")],m(n,"[]=",a.to_a(x)),x[b(x.length,1)],J=this.$build_block(F,"compound",aa,h,d,n);else if("open"["$==="](X)||"abstract"["$==="](X)||"partintro"["$==="](X))J=this.$build_block("open","compound",aa,h,d,n);else if("literal"["$==="](X))J=this.$build_block(F,"verbatim",aa,h,d,n);else if("example"["$==="](X))e(n["$[]"]("collapsible-option"))&&(x=["caption",""],m(n,"[]=",a.to_a(x)),x[b(x.length,1)]),J=this.$build_block(F,"compound",aa,h,d,n);else if("quote"["$==="](X)||"verse"["$==="](X))p(u, +"AttributeList").$rekey(n,[c,"attribution","citetitle"]),J=this.$build_block(F,F["$=="]("verse")?"verbatim":"compound",aa,h,d,n);else if("stem"["$==="](X)||"latexmath"["$==="](X)||"asciimath"["$==="](X))F["$=="]("stem")&&(x=["style",p(u,"STEM_TYPE_ALIASES")["$[]"](e(r=n["$[]"](2))?r:E["$[]"]("stem"))],m(n,"[]=",a.to_a(x)),x[b(x.length,1)]),J=this.$build_block("stem","raw",aa,h,d,n);else if("pass"["$==="](X))J=this.$build_block(F,"raw",aa,h,d,n);else{if("comment"["$==="](X))return this.$build_block(F, +"skip",aa,h,d,n),n.$clear(),c;if(e(e(r=B)?Z=Ja["$registered_for_block?"](F,V):r)){if((Aa=(Ka=Z.$config())["$[]"]("content_model"))["$=="]("skip")||(e((La=e(r=Ka["$[]"]("positional_attrs"))?r:Ka["$[]"]("pos_attrs"))["$nil_or_empty?"]())||p(u,"AttributeList").$rekey(n,g([c],La)),e(ua=Ka["$[]"]("default_attrs"))&&m(ua,"each",[],(Q=function(d,f){var g;null==d&&(d=c);null==f&&(f=c);return e(g=n["$[]"](d))?g:(x=[d,f],m(n,"[]=",a.to_a(x)),x[b(x.length,1)])},Q.$$s=this,Q.$$arity=2,Q)),x=["cloaked-context", +V],m(n,"[]=",a.to_a(x)),x[b(x.length,1)]),!e(J=this.$build_block(F,Aa,aa,h,d,n,f(["extension"],{extension:Z}))))return n.$clear(),c}else this.$raise("Unsupported block type "+F+" at "+d.$cursor())}e(C.$sourcemap())&&(x=[d.$cursor_at_mark()],m(J,"source_location=",a.to_a(x)),x[b(x.length,1)]);e(n["$[]"]("title"))&&(x=[pa=n.$delete("title")],m(J,"title=",a.to_a(x)),x[b(x.length,1)],e(e(r=Ia=p(u,"CAPTION_ATTRIBUTE_NAMES")["$[]"](J.$context()))?C.$attributes()["$[]"](Ia):r)&&J.$assign_caption(n.$delete("caption"))); +x=[n["$[]"]("style")];m(J,"style=",a.to_a(x));x[b(x.length,1)];e(Ra=e(r=J.$id())?r:(x=[n["$[]"]("id")],m(J,"id=",a.to_a(x)),x[b(x.length,1)]))&&(e(e(pa)?pa["$include?"](p(u,"ATTR_REF_HEAD")):J["$title?"]())&&J.$title(),e(C.$register("refs",[Ra,J]))||this.$logger().$warn(this.$message_with_context("id assigned to block already in use: "+Ra,f(["source_location"],{source_location:d.$cursor_at_mark()}))));e(n["$empty?"]())||J.$update_attributes(n);J.$commit_subs();e(J["$sub?"]("callouts"))&&!e(this.$catalog_callouts(J.$source(), +C))&&J.$remove_sub("callouts");return J}catch(kb){if(kb===a.returner)return kb.$v;throw kb;}},E.$$arity=-3);a.defs(d,"$read_paragraph_lines",D=function(c,d,g){null==g&&(g=f([],{}));var h=["break_on_blank_lines",!0];m(g,"[]=",a.to_a(h));h[b(h.length,1)];h=["break_on_list_continuation",!0];m(g,"[]=",a.to_a(h));h[b(h.length,1)];h=["preserve_last_line",!0];m(g,"[]=",a.to_a(h));h[b(h.length,1)];d=e(d)?e(p(u,"Compliance").$block_terminates_paragraph())?p(u,"StartOfBlockOrListProc"):p(u,"StartOfListProc"): +e(p(u,"Compliance").$block_terminates_paragraph())?p(u,"StartOfBlockProc"):p(u,"NoOp");return m(c,"read_lines_until",[g],d.$to_proc())},D.$$arity=-3);a.defs(d,"$is_delimited_block?",J=function(d,f){var g,m;null==f&&(f=c);if(!e(e(g=l(m=d.$length(),1))?p(u,"DELIMITED_BLOCK_HEADS")["$[]"](d.$slice(0,2)):g))return c;if(m["$=="](2)){var h=d;var n=2}else if(e(k(m,5))?(h=d,n=m):h=d.$slice(0,n=4),e(e(g=p(u,"Compliance").$markdown_syntax())?h["$start_with?"]("`"):g))if(n["$=="](4))if(!h["$=="]("````")&&(h= +h.$chop())["$=="]("```"))d=h,m=n=3;else return c;else{if(!h["$=="]("```"))return c}else if(n["$=="](3))return c;var A=p(u,"DELIMITED_BLOCKS")["$[]"](h);g=a.to_ary(A);var r=null==g[0]?c:g[0];var q=null==g[1]?c:g[1];A;return e(e(g=r)?e(A=m["$=="](n))?A:this["$uniform?"](d.$slice(1,m),p(u,"DELIMITED_BLOCK_TAILS")["$[]"](h),b(m,1)):g)?e(f)?p(u,"BlockMatchData").$new(r,q,h,d):!0:c},J.$$arity=-2);a.defs(d,"$build_block",F=function(a,b,d,g,m,h,k){var n,A,r;null==k&&(k=f([],{}));b["$=="]("skip")?(n=[!0,"simple"], +A=n[0],r=n[1]):b["$=="]("raw")?(n=[!1,"simple"],A=n[0],r=n[1]):(n=[!1,b],A=n[0],r=n[1]);n;if(e(d["$nil?"]()))r["$=="]("verbatim")?r=m.$read_lines_until(f(["break_on_blank_lines","break_on_list_continuation"],{break_on_blank_lines:!0,break_on_list_continuation:!0})):(b["$=="]("compound")&&(b="simple"),r=this.$read_paragraph_lines(m,!1,f(["skip_line_comments","skip_processing"],{skip_line_comments:!0,skip_processing:A}))),d=c;else if(e(r["$!="]("compound")))r=m.$read_lines_until(f(["terminator","skip_processing", +"context","cursor"],{terminator:d,skip_processing:A,context:a,cursor:"at_mark"})),d=c;else if(d["$=="](!1))r=c,d=m;else{r=c;var q=m.$cursor();d=p(u,"Reader").$new(m.$read_lines_until(f(["terminator","skip_processing","context","cursor"],{terminator:d,skip_processing:A,context:a,cursor:"at_mark"})),q)}if(b["$=="]("verbatim"))if(m=(e(n=h["$[]"]("tabsize"))?n:g.$document().$attributes()["$[]"]("tabsize")).$to_i(),e(A=h["$[]"]("indent")))this["$adjust_indentation!"](r,A.$to_i(),m);else{if(e(l(m,0)))this["$adjust_indentation!"](r, +-1,m)}else if(b["$=="]("skip"))return c;if(e(k=k["$[]"]("extension")))if(h.$delete("style"),e(a=k.$process_method()["$[]"](g,e(n=d)?n:p(u,"Reader").$new(r),h.$merge())))h.$replace(a.$attributes()),e(a.$content_model()["$=="]("compound")?(r=a.$lines())["$empty?"]()["$!"]():a.$content_model()["$=="]("compound"))&&(b="compound",d=p(u,"Reader").$new(r));else return c;else a=p(u,"Block").$new(g,a,f(["content_model","source","attributes"],{content_model:b,source:r,attributes:h}));b["$=="]("compound")&& +this.$parse_blocks(d,a);return a},F.$$arity=-7);a.defs(d,"$parse_blocks",H=function(a,b,d){var f,g,m=c;null==d&&(d=c);if(e(d))for(;e(e(f=e(g=m=this.$next_block(a,b,d.$merge()))?b.$blocks()["$<<"](m):g)?f:a["$has_more_lines?"]()););else for(;e(e(f=e(g=m=this.$next_block(a,b))?b.$blocks()["$<<"](m):g)?f:a["$has_more_lines?"]()););return c},H.$$arity=-3);a.defs(d,"$parse_list",x=function(a,b,d,f){var g,m;null==v["~"]&&(v["~"]=c);d=p(u,"List").$new(d,b);for(b=p(u,"ListRxMap")["$[]"](b);e(e(g=a["$has_more_lines?"]())? +b["$=~"](a.$peek_line()):g);){if(e(m=this.$parse_list_item(a,d,v["~"],(g=v["~"])===c?c:g["$[]"](1),f)))d.$items()["$<<"](m);if(e(g=a.$skip_blank_lines()))g;else break}return d},x.$$arity=4);a.defs(d,"$catalog_callouts",I=function(a,b){var d,f=c,h=c;f=!1;h=0;e(a["$include?"]("<"))&&m(a,"scan",[p(u,"CalloutScanRx")],(d=function(){var a;e(((a=v["~"])===c?c:a["$[]"](0))["$start_with?"]("\\"))||b.$callouts().$register(((a=v["~"])===c?c:a["$[]"](2))["$=="](".")?(h=g(h,1)).$to_s():(a=v["~"])===c?c:a["$[]"](2)); +return f=!0},d.$$s=this,d.$$arity=0,d));return f},I.$$arity=2);a.defs(d,"$catalog_inline_anchor",V=function(a,b,d,g,m){var h;null==m&&(m=d.$document());e(e(h=b)?b["$include?"](p(u,"ATTR_REF_HEAD")):h)&&(b=m.$sub_attributes(b));e(m.$register("refs",[a,p(u,"Inline").$new(d,"anchor",b,f(["type","id"],{type:"ref",id:a}))]))||(e(p(u,"Reader")["$==="](g))&&(g=g.$cursor()),this.$logger().$warn(this.$message_with_context("id assigned to anchor already in use: "+a,f(["source_location"],{source_location:g})))); +return c},V.$$arity=-5);a.defs(d,"$catalog_inline_anchors",W=function(a,b,d,h){var k,n;e(e(k=a["$include?"]("[["))?k:a["$include?"]("or:"))&&m(a,"scan",[p(u,"InlineAnchorScanRx")],(n=function(){var a=n.$$s||this,m,k,A,r,q=c,t=c;if(e(r=(m=v["~"])===c?c:m["$[]"](1))){if(e(e(m=e(k=q=(A=v["~"])===c?c:A["$[]"](2))?q["$include?"](p(u,"ATTR_REF_HEAD")):k)?(q=d.$sub_attributes(q))["$empty?"]():m))return c}else if(r=(m=v["~"])===c?c:m["$[]"](3),e(q=(m=v["~"])===c?c:m["$[]"](4)))if(e(q["$include?"]("]")))q= +q.$gsub("\\]","]"),e(q["$include?"](p(u,"ATTR_REF_HEAD")))&&(q=d.$sub_attributes(q));else if(e(e(m=q["$include?"](p(u,"ATTR_REF_HEAD")))?(q=d.$sub_attributes(q))["$empty?"]():m))return c;if(e(d.$register("refs",[r,p(u,"Inline").$new(b,"anchor",q,f(["type","id"],{type:"ref",id:r}))])))return c;k=h.$cursor_at_mark();e(l(t=g(((m=v["~"])===c?c:m.$pre_match()).$count(p(u,"LF")),e(((m=v["~"])===c?c:m["$[]"](0))["$start_with?"](p(u,"LF")))?1:0),0))&&(k=k.$dup()).$advance(t);return a.$logger().$warn(a.$message_with_context("id assigned to anchor already in use: "+ +r,f(["source_location"],{source_location:k})))},n.$$s=this,n.$$arity=0,n));return c},W.$$arity=4);a.defs(d,"$catalog_inline_biblio_anchor",T=function(a,b,d,g){e(d.$document().$register("refs",[a,p(u,"Inline").$new(d,"anchor",e(b)?"["+b+"]":b,f(["type","id"],{type:"bibref",id:a}))]))||this.$logger().$warn(this.$message_with_context("id assigned to bibliography anchor already in use: "+a,f(["source_location"],{source_location:g.$cursor()})));return c},T.$$arity=4);a.defs(d,"$parse_description_list", +ja=function(d,f,g){var h;null==v["~"]&&(v["~"]=c);g=p(u,"List").$new(g,"dlist");var k=p(u,"DescriptionListSiblingRx")["$[]"](f["$[]"](2));for(g.$items()["$<<"](f=this.$parse_list_item(d,g,f,k));e(e(h=d["$has_more_lines?"]())?k["$=~"](d.$peek_line()):h);){var l=this.$parse_list_item(d,g,v["~"],k);if(e(f["$[]"](1)))g.$items()["$<<"](f=l);else f["$[]"](0)["$<<"](l["$[]"](0)["$[]"](0)),l=[1,l["$[]"](1)],m(f,"[]=",a.to_a(l)),l[b(l.length,1)]}return g},ja.$$arity=3);a.defs(d,"$parse_callout_list",ua=function(d, +h,k,l){var n,A,r,q;k=p(u,"List").$new(k,"colist");var t=1;for(r=0;e(e(n=h)?n:e(A=h=p(u,"CalloutListRx").$match(d.$peek_line()))?d.$mark():A);)(q=h["$[]"](1))["$=="](".")&&(q=(r=g(r,1)).$to_s()),q["$=="](t.$to_s())||this.$logger().$warn(this.$message_with_context("callout list item index: expected "+t+", got "+q,f(["source_location"],{source_location:d.$cursor_at_mark()}))),e(h=this.$parse_list_item(d,k,h,"<1>"))&&(k.$items()["$<<"](h),e((q=l.$callout_ids(k.$items().$size()))["$empty?"]())?this.$logger().$warn(this.$message_with_context("no callout found for <"+ +k.$items().$size()+">",f(["source_location"],{source_location:d.$cursor_at_mark()}))):(q=["coids",q],m(h.$attributes(),"[]=",a.to_a(q)),q[b(q.length,1)])),t=g(t,1),h=c;l.$next_list();return k},ua.$$arity=4);a.defs(d,"$parse_list_item",da=function(d,g,h,k,l){var n,A,r,q=c,t=c,z,y=c,G=c,w,Q=c,C=c;null==l&&(l=c);if((r=g.$context())["$=="]("dlist")){if(q=!0,t=p(u,"ListItem").$new(g,l=h["$[]"](1)),e(e(n=l["$start_with?"]("[["))?p(u,"LeadingInlineAnchorRx")["$=~"](l):n)&&this.$catalog_inline_anchor((n= +v["~"])===c?c:n["$[]"](1),e(n=(A=v["~"])===c?c:A["$[]"](2))?n:((A=v["~"])===c?c:A.$post_match()).$lstrip(),t,d),e(z=h["$[]"](3))&&(y=!0),h=p(u,"ListItem").$new(g,z),e(g.$document().$sourcemap())){var x=[d.$cursor()];m(t,"source_location=",a.to_a(x));x[b(x.length,1)];e(y)?(x=[t.$source_location()],m(h,"source_location=",a.to_a(x)),x[b(x.length,1)]):G=!0}}else if(y=!0,h=p(u,"ListItem").$new(g,z=h["$[]"](2)),e(g.$document().$sourcemap())&&(x=[d.$cursor()],m(h,"source_location=",a.to_a(x)),x[b(x.length, +1)]),r["$=="]("ulist"))x=[k],m(h,"marker=",a.to_a(x)),x[b(x.length,1)],e(z["$start_with?"]("["))&&(e(e(n=l)?l["$=="]("bibliography"):n)?e(p(u,"InlineBiblioAnchorRx")["$=~"](z))&&this.$catalog_inline_biblio_anchor((n=v["~"])===c?c:n["$[]"](1),(n=v["~"])===c?c:n["$[]"](2),h,d):e(z["$start_with?"]("[["))?e(p(u,"LeadingInlineAnchorRx")["$=~"](z))&&this.$catalog_inline_anchor((n=v["~"])===c?c:n["$[]"](1),(n=v["~"])===c?c:n["$[]"](2),h,d):e(z["$start_with?"]("[ ] ","[x] ","[*] "))&&(g.$set_option("checklist"), +x=["checkbox",""],m(h.$attributes(),"[]=",a.to_a(x)),x[b(x.length,1)],e(z["$start_with?"]("[ "))||(x=["checked",""],m(h.$attributes(),"[]=",a.to_a(x)),x[b(x.length,1)]),x=[z.$slice(4,z.$length())],m(h,"text=",a.to_a(x)),x[b(x.length,1)]));else{if(r["$=="]("olist")){A=this.$resolve_ordered_list_marker(k,w=g.$items().$size(),!0,d);n=a.to_ary(A);k=null==n[0]?c:n[0];var R=null==n[1]?c:n[1];A;x=[k];m(h,"marker=",a.to_a(x));x[b(x.length,1)];e((n=w["$=="](0))?l["$!"]():w["$=="](0))&&(x=[e(n=R)?n:(e(A=p(u, +"ORDERED_LIST_STYLES")["$[]"](b(k.$length(),1)))?A:"arabic").$to_s()],m(g,"style=",a.to_a(x)),x[b(x.length,1)])}else x=[k],m(h,"marker=",a.to_a(x)),x[b(x.length,1)];e(e(n=z["$start_with?"]("[["))?p(u,"LeadingInlineAnchorRx")["$=~"](z):n)&&this.$catalog_inline_anchor((n=v["~"])===c?c:n["$[]"](1),(n=v["~"])===c?c:n["$[]"](2),h,d)}d.$shift();g=d.$cursor();d=p(u,"Reader").$new(this.$read_lines_for_list_item(d,r,k,y),g);if(e(d["$has_more_lines?"]())){e(G)&&(x=[g],m(h,"source_location=",a.to_a(x)),x[b(x.length, +1)]);G=d.$skip_line_comments();e(k=d.$peek_line())&&(e(G["$empty?"]())||d.$unshift_lines(G),e(k["$empty?"]())||(Q=!0,e(q)||(y=c)));if(e(y=this.$next_block(d,h,f([],{}),f(["text_only","list_type"],{text_only:e(y)?c:!0,list_type:r}))))h.$blocks()["$<<"](y);for(;e(d["$has_more_lines?"]());)if(e(y=this.$next_block(d,h,f([],{}),f(["list_type"],{list_type:r}))))h.$blocks()["$<<"](y);e(e(n=e(A=Q)?C=h.$blocks()["$[]"](0):A)?C.$context()["$=="]("paragraph"):n)&&h.$fold_first()}return e(q)?[[t],e(e(n=h["$text?"]())? +n:h["$blocks?"]())?h:c]:h},da.$$arity=-5);a.defs(d,"$read_lines_for_list_item",ba=function(d,g,h,k){var l,n,A,r,q,t,z,y=c,G=c,w=c,Q=c,C=c,x=c,R=c,L=c;G=R=L=c;null==h&&(h=c);null==k&&(k=!0);y=[];G="inactive";w=!1;Q=c;for(C=g["$=="]("dlist");e(d["$has_more_lines?"]());){x=d.$read_line();if(e(this["$is_sibling_list_item?"](x,g,h)))break;R=e(y["$empty?"]())?c:y["$[]"](-1);if(R["$=="](p(u,"LIST_CONTINUATION"))&&(G["$=="]("inactive")&&(G="active",k=!0,e(w)||(L=[-1,""],m(y,"[]=",a.to_a(L)),L[b(L.length, +1)])),x["$=="](p(u,"LIST_CONTINUATION")))){e(G["$!="]("frozen"))&&(G="frozen",y["$<<"](x));x=c;continue}if(e(L=this["$is_delimited_block?"](x,!0)))if(G["$=="]("active"))y["$<<"](x),y.$concat(d.$read_lines_until(f(["terminator","read_last_line","context"],{terminator:L.$terminator(),read_last_line:!0,context:c}))),G="inactive";else break;else if(e(e(l=e(n=C)?G["$!="]("active"):n)?p(u,"BlockAttributeLineRx")["$match?"](x):l))break;else if(e((l=G["$=="]("active"))?x["$empty?"]()["$!"]():G["$=="]("active")))if(e(p(u, +"LiteralParagraphRx")["$match?"](x)))d.$unshift_line(x),e(C)?y.$concat(m(d,"read_lines_until",[f(["preserve_last_line","break_on_blank_lines","break_on_list_continuation"],{preserve_last_line:!0,break_on_blank_lines:!0,break_on_list_continuation:!0})],(A=function(a){var b=A.$$s||this;null==a&&(a=c);return b["$is_sibling_list_item?"](a,g,h)},A.$$s=this,A.$$arity=1,A))):y.$concat(d.$read_lines_until(f(["preserve_last_line","break_on_blank_lines","break_on_list_continuation"],{preserve_last_line:!0, +break_on_blank_lines:!0,break_on_list_continuation:!0}))),G="inactive";else if(e(e(l=e(n=p(u,"BlockTitleRx")["$match?"](x))?n:p(u,"BlockAttributeLineRx")["$match?"](x))?l:p(u,"AttributeEntryRx")["$match?"](x)))y["$<<"](x);else e(R=m(e(w)?["dlist"]:p(u,"NESTABLE_LIST_CONTEXTS"),"find",[],(r=function(a){null==a&&(a=c);return p(u,"ListRxMap")["$[]"](a)["$match?"](x)},r.$$s=this,r.$$arity=1,r)))&&(w=!0,e((l=R["$=="]("dlist"))?((n=v["~"])===c?c:n["$[]"](3))["$nil_or_empty?"]():R["$=="]("dlist"))&&(k=!1)), +y["$<<"](x),G="inactive";else if(e(e(l=R)?R["$empty?"]():l)){if(e(x["$empty?"]())){if(!e(x=e(l=d.$skip_blank_lines())?d.$read_line():l))break;if(e(this["$is_sibling_list_item?"](x,g,h)))break}if(x["$=="](p(u,"LIST_CONTINUATION")))Q=y.$size(),y["$<<"](x);else if(e(k))if(e(this["$is_sibling_list_item?"](x,g,h)))break;else if(e(R=m(p(u,"NESTABLE_LIST_CONTEXTS"),"find",[],(q=function(a){null==a&&(a=c);return p(u,"ListRxMap")["$[]"](a)["$=~"](x)},q.$$s=this,q.$$arity=1,q))))y["$<<"](x),w=!0,e((l=R["$=="]("dlist"))? +((n=v["~"])===c?c:n["$[]"](3))["$nil_or_empty?"]():R["$=="]("dlist"))&&(k=!1);else if(e(p(u,"LiteralParagraphRx")["$match?"](x)))d.$unshift_line(x),e(C)?y.$concat(m(d,"read_lines_until",[f(["preserve_last_line","break_on_blank_lines","break_on_list_continuation"],{preserve_last_line:!0,break_on_blank_lines:!0,break_on_list_continuation:!0})],(t=function(a){var b=t.$$s||this;null==a&&(a=c);return b["$is_sibling_list_item?"](a,g,h)},t.$$s=this,t.$$arity=1,t))):y.$concat(d.$read_lines_until(f(["preserve_last_line", +"break_on_blank_lines","break_on_list_continuation"],{preserve_last_line:!0,break_on_blank_lines:!0,break_on_list_continuation:!0})));else break;else e(w)||y.$pop(),y["$<<"](x),k=!0}else e(x["$empty?"]())||(k=!0),e(R=m(e(w)?["dlist"]:p(u,"NESTABLE_LIST_CONTEXTS"),"find",[],(z=function(a){null==a&&(a=c);return p(u,"ListRxMap")["$[]"](a)["$=~"](x)},z.$$s=this,z.$$arity=1,z)))&&(w=!0,e((l=R["$=="]("dlist"))?((n=v["~"])===c?c:n["$[]"](3))["$nil_or_empty?"]():R["$=="]("dlist"))&&(k=!1)),y["$<<"](x);x= +c}e(x)&&d.$unshift_line(x);e(Q)&&(L=[Q,""],m(y,"[]=",a.to_a(L)),L[b(L.length,1)]);for(;!e(y["$empty?"]());)if(e((G=y["$[]"](-1))["$empty?"]()))y.$pop();else{G["$=="](p(u,"LIST_CONTINUATION"))&&y.$pop();break}return y},ba.$$arity=-3);a.defs(d,"$initialize_section",ka=function(d,g,h){var k,n=c,A=c,r=c,q=c,t=c;null==h&&(h=f([],{}));var y=g.$document();var z=(k=y.$doctype())["$=="]("book");e(y.$sourcemap())&&(n=d.$cursor());var v=h["$[]"](1);var G=this.$parse_section_title(d,y,h["$[]"]("id"));var w=a.to_ary(G); +var Q=null==w[0]?c:w[0];var C=null==w[1]?c:w[1];var x=null==w[2]?c:w[2];var R=null==w[3]?c:w[3];var L=null==w[4]?c:w[4];G;if(e(C))A=["reftext",C],m(h,"[]=",a.to_a(A)),A[b(A.length,1)];else h["$[]"]("reftext");e(v)?e(e(w=z)?v["$=="]("abstract"):w)?(w=["chapter",1],v=w[0],R=w[1],w):e(e(w=v["$start_with?"]("sect"))?p(u,"SectionLevelStyleRx")["$match?"](v):w)?v="section":(w=[v,!0],v=w[0],r=w[1],w,R["$=="](0)&&(R=1),q=v["$=="]("appendix")):e(z)?v=R["$=="](0)?"part":e(l(R,1))?"section":"chapter":e(k["$=="]("manpage")? +x.$casecmp("synopsis")["$=="](0):k["$=="]("manpage"))?(w=["synopsis",!0],v=w[0],r=w[1],w):v="section";k=p(u,"Section").$new(g,R);w=[Q,x,v,n];k["$id="](w[0]);k["$title="](w[1]);k["$sectname="](w[2]);k["$source_location="](w[3]);w;e(r)?(A=[!0],m(k,"special=",a.to_a(A)),A[b(A.length,1)],e(q)?(A=[!0],m(k,"numbered=",a.to_a(A)),A[b(A.length,1)]):y.$attributes()["$[]"]("sectnums")["$=="]("all")&&(A=[e(e(w=z)?R["$=="](1):w)?"chapter":!0],m(k,"numbered=",a.to_a(A)),A[b(A.length,1)])):e(e(w=y.$attributes()["$[]"]("sectnums"))? +l(R,0):w)?(A=[e(k.$special())?e(w=g.$numbered())?!0:w:!0],m(k,"numbered=",a.to_a(A)),A[b(A.length,1)]):e(e(w=e(G=z)?R["$=="](0):G)?y.$attributes()["$[]"]("partnums"):w)&&(A=[!0],m(k,"numbered=",a.to_a(A)),A[b(A.length,1)]);e(g=e(w=k.$id())?w:(A=[e(y.$attributes()["$key?"]("sectids"))?t=p(u,"Section").$generate_id(k.$title(),y):c],m(k,"id=",a.to_a(A)),A[b(A.length,1)]))&&(e(t)||e(x["$include?"](p(u,"ATTR_REF_HEAD")))&&k.$title(),e(y.$register("refs",[g,k]))||this.$logger().$warn(this.$message_with_context("id assigned to section already in use: "+ +g,f(["source_location"],{source_location:d.$cursor_at_line(b(d.$lineno(),e(L)?1:2))}))));k.$update_attributes(h);d.$skip_blank_lines();return k},ka.$$arity=-3);a.defs(d,"$is_next_line_section?",U=function(a,b){var d,f,g=c;return e(e(d=g=b["$[]"](1))?e(f=g["$=="]("discrete"))?f:g["$=="]("float"):d)?c:e(p(u,"Compliance").$underline_style_section_titles())?(a=a.$peek_lines(2,e(d=g)?g["$=="]("comment"):d),this["$is_section_title?"](e(d=a["$[]"](0))?d:"",a["$[]"](1))):this["$atx_section_title?"](e(d=a.$peek_line())? +d:"")},U.$$arity=2);a.defs(d,"$is_next_line_doctitle?",K=function(a,b,d){var f,h=c;return e(d)?e(f=h=this["$is_next_line_section?"](a,b))?g(h,d.$to_i())["$=="](0):f:this["$is_next_line_section?"](a,b)["$=="](0)},K.$$arity=3);a.defs(d,"$is_section_title?",M=function(a,b){var d;null==b&&(b=c);return e(d=this["$atx_section_title?"](a))?d:e(b["$nil_or_empty?"]())?c:this["$setext_section_title?"](a,b)},M.$$arity=-2);a.defs(d,"$atx_section_title?",N=function(a){var d;return e(e(p(u,"Compliance").$markdown_syntax())? +e(d=a["$start_with?"]("=","#"))?p(u,"ExtAtxSectionTitleRx")["$=~"](a):d:e(d=a["$start_with?"]("="))?p(u,"AtxSectionTitleRx")["$=~"](a):d)?b(((d=v["~"])===c?c:d["$[]"](1)).$length(),1):c},N.$$arity=1);a.defs(d,"$setext_section_title?",P=function(a,d){var f,g,h,m,l=c,n=c;return e(e(f=e(g=e(h=m=p(u,"SETEXT_SECTION_LEVELS")["$[]"](l=d.$chr()))?this["$uniform?"](d,l,n=d.$length()):h)?p(u,"SetextSectionTitleRx")["$match?"](a):g)?k(b(a.$length(),n).$abs(),2):f)?m:c},P.$$arity=2);a.defs(d,"$parse_section_title", +va=function(a,d,f){var h,m,l,n,A,r=c,q=c,t=c,y=c,z=c,w=c;null==f&&(f=c);var G=c;var C=a.$read_line();e(e(p(u,"Compliance").$markdown_syntax())?e(h=C["$start_with?"]("=","#"))?p(u,"ExtAtxSectionTitleRx")["$=~"](C):h:e(h=C["$start_with?"]("="))?p(u,"AtxSectionTitleRx")["$=~"](C):h)?(h=[b(((m=v["~"])===c?c:m["$[]"](1)).$length(),1),(m=v["~"])===c?c:m["$[]"](2),!0],r=h[0],q=h[1],t=h[2],h,!e(f)&&e(e(h=e(m=q["$end_with?"]("]]"))?p(u,"InlineSectionAnchorRx")["$=~"](q):m)?((m=v["~"])===c?c:m["$[]"](1))["$!"](): +h)&&(h=[q.$slice(0,b(q.$length(),((m=v["~"])===c?c:m["$[]"](0)).$length())),(m=v["~"])===c?c:m["$[]"](2),(m=v["~"])===c?c:m["$[]"](3)],q=h[0],f=h[1],G=h[2],h)):e(e(h=e(m=e(l=e(n=e(A=p(u,"Compliance").$underline_style_section_titles())?y=a.$peek_line(!0):A)?r=p(u,"SETEXT_SECTION_LEVELS")["$[]"](z=y.$chr()):n)?this["$uniform?"](y,z,w=y.$length()):l)?q=e(l=p(u,"SetextSectionTitleRx")["$=~"](C))?(n=v["~"])===c?c:n["$[]"](1):l:m)?k(b(C.$length(),w).$abs(),2):h)?(t=!1,!e(f)&&e(e(h=e(m=q["$end_with?"]("]]"))? +p(u,"InlineSectionAnchorRx")["$=~"](q):m)?((m=v["~"])===c?c:m["$[]"](1))["$!"]():h)&&(h=[q.$slice(0,b(q.$length(),((m=v["~"])===c?c:m["$[]"](0)).$length())),(m=v["~"])===c?c:m["$[]"](2),(m=v["~"])===c?c:m["$[]"](3)],q=h[0],f=h[1],G=h[2],h),a.$shift()):this.$raise("Unrecognized section at "+a.$cursor_at_prev_line());e(d["$attr?"]("leveloffset"))&&(r=g(r,d.$attr("leveloffset").$to_i()),e(k(r,0))&&(r=0));return[f,G,q,r,t]},va.$$arity=-3);a.defs(d,"$parse_header_metadata",fa=function(d,h){var k,l,n,A, +q=c,t=c,y=c,z=c,v=c,w=c,G=c,C=c,x=c,Q=c,L=C=c,B=c;x=G=v=z=t=c;null==h&&(h=c);q=e(k=h)?h.$attributes():k;this.$process_attribute_entries(d,h);k=[t=f([],{}),c,c];y=k[0];z=k[1];v=k[2];k;e(e(k=d["$has_more_lines?"]())?d["$next_line_empty?"]()["$!"]():k)?(e((w=this.$process_authors(d.$read_line()))["$empty?"]())||(e(h)&&(m(w,"each",[],(l=function(d,f){null==d&&(d=c);null==f&&(f=c);if(e(q["$key?"](d)))return c;d=[d,e(r("::","String")["$==="](f))?h.$apply_header_subs(f):f];m(q,"[]=",a.to_a(d));return d[b(d.length, +1)]},l.$$s=this,l.$$arity=2,l)),z=q["$[]"]("author"),v=q["$[]"]("authorinitials"),t=q["$[]"]("authors")),y=w),this.$process_attribute_entries(d,h),G=f([],{}),e(e(k=d["$has_more_lines?"]())?d["$next_line_empty?"]()["$!"]():k)&&(C=d.$read_line(),e(x=p(u,"RevisionInfoLineRx").$match(C))?(e(x["$[]"](1))&&(Q=["revnumber",x["$[]"](1).$rstrip()],m(G,"[]=",a.to_a(Q)),Q[b(Q.length,1)]),e((C=x["$[]"](2).$strip())["$empty?"]())||(Q=e(e(k=x["$[]"](1)["$!"]())?C["$start_with?"]("v"):k)?["revnumber",C.$slice(1, +C.$length())]:["revdate",C],m(G,"[]=",a.to_a(Q)),Q[b(Q.length,1)]),e(x["$[]"](3))&&(Q=["revremark",x["$[]"](3).$rstrip()],m(G,"[]=",a.to_a(Q)),Q[b(Q.length,1)])):d.$unshift_line(C)),e(G["$empty?"]())||(e(h)&&m(G,"each",[],(n=function(d,f){null==d&&(d=c);null==f&&(f=c);if(e(q["$key?"](d)))return c;Q=[d,h.$apply_header_subs(f)];m(q,"[]=",a.to_a(Q));return Q[b(Q.length,1)]},n.$$s=this,n.$$arity=2,n)),y.$update(G)),this.$process_attribute_entries(d,h),d.$skip_blank_lines()):w=f([],{});if(e(h)){if(e(e(k= +q["$key?"]("author"))?(L=q["$[]"]("author"))["$!="](z):k))w=this.$process_authors(L,!0,!1),e(q["$[]"]("authorinitials")["$!="](v))&&w.$delete("authorinitials");else if(e(e(k=q["$key?"]("authors"))?(L=q["$[]"]("authors"))["$!="](t):k))w=this.$process_authors(L,!0);else{k=[[],1,"author_1",!1,!1];B=k[0];t=k[1];z=k[2];v=k[3];G=k[4];for(k;e(q["$key?"](z));)(x=q["$[]"](z))["$=="](w["$[]"](z))?(B["$<<"](c),G=!0):(B["$<<"](x),v=!0),z="author_"+(t=g(t,1));e(v)?(e(G)&&m(B,"each_with_index",[],(A=function(d, +f){var h=A.$$s||this,k,p=c;null==d&&(d=c);null==f&&(f=c);if(e(d))return c;Q=[f,m([w["$[]"]("firstname_"+(p=g(f,1))),w["$[]"]("middlename_"+p),w["$[]"]("lastname_"+p)].$compact(),"map",[],(k=function(a){null==a&&(a=c);return a.$tr(" ","_")},k.$$s=h,k.$$arity=1,k)).$join(" ")];m(B,"[]=",a.to_a(Q));return Q[b(Q.length,1)]},A.$$s=this,A.$$arity=2,A)),w=this.$process_authors(B,!0,!1)):w=f([],{})}e(w["$empty?"]())?e(k=y["$[]"]("authorcount"))?k:(Q=["authorcount",(Q=["authorcount",0],m(q,"[]=",a.to_a(Q)), +Q[b(Q.length,1)])],m(y,"[]=",a.to_a(Q)),Q[b(Q.length,1)]):(q.$update(w),e(e(k=q["$key?"]("email")["$!"]())?q["$key?"]("email_1"):k)&&(Q=["email",q["$[]"]("email_1")],m(q,"[]=",a.to_a(Q)),Q[b(Q.length,1)]))}return y},fa.$$arity=-2);a.defs(d,"$process_authors",wa=function(d,h,k){var l,n,A=c,q=c,r=c;null==h&&(h=!1);null==k&&(k=!0);A=f([],{});q=0;m(e(e(l=k)?d["$include?"](";"):l)?d.$split(p(u,"AuthorDelimiterRx")):[].concat(a.to_a(d)),"each",[],(n=function(d){var k=n.$$s||this,l,r,t,y,z=c,v=c,w=c,G=c, +C=c,x=c,Q=c,L=c;null==d&&(d=c);if(e(d["$empty?"]()))return c;z=f([],{});(q=g(q,1))["$=="](1)?m(p(u,"AuthorKeys"),"each",[],(l=function(e){null==e&&(e=c);e=[e.$to_sym(),e];m(z,"[]=",a.to_a(e));return e[b(e.length,1)]},l.$$s=k,l.$$arity=1,l)):m(p(u,"AuthorKeys"),"each",[],(r=function(e){null==e&&(e=c);e=[e.$to_sym(),""+e+"_"+q];m(z,"[]=",a.to_a(e));return e[b(e.length,1)]},r.$$s=k,r.$$arity=1,r));if(e(h)){if(e(d["$include?"]("<"))&&(v=[z["$[]"]("author"),d.$tr("_"," ")],m(A,"[]=",a.to_a(v)),v[b(v.length, +1)],d=d.$gsub(p(u,"XmlSanitizeRx"),"")),(w=d.$split(c,3)).$size()["$=="](3))w["$<<"](w.$pop().$squeeze(" "))}else e(G=p(u,"AuthorInfoLineRx").$match(d))&&(w=G.$to_a()).$shift();e(w)?(C=(v=[z["$[]"]("firstname"),x=w["$[]"](0).$tr("_"," ")],m(A,"[]=",a.to_a(v)),v[b(v.length,1)]),v=[z["$[]"]("authorinitials"),x.$chr()],m(A,"[]=",a.to_a(v)),v[b(v.length,1)],e(w["$[]"](1))&&(e(w["$[]"](2))?(v=[z["$[]"]("middlename"),Q=w["$[]"](1).$tr("_"," ")],m(A,"[]=",a.to_a(v)),v[b(v.length,1)],v=[z["$[]"]("lastname"), +L=w["$[]"](2).$tr("_"," ")],m(A,"[]=",a.to_a(v)),v[b(v.length,1)],C=g(g(g(g(x," "),Q)," "),L),v=[z["$[]"]("authorinitials"),""+x.$chr()+Q.$chr()+L.$chr()]):(v=[z["$[]"]("lastname"),L=w["$[]"](1).$tr("_"," ")],m(A,"[]=",a.to_a(v)),v[b(v.length,1)],C=g(g(x," "),L),v=[z["$[]"]("authorinitials"),""+x.$chr()+L.$chr()]),m(A,"[]=",a.to_a(v)),v[b(v.length,1)]),e(t=A["$[]"](z["$[]"]("author")))?t:(v=[z["$[]"]("author"),C],m(A,"[]=",a.to_a(v)),v[b(v.length,1)]),e(e(t=h)?t:w["$[]"](3)["$!"]())||(v=[z["$[]"]("email"), +w["$[]"](3)],m(A,"[]=",a.to_a(v)),v[b(v.length,1)])):(v=[z["$[]"]("author"),(v=[z["$[]"]("firstname"),x=d.$squeeze(" ").$strip()],m(A,"[]=",a.to_a(v)),v[b(v.length,1)])],m(A,"[]=",a.to_a(v)),v[b(v.length,1)],v=[z["$[]"]("authorinitials"),x.$chr()],m(A,"[]=",a.to_a(v)),v[b(v.length,1)]);q["$=="](1)?v=["authors",A["$[]"](z["$[]"]("author"))]:(q["$=="](2)&&m(p(u,"AuthorKeys"),"each",[],(y=function(d){null==d&&(d=c);return e(A["$key?"](d))?(v=[""+d+"_1",A["$[]"](d)],m(A,"[]=",a.to_a(v)),v[b(v.length, +1)]):c},y.$$s=k,y.$$arity=1,y)),v=["authors",""+A["$[]"]("authors")+", "+A["$[]"](z["$[]"]("author"))]);m(A,"[]=",a.to_a(v));return v[b(v.length,1)]},n.$$s=this,n.$$arity=1,n));r=["authorcount",q];m(A,"[]=",a.to_a(r));r[b(r.length,1)];return A},wa.$$arity=-2);a.defs(d,"$parse_block_metadata_lines",ya=function(a,b,c,d){var g;null==c&&(c=f([],{}));for(null==d&&(d=f([],{}));e(this.$parse_block_metadata_line(a,b,c,d));)if(a.$shift(),e(g=a.$skip_blank_lines()))g;else break;return c},ya.$$arity=-3);a.defs(d, +"$parse_block_metadata_line",qa=function(d,g,h,k){var l,n,A=c,q=c,r=c;null==v["~"]&&(v["~"]=c);null==k&&(k=f([],{}));if(e(e(l=A=d.$peek_line())?e(k["$[]"]("text_only"))?A["$start_with?"]("[","/"):q=A["$start_with?"]("[",".","/",":"):l))if(e(A["$start_with?"]("[")))if(e(A["$start_with?"]("[["))){if(e(e(l=A["$end_with?"]("]]"))?p(u,"BlockAnchorRx")["$=~"](A):l))return d=["id",(l=v["~"])===c?c:l["$[]"](1)],m(h,"[]=",a.to_a(d)),d[b(d.length,1)],e(d=(l=v["~"])===c?c:l["$[]"](2))&&(d=["reftext",e(d["$include?"](p(u, +"ATTR_REF_HEAD")))?g.$sub_attributes(d):d],m(h,"[]=",a.to_a(d)),d[b(d.length,1)]),!0}else{if(e(e(l=A["$end_with?"]("]"))?p(u,"BlockAttributeListRx")["$=~"](A):l))return k=h["$[]"](1),e(g.$parse_attributes((l=v["~"])===c?c:l["$[]"](1),[],f(["sub_input","sub_result","into"],{sub_input:!0,sub_result:!0,into:h}))["$[]"](1))&&(d=[1,e(l=this.$parse_style_attribute(h,d))?l:k],m(h,"[]=",a.to_a(d)),d[b(d.length,1)]),!0}else if(e(e(l=q)?A["$start_with?"]("."):l)){if(e(p(u,"BlockTitleRx")["$=~"](A)))return d= +["title",(l=v["~"])===c?c:l["$[]"](1)],m(h,"[]=",a.to_a(d)),d[b(d.length,1)],!0}else if(e(e(l=q["$!"]())?l:A["$start_with?"]("/"))){if(e(A["$start_with?"]("//"))){if(A["$=="]("//"))return!0;if(e(e(l=q)?this["$uniform?"](A,"/",r=A.$length()):l)){if(r["$=="](3))return c;d.$read_lines_until(f(["terminator","skip_first_line","preserve_last_line","skip_processing","context"],{terminator:A,skip_first_line:!0,preserve_last_line:!0,skip_processing:!0,context:"comment"}));return!0}return e(A["$start_with?"]("///"))? +c:!0}}else if(e(e(l=e(n=q)?A["$start_with?"](":"):n)?p(u,"AttributeEntryRx")["$=~"](A):l))return this.$process_attribute_entry(d,g,h,v["~"]),!0;return c},qa.$$arity=-4);a.defs(d,"$process_attribute_entries",Ga=function(a,b,d){null==d&&(d=c);for(a.$skip_comment_lines();e(this.$process_attribute_entry(a,b,d));)a.$shift(),a.$skip_comment_lines()},Ga.$$arity=-3);a.defs(d,"$process_attribute_entry",Fa=function(a,d,f,g){var h,m,k,l,n=c;null==f&&(f=c);null==g&&(g=c);if(e(e(h=g)?h:g=e(a["$has_more_lines?"]())? +p(u,"AttributeEntryRx").$match(a.$peek_line()):c)){if(e((l=g["$[]"](2))["$nil_or_empty?"]()))l="";else if(e(l["$end_with?"](p(u,"LINE_CONTINUATION"),p(u,"LINE_CONTINUATION_LEGACY")))){h=[l.$slice(b(l.$length(),2),2),l.$slice(0,b(l.$length(),2)).$rstrip()];var A=h[0];l=h[1];for(h;e(e(m=a.$advance())?(n=e(k=a.$peek_line())?k:"")["$empty?"]()["$!"]():m)&&(n=n.$lstrip(),e(h=n["$end_with?"](A))&&(n=n.$slice(0,b(n.$length(),2)).$rstrip()),l=""+l+(e(l["$end_with?"](p(u,"HARD_LINE_BREAK")))?p(u,"LF"):" ")+ +n,e(h)););}this.$store_attribute(g["$[]"](1),l,d,f);return!0}return c},Fa.$$arity=-3);a.defs(d,"$store_attribute",Ha=function(a,d,f,h){var m;null==f&&(f=c);null==h&&(h=c);e(a["$end_with?"]("!"))?(a=a.$chop(),d=c):e(a["$start_with?"]("!"))&&(a=a.$slice(1,a.$length()),d=c);(a=this.$sanitize_attribute_name(a))["$=="]("numbered")?a="sectnums":a["$=="]("hardbreaks")?a="hardbreaks-option":a["$=="]("showtitle")&&this.$store_attribute("notitle",e(d)?c:"",f,h);e(f)?e(d)?(a["$=="]("leveloffset")&&(e(d["$start_with?"]("+"))? +d=g(f.$attr("leveloffset",0).$to_i(),d.$slice(1,d.$length()).$to_i()).$to_s():e(d["$start_with?"]("-"))&&(d=b(f.$attr("leveloffset",0).$to_i(),d.$slice(1,d.$length()).$to_i()).$to_s())),e(f=f.$set_attribute(a,d))&&(d=f,e(h)&&r(p(u,"Document"),"AttributeEntry").$new(a,d).$save_to(h))):e(e(m=f.$delete_attribute(a))?h:m)&&r(p(u,"Document"),"AttributeEntry").$new(a,d).$save_to(h):e(h)&&r(p(u,"Document"),"AttributeEntry").$new(a,d).$save_to(h);return[a,d]},Ha.$$arity=-3);a.defs(d,"$resolve_list_marker", +Y=function(a,b,e,d,f){null==e&&(e=0);null==d&&(d=!1);null==f&&(f=c);return a["$=="]("ulist")?b:a["$=="]("olist")?this.$resolve_ordered_list_marker(b,e,d,f)["$[]"](0):"<1>"},Y.$$arity=-3);a.defs(d,"$resolve_ordered_list_marker",Sa=function(a,b,d,h){var k,l,n=c,A=c,q=c,r=c;null==b&&(b=0);null==d&&(d=!1);null==h&&(h=c);if(e(a["$start_with?"](".")))return[a];n=A=m(p(u,"ORDERED_LIST_STYLES"),"find",[],(k=function(b){null==b&&(b=c);return p(u,"OrderedListMarkerRxMap")["$[]"](b)["$match?"](a)},k.$$s=this, +k.$$arity=1,k));"arabic"["$==="](n)?(e(d)&&(q=g(b,1),r=a.$to_i()),a="1."):"loweralpha"["$==="](n)?(e(d)&&(q=g("a"["$[]"](0).$ord(),b).$chr(),r=a.$chop()),a="a."):"upperalpha"["$==="](n)?(e(d)&&(q=g("A"["$[]"](0).$ord(),b).$chr(),r=a.$chop()),a="A."):"lowerroman"["$==="](n)?(e(d)&&(q=p(u,"Helpers").$int_to_roman(g(b,1)).$downcase(),r=a.$chop()),a="i)"):"upperroman"["$==="](n)&&(e(d)&&(q=p(u,"Helpers").$int_to_roman(g(b,1)),r=a.$chop()),a="I)");e(e(l=d)?q["$!="](r):l)&&this.$logger().$warn(this.$message_with_context("list item index: expected "+ +q+", got "+r,f(["source_location"],{source_location:h.$cursor()})));return[a,A]},Sa.$$arity=-2);a.defs(d,"$is_sibling_list_item?",Ka=function(a,b,d){var f,g;return e(r("::","Regexp")["$==="](d))?d["$match?"](a):e(f=p(u,"ListRxMap")["$[]"](b)["$=~"](a))?d["$=="](this.$resolve_list_marker(b,(g=v["~"])===c?c:g["$[]"](1))):f},Ka.$$arity=3);a.defs(d,"$parse_table",Ca=function(d,f,h){var k,n,A,q=c,t=c,z=A=c,y=c,v,w=c,C=c;f=p(u,"Table").$new(f,h);e(e(k=h["$key?"]("cols"))?(q=this.$parse_colspecs(h["$[]"]("cols")))["$empty?"]()["$!"](): +k)&&(f.$create_columns(q),t=!0);q=e(k=d.$skip_blank_lines())?k:0;e(h["$[]"]("header-option"))?(A=[!0],m(f,"has_header_option=",a.to_a(A)),A[b(A.length,1)]):e(q["$=="](0)?h["$[]"]("noheader-option")["$!"]():q["$=="](0))&&(A=["implicit"],m(f,"has_header_option=",a.to_a(A)),A[b(A.length,1)],z=!0);q=r(p(u,"Table"),"ParserContext").$new(d,f,h);k=[q.$format(),-1,c];var G=k[0];var x=k[1];var Q=k[2];k;for(k=!1;k||e(y=d.$read_line());){k=!1;if(e(e(n=v=l(x=g(x,1),0))?y["$empty?"]():n))y=c,e(Q)&&(Q=g(Q,1)); +else if(G["$=="]("psv"))if(e(q["$starts_with_delimiter?"](y)))y=y.$slice(1,y.$length()),q.$close_open_cell(),e(Q)&&(Q=c);else{var L=this.$parse_cellspec(y,"start",q.$delimiter());n=a.to_ary(L);var B=null==n[0]?c:n[0];y=null==n[1]?c:n[1];L;e(B)?(q.$close_open_cell(B),e(Q)&&(Q=c)):e(e(n=Q)?Q["$=="](x):n)&&(A=[z=Q=c],m(f,"has_header_option=",a.to_a(A)),A[b(A.length,1)])}e(v)||(d.$mark(),e(z)&&(e(e(n=d["$has_more_lines?"]())?d.$peek_line()["$empty?"]():n)?Q=1:(A=[z=c],m(f,"has_header_option=",a.to_a(A)), +A[b(A.length,1)])));for(n=!1;n||e(!0);)if(n=!1,e(e(L=y)?w=q.$match_delimiter(y):L)){L=[w.$pre_match(),w.$post_match()];v=L[0];y=L[1];L;B=G;if("csv"["$==="](B)){if(e(q["$buffer_has_unclosed_quotes?"](v))){q.$skip_past_delimiter(v);if(e(y["$empty?"]()))break;n=!0;continue}A=[""+q.$buffer()+v]}else if("dsv"["$==="](B)){if(e(v["$end_with?"]("\\"))){q.$skip_past_escaped_delimiter(v);if(e(y["$empty?"]())){A=[""+q.$buffer()+p(u,"LF")];m(q,"buffer=",a.to_a(A));A[b(A.length,1)];q.$keep_cell_open();break}n= +!0;continue}A=[""+q.$buffer()+v]}else{if(e(v["$end_with?"]("\\"))){q.$skip_past_escaped_delimiter(v);if(e(y["$empty?"]())){A=[""+q.$buffer()+p(u,"LF")];m(q,"buffer=",a.to_a(A));A[b(A.length,1)];q.$keep_cell_open();break}n=!0;continue}A=this.$parse_cellspec(v);L=a.to_ary(A);B=null==L[0]?c:L[0];v=null==L[1]?c:L[1];A;q.$push_cellspec(B);A=[""+q.$buffer()+v]}m(q,"buffer=",a.to_a(A));A[b(A.length,1)];e(y["$empty?"]())&&(y=c);q.$close_cell()}else{A=[""+q.$buffer()+y+p(u,"LF")];m(q,"buffer=",a.to_a(A)); +A[b(A.length,1)];B=G;"csv"["$==="](B)?e(q["$buffer_has_unclosed_quotes?"]())?(e(e(L=Q)?x["$=="](0):L)&&(A=[z=Q=c],m(f,"has_header_option=",a.to_a(A)),A[b(A.length,1)]),q.$keep_cell_open()):q.$close_cell(!0):"dsv"["$==="](B)?q.$close_cell(!0):q.$keep_cell_open();break}if(e(q["$cell_open?"]()))e(d["$has_more_lines?"]())||q.$close_cell(!0);else if(e(n=d.$skip_blank_lines()))n;else break}e(e(k=(C=f.$attributes(),e(n=C["$[]"]("colcount"))?n:(A=["colcount",f.$columns().$size()],m(C,"[]=",a.to_a(A)),A[b(A.length, +1)]))["$=="](0))?k:t)||f.$assign_column_widths();e(z)&&(A=[!0],m(f,"has_header_option=",a.to_a(A)),A[b(A.length,1)]);f.$partition_header_footer(h);return f},Ca.$$arity=3);a.defs(d,"$parse_colspecs",Ia=function(d){var g,h,k=c;e(d["$include?"](" "))&&(d=d.$delete(" "));if(d["$=="](d.$to_i().$to_s()))return m(r("::","Array"),"new",[d.$to_i()],(g=function(){return f(["width"],{width:1})},g.$$s=this,g.$$arity=0,g));k=[];m(e(d["$include?"](","))?d.$split(",",-1):d.$split(";",-1),"each",[],(h=function(d){var g= +h.$$s||this,l,n=c,A=c,q=c,r=c,t=q=c;null==d&&(d=c);if(e(d["$empty?"]()))return k["$<<"](f(["width"],{width:1}));if(e(n=p(u,"ColumnSpecRx").$match(d))){A=f([],{});if(e(n["$[]"](2))){d=n["$[]"](2).$split(".");var y=a.to_ary(d);q=null==y[0]?c:y[0];r=null==y[1]?c:y[1];d;e(e(y=q["$nil_or_empty?"]()["$!"]())?p(u,"TableCellHorzAlignments")["$key?"](q):y)&&(q=["halign",p(u,"TableCellHorzAlignments")["$[]"](q)],m(A,"[]=",a.to_a(q)),q[b(q.length,1)]);e(e(y=r["$nil_or_empty?"]()["$!"]())?p(u,"TableCellVertAlignments")["$key?"](r): +y)&&(q=["valign",p(u,"TableCellVertAlignments")["$[]"](r)],m(A,"[]=",a.to_a(q)),q[b(q.length,1)])}q=e(t=n["$[]"](3))?["width",t["$=="]("~")?-1:t.$to_i()]:["width",1];m(A,"[]=",a.to_a(q));q[b(q.length,1)];e(e(y=n["$[]"](4))?p(u,"TableCellStyles")["$key?"](n["$[]"](4)):y)&&(q=["style",p(u,"TableCellStyles")["$[]"](n["$[]"](4))],m(A,"[]=",a.to_a(q)),q[b(q.length,1)]);return e(n["$[]"](1))?m(1,"upto",[n["$[]"](1).$to_i()],(l=function(){return k["$<<"](A.$merge())},l.$$s=g,l.$$arity=0,l)):k["$<<"](A)}return c}, +h.$$s=this,h.$$arity=1,h));return k},Ia.$$arity=1);a.defs(d,"$parse_cellspec",Wa=function(d,g,h){null==g&&(g="end");null==h&&(h=c);var k=[c,""];k;if(g["$=="]("start"))if(e(d["$include?"](h))){h=d.$partition(h);k=a.to_ary(h);var l=null==k[0]?c:k[0];g=null==k[2]?c:k[2];h;if(e(l=p(u,"CellSpecStartRx").$match(l))){if(e(l["$[]"](0)["$empty?"]()))return[f([],{}),g]}else return[c,d]}else return[c,d];else if(e(l=p(u,"CellSpecEndRx").$match(d))){if(e(l["$[]"](0).$lstrip()["$empty?"]()))return[f([],{}),d.$rstrip()]; +g=l.$pre_match()}else return[f([],{}),d];d=f([],{});if(e(l["$[]"](1))){h=l["$[]"](1).$split(".");k=a.to_ary(h);var n=null==k[0]?c:k[0];var A=null==k[1]?c:k[1];h;n=e(n["$nil_or_empty?"]())?1:n.$to_i();A=e(A["$nil_or_empty?"]())?1:A.$to_i();l["$[]"](2)["$=="]("+")?(n["$=="](1)||(h=["colspan",n],m(d,"[]=",a.to_a(h)),h[b(h.length,1)]),A["$=="](1)||(h=["rowspan",A],m(d,"[]=",a.to_a(h)),h[b(h.length,1)])):l["$[]"](2)["$=="]("*")&&!n["$=="](1)&&(h=["repeatcol",n],m(d,"[]=",a.to_a(h)),h[b(h.length,1)])}e(l["$[]"](3))&& +(h=l["$[]"](3).$split("."),k=a.to_ary(h),n=null==k[0]?c:k[0],A=null==k[1]?c:k[1],h,e(e(k=n["$nil_or_empty?"]()["$!"]())?p(u,"TableCellHorzAlignments")["$key?"](n):k)&&(h=["halign",p(u,"TableCellHorzAlignments")["$[]"](n)],m(d,"[]=",a.to_a(h)),h[b(h.length,1)]),e(e(k=A["$nil_or_empty?"]()["$!"]())?p(u,"TableCellVertAlignments")["$key?"](A):k)&&(h=["valign",p(u,"TableCellVertAlignments")["$[]"](A)],m(d,"[]=",a.to_a(h)),h[b(h.length,1)]));e(e(k=l["$[]"](4))?p(u,"TableCellStyles")["$key?"](l["$[]"](4)): +k)&&(h=["style",p(u,"TableCellStyles")["$[]"](l["$[]"](4))],m(d,"[]=",a.to_a(h)),h[b(h.length,1)]);return[d,g]},Wa.$$arity=-2);a.defs(d,"$parse_style_attribute",Va=function(d,h){var k,l,n,A,q=c,r=c,t=c,y=c,z=c,v=c,w=c;null==h&&(h=c);if(e(e(k=e(l=q=d["$[]"](1))?q["$include?"](" ")["$!"]():l)?p(u,"Compliance").$shorthand_property_syntax():k)){r=c;t="";y=f([],{});m(q,"each_char",[],(n=function(a){var b=n.$$s||this,e=c;null==a&&(a=c);return function(){e=a;return"."["$==="](e)?(b.$yield_buffered_attribute(y, +r,t,h),t="",r="role"):"#"["$==="](e)?(b.$yield_buffered_attribute(y,r,t,h),t="",r="id"):"%"["$==="](e)?(b.$yield_buffered_attribute(y,r,t,h),t="",r="option"):t=g(t,a)}()},n.$$s=this,n.$$arity=1,n));if(e(r))return this.$yield_buffered_attribute(y,r,t,h),e(z=y["$[]"]("style"))&&(v=["style",z],m(d,"[]=",a.to_a(v)),v[b(v.length,1)]),e(y["$key?"]("id"))&&(v=["id",y["$[]"]("id")],m(d,"[]=",a.to_a(v)),v[b(v.length,1)]),e(y["$key?"]("role"))&&(v=["role",e((w=d["$[]"]("role"))["$nil_or_empty?"]())?y["$[]"]("role").$join(" "): +""+w+" "+y["$[]"]("role").$join(" ")],m(d,"[]=",a.to_a(v)),v[b(v.length,1)]),e(y["$key?"]("option"))&&m(y["$[]"]("option"),"each",[],(A=function(e){null==e&&(e=c);v=[""+e+"-option",""];m(d,"[]=",a.to_a(v));return v[b(v.length,1)]},A.$$s=this,A.$$arity=1,A)),z;v=["style",q];m(d,"[]=",a.to_a(v));return v[b(v.length,1)]}v=["style",q];m(d,"[]=",a.to_a(v));return v[b(v.length,1)]},Va.$$arity=-2);a.defs(d,"$yield_buffered_attribute",Xa=function(d,g,h,k){var l,p=c;if(e(g))if(e(h["$empty?"]()))e(k)?this.$logger().$warn(this.$message_with_context("invalid empty "+ +g+" detected in style attribute",f(["source_location"],{source_location:k.$cursor_at_prev_line()}))):this.$logger().$warn("invalid empty "+g+" detected in style attribute");else if(g["$=="]("id"))e(d["$key?"]("id"))&&(e(k)?this.$logger().$warn(this.$message_with_context("multiple ids detected in style attribute",f(["source_location"],{source_location:k.$cursor_at_prev_line()}))):this.$logger().$warn("multiple ids detected in style attribute")),p=[g,h],m(d,"[]=",a.to_a(p)),p[b(p.length,1)];else(e(l= +d["$[]"](g))?l:(p=[g,[]],m(d,"[]=",a.to_a(p)),p[b(p.length,1)]))["$<<"](h);else e(h["$empty?"]())||(p=["style",h],m(d,"[]=",a.to_a(p)),p[b(p.length,1)]);return c},Xa.$$arity=4);a.defs(d,"$adjust_indentation!",Ya=function(d,f,h){var A,q,r,t,y,v,z,w=this,C=c,x=c,G=c;null==f&&(f=0);null==h&&(h=0);if(e(d["$empty?"]()))return c;e(e(A=l(h,0))?m(d,"any?",[],(q=function(a){null==a&&(a=c);return a["$include?"](p(u,"TAB"))},q.$$s=w,q.$$arity=1,q)):A)&&(C=n(" ",h),function(){var f=a.new_brk();try{return m(d, +"map!",[],(r=function(d){var f=r.$$s||this,k,l,A=c,q=c,t=c,y=c,v=c;null==d&&(d=c);if(e(d["$empty?"]()))return d;if(e(A=d.$index(p(u,"TAB")))){if(A["$=="](0)&&(q=0,function(){var b=a.new_brk();try{return m(d,"each_byte",[],(k=function(e){null==e&&(e=c);e["$=="](9)||a.brk(c,b);return q=g(q,1)},k.$$s=f,k.$$brk=b,k.$$arity=1,k))}catch(jb){if(jb===b)return jb.$v;throw jb;}}(),d=""+n(C,q)+d.$slice(q,d.$length()),!e(d["$include?"](p(u,"TAB")))))return d;y=t=0;v="";m(d,"each_char",[],(l=function(a){var e; +null==a&&(a=c);a["$=="](p(u,"TAB"))?(a=g(y,t))["$%"](h)["$=="](0)?(t=g(t,b(h,1)),v=g(v,C)):((e=b(h,a["$%"](h)))["$=="](1)||(t=g(t,b(e,1))),v=g(v,n(" ",e))):v=g(v,a);return y=g(y,1)},l.$$s=f,l.$$arity=1,l));return v}return d},r.$$s=w,r.$$brk=f,r.$$arity=1,r))}catch(Ta){if(Ta===f)return Ta.$v;throw Ta;}}());if(e(k(f,0)))return c;x=c;(function(){var f=a.new_brk();try{return m(d,"each",[],(t=function(d){var g;null==d&&(d=c);if(e(d["$empty?"]()))return c;(d=b(d.$length(),d.$lstrip().$length()))["$=="](0)&& +(x=c,a.brk(c,f));return e(e(g=x)?k(x,d):g)?c:x=d},t.$$s=w,t.$$brk=f,t.$$arity=1,t))}catch(Ta){if(Ta===f)return Ta.$v;throw Ta;}})();f["$=="](0)?e(x)&&m(d,"map!",[],(y=function(a){null==a&&(a=c);return e(a["$empty?"]())?a:a.$slice(x,a.$length())},y.$$s=w,y.$$arity=1,y)):(G=n(" ",f),e(x)?m(d,"map!",[],(v=function(a){null==a&&(a=c);return e(a["$empty?"]())?a:g(G,a.$slice(x,a.$length()))},v.$$s=w,v.$$arity=1,v)):m(d,"map!",[],(z=function(a){null==a&&(a=c);return e(a["$empty?"]())?a:g(G,a)},z.$$s=w,z.$$arity= +1,z)));return c},Ya.$$arity=-2);a.defs(d,"$uniform?",Za=function(a,b,c){return a.$count(b)["$=="](c)},Za.$$arity=3);return(a.defs(d,"$sanitize_attribute_name",A=function(a){return a.$gsub(p(u,"InvalidAttributeNameCharsRx"),"").$downcase()},A.$$arity=1),c)&&"sanitize_attribute_name"})(d[0],null,d)}(h[0],h)};Opal.modules["asciidoctor/path_resolver"]=function(a){function b(a,b){return"number"===typeof a&&"number"===typeof b?a+b:a["$+"](b)}var g=[],k=a.nil,l=a.const_get_qualified,n=a.const_get_relative, +h=a.module,c=a.klass,q=a.truthy,p=a.hash2,r=a.send,t=a.gvars;a.add_stubs("$include $attr_accessor $root? $posixify $expand_path $pwd $start_with? $== $match? $absolute_path? $+ $length $descends_from? $slice $to_s $relative_path_from $new $include? $tr $partition_path $each $pop $<< $join_path $[] $web_root? $unc? $index $split $delete $[]= $- $join $raise $! $fetch $warn $logger $empty? $nil_or_empty? $chomp $!= $> $size $extract_uri_prefix $end_with? $gsub $private $=~".split(" "));return function(d, +e){d=[h(d,"Asciidoctor")].concat(e);(function(e,$super,d){e=c(e,$super,"PathResolver");var f=[e].concat(d),g,h,m,u,v,z,w,x,C,B,D,E,O,J;e.$$prototype.file_separator=e.$$prototype._partition_path_web=e.$$prototype._partition_path_sys=e.$$prototype.working_dir=k;e.$include(n(f,"Logging"));a.const_set(f[0],"DOT",".");a.const_set(f[0],"DOT_DOT","..");a.const_set(f[0],"DOT_SLASH","./");a.const_set(f[0],"SLASH","/");a.const_set(f[0],"BACKSLASH","\\");a.const_set(f[0],"DOUBLE_SLASH","//");a.const_set(f[0], +"WindowsRootRx",/^(?:[a-zA-Z]:)?[\\\/]/);e.$attr_accessor("file_separator");e.$attr_accessor("working_dir");a.def(e,"$initialize",g=function(a,b){var c,e;null==a&&(a=k);null==b&&(b=k);this.file_separator=q(c=q(e=a)?e:l(l("::","File"),"ALT_SEPARATOR"))?c:l(l("::","File"),"SEPARATOR");this.working_dir=q(b)?q(this["$root?"](b))?this.$posixify(b):l("::","File").$expand_path(b):l("::","Dir").$pwd();this._partition_path_sys=p([],{});return this._partition_path_web=p([],{})},g.$$arity=-1);a.def(e,"$absolute_path?", +h=function(a){var b;return q(b=a["$start_with?"](n(f,"SLASH")))?b:this.file_separator["$=="](n(f,"BACKSLASH"))?n(f,"WindowsRootRx")["$match?"](a):this.file_separator["$=="](n(f,"BACKSLASH"))},h.$$arity=1);q(n(f,"RUBY_ENGINE")["$=="]("opal")?l("::","JAVASCRIPT_IO_MODULE")["$=="]("xmlhttprequest"):n(f,"RUBY_ENGINE")["$=="]("opal"))?a.def(e,"$root?",m=function(a){var b;return q(b=this["$absolute_path?"](a))?b:a["$start_with?"]("file://","http://","https://")},m.$$arity=1):a.alias(e,"root?","absolute_path?"); +a.def(e,"$unc?",u=function(a){return a["$start_with?"](n(f,"DOUBLE_SLASH"))},u.$$arity=1);a.def(e,"$web_root?",v=function(a){return a["$start_with?"](n(f,"SLASH"))},v.$$arity=1);a.def(e,"$descends_from?",z=function(a,c){var e;return c["$=="](a)?0:c["$=="](n(f,"SLASH"))?q(e=a["$start_with?"](n(f,"SLASH")))?1:e:q(e=a["$start_with?"](b(c,n(f,"SLASH"))))?b(c.$length(),1):e},z.$$arity=2);a.def(e,"$relative_path",w=function(b,c){var e;if(q(this["$root?"](b))){if(q(e=this["$descends_from?"](b,c)))return b.$slice(e, +b.$length());try{return n(f,"Pathname").$new(b).$relative_path_from(n(f,"Pathname").$new(c)).$to_s()}catch(la){if(a.rescue(la,[n(f,"StandardError")]))try{return b}finally{a.pop_exception()}else throw la;}}else return b},w.$$arity=2);a.def(e,"$posixify",x=function(a){return q(a)?q(this.file_separator["$=="](n(f,"BACKSLASH"))?a["$include?"](n(f,"BACKSLASH")):this.file_separator["$=="](n(f,"BACKSLASH")))?a.$tr(n(f,"BACKSLASH"),n(f,"SLASH")):a:""},x.$$arity=1);a.alias(e,"posixfy","posixify");a.def(e, +"$expand_path",C=function(b){var c,e,d=k,g=c=k;var h=this.$partition_path(b);c=a.to_ary(h);d=null==c[0]?k:c[0];c=null==c[1]?k:c[1];h;return q(b["$include?"](n(f,"DOT_DOT")))?(g=[],r(d,"each",[],(e=function(a){null==a&&(a=k);return a["$=="](n(f,"DOT_DOT"))?g.$pop():g["$<<"](a)},e.$$s=this,e.$$arity=1,e)),this.$join_path(g,c)):this.$join_path(d,c)},C.$$arity=1);a.def(e,"$partition_path",B=function(c,e){var d,g,h=k;null==e&&(e=k);if(q(d=(g=q(e)?this._partition_path_web:this._partition_path_sys)["$[]"](c)))return d; +d=this.$posixify(c);q(e)?q(this["$web_root?"](d))?h=n(f,"SLASH"):q(d["$start_with?"](n(f,"DOT_SLASH")))&&(h=n(f,"DOT_SLASH")):q(this["$root?"](d))?h=q(this["$unc?"](d))?n(f,"DOUBLE_SLASH"):q(d["$start_with?"](n(f,"SLASH")))?n(f,"SLASH"):d.$slice(0,b(d.$index(n(f,"SLASH")),1)):q(d["$start_with?"](n(f,"DOT_SLASH")))&&(h=n(f,"DOT_SLASH"));e=(q(h)?d.$slice(h.$length(),d.$length()):d).$split(n(f,"SLASH"));e.$delete(n(f,"DOT"));c=[c,[e,h]];r(g,"[]=",a.to_a(c));g=c.length;g="number"===typeof g?g-1:g["$-"](1); +return c[g]},B.$$arity=-2);a.def(e,"$join_path",D=function(a,b){null==b&&(b=k);return q(b)?""+b+a.$join(n(f,"SLASH")):a.$join(n(f,"SLASH"))},D.$$arity=-2);a.def(e,"$system_path",E=function(c,e,d,g){var h,m,u,t=k,y=k,v=k,z=k,w=t=k,x=k,C=k,S=w=k;null==e&&(e=k);null==d&&(d=k);null==g&&(g=p([],{}));q(d)&&(q(this["$root?"](d))||this.$raise(l("::","SecurityError"),"Jail is not an absolute path: "+d),d=this.$posixify(d));if(q(c)){if(q(this["$root?"](c))){t=this.$expand_path(c);if(q(q(h=d)?this["$descends_from?"](t, +d)["$!"]():h)){if(q(g.$fetch("recover",!0))){this.$logger().$warn(""+(q(h=g["$[]"]("target_name"))?h:"path")+" is outside of jail; recovering automatically");var L=this.$partition_path(t);h=a.to_ary(L);y=null==h[0]?k:h[0];L;L=this.$partition_path(d);h=a.to_ary(L);v=null==h[0]?k:h[0];z=null==h[1]?k:h[1];L;return this.$join_path(b(v,y),z)}this.$raise(l("::","SecurityError"),""+(q(h=g["$[]"]("target_name"))?h:"path")+" "+c+" is outside of jail: "+d+" (disallowed in safe mode)")}return t}L=this.$partition_path(c); +h=a.to_ary(L);y=null==h[0]?k:h[0];L}else y=[];if(q(y["$empty?"]())){if(q(e["$nil_or_empty?"]()))return q(h=d)?h:this.working_dir;if(q(this["$root?"](e)))if(q(d))e=this.$posixify(e);else return this.$expand_path(e);else L=this.$partition_path(e),h=a.to_ary(L),y=null==h[0]?k:h[0],L,e=q(h=d)?h:this.working_dir}else q(e["$nil_or_empty?"]())?e=q(h=d)?h:this.working_dir:q(this["$root?"](e))?q(d)&&(e=this.$posixify(e)):e=""+(q(h=d)?h:this.working_dir).$chomp("/")+"/"+e;q(q(h=q(L=d)?t=this["$descends_from?"](e, +d)["$!"]():L)?this.file_separator["$=="](n(f,"BACKSLASH")):h)?(L=this.$partition_path(e),h=a.to_ary(L),w=null==h[0]?k:h[0],x=null==h[1]?k:h[1],L,L=this.$partition_path(d),h=a.to_ary(L),v=null==h[0]?k:h[0],z=null==h[1]?k:h[1],L,q(x["$!="](z))&&(q(g.$fetch("recover",!0))?(this.$logger().$warn("start path for "+(q(h=g["$[]"]("target_name"))?h:"path")+" is outside of jail root; recovering automatically"),w=v,t=!1):this.$raise(l("::","SecurityError"),"start path for "+(q(h=g["$[]"]("target_name"))?h:"path")+ +" "+e+" refers to location outside jail root: "+d+" (disallowed in safe mode)"))):(L=this.$partition_path(e),h=a.to_ary(L),w=null==h[0]?k:h[0],z=null==h[1]?k:h[1],L);q((C=b(w,y))["$include?"](n(f,"DOT_DOT")))&&(h=[C,[]],w=h[0],C=h[1],h,q(d)?(q(v)||(L=this.$partition_path(d),h=a.to_ary(L),v=null==h[0]?k:h[0],L),S=!1,r(w,"each",[],(m=function(a){var b=m.$$s||this,e;null==a&&(a=k);if(a["$=="](n(f,"DOT_DOT"))){a=C.$size();var h=v.$size();a="number"===typeof a&&"number"===typeof h?a>h:a["$>"](h);if(q(a))return C.$pop(); +if(q(g.$fetch("recover",!0))){if(q(S))return k;b.$logger().$warn(""+(q(e=g["$[]"]("target_name"))?e:"path")+" has illegal reference to ancestor of jail; recovering automatically");return S=!0}return b.$raise(l("::","SecurityError"),""+(q(e=g["$[]"]("target_name"))?e:"path")+" "+c+" refers to location outside jail: "+d+" (disallowed in safe mode)")}return C["$<<"](a)},m.$$s=this,m.$$arity=1,m))):r(w,"each",[],(u=function(a){null==a&&(a=k);return a["$=="](n(f,"DOT_DOT"))?C.$pop():C["$<<"](a)},u.$$s= +this,u.$$arity=1,u)));return q(t)?(t=this.$join_path(C,z),q(this["$descends_from?"](t,d))?t:q(g.$fetch("recover",!0))?(this.$logger().$warn(""+(q(h=g["$[]"]("target_name"))?h:"path")+" is outside of jail; recovering automatically"),q(v)||(L=this.$partition_path(d),h=a.to_ary(L),v=null==h[0]?k:h[0],L),this.$join_path(b(v,y),z)):this.$raise(l("::","SecurityError"),""+(q(h=g["$[]"]("target_name"))?h:"path")+" "+c+" is outside of jail: "+d+" (disallowed in safe mode)")):this.$join_path(C,z)},E.$$arity= +-2);a.def(e,"$web_path",O=function(b,c){var e,d,g=k,h=k,m=k,l=k,p=k;null==c&&(c=k);b=this.$posixify(b);c=this.$posixify(c);q(q(e=c["$nil_or_empty?"]())?e:this["$web_root?"](b))||(c=this.$extract_uri_prefix(""+c+(q(c["$end_with?"](n(f,"SLASH")))?"":n(f,"SLASH"))+b),e=a.to_ary(c),b=null==e[0]?k:e[0],g=null==e[1]?k:e[1],c);c=this.$partition_path(b,!0);e=a.to_ary(c);h=null==e[0]?k:e[0];m=null==e[1]?k:e[1];c;l=[];r(h,"each",[],(d=function(a){var b;null==a&&(a=k);return a["$=="](n(f,"DOT_DOT"))?q(l["$empty?"]())? +q(q(b=m)?m["$!="](n(f,"DOT_SLASH")):b)?k:l["$<<"](a):l["$[]"](-1)["$=="](n(f,"DOT_DOT"))?l["$<<"](a):l.$pop():l["$<<"](a)},d.$$s=this,d.$$arity=1,d));q((p=this.$join_path(l,m))["$include?"](" "))&&(p=p.$gsub(" ","%20"));return q(g)?""+g+p:p},O.$$arity=-2);e.$private();return(a.def(e,"$extract_uri_prefix",J=function(a){var b;return q(q(b=a["$include?"](":"))?n(f,"UriSniffRx")["$=~"](a):b)?[a.$slice(((b=t["~"])===k?k:b["$[]"](0)).$length(),a.$length()),(b=t["~"])===k?k:b["$[]"](0)]:a},J.$$arity=1), +k)&&"extract_uri_prefix"})(d[0],null,d)}(g[0],g)};Opal.modules["asciidoctor/reader"]=function(a){function b(a,b){return"number"===typeof a&&"number"===typeof b?a+b:a["$+"](b)}function g(a,b){return"number"===typeof a&&"number"===typeof b?a>b:a["$>"](b)}function k(a,b){return"number"===typeof a&&"number"===typeof b?a-b:a["$-"](b)}function l(a,b){return"number"===typeof a&&"number"===typeof b?a>=b:a["$>="](b)}var n=[],h=a.nil,c=a.const_get_qualified,q=a.const_get_relative,p=a.module,r=a.klass,t=a.hash2, +m=a.truthy,e=a.send,f=a.gvars,v=a.hash;a.add_stubs("$include $attr_reader $+ $attr_accessor $! $=== $split $file $dir $dirname $path $basename $lineno $prepare_lines $drop $empty? $nil_or_empty? $peek_line $> $slice $[] $length $process_line $times $shift $read_line $<< $- $unshift_all $has_more_lines? $join $read_lines $unshift $start_with? $== $* $read_lines_until $size $clear $cursor $[]= $!= $fetch $cursor_at_mark $warn $logger $message_with_context $new $tap $each $instance_variables $instance_variable_get $instance_variable_set $class $object_id $inspect $private $prepare_source_array $prepare_source_string $chomp $valid_encoding? $to_s $raise $to_i $attributes $catalog $pop_include $parse $path= $dup $end_with? $keys $rindex $rootname $key? $attr $>= $nil? $extensions? $include_processors? $extensions $include_processors $map $skip_front_matter! $pop $adjust_indentation! $include? $=~ $preprocess_conditional_directive $preprocess_include_directive $downcase $error $none? $any? $all? $strip $send $resolve_expr_val $replace_next_line $rstrip $sub_attributes $attribute_missing $info $parse_attributes $find $handles? $instance $process_method $safe $resolve_include_path $method $split_delimited_value $partition $< $/ $to_a $uniq $sort $call $each_line $infinite? $push_include $delete $value? $create_include_cursor $delete_at $read $uriish? $attr? $require_library $normalize_system_path $file? $relative_path $path_resolver $base_dir $to_f".split(" ")); +return function(d,n){d=[p(d,"Asciidoctor")].concat(n);(function(d,$super,f){d=r(d,$super,"Reader");var l=[d].concat(f),p,n,u,v,w,z,x,C,B,L,D,E,J,F,O,H,I,W,T,U,ba,ka,da,K,M,N,P,ja,fa,wa,Y,qa,Ga,Fa,Ha,ea,Sa;d.$$prototype.file=d.$$prototype.lines=d.$$prototype.look_ahead=d.$$prototype.unescape_next_line=d.$$prototype.lineno=d.$$prototype.process_lines=d.$$prototype.dir=d.$$prototype.path=d.$$prototype.mark=d.$$prototype.source_lines=d.$$prototype.saved=h;d.$include(q(l,"Logging"));(function(c,$super, +e){c=r(c,$super,"Cursor");[c].concat(e);var d,f,g;c.$$prototype.lineno=c.$$prototype.path=h;c.$attr_reader("file","dir","path","lineno");a.def(c,"$initialize",d=function(a,b,c,e){var d;null==b&&(b=h);null==c&&(c=h);null==e&&(e=1);return d=[a,b,c,e],this.file=d[0],this.dir=d[1],this.path=d[2],this.lineno=d[3],d},d.$$arity=-2);a.def(c,"$advance",f=function(a){return this.lineno=b(this.lineno,a)},f.$$arity=1);a.def(c,"$line_info",g=function(){return""+this.path+": line "+this.lineno},g.$$arity=0);return a.alias(c, +"to_s","line_info")})(l[0],null,l);d.$attr_reader("file");d.$attr_reader("dir");d.$attr_reader("path");d.$attr_reader("lineno");d.$attr_reader("source_lines");d.$attr_accessor("process_lines");d.$attr_accessor("unterminated");a.def(d,"$initialize",p=function(b,e,d){null==b&&(b=h);null==e&&(e=h);null==d&&(d=t([],{}));if(m(e["$!"]()))this.file=h,this.dir=".",this.path="",this.lineno=1;else if(m(c("::","String")["$==="](e))){this.file=e;e=c("::","File").$split(this.file);var f=a.to_ary(e);this.dir= +null==f[0]?h:f[0];this.path=null==f[1]?h:f[1];e;this.lineno=1}else m(this.file=e.$file())?(this.dir=m(f=e.$dir())?f:c("::","File").$dirname(this.file),this.path=m(f=e.$path())?f:c("::","File").$basename(this.file)):(this.dir=m(f=e.$dir())?f:".",this.path=m(f=e.$path())?f:""),this.lineno=m(f=e.$lineno())?f:1;this.lines=this.$prepare_lines(b,d);this.source_lines=this.lines.$drop(0);this.mark=h;this.look_ahead=0;this.process_lines=!0;this.unescape_next_line=!1;return this.saved=this.unterminated= +h},p.$$arity=-1);a.def(d,"$has_more_lines?",n=function(){return m(this.lines["$empty?"]())?(this.look_ahead=0,!1):!0},n.$$arity=0);a.def(d,"$empty?",u=function(){return m(this.lines["$empty?"]())?(this.look_ahead=0,!0):!1},u.$$arity=0);a.alias(d,"eof?","empty?");a.def(d,"$next_line_empty?",v=function(){return this.$peek_line()["$nil_or_empty?"]()},v.$$arity=0);a.def(d,"$peek_line",w=function(a){var b,c=h;null==a&&(a=!1);return m(m(b=a)?b:g(this.look_ahead,0))?m(this.unescape_next_line)?(c=this.lines["$[]"](0)).$slice(1, +c.$length()):this.lines["$[]"](0):m(this.lines["$empty?"]())?(this.look_ahead=0,h):m(c=this.$process_line(this.lines["$[]"](0)))?c:this.$peek_line()},w.$$arity=-1);a.def(d,"$peek_lines",z=function(b,c){var d,f,g=this,p=h,n=h;null==b&&(b=h);null==c&&(c=!1);p=g.look_ahead;n=[];(function(){var p=a.new_brk();try{return e(m(d=b)?d:q(l,"MAX_INT"),"times",[],(f=function(){var b=f.$$s||this,e;null==b.lineno&&(b.lineno=h);if(m(e=m(c)?b.$shift():b.$read_line()))return n["$<<"](e);m(c)&&(b.lineno=k(b.lineno, +1));a.brk(h,p)},f.$$s=g,f.$$brk=p,f.$$arity=0,f))}catch(A){if(A===p)return A.$v;throw A;}})();m(n["$empty?"]())||(g.$unshift_all(n),m(c)&&(g.look_ahead=p));return n},z.$$arity=-1);a.def(d,"$read_line",x=function(){var a;return m(m(a=g(this.look_ahead,0))?a:this["$has_more_lines?"]())?this.$shift():h},x.$$arity=0);a.def(d,"$read_lines",C=function(){var a;for(a=[];m(this["$has_more_lines?"]());)a["$<<"](this.$shift());return a},C.$$arity=0);a.alias(d,"readlines","read_lines");a.def(d,"$read",B=function(){return this.$read_lines().$join(q(l, +"LF"))},B.$$arity=0);a.def(d,"$advance",L=function(){return m(this.$shift())?!0:!1},L.$$arity=0);a.def(d,"$unshift_line",D=function(a){this.$unshift(a);return h},D.$$arity=1);a.alias(d,"restore_line","unshift_line");a.def(d,"$unshift_lines",E=function(a){this.$unshift_all(a);return h},E.$$arity=1);a.alias(d,"restore_lines","unshift_lines");a.def(d,"$replace_next_line",J=function(a){this.$shift();this.$unshift(a);return!0},J.$$arity=1);a.alias(d,"replace_line","replace_next_line");a.def(d,"$skip_blank_lines", +F=function(){var a,c;if(m(this["$empty?"]()))return h;for(a=0;m(c=this.$peek_line());)if(m(c["$empty?"]()))this.$shift(),a=b(a,1);else return a},F.$$arity=0);a.def(d,"$skip_comment_lines",O=function(){var a,b=h,c=h;if(m(this["$empty?"]()))return h;for(;m(m(a=b=this.$peek_line())?b["$empty?"]()["$!"]():a);)if(m(b["$start_with?"]("//")))if(m(b["$start_with?"]("///")))if(m(m(a=g(c=b.$length(),3))?b["$=="]("/"["$*"](c)):a))this.$read_lines_until(t(["terminator","skip_first_line","read_last_line","skip_processing", +"context"],{terminator:b,skip_first_line:!0,read_last_line:!0,skip_processing:!0,context:"comment"}));else break;else this.$shift();else break;return h},O.$$arity=0);a.def(d,"$skip_line_comments",H=function(){var a,b,c=h;if(m(this["$empty?"]()))return[];for(b=[];m(m(a=c=this.$peek_line())?c["$empty?"]()["$!"]():a);)if(m(c["$start_with?"]("//")))b["$<<"](this.$shift());else break;return b},H.$$arity=0);a.def(d,"$terminate",I=function(){this.lineno=b(this.lineno,this.lines.$size());this.lines.$clear(); +this.look_ahead=0;return h},I.$$arity=0);a.def(d,"$read_lines_until",W=function(b){var c,d,f,g,p=W.$$p,n=p||h,u=h,A=h,r=h,v=h,y=h,w=h,z=h,x=h,C=h,B=h,L=h,D=h,E=h;p&&(W.$$p=null);null==b&&(b=t([],{}));u=[];m(m(c=this.process_lines)?b["$[]"]("skip_processing"):c)&&(this.process_lines=!1,A=!0);m(r=b["$[]"]("terminator"))?(v=m(c=b["$[]"]("cursor"))?c:this.$cursor(),w=y=!1):(y=b["$[]"]("break_on_blank_lines"),w=b["$[]"]("break_on_list_continuation"));z=b["$[]"]("skip_line_comments");x=C=B=h;for(m(b["$[]"]("skip_first_line"))&& +this.$shift();m(m(d=x["$!"]())?L=this.$read_line():d);)x=function(){for(;m(!0);)return m(m(f=r)?L["$=="](r):f)||m(m(f=y)?L["$empty?"]():f)?!0:m(m(f=m(g=w)?C:g)?L["$=="](q(l,"LIST_CONTINUATION")):f)?(D=["preserve_last_line",!0],e(b,"[]=",a.to_a(D)),D[k(D.length,1)],!0):m((f=n!==h)?a.yield1(n,L):n!==h)?!0:!1;return h}(),m(x)?(m(b["$[]"]("read_last_line"))&&(u["$<<"](L),C=!0),m(b["$[]"]("preserve_last_line"))&&(this.$unshift(L),B=!0)):m(m(d=m(f=z)?L["$start_with?"]("//"):f)?L["$start_with?"]("///")["$!"](): +d)||(u["$<<"](L),C=!0);m(A)&&(this.process_lines=!0,m(m(c=B)?r["$!"]():c)&&(this.look_ahead=k(this.look_ahead,1)));m(m(c=m(d=r)?r["$!="](L):d)?E=b.$fetch("context",r):c)&&(v["$=="]("at_mark")&&(v=this.$cursor_at_mark()),this.$logger().$warn(this.$message_with_context("unterminated "+E+" block",t(["source_location"],{source_location:v}))),this.unterminated=!0);return u},W.$$arity=-1);a.def(d,"$shift",T=function(){this.lineno=b(this.lineno,1);this.look_ahead["$=="](0)||(this.look_ahead=k(this.look_ahead, +1));return this.lines.$shift()},T.$$arity=0);a.def(d,"$unshift",U=function(a){this.lineno=k(this.lineno,1);this.look_ahead=b(this.look_ahead,1);return this.lines.$unshift(a)},U.$$arity=1);a.def(d,"$unshift_all",ba=function(c){this.lineno=k(this.lineno,c.$size());this.look_ahead=b(this.look_ahead,c.$size());return e(this.lines,"unshift",a.to_a(c))},ba.$$arity=1);a.def(d,"$cursor",ka=function(){return q(l,"Cursor").$new(this.file,this.dir,this.path,this.lineno)},ka.$$arity=0);a.def(d,"$cursor_at_line", +da=function(a){return q(l,"Cursor").$new(this.file,this.dir,this.path,a)},da.$$arity=1);a.def(d,"$cursor_at_mark",K=function(){return m(this.mark)?e(q(l,"Cursor"),"new",a.to_a(this.mark)):this.$cursor()},K.$$arity=0);a.def(d,"$cursor_before_mark",M=function(){if(m(this.mark)){var b=this.mark;var c=a.to_ary(b);var e=null==c[0]?h:c[0];var d=null==c[1]?h:c[1];var f=null==c[2]?h:c[2];c=null==c[3]?h:c[3];b;return q(l,"Cursor").$new(e,d,f,k(c,1))}return q(l,"Cursor").$new(this.file,this.dir,this.path,k(this.lineno, +1))},M.$$arity=0);a.def(d,"$cursor_at_prev_line",N=function(){return q(l,"Cursor").$new(this.file,this.dir,this.path,k(this.lineno,1))},N.$$arity=0);a.def(d,"$mark",P=function(){return this.mark=[this.file,this.dir,this.path,this.lineno]},P.$$arity=0);a.def(d,"$line_info",ja=function(){return""+this.path+": line "+this.lineno},ja.$$arity=0);a.def(d,"$lines",fa=function(){return this.lines.$drop(0)},fa.$$arity=0);a.def(d,"$string",wa=function(){return this.lines.$join(q(l,"LF"))},wa.$$arity=0);a.def(d, +"$source",Y=function(){return this.source_lines.$join(q(l,"LF"))},Y.$$arity=0);a.def(d,"$save",qa=function(){var b;this.saved=e(t([],{}),"tap",[],(b=function(d){var f=b.$$s||this,g;null==d&&(d=h);return e(f.$instance_variables(),"each",[],(g=function(b){var f=g.$$s||this,l,p=h;null==b&&(b=h);if(m(m(l=b["$=="]("@saved"))?l:b["$=="]("@source_lines")))return h;b=[b,m(c("::","Array")["$==="](p=f.$instance_variable_get(b)))?p.$drop(0):p];e(d,"[]=",a.to_a(b));return b[k(b.length,1)]},g.$$s=f,g.$$arity= +1,g))},b.$$s=this,b.$$arity=1,b));return h},qa.$$arity=0);a.def(d,"$restore_save",Ga=function(){var a;return m(this.saved)?(e(this.saved,"each",[],(a=function(b,c){var e=a.$$s||this;null==b&&(b=h);null==c&&(c=h);return e.$instance_variable_set(b,c)},a.$$s=this,a.$$arity=2,a)),this.saved=h):h},Ga.$$arity=0);a.def(d,"$discard_save",Fa=function(){return this.saved=h},Fa.$$arity=0);a.def(d,"$to_s",Ha=function(){return"#<"+this.$class()+"@"+this.$object_id()+" {path: "+this.path.$inspect()+", line: "+ +this.lineno+"}>"},Ha.$$arity=0);d.$private();a.def(d,"$prepare_lines",ea=function(b,e){var d=h,f=h;null==e&&(e=t([],{}));try{return m(d=e["$[]"]("normalize"))?(f=d["$=="]("chomp")?!1:!0,m(c("::","Array")["$==="](b))?q(l,"Helpers").$prepare_source_array(b,f):q(l,"Helpers").$prepare_source_string(b,f)):m(c("::","Array")["$==="](b))?b.$drop(0):m(b)?b.$chomp().$split(q(l,"LF"),-1):[]}catch(Va){if(a.rescue(Va,[q(l,"StandardError")]))try{return m((m(c("::","Array")["$==="](b))?b.$join():b.$to_s())["$valid_encoding?"]())? +this.$raise():this.$raise(c("::","ArgumentError"),"source is either binary or contains invalid Unicode data")}finally{a.pop_exception()}else throw Va;}},ea.$$arity=-2);return(a.def(d,"$process_line",Sa=function(a){m(this.process_lines)&&(this.look_ahead=b(this.look_ahead,1));return a},Sa.$$arity=1),h)&&"process_line"})(d[0],null,d);(function(d,$super,p){d=r(d,$super,"PreprocessorReader");var n=[d].concat(p),u,w,z,x,C,B,D,E,L,J,F,O,H,I,W,T,Z,U,da,K;d.$$prototype.include_stack=d.$$prototype.lines=d.$$prototype.file= +d.$$prototype.dir=d.$$prototype.path=d.$$prototype.lineno=d.$$prototype.maxdepth=d.$$prototype.process_lines=d.$$prototype.includes=d.$$prototype.document=d.$$prototype.unescape_next_line=d.$$prototype.include_processor_extensions=d.$$prototype.look_ahead=d.$$prototype.skipping=d.$$prototype.conditional_stack=h;d.$attr_reader("include_stack");a.def(d,"$initialize",u=function(b,c,d,f){var k,l;u.$$p&&(u.$$p=null);null==c&&(c=h);null==d&&(d=h);null==f&&(f=t([],{}));this.document=b;e(this,a.find_super_dispatcher(this, +"initialize",u,!1),[c,d,f],null);m(g(l=(m(k=b.$attributes()["$[]"]("max-include-depth"))?k:64).$to_i(),0))?this.maxdepth=t(["abs","curr","rel"],{abs:l,curr:l,rel:l}):this.maxdepth=h;this.include_stack=[];this.includes=b.$catalog()["$[]"]("includes");this.skipping=!1;this.conditional_stack=[];return this.include_processor_extensions=h},u.$$arity=-2);a.def(d,"$has_more_lines?",w=function(){return m(this.$peek_line())?!0:!1},w.$$arity=0);a.def(d,"$empty?",z=function(){return m(this.$peek_line())?!1: +!0},z.$$arity=0);a.alias(d,"eof?","empty?");a.def(d,"$peek_line",x=function(b){var c=x.$$p,d;c&&(x.$$p=null);var f=0;var g=arguments.length;for(d=Array(g);f";this.lineno=p;m(m(r=this.maxdepth)?u["$key?"]("depth"):r)&&(m(g(f=u["$[]"]("depth").$to_i(),0))?(m(g(l=b(this.include_stack.$size(), +f),y=this.maxdepth["$[]"]("abs")))&&(l=f=y),this.maxdepth=t(["abs","curr","rel"],{abs:y,curr:l,rel:f})):this.maxdepth=t(["abs","curr","rel"],{abs:this.maxdepth["$[]"]("abs"),curr:this.include_stack.$size(),rel:0}));if(m((this.lines=this.$prepare_lines(d,t(["normalize","condense","indent"],{normalize:m(r=this.process_lines)?r:"chomp",condense:this.process_lines,indent:u["$[]"]("indent")})))["$empty?"]()))this.$pop_include();else{if(m(u["$key?"]("leveloffset"))){this.lines.$unshift("");this.lines.$unshift(":leveloffset: "+ +u["$[]"]("leveloffset"));this.lines["$<<"]("");if(m(d=this.document.$attr("leveloffset")))this.lines["$<<"](":leveloffset: "+d);else this.lines["$<<"](":leveloffset!:");this.lineno=k(this.lineno,2)}this.look_ahead=0}return this},C.$$arity=-2);a.def(d,"$include_depth",B=function(){return this.include_stack.$size()},B.$$arity=0);a.def(d,"$exceeds_max_depth?",D=function(){var a,b;return m(a=m(b=this.maxdepth)?l(this.include_stack.$size(),this.maxdepth["$[]"]("curr")):b)?this.maxdepth["$[]"]("rel"):a}, +D.$$arity=0);a.alias(d,"exceeded_max_depth?","exceeds_max_depth?");a.def(d,"$shift",E=function(){var b=E.$$p,c=h,d;b&&(E.$$p=null);var f=0;var g=arguments.length;for(d=Array(g);f"},F.$$arity=0);d.$private();a.def(d,"$prepare_lines",O=function(c,d){var f,g,l=O.$$p,p,u=h,r=h,v;l&&(O.$$p= +null);var y=0;var w=arguments.length;for(v=Array(w);yd:d["$<"](0));c=m(d)?[c.$to_i(), +1/0]:a.Range.$new(c.$to_i(),f,!1).$to_a();return Q=b(e,c)}return Q["$<<"](c.$to_i())},x.$$s=J,x.$$arity=1,x)),Q=m(Q["$empty?"]())?h:Q.$sort().$uniq()):m(ca["$key?"]("tag"))?m(m(u=(R=ca["$[]"]("tag"))["$empty?"]())?u:R["$=="]("!"))||(G=m(R["$start_with?"]("!"))?v(R.$slice(1,R.$length()),!1):v(R,!0)):m(ca["$key?"]("tags"))&&(G=t([],{}),e(J.$split_delimited_value(ca["$[]"]("tags")),"each",[],(C=function(b){var c;null==b&&(b=h);if(m(m(c=b["$empty?"]())?c:b["$=="]("!")))return h;A=m(b["$start_with?"]("!"))? +[b.$slice(1,b.$length()),!1]:[b,!0];e(G,"[]=",a.to_a(A));return A[k(A.length,1)]},C.$$s=J,C.$$arity=1,C)),m(G["$empty?"]())&&(G=h)));if(m(Q)){u=[[],h,0];pa=u[0];V=u[1];oa=u[2];u;try{(function(){var d=a.new_brk();try{return e(X,"call",[I,ha],(B=function(d){var f=B.$$s||this,g,k=h;null==d&&(d=h);k=h;return function(){var l=a.new_brk();try{return e(d,"each_line",[],(g=function(e){var d,f,g=h;null==e&&(e=h);oa=b(oa,1);if(m(m(d=k)?d:m(f=c("::","Float")["$==="](g=Q["$[]"](0)))?k=g["$infinite?"]():f))return V= +m(d=V)?d:oa,pa["$<<"](e);g["$=="](oa)&&(V=m(d=V)?d:oa,pa["$<<"](e),Q.$shift());if(m(Q["$empty?"]()))a.brk(h,l);else return h},g.$$s=f,g.$$brk=l,g.$$arity=1,g))}catch(cb){if(cb===l)return cb.$v;throw cb;}}()},B.$$s=J,B.$$brk=d,B.$$arity=1,B))}catch(bb){if(bb===d)return bb.$v;throw bb;}})()}catch(Ta){if(a.rescue(Ta,[q(n,"StandardError")]))try{return J.$logger().$error(J.$message_with_context("include "+W+" not readable: "+I,t(["source_location"],{source_location:J.$cursor()}))),J.$replace_next_line("Unresolved directive in "+ +J.path+" - include::"+F+"["+p+"]")}finally{a.pop_exception()}else throw Ta;}J.$shift();m(V)&&(A=["partial-option",""],e(ca,"[]=",a.to_a(A)),A[k(A.length,1)],J.$push_include(pa,I,T,V,ca))}else if(m(G)){u=[[],h,0,[],c("::","Set").$new(),h];pa=u[0];V=u[1];oa=u[2];Z=u[3];U=u[4];da=u[5];u;m(G["$key?"]("**"))?m(G["$key?"]("*"))?(K=la=G.$delete("**"),sa=G.$delete("*")):K=la=sa=G.$delete("**"):(K=la=G["$value?"](!0)["$!"](),sa=G.$delete("*"));try{e(X,"call",[I,ha],(D=function(c){var d=D.$$s||this,g,k=h,l= +h;null==c&&(c=h);var p=["::","[]"];k=p[0];l=p[1];p;return e(c,"each_line",[],(g=function(c){var d=g.$$s||this,p,u,A,r=h,v=h,y=h;null==c&&(c=h);oa=b(oa,1);return m(m(p=m(u=c["$include?"](k))?c["$include?"](l):u)?q(n,"TagDirectiveRx")["$=~"](c):p)?(r=(p=f["~"])===h?h:p["$[]"](2),m((p=f["~"])===h?h:p["$[]"](1))?r["$=="](da)?(Z.$pop(),u=m(Z["$empty?"]())?[h,la]:Z["$[]"](-1),p=a.to_ary(u),da=null==p[0]?h:p[0],K=null==p[1]?h:p[1],u):m(G["$key?"](r))?(v=d.$create_include_cursor(I,F,oa),m(y=e(Z,"rindex", +[],(A=function(a){null==a&&(a=h);return a["$=="](r)},A.$$s=d,A.$$arity=1,A.$$has_trailing_comma_in_args=!0,A)))?(y["$=="](0)?Z.$shift():Z.$delete_at(y),d.$logger().$warn(d.$message_with_context("mismatched end tag (expected '"+da+"' but found '"+r+"') at line "+oa+" of include "+W+": "+I,t(["source_location","include_location"],{source_location:d.$cursor(),include_location:v})))):d.$logger().$warn(d.$message_with_context("unexpected end tag '"+r+"' at line "+oa+" of include "+W+": "+I,t(["source_location", +"include_location"],{source_location:d.$cursor(),include_location:v})))):h:m(G["$key?"](r))?(U["$<<"](r),Z["$<<"]([da=r,K=G["$[]"](r),oa])):m(sa["$nil?"]()["$!"]())?(K=m(m(p=da)?K["$!"]():p)?!1:sa,Z["$<<"]([da=r,K,oa])):h):m(K)?(V=m(p=V)?p:oa,pa["$<<"](c)):h},g.$$s=d,g.$$arity=1,g))},D.$$s=J,D.$$arity=1,D))}catch(Ta){if(a.rescue(Ta,[q(n,"StandardError")]))try{return J.$logger().$error(J.$message_with_context("include "+W+" not readable: "+I,t(["source_location"],{source_location:J.$cursor()}))),J.$replace_next_line("Unresolved directive in "+ +J.path+" - include::"+F+"["+p+"]")}finally{a.pop_exception()}else throw Ta;}m(Z["$empty?"]())||e(Z,"each",[],(E=function(a,b,c){b=E.$$s||this;null==a&&(a=h);null==c&&(c=h);return b.$logger().$warn(b.$message_with_context("detected unclosed tag '"+a+"' starting at line "+c+" of include "+W+": "+I,t(["source_location","include_location"],{source_location:b.$cursor(),include_location:b.$create_include_cursor(I,F,c)})))},E.$$s=J,E.$$arity=3,E));m((M=k(G.$keys(),U.$to_a()))["$empty?"]())||J.$logger().$warn(J.$message_with_context("tag"+ +(m(g(M.$size(),1))?"s":"")+" '"+M.$join(", ")+"' not found in include "+W+": "+I,t(["source_location"],{source_location:J.$cursor()})));J.$shift();m(V)&&(m(m(u=m(r=la)?sa:r)?G["$empty?"]():u)||(A=["partial-option",""],e(ca,"[]=",a.to_a(A)),A[k(A.length,1)]),J.$push_include(pa,I,T,V,ca))}else try{ua=e(X,"call",[I,ha],(L=function(a){null==a&&(a=h);return a.$read()},L.$$s=J,L.$$arity=1,L)),J.$shift(),J.$push_include(ua,I,T,1,ca)}catch(Ta){if(a.rescue(Ta,[q(n,"StandardError")]))try{return J.$logger().$error(J.$message_with_context("include "+ +W+" not readable: "+I,t(["source_location"],{source_location:J.$cursor()}))),J.$replace_next_line("Unresolved directive in "+J.path+" - include::"+F+"["+p+"]")}finally{a.pop_exception()}else throw Ta;}return!0}return h},W.$$arity=2);a.def(d,"$resolve_include_path",T=function(a,b,d){var f,g,k,l=h,p=h;l=h;l=this.document;if(m(m(f=q(n,"Helpers")["$uriish?"](a))?f:m(c("::","String")["$==="](this.dir))?h:a=""+this.dir+"/"+a)){if(!m(l["$attr?"]("allow-uri-read")))return this.$replace_next_line("link:"+ +a+"["+b+"]");m(l["$attr?"]("cache-uri"))?m((g=c("::","OpenURI","skip_raise"))&&(f=c(g,"Cache","skip_raise"))?"constant":h)||q(n,"Helpers").$require_library("open-uri/cached","open-uri-cached"):m(q(n,"RUBY_ENGINE_OPAL")["$!"]())&&c("::","OpenURI");return[c("::","URI").$parse(a),"uri",a]}p=l.$normalize_system_path(a,this.dir,h,t(["target_name"],{target_name:"include file"}));if(!m(c("::","File")["$file?"](p))){if(m(d["$[]"]("optional-option")))return e(this.$logger(),"info",[],(k=function(){var a=k.$$s|| +this;return a.$message_with_context("optional include dropped because include file not found: "+p,t(["source_location"],{source_location:a.$cursor()}))},k.$$s=this,k.$$arity=0,k)),this.$shift(),!0;this.$logger().$error(this.$message_with_context("include file not found: "+p,t(["source_location"],{source_location:this.$cursor()})));return this.$replace_next_line("Unresolved directive in "+this.path+" - include::"+a+"["+b+"]")}l=l.$path_resolver().$relative_path(p,l.$base_dir());return[p,"file",l]}, +T.$$arity=3);a.def(d,"$pop_include",Z=function(){if(m(g(this.include_stack.$size(),0))){var b=this.include_stack.$pop();var c=a.to_ary(b);this.lines=null==c[0]?h:c[0];this.file=null==c[1]?h:c[1];this.dir=null==c[2]?h:c[2];this.path=null==c[3]?h:c[3];this.lineno=null==c[4]?h:c[4];this.maxdepth=null==c[5]?h:c[5];this.process_lines=null==c[6]?h:c[6];b;this.look_ahead=0}return h},Z.$$arity=0);a.def(d,"$split_delimited_value",U=function(a){return m(a["$include?"](","))?a.$split(","):a.$split(";")},U.$$arity= +1);a.def(d,"$skip_front_matter!",da=function(c,d){var f;null==d&&(d=!0);var g=h;if(c["$[]"](0)["$=="]("---")){var k=c.$drop(0);c.$shift();g=[];m(d)&&(this.lineno=b(this.lineno,1));for(;m(m(f=c["$empty?"]()["$!"]())?c["$[]"](0)["$!="]("---"):f);)g["$<<"](c.$shift()),m(d)&&(this.lineno=b(this.lineno,1));m(c["$empty?"]())?(e(c,"unshift",a.to_a(k)),m(d)&&(this.lineno=0),g=h):(c.$shift(),m(d)&&(this.lineno=b(this.lineno,1)))}return g},da.$$arity=-2);return(a.def(d,"$resolve_expr_val",K=function(a){var b, +c;m(m(b=m(c=a["$start_with?"]('"'))?a["$end_with?"]('"'):c)?b:m(c=a["$start_with?"]("'"))?a["$end_with?"]("'"):c)?(b=!0,a=a.$slice(1,k(a.$length(),1))):b=!1;m(a["$include?"](q(n,"ATTR_REF_HEAD")))&&(a=this.document.$sub_attributes(a,t(["attribute_missing"],{attribute_missing:"drop"})));return m(b)?a:m(a["$empty?"]())?h:a["$=="]("true")?!0:a["$=="]("false")?!1:m(a.$rstrip()["$empty?"]())?" ":m(a["$include?"]("."))?a.$to_f():a.$to_i()},K.$$arity=1),h)&&"resolve_expr_val"})(d[0],q(d,"Reader"),d)}(n[0], +n)};Opal.modules["asciidoctor/section"]=function(a){function b(a,b){return"number"===typeof a&&"number"===typeof b?a+b:a["$+"](b)}var g=[],k=a.nil,l=a.const_get_relative,n=a.module,h=a.klass,c=a.hash2,q=a.send,p=a.truthy;a.add_stubs("$attr_accessor $attr_reader $=== $+ $level $special $generate_id $title $== $> $sectnum $reftext $! $empty? $sub_placeholder $sub_quotes $compat_mode $[] $attributes $context $assign_numeral $class $object_id $inspect $size $length $chr $[]= $- $gsub $downcase $delete $tr_s $end_with? $chop $start_with? $slice $key? $catalog $unique_id_start_index".split(" ")); +return function(d,g){d=[n(d,"Asciidoctor")].concat(g);(function(d,$super,f){d=h(d,$super,"Section");var g=[d].concat(f),m,n,u,r,t,v,w;d.$$prototype.document=d.$$prototype.level=d.$$prototype.parent=d.$$prototype.numeral=d.$$prototype.numbered=d.$$prototype.sectname=d.$$prototype.title=d.$$prototype.blocks=k;d.$attr_accessor("index");d.$attr_accessor("sectname");d.$attr_accessor("special");d.$attr_accessor("numbered");d.$attr_reader("caption");a.def(d,"$initialize",m=function(d,f,h,n){var u,r;m.$$p&& +(m.$$p=null);null==d&&(d=k);null==f&&(f=k);null==h&&(h=!1);null==n&&(n=c([],{}));q(this,a.find_super_dispatcher(this,"initialize",m,!1),[d,"section",n],null);p(l(g,"Section")["$==="](d))?(u=[p(r=f)?r:b(d.$level(),1),d.$special()],this.level=u[0],this.special=u[1]):(u=[p(r=f)?r:1,!1],this.level=u[0],this.special=u[1]);u;this.numbered=h;return this.index=0},m.$$arity=-1);a.alias(d,"name","title");a.def(d,"$generate_id",n=function(){return l(g,"Section").$generate_id(this.$title(),this.document)},n.$$arity= +0);a.def(d,"$sectnum",u=function(a,b){var c;null==a&&(a=".");null==b&&(b=k);b=p(c=b)?c:b["$=="](!1)?"":a;var d=this.level;d="number"===typeof d?1"](1);return p(p(c=d)?l(g,"Section")["$==="](this.parent):c)?""+this.parent.$sectnum(a,a)+this.numeral+b:""+this.numeral+b},u.$$arity=-1);a.def(d,"$xreftext",r=function(a){var b,c=k,d=k,f=k;null==a&&(a=k);p(p(b=c=this.$reftext())?c["$empty?"]()["$!"]():b)?b=c:p(a)?(p(this.numbered)?"full"["$==="](a)?(a=p(p(b=(d=this.sectname)["$=="]("chapter"))?b: +d["$=="]("appendix"))?this.$sub_placeholder(this.$sub_quotes("_%s_"),this.$title()):this.$sub_placeholder(this.$sub_quotes(p(this.document.$compat_mode())?"``%s''":'"`%s`"'),this.$title()),a=p(f=this.document.$attributes()["$[]"](""+d+"-refsig"))?""+f+" "+this.$sectnum(".",",")+" "+a:""+this.$sectnum(".",",")+" "+a):a="short"["$==="](a)?p(f=this.document.$attributes()["$[]"](""+this.sectname+"-refsig"))?""+f+" "+this.$sectnum(".",""):this.$sectnum(".",""):p(p(b=(d=this.sectname)["$=="]("chapter"))? +b:d["$=="]("appendix"))?this.$sub_placeholder(this.$sub_quotes("_%s_"),this.$title()):this.$title():a=p(p(b=(d=this.sectname)["$=="]("chapter"))?b:d["$=="]("appendix"))?this.$sub_placeholder(this.$sub_quotes("_%s_"),this.$title()):this.$title(),b=a):b=this.$title();return b},r.$$arity=-1);a.def(d,"$<<",t=function(b){var c=t.$$p,d;c&&(t.$$p=null);var f=0;var g=arguments.length;for(d=Array(g);f"):q(this,a.find_super_dispatcher(this,"to_s",v,!1),c,b)},v.$$arity=0);return(a.defs(d,"$generate_id",w=function(c,d){var f,h,m,n= +k,u=h=k;var r=d.$attributes();var t=p(f=r["$[]"]("idprefix"))?f:"_";p(m=r["$[]"]("idseparator"))?(p(f=m.$length()["$=="](1))?r=f:p(h=(n=m["$empty?"]())["$!"]())?(h=["idseparator",m.$chr()],q(r,"[]=",a.to_a(h)),m=h,r=h.length,r="number"===typeof r?r-1:r["$-"](1),r=m=m[r]):r=h,p(r)&&(u=p(p(f=m["$=="]("-"))?f:m["$=="]("."))?" .-":" "+m+".-")):(f=["_"," _.-"],m=f[0],u=f[1],f);c=""+t+c.$downcase().$gsub(l(g,"InvalidSectionIdCharsRx"),"");p(n)?c=c.$delete(" "):(c=c.$tr_s(u,m),p(c["$end_with?"](m))&&(c= +c.$chop()),p(p(f=t["$empty?"]())?c["$start_with?"](m):f)&&(c=c.$slice(1,c.$length())));if(p(d.$catalog()["$[]"]("refs")["$key?"](c))){d=d.$catalog()["$[]"]("refs");for(f=l(g,"Compliance").$unique_id_start_index();p(d["$[]"](t=""+c+m+f));)f=b(f,1);return t}return c},w.$$arity=2),k)&&"generate_id"})(d[0],l(d,"AbstractBlock"),d)}(g[0],g)};Opal.modules["asciidoctor/stylesheets"]=function(a){var b=[],g=a.nil,k=a.const_get_qualified,l=a.const_get_relative,n=a.module,h=a.klass,c=a.truthy,q=a.hash2;a.add_stubs("$join $new $rstrip $read $primary_stylesheet_data $write $primary_stylesheet_name $stylesheet_basename $for $read_stylesheet $coderay_stylesheet_data $coderay_stylesheet_name $pygments_stylesheet_data $pygments_stylesheet_name".split(" ")); +return function(b,d){b=[n(b,"Asciidoctor")].concat(d);(function(b,$super,e){b=h(b,$super,"Stylesheets");var d=[b].concat(e),p,n,u,r,t,v,y,w,z,x,C,B,J;b.$$prototype.primary_stylesheet_data=g;a.const_set(d[0],"DEFAULT_STYLESHEET_NAME","asciidoctor.css");a.const_set(d[0],"STYLESHEETS_DIR",k("::","File").$join(l(d,"DATA_DIR"),"stylesheets"));b.__instance__=b.$new();a.defs(b,"$instance",p=function(){null==this.__instance__&&(this.__instance__=g);return this.__instance__},p.$$arity=0);a.def(b,"$primary_stylesheet_name", +n=function(){return l(d,"DEFAULT_STYLESHEET_NAME")},n.$$arity=0);a.def(b,"$primary_stylesheet_data",u=function(){var a;return this.primary_stylesheet_data=c(a=this.primary_stylesheet_data)?a:k("::","File").$read(k("::","File").$join(l(d,"STYLESHEETS_DIR"),"asciidoctor-default.css"),q(["mode"],{mode:l(d,"FILE_READ_MODE")})).$rstrip()},u.$$arity=0);a.def(b,"$embed_primary_stylesheet",r=function(){return""},r.$$arity=0);a.def(b,"$write_primary_stylesheet", +t=function(a){null==a&&(a=".");return k("::","File").$write(k("::","File").$join(a,this.$primary_stylesheet_name()),this.$primary_stylesheet_data(),q(["mode"],{mode:l(d,"FILE_WRITE_MODE")}))},t.$$arity=-1);a.def(b,"$coderay_stylesheet_name",v=function(){return l(d,"SyntaxHighlighter").$for("coderay").$stylesheet_basename()},v.$$arity=0);a.def(b,"$coderay_stylesheet_data",y=function(){return l(d,"SyntaxHighlighter").$for("coderay").$read_stylesheet()},y.$$arity=0);a.def(b,"$embed_coderay_stylesheet", +w=function(){return""},w.$$arity=0);a.def(b,"$write_coderay_stylesheet",z=function(a){null==a&&(a=".");return k("::","File").$write(k("::","File").$join(a,this.$coderay_stylesheet_name()),this.$coderay_stylesheet_data(),q(["mode"],{mode:l(d,"FILE_WRITE_MODE")}))},z.$$arity=-1);a.def(b,"$pygments_stylesheet_name",x=function(a){null==a&&(a=g);return l(d,"SyntaxHighlighter").$for("pygments").$stylesheet_basename(a)},x.$$arity=-1);a.def(b,"$pygments_stylesheet_data", +C=function(a){null==a&&(a=g);return l(d,"SyntaxHighlighter").$for("pygments").$read_stylesheet(a)},C.$$arity=-1);a.def(b,"$embed_pygments_stylesheet",B=function(a){null==a&&(a=g);return""},B.$$arity=-1);return(a.def(b,"$write_pygments_stylesheet",J=function(a,b){null==a&&(a=".");null==b&&(b=g);return k("::","File").$write(k("::","File").$join(a,this.$pygments_stylesheet_name(b)),this.$pygments_stylesheet_data(b),q(["mode"],{mode:l(d,"FILE_WRITE_MODE")}))}, +J.$$arity=-1),g)&&"write_pygments_stylesheet"})(b[0],null,b)}(b[0],b)};Opal.modules["asciidoctor/table"]=function(a){function b(a,b){return"number"===typeof a&&"number"===typeof b?a>b:a["$>"](b)}function g(a,b){return"number"===typeof a&&"number"===typeof b?a $to_i $< $== $[]= $- $attributes $truncate $* $/ $to_f $empty? $body $each $<< $size $+ $assign_column_widths $warn $logger $update_attributes $assign_width $round $map $shift $reinitialize $head= $nil? $unshift $pop $foot= $parent $sourcemap $dup $header_row? $table $style $merge $delete $start_with? $rstrip $slice $length $advance $lstrip $strip $split $include? $readlines $catalog_inline_anchor $=~ $apply_subs $convert $text $!= $file $lineno $to_s $include $to_set $mark $key? $nested? $document $error $message_with_context $cursor_at_prev_line $nil_or_empty? $escape $columns $match $chop $end_with? $gsub $! $push_cellspec $cell_open? $close_cell $take_cellspec $squeeze $upto $times $cursor_before_mark $rowspan $activate_rowspan $colspan $end_of_row? $close_row $private $rows $effective_column_visits".split(" ")); +return function(c,d){c=[t(c,"Asciidoctor")].concat(d);(function(c,$super,d){c=m(c,$super,"Table");var p=[c].concat(d),u,t,y,w,z;c.$$prototype.attributes=c.$$prototype.document=c.$$prototype.has_header_option=c.$$prototype.rows=c.$$prototype.columns=q;a.const_set(p[0],"DEFAULT_PRECISION",4);(function(b,$super,c){b=m(b,$super,"Rows");[b].concat(c);var d,f,g;b.$$prototype.head=b.$$prototype.body=b.$$prototype.foot=q;b.$attr_accessor("head","foot","body");a.def(b,"$initialize",d=function(a,b,c){null== +a&&(a=[]);null==b&&(b=[]);null==c&&(c=[]);this.head=a;this.foot=b;return this.body=c},d.$$arity=-1);a.alias(b,"[]","send");a.def(b,"$by_section",f=function(){return[["head",this.head],["body",this.body],["foot",this.foot]]},f.$$arity=0);return(a.def(b,"$to_h",g=function(){return e(["head","body","foot"],{head:this.head,body:this.body,foot:this.foot})},g.$$arity=0),q)&&"to_h"})(p[0],null,p);c.$attr_accessor("columns");c.$attr_accessor("rows");c.$attr_accessor("has_header_option");c.$attr_reader("caption"); +a.def(c,"$initialize",u=function(c,e){var d,h,m=q,t=q,y=q;u.$$p&&(u.$$p=null);f(this,a.find_super_dispatcher(this,"initialize",u,!1),[c,"table"],null);this.rows=r(p,"Rows").$new();this.columns=[];this.has_header_option=!1;v(m=e["$[]"]("width"))?v(v(d=b(t=m.$to_i(),100))?d:g(t,1))&&!v(t["$=="](0)?v(h=m["$=="]("0"))?h:m["$=="]("0%"):t["$=="](0))&&(t=100):t=100;c=["tablepcwidth",t];f(this.attributes,"[]=",a.to_a(c));c[k(c.length,1)];v(this.document.$attributes()["$[]"]("pagewidth"))&&(c=["tableabswidth", +(y=l(n(t,100),this.document.$attributes()["$[]"]("pagewidth").$to_f()).$truncate(r(p,"DEFAULT_PRECISION")))["$=="](y.$to_i())?y.$to_i():y],f(this.attributes,"[]=",a.to_a(c)),c[k(c.length,1)]);return v(e["$[]"]("rotate-option"))?(c=["orientation","landscape"],f(this.attributes,"[]=",a.to_a(c)),c[k(c.length,1)]):q},u.$$arity=2);a.def(c,"$header_row?",t=function(){var a,b;return v(v(a=b=this.has_header_option)?this.rows.$body()["$empty?"]():a)?b:q},t.$$arity=0);a.def(c,"$create_columns",y=function(c){var e, +d,m=q,l=q,n=q,u=q;u=q;m=[];l=q;n=0;f(c,"each",[],(e=function(a){var b=e.$$s||this,c;null==a&&(a=q);var d=a["$[]"]("width");m["$<<"](r(p,"Column").$new(b,m.$size(),a));return v(g(d,0))?(l=v(c=l)?c:[])["$<<"](m["$[]"](-1)):n=h(n,d)},e.$$s=this,e.$$arity=1,e));v(b(u=(this.columns=m).$size(),0))&&(u=["colcount",u],f(this.attributes,"[]=",a.to_a(u)),u[k(u.length,1)],v(v(d=b(n,0))?d:l)||(n=q),this.$assign_column_widths(n,l));return q},y.$$arity=1);a.def(c,"$assign_column_widths",w=function(a,c){var d,g, +m,l=q,u=q,t=q,y=q,w=q;null==a&&(a=q);null==c&&(c=q);l=r(p,"DEFAULT_PRECISION");u=t=0;v(a)?(v(c)&&(v(b(a,100))?(y=0,this.$logger().$warn("total column width must not exceed 100% when using autowidth columns; got "+a+"%")):(y=n(k(100,a),c.$size()).$truncate(l),y.$to_i()["$=="](y)&&(y=y.$to_i()),a=100),w=e(["width","autowidth-option"],{width:y,"autowidth-option":""}),f(c,"each",[],(d=function(a){null==a&&(a=q);return a.$update_attributes(w)},d.$$s=this,d.$$arity=1,d))),f(this.columns,"each",[],(g=function(b){null== +b&&(b=q);return u=h(u,t=b.$assign_width(q,a,l))},g.$$s=this,g.$$arity=1,g))):(t=n(100,this.columns.$size()).$truncate(l),t.$to_i()["$=="](t)&&(t=t.$to_i()),f(this.columns,"each",[],(m=function(a){null==a&&(a=q);return u=h(u,a.$assign_width(t,q,l))},m.$$s=this,m.$$arity=1,m)));u["$=="](100)||this.columns["$[]"](-1).$assign_width(h(k(100,u),t).$round(l),q,l);return q},w.$$arity=-1);return(a.def(c,"$partition_header_footer",z=function(c){var e,d,g,h=q,m=q,l=q;h=(m=["rowcount",(l=this.rows.$body()).$size()], +f(this.attributes,"[]=",a.to_a(m)),m[k(m.length,1)]);v(b(h,0))&&(v(this.has_header_option)?(m=[[f(l.$shift(),"map",[],(e=function(a){null==a&&(a=q);return a.$reinitialize(!0)},e.$$s=this,e.$$arity=1,e))]],f(this.rows,"head=",a.to_a(m)),m[k(m.length,1)],h=k(h,1)):v(this.has_header_option["$nil?"]())&&(this.has_header_option=!1,l.$unshift(f(l.$shift(),"map",[],(d=function(a){null==a&&(a=q);return a.$reinitialize(!1)},d.$$s=this,d.$$arity=1,d)))));v(v(g=b(h,0))?c["$[]"]("footer-option"):g)&&(m=[[l.$pop()]], +f(this.rows,"foot=",a.to_a(m)),m[k(m.length,1)]);return q},z.$$arity=1),q)&&"partition_header_footer"})(c[0],r(c,"AbstractBlock"),c);(function(b,$super,c){b=m(b,$super,"Column");[b].concat(c);var d,g,p,u;b.$$prototype.attributes=q;b.$attr_accessor("style");a.def(b,"$initialize",d=function(b,c,g){var m;d.$$p&&(d.$$p=null);null==g&&(g=e([],{}));f(this,a.find_super_dispatcher(this,"initialize",d,!1),[b,"table_column"],null);this.style=g["$[]"]("style");b=["colnumber",h(c,1)];f(g,"[]=",a.to_a(b));b[k(b.length, +1)];v(m=g["$[]"]("width"))?m:(b=["width",1],f(g,"[]=",a.to_a(b)),b[k(b.length,1)]);v(m=g["$[]"]("halign"))?m:(b=["halign","left"],f(g,"[]=",a.to_a(b)),b[k(b.length,1)]);v(m=g["$[]"]("valign"))?m:(b=["valign","top"],f(g,"[]=",a.to_a(b)),b[k(b.length,1)]);return this.$update_attributes(g)},d.$$arity=-3);a.alias(b,"table","parent");a.def(b,"$assign_width",g=function(b,c,e){var d=q;v(c)&&(b=n(l(this.attributes["$[]"]("width").$to_f(),100),c).$truncate(e),b.$to_i()["$=="](b)&&(b=b.$to_i()));v(this.$parent().$attributes()["$[]"]("tableabswidth"))&& +(c=["colabswidth",(d=l(n(b,100),this.$parent().$attributes()["$[]"]("tableabswidth")).$truncate(e))["$=="](d.$to_i())?d.$to_i():d],f(this.attributes,"[]=",a.to_a(c)),c[k(c.length,1)]);c=["colpcwidth",b];f(this.attributes,"[]=",a.to_a(c));return c[k(c.length,1)]},g.$$arity=3);a.def(b,"$block?",p=function(){return!1},p.$$arity=0);return(a.def(b,"$inline?",u=function(){return!1},u.$$arity=0),q)&&"inline?"})(r(c,"Table"),r(c,"AbstractNode"),c);(function(b,$super,c){b=m(b,$super,"Cell");var d=[b].concat(c), +n,u,t,y,z,x,C,S,B,J,D;b.$$prototype.document=b.$$prototype.reinitialize_args=b.$$prototype.attributes=b.$$prototype.cursor=b.$$prototype.text=b.$$prototype.subs=b.$$prototype.style=b.$$prototype.inner_document=b.$$prototype.source_location=b.$$prototype.colspan=b.$$prototype.rowspan=q;a.const_set(d[0],"DOUBLE_LF",l(r(d,"LF"),2));b.$attr_accessor("colspan");b.$attr_accessor("rowspan");a.alias(b,"column","parent");b.$attr_reader("inner_document");a.def(b,"$initialize",n=function(b,c,m,l){var p,u,t, +y=q,w=q,z=q,x=q,C=q,S=q,B=q;n.$$p&&(n.$$p=null);null==m&&(m=e([],{}));null==l&&(l=e([],{}));f(this,a.find_super_dispatcher(this,"initialize",n,!1),[b,"table_cell"],null);this.cursor=this.reinitialize_args=q;v(this.document.$sourcemap())&&(this.source_location=l["$[]"]("cursor").$dup());v(b)&&(v(y=b.$table()["$header_row?"]())?v((p=y["$=="]("implicit"))?w=v(u=b.$style())?u:v(t=m)?m["$[]"]("style"):t:y["$=="]("implicit"))&&(v(v(p=w["$=="]("asciidoc"))?p:w["$=="]("literal"))&&(this.reinitialize_args= +[b,c,v(p=m)?m.$merge():p,l]),w=q):w=b.$style(),this.$update_attributes(b.$attributes()));if(v(m))if(v(m["$empty?"]())?this.colspan=this.rowspan=q:(p=[m.$delete("colspan"),m.$delete("rowspan")],this.colspan=p[0],this.rowspan=p[1],p,v(y)||(w=v(p=m["$[]"]("style"))?p:w),this.$update_attributes(m)),w["$=="]("asciidoc"))if(z=!0,x=l["$[]"]("cursor"),v((c=c.$rstrip())["$start_with?"](r(d,"LF")))){for(b=1;v((c=c.$slice(1,c.$length()))["$start_with?"](r(d,"LF")));)b=h(b,1);x.$advance(b)}else c=c.$lstrip(); +else if(w["$=="]("literal"))for(C=!0,c=c.$rstrip();v(c["$start_with?"](r(d,"LF")));)c=c.$slice(1,c.$length());else S=!0,c=v(c)?c.$strip():"";else this.colspan=this.rowspan=q,w["$=="]("asciidoc")&&(z=!0,x=l["$[]"]("cursor"));v(z)?(l=this.document.$attributes().$delete("doctitle"),y=c.$split(r(d,"LF"),-1),!v(y["$empty?"]())&&v((B=y["$[]"](0))["$include?"]("::"))&&(z=r(d,"PreprocessorReader").$new(this.document,[B]).$readlines(),v(B["$=="](z["$[]"](0))?g(z.$size(),2):B["$=="](z["$[]"](0)))||(y.$shift(), +v(z["$empty?"]())||f(y,"unshift",a.to_a(z)))),this.inner_document=r(d,"Document").$new(y,e(["standalone","parent","cursor"],{standalone:!1,parent:this.document,cursor:x})),v(l["$nil?"]())||(x=["doctitle",l],f(this.document.$attributes(),"[]=",a.to_a(x)),x[k(x.length,1)]),this.subs=q):v(C)?(this.content_model="verbatim",this.subs=r(d,"BASIC_SUBS")):(v(S)&&(v(y)?this.cursor=l["$[]"]("cursor"):this.$catalog_inline_anchor(c,l["$[]"]("cursor"))),this.content_model="simple",this.subs=r(d,"NORMAL_SUBS")); +this.text=c;return this.style=w},n.$$arity=-3);a.def(b,"$reinitialize",u=function(b){if(v(b))this.reinitialize_args=q;else{if(v(this.reinitialize_args))return f(p(r(d,"Table"),"Cell"),"new",a.to_a(this.reinitialize_args));this.style=this.attributes["$[]"]("style")}v(this.cursor)&&this.$catalog_inline_anchor();return this},u.$$arity=1);a.def(b,"$catalog_inline_anchor",t=function(a,b){null==a&&(a=this.text);null==b&&(b=q);if(!v(b)){var c=[this.cursor,q];b=c[0];this.cursor=c[1];c}return v(v(c=a["$start_with?"]("[["))? +r(d,"LeadingInlineAnchorRx")["$=~"](a):c)?r(d,"Parser").$catalog_inline_anchor((c=w["~"])===q?q:c["$[]"](1),(c=w["~"])===q?q:c["$[]"](2),this,b,this.document):q},t.$$arity=-1);a.def(b,"$text",y=function(){return this.$apply_subs(this.text,this.subs)},y.$$arity=0);a.def(b,"$text=",z=function(a){return this.text=a},z.$$arity=1);a.def(b,"$content",x=function(){var a,b,c=q,g=q;return(c=this.style)["$=="]("asciidoc")?this.inner_document.$convert():v(this.text["$include?"](r(d,"DOUBLE_LF")))?f(this.$text().$split(r(d, +"BlankLineRx")),"map",[],(a=function(b){var f=a.$$s||this,g;null==b&&(b=q);return v(v(g=c)?c["$!="]("header"):g)?r(d,"Inline").$new(f.$parent(),"quoted",b,e(["type"],{type:c})).$convert():b},a.$$s=this,a.$$arity=1,a)):v((g=this.$text())["$empty?"]())?[]:v(v(b=c)?c["$!="]("header"):b)?[r(d,"Inline").$new(this.$parent(),"quoted",g,e(["type"],{type:c})).$convert()]:[g]},x.$$arity=0);a.def(b,"$lines",C=function(){return this.text.$split(r(d,"LF"))},C.$$arity=0);a.def(b,"$source",S=function(){return this.text}, +S.$$arity=0);a.def(b,"$file",B=function(){var a;return v(a=this.source_location)?this.source_location.$file():a},B.$$arity=0);a.def(b,"$lineno",J=function(){var a;return v(a=this.source_location)?this.source_location.$lineno():a},J.$$arity=0);return(a.def(b,"$to_s",D=function(){var b,c=D.$$p,d;c&&(D.$$p=null);var e=0;var g=arguments.length;for(d=Array(g);e")+": Failed to load AsciiDoc document", +p(E["$respond_to?"]("exception"))?(F=E.$exception(""+J+" - "+E.$message()),F.$set_backtrace(E.$backtrace()),F.stack=E.stack):(F=E.$class().$new(J,E),x=[E.$stack_trace()],r(F,"stack_trace=",a.to_a(x)),x[b(x.length,1)])}catch(na){if(a.rescue(na,[h(e,"StandardError")]))try{F=E}finally{a.pop_exception()}else throw na;}return this.$raise(F)}finally{a.pop_exception()}}else throw V;}},f.$$arity=-2);return(a.def(c,"$load_file",m=function(a,b){var c;null==b&&(b=q([],{}));return r(n("::","File"),"open",[a, +h(e,"FILE_READ_MODE")],(c=function(a){var d=c.$$s||this;null==a&&(a=l);return d.$load(a,b)},c.$$s=this,c.$$arity=1,c))},m.$$arity=-2),l)&&"load_file"})(a.get_singleton_class(d),m)}(k[0],k)};Opal.modules["asciidoctor/convert"]=function(a){function b(a,b){return"number"===typeof a&&"number"===typeof b?a-b:a["$-"](b)}function g(a,b){return"number"===typeof a&&"number"===typeof b?a>=b:a["$>="](b)}var k=[],l=a.nil,n=a.const_get_qualified,h=a.const_get_relative,c=a.module,q=a.hash2,p=a.truthy,r=a.send; +a.add_stubs("$delete $merge $=== $absolute_path $path $load $respond_to? $[]= $- $key? $fetch $[] $dirname $expand_path $join $attributes $outfilesuffix $== $raise $pwd $>= $safe $normalize_system_path $mkdir_p $directory? $! $convert $write $< $attr? $basebackend? $attr $uriish? $include? $syntax_highlighter $write_stylesheet? $write_primary_stylesheet $instance $to_s $!= $read_asset $file? $write_stylesheet $open".split(" "));return function(d,m){d=c(d,"Asciidoctor");m=[d].concat(m);(function(c, +d){var e=[c].concat(d),f,m;a.def(c,"$convert",f=function(c,d){var f,m,k,u,t,v,w=l,x=l,z=t=l,C=l,B=l,D=l,E=l,S=l,J=l,F=l,L=l,O=l;null==d&&(d=q([],{}));(d=d.$merge()).$delete("parse");var H=d.$delete("to_dir");var I=d.$delete("mkdirs");var K=v=d.$delete("to_file");if((!0)["$==="](K)||l["$==="](K))p(w=H)||p(n("::","File")["$==="](c))&&(x=n("::","File").$absolute_path(c.$path())),v=l;else if((!1)["$==="](K))v=l;else{if("/dev/null"["$==="](K))return this.$load(c,d);p(t=v["$respond_to?"]("write"))||(K= +["to_file",w=v],r(d,"[]=",a.to_a(K)),K[b(K.length,1)])}p(d["$key?"]("standalone"))||(p(p(f=x)?f:w)?(K=["standalone",d.$fetch("header_footer",!0)],r(d,"[]=",a.to_a(K)),K[b(K.length,1)]):p(d["$key?"]("header_footer"))&&(K=["standalone",d["$[]"]("header_footer")],r(d,"[]=",a.to_a(K)),K[b(K.length,1)]));p(x)?(K=["to_dir",z=n("::","File").$dirname(x)],r(d,"[]=",a.to_a(K)),K[b(K.length,1)]):p(w)&&(p(H)?(K=p(v)?["to_dir",n("::","File").$dirname(n("::","File").$expand_path(v,H))]:["to_dir",n("::","File").$expand_path(H)], +r(d,"[]=",a.to_a(K)),K[b(K.length,1)]):p(v)&&(K=["to_dir",n("::","File").$dirname(n("::","File").$expand_path(v))],r(d,"[]=",a.to_a(K)),K[b(K.length,1)]));K=this.$load(c,d);p(x)?(C=n("::","File").$join(z,""+K.$attributes()["$[]"]("docname")+K.$outfilesuffix()),C["$=="](x)&&this.$raise(n("::","IOError"),"input file and output file cannot be the same: "+C)):p(w)?(d=p(d["$key?"]("base_dir"))?n("::","File").$expand_path(d["$[]"]("base_dir")):n("::","Dir").$pwd(),w=p(g(K.$safe(),n(h(e,"SafeMode"),"SAFE")))? +d:l,p(H)?(z=K.$normalize_system_path(H,d,w,q(["target_name","recover"],{target_name:"to_dir",recover:!1})),p(v)?(C=K.$normalize_system_path(v,z,l,q(["target_name","recover"],{target_name:"to_dir",recover:!1})),z=n("::","File").$dirname(C)):C=n("::","File").$join(z,""+K.$attributes()["$[]"]("docname")+K.$outfilesuffix())):p(v)&&(C=K.$normalize_system_path(v,d,w,q(["target_name","recover"],{target_name:"to_dir",recover:!1})),z=n("::","File").$dirname(C)),p(p(f=n("::","File")["$==="](c))?C["$=="](n("::", +"File").$absolute_path(c.$path())):f)&&this.$raise(n("::","IOError"),"input file and output file cannot be the same: "+C),p(I)?h(e,"Helpers").$mkdir_p(z):p(n("::","File")["$directory?"](z))||this.$raise(n("::","IOError"),"target directory does not exist: "+H+" (hint: set :mkdirs option)")):(C=v,z=l);c=p(p(f=C)?t["$!"]():f)?K.$convert(q(["outfile","outdir"],{outfile:C,outdir:z})):K.$convert();return p(C)?(K.$write(c,C),p(t=t["$!"]())&&(t=K.$safe(),C=n(h(e,"SafeMode"),"SECURE"),t="number"===typeof t&& +"number"===typeof C?t":'